大型语言模型的快速发展已彻底革新了软件开发中的代码智能。然而,主要依赖闭源模型限制了广泛的研究与开发。为解决这一问题,我们推出了DeepSeek-Coder系列开源代码模型,其规模从13亿到330亿不等,并从2万亿个标记中从头开始训练。这些模型预先在高质量的项目级代码语料库上进行训练,并采用16K窗口的填空任务来增强代码生成和填补。我们的广泛评估表明,DeepSeek-Coder不仅在多个基准测试中实现了开源代码模型的最佳性能,还超越了现有的闭源模型如Codex和GPT-3.5。此外,DeepSeek-Coder模型处于宽松的许可之下,允许同时进行研究和无限制的商业使用。 1.Introduction 软件开发领域因大型语言模型的迅速进步(OpenAI,2023;Touvron et al.,2023)而得到了显著转型,这些模型带来了代码智能的新时代。这些模型有可能自动化和简化许多编码方面的工作,从错误检测到代码生成,从而提高生产力并减少人为错误的可能性。然而,该领域的重大挑战之一是在开源模型(Lietal.,2023;Nijkamp et al.,2022;Rozieretal.,2023;Wangetal.,2021)与闭源模型(Gemini Team,2023;OpenAI,2023)之间的性能差距。尽管巨型闭源模型非常强大,但由于其专有性质,许多研究人员和开发者仍然难以访问这些模型。 为了应对这一挑战,我们推出了DeepSeek-Coder系列。该系列包括一系列开源代码模型,规模从13亿到33亿不等,涵盖每个规模的基版本和指令版本。每个系列中的模型均从87种编程语言中提取的2万亿个标记重新训练,确保对编程语言和语法有全面的理解。此外,我们尝试在仓库级别组织预训练数据,以增强模型在仓库内部跨文件上下文中的理解能力。除了在预训练过程中使用下一个标记预测损失外,我们还引入了Fill-In-Middle(FIM)方法(Bavarianetal.,2022;Lietal.,2023)。这种方法旨在进一步提升模型的代码完成能力。为满足处理更长代码输入的要求,我们将上下文长度扩展到16K。这一调整使我们的模型能够处理更加复杂和广泛的编码任务,从而增强了其在各种编码场景中的适用性和灵活性。