库名称:transformers
许可证:gemma
许可证链接:https://ai.google.dev/gemma/terms
任务标签:文本生成
额外授权标题:在Hugging Face上访问CodeGemma
额外授权提示:要访问Hugging Face上的CodeGemma,您需要审阅并同意谷歌的使用许可。为此,请确保您已登录Hugging Face并点击下方按钮。请求将立即处理。
额外授权按钮内容:确认许可
示例输入:
- 文本:'<start_of_turn>用户 编写一个计算第n个斐波那契数的Python函数。<end_of_turn> <start_of_turn>模型'
推理参数:
最大新令牌数:200
CodeGemma
模型页面
: CodeGemma
资源与技术文档
: 技术报告
: 负责任生成式AI工具包
使用条款
: 条款
作者
: 谷歌
模型信息
输入输出的简要说明与定义。
描述
CodeGemma是基于Gemma构建的轻量级开源代码模型系列。CodeGemma模型包含文本到文本和文本到代码的解码器模型,提供以下版本:
- 70亿参数预训练版:专精代码补全与生成任务
- 70亿参数指令调优版:用于代码对话与指令跟随
- 20亿参数预训练版:快速代码补全
使用示例
本模型适用于解答代码片段问题、根据自然语言生成代码或讨论编程技术问题。若需代码补全功能(如集成至IDE),建议使用预训练模型:CodeGemma 7B或CodeGemma 2B。
代码生成
from transformers import GemmaTokenizer, AutoModelForCausalLM
tokenizer = GemmaTokenizer.from_pretrained("google/codegemma-1.1-7b-it")
model = AutoModelForCausalLM.from_pretrained("google/codegemma-1.1-7b-it")
input_text = "编写计算第n个斐波那契数的Python函数。"
input_ids = tokenizer(input_text, return_tensors="pt")
outputs = model.generate(**input_ids)
print(tokenizer.decode(outputs[0]))
对话模板
指令调优模型需遵循特定对话模板,建议使用分词器内置模板:
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "google/codegemma-1.1-7b-it"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.bfloat16)
chat = [{"role": "user", "content": "编写Hello World程序"}]
prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
生成提示格式:
<bos><start_of_turn>用户
编写Hello World程序<end_of_turn>
<start_of_turn>模型
输入输出
输入
- 预训练模型:代码前缀/后缀(用于补全生成)或自然语言提示
- 指令调优模型:自然语言文本或提示
输出
- 预训练模型:中间填充代码补全、代码及自然语言
- 指令调优模型:代码及自然语言
模型数据
训练数据来源及处理方法。
训练数据集
基于Gemma模型,CodeGemma 2B/7B预训练版本额外训练了5000-10000亿令牌,数据来源包括:
数据处理技术
应用以下预处理技术:
- 中间填充(FIM):支持PSM与SPM模式,FIM率80%-90%,PSM/SPM各50%
- 依赖图打包:按项目级别组织训练样本,关联相关源文件
- 语法感知分割:改进文档分割策略使后缀起始更符合语法
- 安全过滤:过滤个人数据/CSAM内容,遵循谷歌AI原则
实现信息
训练硬件与软件配置。
硬件
使用最新一代TPUv5e芯片训练。
软件
训练框架:JAX与ML Pathways。
评估信息
模型评估指标与结果。
评估方法
在多领域学术基准测试:
- 代码补全:HumanEval单行/多行填充
- 代码生成:HumanEval、MBPP、BabelCode(支持8种语言)
- Q&A:BoolQ、PIQA等
- 自然语言:ARC-Challenge、MMLU等
- 数学推理:GSM8K、MATH
评估结果
代码基准
(详细分数表格见原文)
自然语言基准

伦理与安全
伦理安全评估方法与结果。
评估方法
- 结构化评估与内部红队测试
- 重点测试网络安全攻击能力限制
- 评估类别包括:内容安全、表征危害等(详见Gemma模型卡)
评估结果
符合谷歌内部政策阈值要求(儿童安全/内容安全等)。
使用与限制
适用场景
- 代码补全:预训练模型支持IDE扩展
- 代码生成:指令调优模型支持自然语言生成代码
- 代码对话:指令调优模型支持技术讨论
- 编程教育:交互式学习/语法纠正
已知限制
大语言模型存在训练数据与技术固有局限(参见Gemma模型卡)。
伦理风险
开发过程已考虑多项伦理因素(详见Gemma模型卡相同讨论)。
优势
当前版本在同类开源模型中表现出色:
- 专为负责任AI开发设计
- 代码基准测试性能优于同类替代方案