DeepCoder 用 DeepSeek-R1 模型构建顶级编码性能

4.13 这是一种新的编码模型,可提供令人印象深刻的性能,可与 OpenAI 的 o3-mini 等领先的专有模型相媲美。

DeepCoder00


Together AI 和 Agentica 的研究人员发布了 DeepCoder-14B,这是一种新的编码模型,可提供令人印象深刻的性能,可与 OpenAI 的 o3-mini 等领先的专有模型相媲美。


该模型基于 DeepSeek-R1 构建,具有更大的灵活性,可以将高性能代码生成和推理功能集成到实际应用中。重要的是,这些团队已经完全开源了模型、其训练数据、代码、日志和系统优化,这可以帮助研究人员改进他们的工作并加快进展。


研究团队的实验表明,DeepCoder-14B 在几个具有挑战性的编码基准测试中表现强劲,包括 LiveCodeBench (LCB)、Codeforces 和 HumanEval+。


“我们的模型在所有编码基准测试中都表现出了强大的性能......与 O3-Mini(低)和 O1 的性能相当,“研究人员在描述该模型的博客文章中写道。


有趣的是,尽管该模型主要针对编码任务进行训练,但该模型的数学推理能力有所提高,在 AIME 2024 基准测试中得分为 73.8%,比其基本模型 (DeepSeek-R1-Distill-Qwen-14B) 提高了 4.1%。这表明,通过代码 RL 开发的推理技能可以有效地推广到其他领域。


DeepCoder01
图片来源:Together AI

 

最引人注目的方面是仅用 140 亿个参数就实现了这种性能水平。这使得 DeepCoder 比许多 frontier 模型更小,并且运行效率可能更高。

 

推动 DeepCoder 性能的创新


在开发模型时,研究人员解决了使用强化学习 (RL) 训练编码模型的一些关键挑战。


第一个挑战是整理训练数据。强化学习需要可靠的奖励信号,表明模型的输出是正确的。正如研究人员指出的那样,“与数学不同,数学在互联网上很容易获得大量高质量、可验证的数据,而编码领域则相对缺乏此类数据。


为了解决这个问题,DeepCoder 团队实施了一个严格的管道,从不同的数据集中收集样本,并根据有效性、复杂性和重复性对其进行过滤。这个过程产生了 24,000 个高质量的问题,为有效的 RL 训练提供了坚实的基础。


该团队还设计了一个简单的奖励函数,仅当生成的代码在特定时间限制内通过问题的所有采样单元测试时,该函数才会提供正信号。结合高质量的训练示例,这种以结果为中心的奖励系统可以防止模型学习技巧,例如打印背诵的答案用于公开测试或针对简单的边缘情况进行优化,而无需解决核心问题。


该模型的核心训练算法基于组相对策略优化 (GRPO),这是一种强化学习算法,在 DeepSeek-R1 中被证明非常成功。但是,该团队对算法进行了一些修改,使其更加稳定,并允许模型随着训练时间的延长而继续改进。


DeepCoder02
GRPO+ 使 DeepCoder-14 能够在不崩溃的情况下持续更长的时间    图片来源:Together AI


最后,该团队迭代扩展了模型的上下文窗口,首先在较短的推理序列上对其进行训练,然后逐渐增加长度。他们还开发了一种过滤方法,以避免在求解硬提示时创建超出上下文限制的推理链时对模型进行惩罚。


DeepCoder03
DeepCoder 接受过 32K 上下文问题的训练,但也能够解决 64K 任务   图片来源:Together AI


研究人员解释了核心思想:“为了在实现高效训练的同时保留长上下文推理,我们引入了超长过滤......这种技术在训练过程中屏蔽了截断的序列,这样模型就不会因为生成超出当前上下文限制的深思熟虑但冗长的输出而受到惩罚。


训练逐渐从 16K 扩展到 32K 上下文窗口,生成的模型还可以解决需要多达 64K 令牌的问题。


使用 RL 训练大型模型,尤其是在需要长生成序列的任务(如编码或复杂推理)上,计算量很大且速度很慢。一个主要瓶颈是 “sampling” 步骤,在该步骤中,模型在批处理中的每个示例可能会生成数千个令牌。响应长度的变化意味着某些响应的完成时间比其他响应晚得多,从而使 GPU 处于空闲状态并减慢整个训练循环的速度。


为了加速这一发展,该团队开发了 verl-pipeline,这是开源 verl 库的优化扩展,用于从人类反馈 (RLHF) 进行强化学习。他们称之为“One-Off Pipelining”的关键创新重新安排响应采样和模型更新,以减少瓶颈和加速器空闲时间。


他们的实验表明,与基线实现相比,一次性流水线为编码 RL 任务提供了高达 2 倍的加速。这种优化对于在合理的时间范围内(32 个 H100 为 2.5 周)训练 DeepCoder 至关重要,现在作为 verl-pipeline 的一部分开源,供社区使用和构建。


企业影响


研究人员在 GitHub 和 Hugging Face 上提供了用于训练和运行 DeepCoder-14B 的所有工件,并获得了宽松的许可。


研究人员写道:“通过充分共享我们的数据集、代码和训练方法,我们使社区能够复制我们的工作,并使所有人都可以使用 RL 训练。


DeepCoder-14B 有力地说明了 AI 领域一个更广泛、更加速的趋势:功能强大、高效且可开放访问的模型的兴起。


对于企业界来说,这种转变意味着高级模型的更多选择和更高的可访问性。尖端性能不再是超大规模企业或愿意支付高额 API 费用的企业的专属领域。像 DeepCoder 这样的模型可以使各种规模的组织能够利用复杂的代码生成和推理,根据其特定需求定制解决方案,并在其环境中安全地部署它们。


这一趋势可以降低 AI 采用的准入门槛,并培养一个更具竞争力和创新性的生态系统,其中通过开源协作推动进步。