OpenCodeReasoning-II: A Simple Test Time Scaling Approach via Self-Critique
作者: Wasi Uddin Ahmad, Somshubra Majumdar, Aleksander Ficek, Sean Narenthiran, Mehrzad Samadi, Jocelyn Huang, Siddhartha Jain, Vahid Noroozi, Boris Ginsburg
分类: cs.CL
发布日期: 2025-07-11
备注: work in progress
💡 一句话要点
OpenCodeReasoning-II:通过自批判的简单测试时缩放方法提升代码生成
🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码生成 大型语言模型 数据集 微调 自批判 代码评价 Qwen2.5 LiveCodeBench
📋 核心要点
- 大型语言模型在代码生成和评价方面的潜力依赖于大规模高质量数据集,而现有数据集规模和质量存在瓶颈。
- 论文提出OpenCodeReasoning-II数据集,并采用两阶段微调策略,首先进行代码生成微调,然后联合训练代码生成和评价模型。
- 实验结果表明,微调后的Qwen2.5-Instruct模型在代码生成方面超越了之前的开源模型,并且集成了代码评价模型后,在竞争性编码中表现显著提升。
📝 摘要(中文)
本文介绍了OpenCodeReasoning-II,一个包含250万个问题-解答-评价三元组的大规模代码推理数据集(约3.5万个独特的编程问题),其规模几乎是之前最大的公开代码推理数据集的两倍。研究采用了一种两阶段监督微调策略。第一阶段侧重于代码生成的微调,第二阶段涉及代码生成和评价模型的联合训练。由此产生的微调Qwen2.5-Instruct模型在代码生成方面的性能超过或等于之前最好的开源权重蒸馏模型。值得注意的是,代码生成和评价模型的集成显著提高了竞争性编码性能。此外,本文还扩展了LiveCodeBench基准,以专门支持C++编程语言,从而可以使用该基准进行更全面的LLM评估。
🔬 方法详解
问题定义:论文旨在提升大型语言模型在代码生成和推理方面的能力。现有方法依赖于大规模数据集,但公开可用的数据集规模和质量仍有提升空间。此外,如何有效利用代码评价信息来指导代码生成也是一个挑战。
核心思路:论文的核心思路是构建一个更大规模、更高质量的代码推理数据集OpenCodeReasoning-II,并利用两阶段微调策略,首先训练代码生成能力,然后联合训练代码生成和评价能力,从而提升模型的整体性能。通过自批判的方式,让模型学习如何评价和改进自身生成的代码。
技术框架:整体框架包含两个主要阶段:1) 数据集构建:构建包含问题、解答和评价三元组的OpenCodeReasoning-II数据集。2) 模型训练:采用两阶段微调策略。第一阶段,使用OpenCodeReasoning-II数据集对Qwen2.5-Instruct模型进行代码生成微调。第二阶段,联合训练代码生成和评价模型,使模型能够同时生成代码并对其进行评价。
关键创新:论文的关键创新在于构建了更大规模的代码推理数据集OpenCodeReasoning-II,并提出了两阶段微调策略,将代码生成和评价任务结合起来,通过自批判的方式提升模型性能。扩展了LiveCodeBench基准,增加了对C++编程语言的支持。
关键设计:两阶段微调策略是关键设计之一。第一阶段使用标准的代码生成损失函数进行微调。第二阶段,联合训练代码生成和评价模型,可能使用了多任务学习的方法,具体损失函数细节未知。Qwen2.5-Instruct模型的选择也是一个关键设计,因为它是一个强大的开源语言模型,具有良好的代码生成能力。数据集的构建过程也需要仔细设计,以保证数据的质量和多样性。
🖼️ 关键图片
📊 实验亮点
实验结果表明,使用OpenCodeReasoning-II数据集微调后的Qwen2.5-Instruct模型在代码生成方面取得了显著的性能提升,超过或等于之前最好的开源权重蒸馏模型。集成代码生成和评价模型后,在竞争性编码任务中表现出显著的改进,具体提升幅度未知。扩展后的LiveCodeBench基准为C++编程语言的LLM评估提供了更全面的支持。
🎯 应用场景
该研究成果可应用于自动化代码生成、代码辅助工具、智能编程教育等领域。通过提升代码生成模型的性能,可以提高软件开发的效率和质量,降低开发成本。未来,该研究可以进一步扩展到其他编程语言和领域,例如移动应用开发、Web开发等。
📄 摘要(原文)
Recent advancements in reasoning-based Large Language Models (LLMs), particularly their potential through test-time scaling, have created significant opportunities for distillation in code generation and critique. However, progress in both areas fundamentally depends on large-scale, high-quality datasets. In this work, we introduce OpenCodeReasoning-II, a dataset consists of 2.5M question-solution-critique triples (approx. 35K unique programming questions), making it nearly twice the size of the previous largest publicly available code reasoning dataset. In this work, we employ a two-stage supervised fine-tuning strategy. The first stage focuses on fine-tuning for code generation, while the second stage involves the joint training of models for both code generation and critique. Our resulting finetuned Qwen2.5-Instruct models achieve performance in code generation that either exceeds or equals the best prior open-weight distilled models. Notably, the integration of our code generation and critique models leads to significant improvements in competitive coding performance. Furthermore, we present an extension of the LiveCodeBench benchmark to specifically support the C++ programming language, thereby facilitating more comprehensive LLM evaluation using this benchmark.