Skip to main content
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 生成,并经人工编辑审核。