QUICK REVIEW
[论文解读] CodeGemma: Open Code Models Based on Gemma
CodeGemma Team, Zhao, Heri|arXiv (Cornell University)|Jun 17, 2024
Model-Driven Software Engineering Techniques被引用 18
一句话总结
CodeGemma 基于 Gemma 构建的开源代码模型,提供一个快速的 2B infilling 模型以及具备强大编码与推理能力的 7B 预训练/指令微调变体。
ABSTRACT
This paper introduces CodeGemma, a collection of specialized open code models built on top of Gemma, capable of a variety of code and natural language generation tasks. We release three model variants. CodeGemma 7B pretrained (PT) and instruction-tuned (IT) variants have remarkably resilient natural language understanding, excel in mathematical reasoning, and match code capabilities of other open models. CodeGemma 2B is a state-of-the-art code completion model designed for fast code infilling and open-ended generation in latency-sensitive settings.
研究动机与目标
- 在 Google DeepMind 的 Gemma 模型基础上推进开源代码建模。
- 在以代码为中心的大型语料库上进行训练,配合有针对性的预处理和数据整理。
- 在各类任务中评估 infilling、代码生成和自然语言理解。
- 为延迟敏感和托管环境提供实际部署指导。
提出的方法
- 在 Gemma 预训练模型的基础上,扩展一个包含 code、英文文本和数学内容的 500–1000B 令牌语料库。
- 使用 fill-in-the-middle (FIM) 目标进行预训练,大多数模型的 FIM 比率为 80%(2B v1.1 为 90%)。
- 支持 PSM (Prefix-Suffix-Middle) 和 SPM (Suffix-Prefix-Middle) 模式,配有专用的格式化标记。
- 利用合成代码数据与数学数据集进行指令微调,以提升推理和编码性能。
- 通过依赖图和单元测试打包实现多文件仓库上下文,以更好地反映真实场景中的编码任务。
- 提供针对代码完成任务的推理建议和提示。
实验结果
研究问题
- RQ1在代码完成和生成任务中,CodeGemma 模型相对基于 Gemma 构建的开源模型以及其他 Code LLMs 的表现如何?
- RQ2FIM 训练和多文件仓库上下文对代码理解与生成质量有何影响?
- RQ3在不同语言的编码与数学推理任务中,2B 和 7B 变体在延迟和准确性方面的比较如何?
主要发现
- CodeGemma 2B 提供快速的代码填充,性能强劲,适用于诸如 IDEs 等对延迟敏感的环境。
- CodeGemma 7B 预训练和 7B 指令微调变体显示出强大的代码生成和自然语言理解能力,且具备显著的数学推理能力。
- 在 Python 编码基准测试中,CodeGemma 变体优于基础 Gemma 模型,在 GSM8K 和 MATH 推理数据集上有显著提升。
- BabelCode 多语言基准测试显示 CodeGemma 在多种语言中取得有竞争力或优越的结果。
- 2B 模型的推理速度提升在 infilling 任务中未带来显著的质量损失,使其在受限环境下部署更具吸引力。
- 这些模型在具备强大代码能力的同时,也维持了自然语言处理能力,便于更广泛的实际应用。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。