|
--- |
|
library_name: llama.cpp |
|
license: gemma |
|
license_link: https://ai.google.dev/gemma/terms |
|
pipeline_tag: text-generation |
|
extra_gated_heading: Access CodeGemma on Hugging Face |
|
extra_gated_prompt: To access Gemma on Hugging Face, you’re required to review and |
|
agree to Google’s usage license. To do this, please ensure you’re logged-in to Hugging |
|
Face and click below. Requests are processed immediately. |
|
extra_gated_button_content: Acknowledge license |
|
--- |
|
|
|
# CodeGemma |
|
|
|
Model Page |
|
: [CodeGemma](https://ai.google.dev/gemma/docs/codegemma) |
|
|
|
Resources and Technical Documentation |
|
: [Technical Report](https://goo.gle/codegemma) |
|
: [Responsible Generative AI Toolkit](https://ai.google.dev/responsible) |
|
|
|
Terms of Use |
|
: [Terms](https://www.kaggle.com/models/google/codegemma/license/consent/verify/huggingface?returnModelRepoId=google/codegemma-1.1-2b-GGUF) |
|
|
|
Authors |
|
: Google |
|
|
|
> [!IMPORTANT] |
|
> |
|
> In llama.cpp, and other related tools such as Ollama and LM Studio, please make sure that you have these flags set correctly, especially **`repeat-penalty`**. Georgi Gerganov (llama.cpp's author) shared his experience in https://huggingface.co/google/gemma-7b-it/discussions/38#65d7b14adb51f7c160769fa1. |
|
|
|
## Description |
|
|
|
CodeGemma is a collection of lightweight open code models built on top of Gemma. CodeGemma models are text-to-text and text-to-code decoder-only models and are available as a 7 billion pretrained variant that specializes in code completion and code generation tasks, a 7 billion parameter instruction-tuned variant for code chat and instruction following and a 2 billion parameter pretrained variant for fast code completion. |
|
|
|
| | [ **codegemma-2b** ](https://huggingface.co/google/codegemma-1.1-2b-GGUF) | [codegemma-7b](https://huggingface.co/google/codegemma-7b-GGUF) | [codegemma-7b-it](https://huggingface.co/google/codegemma-1.1-7b-it-GGUF) | |
|
|----------------------------------|:----------------------------------------------------------------:|:----------------------------------------------------------:|:----------------------------------------------------------------:| |
|
| Code Completion | ✅ | ✅ | | |
|
| Generation from natural language | | ✅ | ✅ | |
|
| Chat | | | ✅ | |
|
| Instruction Following | | | ✅ | |
|
|
|
For detailed model card, refer to https://huggingface.co/google/codegemma-1.1-2b. |
|
|
|
## Sample Usage |
|
|
|
```shell |
|
$ cat non_prime |
|
/// Write a rust function to identify non-prime numbers. |
|
/// |
|
/// Examples: |
|
/// >>> is_not_prime(2) |
|
/// False |
|
/// >>> is_not_prime(10) |
|
/// True |
|
pub fn is_not_prime(n: i32) -> bool { |
|
$ main -m codegemma-1.1-2b.gguf --temp 0 --top-k 0 -f non_prime --log-disable --repeat-penalty 1.0 |
|
/// Write a rust function to identify non-prime numbers. |
|
/// |
|
/// Examples: |
|
/// >>> is_not_prime(2) |
|
/// False |
|
/// >>> is_not_prime(10) |
|
/// True |
|
pub fn is_not_prime(n: i32) -> bool { |
|
for i in 2..n { |
|
if n % i == 0 { |
|
return true; |
|
} |
|
} |
|
false |
|
} |
|
<|file_separator|> |
|
``` |
|
|
|
## Coding Benchmarks |
|
|
|
Benchmark | [2B](https://huggingface.co/google/codegemma-2b-GGUF) | [2B (1.1)](https://huggingface.co/google/codegemma-1.1-2b-GGUF) | [7B](https://huggingface.co/google/codegemma-7b-GGUF) | [7B-IT](https://huggingface.co/google/codegemma-7b-it-GGUF) | [7B-IT (1.1)](https://huggingface.co/google/codegemma-1.1-7b-it-GGUF) |
|
----------------------|------|----------|------|-------|------------ |
|
HumanEval | 31.1 | 37.8 | 44.5 | 56.1 | 60.4 |
|
MBPP | 43.6 | 49.2 | 56.2 | 54.2 | 55.6 |
|
HumanEval Single Line | 78.4 | 79.3 | 76.1 | 68.3 | 77.4 |
|
HumanEval Multi Line | 51.4 | 51.0 | 58.4 | 20.1 | 23.7 |
|
BC HE C++ | 24.2 | 19.9 | 32.9 | 42.2 | 46.6 |
|
BC HE C# | 10.6 | 26.1 | 22.4 | 26.7 | 54.7 |
|
BC HE Go | 20.5 | 18.0 | 21.7 | 28.6 | 34.2 |
|
BC HE Java | 29.2 | 29.8 | 41.0 | 48.4 | 50.3 |
|
BC HE JavaScript | 21.7 | 28.0 | 39.8 | 46.0 | 48.4 |
|
BC HE Kotlin | 28.0 | 32.3 | 39.8 | 51.6 | 47.8 |
|
BC HE Python | 21.7 | 36.6 | 42.2 | 48.4 | 54.0 |
|
BC HE Rust | 26.7 | 24.2 | 34.1 | 36.0 | 37.3 |
|
BC MBPP C++ | 47.1 | 38.9 | 53.8 | 56.7 | 63.5 |
|
BC MBPP C# | 28.7 | 45.3 | 32.5 | 41.2 | 62.0 |
|
BC MBPP Go | 45.6 | 38.9 | 43.3 | 46.2 | 53.2 |
|
BC MBPP Java | 41.8 | 49.7 | 50.3 | 57.3 | 62.9 |
|
BC MBPP JavaScript | 45.3 | 45.0 | 58.2 | 61.4 | 61.4 |
|
BC MBPP Kotlin | 46.8 | 49.7 | 54.7 | 59.9 | 62.6 |
|
BC MBPP Python | 38.6 | 52.9 | 59.1 | 62.0 | 60.2 |
|
BC MBPP Rust | 45.3 | 47.4 | 52.9 | 53.5 | 52.3 |
|
|
|
## Natural Language Benchmarks |
|
|
|
![CodeGemma Natural Language Benchmarks](./codegemma_nl_benchmarks.png) |