库名称:llama.cpp
许可证:gemma
许可证链接:https://ai.google.dev/gemma/terms
任务标签:文本生成
额外授权标题:在Hugging Face上访问CodeGemma
额外授权提示:要在Hugging Face上访问CodeGemma,您需要阅读并同意Google的使用许可。为此,请确保您已登录Hugging Face并点击下方按钮。请求将立即处理。
额外授权按钮内容:确认许可
CodeGemma
模型页面
: CodeGemma
资源与技术文档
: 技术报告
: 负责任生成式AI工具包
使用条款
: 条款
作者
: Google
[!重要提示]
在llama.cpp及其他相关工具(如Ollama和LM Studio)中,请确保正确设置以下标志,尤其是**repeat-penalty
**。Georgi Gerganov(llama.cpp作者)在Hugging Face讨论中分享了他的经验。
模型信息
输入输出的简要描述与定义。
描述
CodeGemma是基于Gemma构建的轻量级开源代码模型系列。CodeGemma模型为仅解码器的文本到文本和文本到代码模型,提供以下变体:
- 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-7b-it.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 {
if n <= 1 {
return true;
}
for i in 2..=(n as f64).sqrt() as i32 {
if n % i == 0 {
return true;
}
}
false
}
输入输出
输入
: 预训练模型变体:用于代码补全/生成的代码前缀/后缀,或自然语言文本/提示
: 指令调优模型变体:自然语言文本/提示
输出
: 预训练模型变体:中间填充代码补全、代码及自然语言
: 指令调优模型变体:代码及自然语言
模型数据
训练数据及处理方法。
训练数据集
以Gemma为基础模型,CodeGemma 2B/7B预训练变体额外训练了5000亿token数据,主要来自:
数据预处理
应用以下技术:
- 中间填充(FIM):支持PSM与SPM模式,80% FIM率且PSM/SPM各50%
- 依赖图打包与单元测试词法打包:按项目/仓库级组织训练样本,关联相关源文件
- 创新文档分割技术:使后缀起始点更符合语法自然性
- 安全过滤:包括个人数据过滤、CSAM过滤及符合政策的内容质量筛查
实现信息
训练硬件与软件。
硬件
使用最新代TPUv5e训练。
软件
基于JAX与ML Pathways框架。
评估信息
模型指标与结果。
评估方法
覆盖多领域学术基准:
- 代码补全:HumanEval单行/多行填充
- 代码生成:HumanEval、MBPP、BabelCode(8种语言)
- Q&A:BoolQ、PIQA等
- 自然语言:ARC-Challenge、MMLU等
- 数学推理:GSM8K、MATH
评估结果
代码基准
(详细分数表格略,包含20+编程语言测试集表现)
自然语言基准

伦理与安全
评估方法
通过结构化评估与内部红队测试,覆盖:
评估结果
符合内部政策阈值,在儿童安全、内容安全等维度表现达标。
使用与限制
适用场景
- 代码补全:预训练模型支持IDE扩展
- 代码生成:指令模型支持无IDE环境生成
- 代码对话:指令模型驱动对话接口
- 编程教育:交互式学习/语法纠正
已知限制
存在大语言模型共性局限(参见Gemma模型卡)。
伦理风险
开发过程已考虑多项伦理因素(同Gemma模型卡讨论)。
优势
当前版本在同类尺寸模型中展现出:
- 负责任AI设计
- 代码基准性能领先
- 开源模型高性能实现