北京交通大学开源 o1-Coder 代码生成框架及强化微调计划
北京交通大学 ADaM 团队开源 o1-Coder 框架,旨在复现类 o1 的推理能力。该框架通过测试用例生成器(TCG)构建结果奖励,利用蒙特卡洛树搜索(MCTS)合成推理数据,并支持在无推理过程数据情况下进行强化微调(RFT)。文章详细阐述了六步框架流程、伪代码生成策略,并讨论了系统 2 对齐、世界模型构建等挑战与未来方向。

北京交通大学 ADaM 团队开源 o1-Coder 框架,旨在复现类 o1 的推理能力。该框架通过测试用例生成器(TCG)构建结果奖励,利用蒙特卡洛树搜索(MCTS)合成推理数据,并支持在无推理过程数据情况下进行强化微调(RFT)。文章详细阐述了六步框架流程、伪代码生成策略,并讨论了系统 2 对齐、世界模型构建等挑战与未来方向。

北京交通大学 ADaM 团队近期在 arXiv 上发布了类 o1 的代码生成框架 o1-Coder 的技术报告,并已在 GitHub 开源相关代码。该框架旨在探索不依赖标注推理过程数据的情况下,通过强化学习实现大模型的系统 2 推理能力。项目上线后迅速获得业界关注,Hugging Face 将其推荐为当日热门论文,并在 X 平台引发广泛讨论。
目前,实现大模型的系统 2 推理(System 2 Reasoning)主要包括三种技术路径:提示工程、监督学习和强化学习。o1-Coder 的报告从方法和任务两个维度总结了复现 o1 的主要工作。团队选择强化学习作为核心技术路线,目标是探索在不标注或蒸馏任何推理过程数据情况下的解决方案。
面向代码生成任务复现 o1 主要面临两个核心挑战:
结果奖励的评估:与围棋、数学等可以根据规则或标准答案直接评估不同,代码的正确性需要在测试环境下运行测试样例来检验。o1-Coder 提出训练一个测试用例生成器(Test Case Generator, TCG),基于问题自动生成测试样例,构建标准化的代码测试环境,为模型强化学习训练提供结果奖励。该 TCG 基于 DeepSeek-1.3B-Instruct 进行 SFT 和 DPO 优化,在 TACO 数据集上获得了较高的通过率,且支持推断阶段作为生成代码质量的验证器。
思考和搜索行为的定义:即过程奖励的对象和粒度设计。团队选择了'三思而后行'的策略,即先逐步思考形成完整的思维链,再输出最终答案。具体实现为:先生成伪代码,再基于伪代码生成可运行的最终代码。这种策略具有适配性强(同一伪代码可生成不同实现)和粒度可控(通过调整伪代码详细度控制思考深度)的优势。
初步实验表明,由伪代码生成最终代码的准确率显著高于直接生成最终代码,但当前 LLM 生成高质量伪代码的能力仍有不足,这正是需要通过推理过程数据和过程奖励来优化的方向。
o1-Coder 设计了一个包含六个步骤的闭环框架,实现了自我对弈(Self-Play)的持续改进机制。
第一步是训练测试用例生成器(TCG)。该模块根据给定的编程问题自动生成对应的测试用例,无需人工编写。这解决了代码评估自动化难题,为后续强化学习提供了可靠的结果反馈信号。
第二步在原始代码数据集上运行蒙特卡洛树搜索(MCTS)。通过 MCTS 生成包含推理过程的代码数据集,同时标记每个推理步骤的有效性(正确或错误)。这一步骤模拟了人类解题时的试错过程,为模型提供了丰富的训练样本。
基于生成的初始包含推理过程的数据,可以对标准的 LLM 或代码模型进行微调,初始化策略模型具备'先思考再行动'的行为方式。这使得模型在强化学习开始前就具备了基本的推理结构。
初始的推理过程数据同时用来初始化过程奖励模型(Process Reward Model, PRM)。PRM 在 RL 训练过程中用于评估推理步骤的质量,而不仅仅是最终结果。这与字节提出的 ReFT 不同,后者需要 CoT 数据进行监督微调预热,且在强化阶段未充分利用过程奖励。o1-Coder 支持在没有推理过程数据的情况下启动训练,更具灵活性。
有了提供过程奖励的 PRM 和提供结果奖励的 TCG,策略模型通过强化学习进行更新。这一过程利用多目标奖励函数,平衡代码正确性与推理逻辑的合理性。
最后,基于更新后的策略模型,可以生成新的推理过程数据。这些新数据反过来用来再次微调 PRM。步骤 4、5 和 6 形成了一个迭代循环,通过 Self-Play 不断推动模型的改进,类似于 AlphaGo Zero 的训练范式。
o1-Coder 定义了生成伪代码的三种核心推理过程行为,这些行为在具体的推理链中会根据上下文动态实例化:
这种分层生成策略有效降低了单次生成的复杂度,提高了最终代码的可读性和正确率。
报告引用了 o1 研究员 Hyung Won Chung 总结的 AI 发展线索:如何高效地将日益增长的算力转化为模型智能水平的提升。早期聚焦于模型架构设计(如 Transformer),最近则转向数据利用。后训练阶段分为 SFT(利用高质量任务相关数据)、RLHF(基于偏好数据获取无限反馈)以及 o1 所延续的从探索的推理过程中得到的过程奖励信号。o1-Coder 正是利用了合成数据来突破人类标注数据的限制。
LLM 长期受限于只能依赖人类记录下来的数据进行学习。o1 的成功展示了通过 RL 探索数据背后思维过程的可能,意味着模型从模仿人类语言逐步发展为自主认知。值得注意的是,思维过程不一定局限于自然语言。有研究指出语言是交流工具而非思维本质,o1 的思维链中甚至包含无意义文本,这可能暗示模型正在发展更高效的内在表征。如果模型能突破人类语言数据的局限性,将大幅提升问题解决效率。
Self-Play RL 为探索潜在的过程数据提供了可行方案,使得许多传统依赖系统 1(直觉/快速反应)能力的任务可以借助系统 2 推理方法来增强。例如奖励建模、机器翻译、RAG 和多模态问答等。ADaM 团队沿此思路提出了'System-2 Alignment'概念,在安全对齐方面进行了探索。实验表明,虽然 o1 模型在安全性上有所改进,但仍存在漏洞,特别是针对利用数学编码的攻击。未来计划将 o1-Coder 中的 Self-Play RL 框架应用于系统 2 对齐,以实现更深层次的安全控制。
OpenAI 在 o1 正式版中加入了多模态能力和函数调用功能。o1-Coder 报告中讨论了另一个待改进的方向是推理时间优化,包括提升单位时间内的性能增益,以及根据任务复杂度自适应调整推理时间。此外,规划过程中的环境状态更新也是一个主要挑战。像围棋、编程、数学这类任务的世界模型可以通过规则表达或内置于 LLM 中,但在 Device Use、具身智能等场景中,世界模型是不确定的,获取状态更新通常需要与外部环境交互。
构建世界模型来进行状态转移预测是一个潜在的解决方案,使得智能体不必直接与真实环境交互。Genie-2 等工作的发展为更准确的环境建模提供了前景。报告最后从 AlphaGo 预测 o1 类模型的发展:AlphaGo 通过模仿学习初始化策略网络,使用强化学习微调策略并学习价值网络,再通过 MCTS 作为在线搜索策略,这与 LLM 的预训练、后训练和推理过程非常相似。MuZero 的做法是同时更新世界模型和奖励模型,在潜在空间中实现基于模型的规划。选择紧凑的状态表示并构建有效的世界模型,将是 o1 类模型应用于实际场景,特别是解决长程推理任务的关键。
随着具身智能领域的发展,结合世界模型的 o1 类推理模型将在机器人控制、复杂任务规划等方面展现出巨大的想象空间。北京交通大学团队的开源工作为社区提供了一个重要的参考基线,推动了推理大模型在代码生成领域的落地实践。
o1-Coder 的开源标志着高校团队在复现前沿推理模型方面的努力取得了实质性进展。通过强化学习与合成数据的结合,该框架为解决代码生成中的评估难、推理弱等问题提供了新思路。未来,随着过程奖励模型的完善和世界模型的引入,此类框架有望在更多垂直领域实现通用推理能力的突破。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online