本翻译来自大模型翻译,如有不对的地方,敬请谅解
引言
开源社区通过开发诸如StarCoder(Li等人,2023b;Lozhkov等人,2024)、CodeLlama(Roziere等人,2023)、DeepSeek-Coder(Guo等人,2024)和Codestral(MistralAI,2024)等开源代码模型,在推进代码智能方面取得了显著进展。这些模型的性能已稳步接近闭源同类产品,为代码智能的进步做出了贡献。然而,当与像GPT4-Turbo(OpenAI,2023)、Claude 3 Opus(Anthropic,2024)和Gemini 1.5 Pro(Reid等人,2024)这样的最先进闭源模型相比时,仍然存在明显的差距。为了弥补这一差距并进一步推动开源代码模型的发展,我们引入了DeepSeek-Coder-V2系列。这些模型基于DeepSeek-V2(DeepSeek-AI,2024)的基础构建,并使用额外的6万亿个token的语料库进行了进一步预训练。
在预训练阶段,DeepSeek-Coder-V2的数据集由60%的源代码、10%的数学语料库和30%的自然语言语料库组成。源代码包括来自GitHub和CommonCrawl的1,170亿个与代码相关的token,使用的是与DeepSeekMath(Shao等人,2024)相同的流程。这个语料库与用于训练DeepSeek-Coder的代码语料库相比,从86种编程语言扩展到了338种。为了展示新代码语料库的有效性,我们使用1亿参数模型进行了消融研究,并观察到在HumanEval(从30.5%提高到37.2%)和MBPP(从44.6%提高到54.0%)基准测试中的准确率分别提高了6.7%和9.4%(Austin等人,2021a;Chen等人,2021)。对于数学语料库,我们使用相同的流程从CommonCrawl收集了2210亿个与数学相关的token,这大约是120亿DeepSeekMath语料库(Shao等人,2024)的两倍大小,而对于自然语言语料库,我们直接从DeepSeek-V2的训练语料库中进行采样。总的来说,DeepSeek-Coder-V2在10.2万亿个训练token中得到了曝光,其中4.2万亿个token来自DeepSeek V2数据集,其余6万亿个token来自DeepSeek-Coder-V2数据集。
为了适应更长的代码输入,并增强在各种编程场景中的适用性,我们把上下文长度从16K扩展到了128K个token,使我们的模型能够处理更复杂和广泛的编码任务。在对DeepSeekV2进行持续预训练后,我们发现DeepSeek-Coder-V2在编码和数学推理方面显著增强了模型的能力,同时保持了与DeepSeek-V2相当的一般语言性能。
在对齐阶段,我们首先构建了一个指令训练数据集,其中包含来自DeepSeek-Coder(Guo等人,2024)和DeepSeek-Math(Shao等人,2024)的代码和数学数据,以及来自DeepSeek-V2(DeepSeek-AI,2024)的一般指令数据。该数据集用于微调基础模型。然后,在强化学习阶段,我们采用群体相对策略优化(GRPO)算法使其行为与人类偏好对齐。偏好数据是通过编译器反馈和测试用例在编码领域收集的,并开发了一个奖励模型来指导策略模型的训练。这种方法确保了模型的响应针对编码任务的正确性和人类偏好进行了优化。为了使模型在对齐后能够支持代码补全,我们还在使用16B参数的基于模型的微调期间采用了Fill-In-Middle方法(Guo等人,2024)。
1.1. 贡献
总结来说,我们的主要贡献包括:
- 我们引入了基于DeepSeek MoE框架的DeepSeek-Coder-V2,具有16B和236B参数,其激活参数分别仅为2.4B和21B,有效支持多样化的计算和应用需求。此外,DeepSeek-Coder-V2支持338种编程语言和最大128K个token的上下文长度。
- 我们首次尝试开发一个开源的千亿参数代码模型,以推进代码智能领域。实验结果表明,DeepSeek-Coder-V2 236B在编码和数学任务中的性能超越了GPT4-Turbo、Claude 3 Opus和Gemini 1.5 Pro等最先进的闭源模型。
- DeepSeek-Coder-V2模型在宽松的许可证下公开发布,允许进行研究和不受限制的商业使用。
1.2. 评估和指标摘要
-
代码:在代码生成基准评估方面,DeepSeek-Coder-V2在所有开源模型中展现出显著的优越性,并与GPT4-Turbo、Claude 3 Opus和Gemini 1.5 Pro等领先的闭源模型表现相当。值得注意的是,我们在HumanEval上取得了90.2%的分数,在MBPP上取得了76.2%的分数(使用EvalPlus评估流程建立了新的最先进结果),并在LiveCodeBench上取得了43.4%的分数(问题来自2023年12月至2024年6月)。此外,DeepSeek-Coder-V2是首个在SWEBench上得分超过10%的开源模型。
-
数学:DeepSeek-Coder-V2展现出强大的数学推理能力,在GSM8K等基础基准和包括MATH、AIME 2024和Math Odyssey在内的高级竞赛级基准上,与GPT-4o、Gemini 1.5 Pro和Claude 3 Opus等顶级闭源模型相媲美。值得注意的是,DeepSeek-Coder-V2在MATH基准上达到了75.7%的准确率,几乎与GPT-4o实现的最先进准确率76.6%相匹配。此外,它在2024年的AIME竞赛中的性能超越了这些闭源模型。
-
自然语言:DeepSeek-Coder-V2保持了与DeepSeek-V2相当的一般语言性能。例如,在MMLU上,DeepSeek-Coder-V2使用OpenAI simple-eval流程达到了79.2%的准确率。在以GPT-4为评判的主观评估中,DeepSeek-Coder-V2在arena-hard上达到了65.0分,在MT-bench上达到了8.77分,在alignbench上达到了7.84分。这些分数明显优于其他特定于代码的模型,甚至与一般开源模型相当。
基准 (指标) | DeepSeek-V2-Lite | DeepSeek-Coder-V2-Lite | DeepSeek-V2 | DeepSeek-Coder-V2 |
---|---|---|---|---|
# 激活参数 | 2.4B | 2.4B | 21B | 21B |
# 总参数 | 16B | 16B | 236B | 236B |
# 训练tok |