OpenCodeReasoning: Advancing Data Distillation for Competitive Coding
作者: Wasi Uddin Ahmad, Sean Narenthiran, Somshubra Majumdar, Aleksander Ficek, Siddhartha Jain, Jocelyn Huang, Vahid Noroozi, Boris Ginsburg
分类: cs.CL
发布日期: 2025-04-02 (更新: 2025-08-07)
备注: Published at COLM 2025
💡 一句话要点
OpenCodeReasoning:通过数据蒸馏提升竞争性编程能力
🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码推理 数据蒸馏 监督微调 竞争性编程 大型语言模型
📋 核心要点
- 现有代码推理模型蒸馏方法依赖于私有数据集或缺乏数据处理细节,限制了研究的透明性和可复现性。
- 论文提出一种基于监督微调(SFT)的数据蒸馏方法,构建高质量的OpenCodeReasoning数据集,提升模型在编程任务中的推理能力。
- 实验表明,仅使用SFT训练的蒸馏模型在LiveCodeBench和CodeContests上超越了使用强化学习训练的模型,验证了方法的有效性。
📝 摘要(中文)
随着基于推理的大型语言模型的出现,许多研究者发现将推理能力蒸馏到学生模型中能取得显著成功。这种技术显著缩小了编码任务中推理模型和标准LLM之间的差距。然而,关于推理模型蒸馏的大部分进展仍然被专有数据集所限制,或者缺乏关于数据管理、过滤和后续训练的细节。为了解决这个问题,我们构建了一个卓越的监督微调(SFT)数据集,并使用它在各种规模的模型中实现了最先进的编码能力结果。我们的蒸馏模型仅使用SFT就在LiveCodeBench上达到了61.8%,在CodeContests上达到了24.6%,超过了使用强化学习训练的替代方案。然后,我们分析了用于构建数据集的数据源、代码执行过滤的影响以及指令/解决方案多样性的重要性。我们观察到执行过滤对基准测试精度产生了负面影响,这促使我们优先考虑指令多样性而不是解决方案的正确性。最后,我们还分析了这些模型的token效率和推理模式。我们将向社区开源这些数据集和蒸馏模型。
🔬 方法详解
问题定义:论文旨在解决代码推理能力蒸馏过程中数据集质量不高和缺乏透明度的问题。现有方法要么依赖于私有数据集,要么缺乏关于数据清洗、过滤和训练的详细信息,导致研究结果难以复现和推广。此外,如何平衡解决方案的正确性和指令的多样性也是一个挑战。
核心思路:论文的核心思路是通过构建一个高质量、公开可用的监督微调(SFT)数据集,并采用数据蒸馏技术,将大型语言模型的推理能力迁移到较小的模型中。通过精心设计的数据集和训练策略,提高模型在竞争性编程任务中的性能。
技术框架:整体框架包括数据收集、数据清洗与过滤、模型训练和评估四个主要阶段。数据收集阶段从多个来源收集代码和问题描述。数据清洗与过滤阶段对数据进行去重、格式化和过滤,去除低质量数据。模型训练阶段使用SFT方法在构建的数据集上训练模型。评估阶段在LiveCodeBench和CodeContests等基准测试上评估模型的性能。
关键创新:论文的关键创新在于构建了一个高质量、公开可用的OpenCodeReasoning数据集,并发现指令多样性比解决方案的绝对正确性更重要。此外,论文还分析了代码执行过滤对模型性能的影响,并提出了相应的优化策略。
关键设计:论文的关键设计包括:1) 数据集的构建策略,包括数据来源的选择、数据清洗和过滤规则的设计;2) 训练策略,包括学习率、batch size等超参数的设置;3) 评估指标的选择,包括LiveCodeBench和CodeContests等基准测试的性能指标;4) 对比实验的设计,包括与使用强化学习训练的模型的比较。
🖼️ 关键图片
📊 实验亮点
实验结果表明,仅使用SFT训练的蒸馏模型在LiveCodeBench上达到了61.8%,在CodeContests上达到了24.6%,超过了使用强化学习训练的替代方案。这表明,通过精心构建的SFT数据集和数据蒸馏技术,可以有效地提升模型在竞争性编程任务中的性能。
🎯 应用场景
该研究成果可应用于自动代码生成、代码补全、程序调试等领域。高质量的代码推理数据集和蒸馏模型能够帮助开发者更高效地编写代码,提高软件开发的效率和质量。此外,该研究还可以促进代码推理领域的研究进展,推动相关技术的创新和发展。
📄 摘要(原文)
Since the advent of reasoning-based large language models, many have found great success from distilling reasoning capabilities into student models. Such techniques have significantly bridged the gap between reasoning and standard LLMs on coding tasks. Despite this, much of the progress on distilling reasoning models remains locked behind proprietary datasets or lacks details on data curation, filtering and subsequent training. To address this, we construct a superior supervised fine-tuning (SFT) dataset that we use to achieve state-of-the-art coding capability results in models of various sizes. Our distilled models use only SFT to achieve 61.8% on LiveCodeBench and 24.6% on CodeContests, surpassing alternatives trained with reinforcement learning. We then perform analysis on the data sources used to construct our dataset, the impact of code execution filtering, and the importance of instruction/solution diversity. We observe that execution filtering negatively affected benchmark accuracy, leading us to prioritize instruction diversity over solution correctness. Finally, we also analyze the token efficiency and reasoning patterns utilized by these models. We will open-source these datasets and distilled models to the community.