微信扫码
添加专属顾问
我要投稿
CodeGemma模型是在Gemma预训练模型的基础上进一步训练的,主要使用了超过5000亿个代码token,采用了与Gemma模型系列相同的架构。因此,CodeGemma模型在完成和生成任务中取得了SOTA的代码性能,同时在大规模上保持了强大的理解和推理能力。发布了一个7B的代码预训练模型和一个7B的指令调整的代码模型。此外,还发布了一个专门为代码填充和开放式生成而训练的2B模型。这些模型的血统如图1所示。
image-20240409224946241
为了构建依赖图,首先按存储库对文件进行分组。对于每个源文件,从前N行中提取导入项,并执行后缀匹配以确定存储库结构内的最长匹配路径。确定文件之间的边的重要性(一种启发式测量),并删除不重要的边以打破循环依赖关系(在Python中常见)。然后,在图中计算所有对之间的最短路径,其中较短的距离表示较强的文件关系。最后,使用拓扑排序将文件的图线性化,选择下一个未有父节点的节点,基于到排序节点的最小距离,并使用词典顺序来打破关系。
未被此依赖图方法覆盖的文件在其存储库内按字母顺序排序,单元测试与其实现一起打包(例如,TestFoo.java 与 Foo.java 并排)。
MATH数据集:这是一套来自竞赛的12500道具有挑战性的数学问题的集合,为训练模型提供了逐步解决方案,用于答案推导和解释生成(Hendrycks等人,2021年)。
GSM8k 数据集:这是一个包含8500个小学数学问题的数据集。该数据集测试模型的多步推理能力,突显了问题的简单性,但同时也显示出模型的局限性(Cobbe等人,2021a年)。
MathQA 数据集:这是一个大规模的数学文字问题数据集(Amini等人,2019年),其注释是在AQuA数据集(Ling等人,2017年)的基础上构建的。
合成数学数据:这是一个通过编程生成的代数问题数据集,用于提高解决长代数问题的能力。
通过利用这些多样化的数据集,我们让模型接触到广泛的数学问题,增强了它们执行复杂数学推理的能力。我们的训练实验表明,这些数据集显著提升了代码生成的性能。
示例生成:遵循《OSS-Instruct》论文(Wei等人,2023年)中概述的方法,我们生成了一组自包含的问题-答案对。
后过滤:我们使用一个语言模型来评估生成的问题-答案对的帮助程度和正确性,对问题-答案对进行过滤。
观察到,我2B预训练模型在代码补全用例中表现出色,低延迟是一个关键因素。它的性能与其他模型相当,而在推理过程中,在许多情况下,速度几乎是其他模型的两倍。将这种加速归因于基础Gemma架构的决策。
除了进行离线评估之外,该模型还在实时编码环境中进行了测试,以评估其性能并将其与当前的谷歌完成模型进行基准测试。
与基础的Gemma模型相比,CodeGemma模型在编码领域的任务中表现显著更好。
多语言基准
CodeGemma保留了基础Gemma模型中所见到的大部分自然语言能力。CodeGemma的PT和IT模型在性能上均优于Mistral 7B7.2%和Llama2 13B模型19.1%。此外,在表5中比较了几个7B大小类别的代码模型的GSM8K和MATH分数,结果表明与类似大小的模型相比,CodeGemma在数学推理方面表现出色。
7B模型以其强大的性能而闻名,是通用的编码模型,在编码任务方面超过了基线的Gemma模型,同时保持了高水平的自然语言理解能力。在推理期间需要更大的内存要求,使得这些模型特别适合部署在托管环境和对模型质量至关重要的应用程序中。
同样的格式化方式,使用
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-02-01
2025-01-01
2024-08-13
2025-02-04
2024-07-25
2024-04-25
2024-06-13
2024-09-23
2024-04-26
2024-08-21
2025-03-16
2025-03-16
2025-03-16
2025-03-15
2025-03-15
2025-03-15
2025-03-15
2025-03-13