库名称: llama.cpp
许可证: gemma
许可证链接: https://ai.google.dev/gemma/terms
任务类型: 文本生成
额外访问提示: 在Hugging Face上访问CodeGemma
额外访问说明: 要访问Hugging Face上的Gemma,您需要审阅并同意Google的使用许可。请确保您已登录Hugging Face账号并点击下方按钮。请求将立即处理。
额外访问按钮内容: 确认许可
CodeGemma
模型主页
: CodeGemma
资源与技术文档
: 技术报告
: 负责任生成式AI工具包
使用条款
: 条款
作者
: Google
[!重要提示]
在llama.cpp及相关工具(如Ollama和LM Studio)中,请确保正确设置以下标志,尤其是**repeat-penalty
**。llama.cpp作者Georgi Gerganov在此链接中分享了经验。
模型信息
简要描述及输入输出定义。
描述
CodeGemma是基于Gemma构建的轻量级开源代码模型系列,包含文本到文本和文本到代码的解码器模型。提供以下变体:
- 70亿参数预训练版:专精代码补全与生成任务
- 70亿参数指令调优版:适用于代码对话与指令跟随
- 20亿参数预训练版:用于快速代码补全
使用示例
$ cat non_prime
/// 编写Rust函数识别非素数。
///
/// 示例:
/// >>> is_not_prime(2)
/// False
/// >>> is_not_prime(10)
/// True
pub fn is_not_prime(n: i32) -> bool {
$ main -m codegemma-2b.gguf --temp 0 --top-k 0 -f non_prime --log-disable --repeat-penalty 1.0
/// 编写Rust函数识别非素数。
///
/// 示例:
/// >>> 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
}
<|文件分隔符|>
输入输出
输入
: 预训练模型:代码前缀/后缀(用于补全场景)或自然语言提示
: 指令调优模型:自然语言文本或提示
输出
: 预训练模型:中间填充代码补全、代码及自然语言
: 指令调优模型:代码及自然语言
模型数据
训练数据来源及处理方法。
训练数据集
以Gemma为基础模型,CodeGemma 2B/7B预训练版额外训练了5000亿token数据,主要来自:
数据预处理
应用技术包括:
- FIM训练:80%填充中间任务率,PSM/SPM模式各占50%
- 依赖图打包与单元测试词法打包:按项目/仓库级组织训练样本
- 创新文档分割技术:使后缀起始点更符合语法逻辑
- 安全过滤:包括个人数据过滤、CSAM过滤及内容质量筛查(遵循Google政策)
实现信息
训练硬件与软件配置。
硬件
使用最新代TPUv5e芯片训练。
软件
基于JAX和ML Pathways框架开发。
评估信息
模型性能指标与结果。
评估方法
覆盖多领域学术基准:
- 代码补全:HumanEval单行/多行填充
- 代码生成:HumanEval、MBPP、BabelCode(8种语言)
- 问答:BoolQ、PIQA、TriviaQA
- 自然语言:ARC-Challenge、HellaSwag等
- 数学推理:GSM8K、MATH
评估结果
代码基准
(详细分数表格见原文)
自然语言基准

伦理与安全
评估方法与结果。
评估方法
- 结构化评估+内部红队测试
- 重点关注:内容安全、表征危害
- 专项测试网络攻击能力限制
评估结果
符合Google内部政策阈值要求,详见Gemma模型卡。
使用与限制
适用场景
- 代码补全:IDE插件支持
- 代码生成:带/不带IDE环境
- 代码对话:交互式讨论接口
- 编程教育:语法纠正/练习辅助
已知限制
大语言模型固有限制详见Gemma模型卡。
伦理风险
开发考量参见Gemma同类讨论。
优势
- 同类尺寸模型中表现优异
- 专为负责任AI开发设计
- 代码基准测试超越同类开源方案