今天小编分享的科学经验:o3拿下IOI 2024金牌!新论文公布RL秘诀:AI自己设计测试时推理策略,无需人类干预,欢迎阅读。
IOI 2024 金牌,OpenAI o3 轻松高分拿下!
刚刚,OpenAI 发布了关于推理模型在竞技编程中应用的研究论文报告,论文中放出了 OpenAI 家推理模型三兄弟在 IOI 和 CodeForce 上的具体成绩。
三兄弟分别是 OpenAI o1、o1-ioi(以 o1 为基础微调等改进而来)、o3,三者成绩如下。
IOI 2024,国际信息学奥林匹克竞赛:
o1-ioi在严格规则下拿到 213 分(49th percentile),放宽提交限制后飙升至 362.14 分;
o3在严格规则下就拿到了 395.64 分,达成金牌成就。
CodeForeces,模拟真实竞赛环境评估模型。
其中,o1-ioi 和 o3 的评分显著高于 o1,尤其是 o3,已经接近顶级人类选手:
o1:1673(89th percentile)
o1-ioi:2214(98th percentile)
o3:2724(99.8th percentile)
论文迅速在全网扩散开来,网友竞相传阅并激烈讨论。
有网友注意到,o1-ioi 在 IOI 2024 上表现出色,是因为它为每个问题生成了 10000 个候选解决方案,还用上了复杂的 test-time 策略;而 o3 在严格限制下达到顶级选手水平,仅用了 50 次提交,且无人工策略干预。
这就引出了 OpenAI 在论文中的一个高亮结论——
o3 的表现,证明了通过大规模端到端 RL(强化学习),无需依赖人工设计的测试时推理策略,就能自己学会先写暴力求解代码提高效率,再用其他方法交叉验证的策略。
网友满嘴喊着 "impressive":
下一个里程碑,是出现「单次提交就能搞定每个问题」的模型。
或许 OpenAI o4 会带来这个时刻。
目前,这篇名为《Competitive Programming with Large Reasoning Models》的报告论文已经挂在了 arXiv 上,文末可见直通车。
o 系三兄弟,竞赛编程各显神通
竞技编程,是评估大模型推理和编码能力的理想测试场景。
OpenAI 表示,这篇论文的研究目的,是探究在复杂编码和推理任务中,RL 对大模型所起到的作用。
研究过程还对比了通用推理模型与领網域特定系统的性能,探索提升 AI 推理能力的有效路径。
参与研究的推理模型共 3 个,均出自 OpenAI 自家家门,分别是:
OpenAI o1
OpenAI o1-ioi
OpenAI o3
通用推理模型 o1
o1 是一个经过 RL 训练的大模型,用于处理复杂的推理任务。
通过 RL 训练,o1 能生成 CoT(chain-of-thought,思维链),其作用是思考和解决复杂问题,帮助模型识别和纠正错误,将复杂任务分解为可管理的部分,并在方法失败时探索替代解决方案路径。
除此之外,o1 还可调用外部工具验证代码。
在 CodeForce 基准测试中,o1 拿下了 1673 分(89th percentile)。
相比非推理模型(如 GPT-4o),和早期推理模型(如 o1-preview),o1 成绩均有显著提升。
此外,研究人员在对 o1 进行开发和评估的过程中,发现增加「RL 计算量」以及「test-time 推理计算量」两方面的工作,都能持续提升模型性能。
如下图所示,扩展 RL 训练和扩展 test-time 推理均带来了显著的收益。
针对性训练推理模型 o1-ioi
在发现增加「RL 计算量」以及「test-time 推理计算量」的重要性后,OpenAI 团队在 o1 基础上进行针对性训练,得到 o1-ioi,目标直指 IOI 2024。
除了针对编码任务的持续 RL 训练外,o1-ioi 还结合了专为竞赛编程而设计的专用 test-time 推理策略(类似 AlphaCode 的人工设计的 test-time 推理策略)。
此过程第一步是扩展 o1 的 RL 阶段,专注于编码任务。
通过将额外的训练计算专用于编程问题,团队增强了模型规划、实施和调试更多涉及的解决方案的能力。
具体如下:
从 o1 的 checkpoint 恢复了 RL 训练。
特别强调了具有挑战性的编程问题,帮助模型改进 C++ 生成和运行时检查。
指导模型以 IOI 提交格式生成输出。
这种对编码的额外关注,使 o1-ioi 能在推理期间编写和执行 C++ 程式。
该模型通过迭代运行和优化解决方案来改进其推理能力,从而增强了其编码和解决问题的能力。
o1-ioi 参与了人类选手相同条件的 IOI 2024。
它有 10 个小时的时间,来解决 6 个具有挑战性的算法问题,每个问题最多允许提交 50 次。
参赛期间,系统为每个问题生成了 10000 个候选解决方案,并使用 test-time 推理策略选了 50 个方案来提交——这里的 test-time 推理策略是,根据 IOI 公共测试用例、模型生成测试用例和学习的评分函数上的表现,来确定每个提交内容的优先级。
最终,o1-ioi 在 IOI 2024 获 213 分,排名前 49%。
在 CodeForces 基准测试上,o1-ioi 的评分达到 1807,超过了 93% 的竞争对手。
论文中写道," 这表明,在编码任务上的额外 RL 训练有了明显的改进。"
然后,团队用一个简单的筛选条件来拒绝任何未通过公开测试的解决方案时,评分上升到 2092。
最终,在完整的 test-time 推理策略推动下,o1-ioi 的评分飙升到 2214。
这些结果证实,特定领網域的 RL 微调与高级选择启发式相结合,可以显著提高有竞争力的编程结果。
研究人员表示,o1-ioi 的表现,证明特定领網域的 RL 微调与先进选择策略,是可以提升竞技编程成绩的。
通用推理模型 o3
第三个参战的是 OpenAI 最新推理模型 o3。
基于 o1 和 o1-ioi 的表现,OpenAI 团队探索了纯 RL 训练、不依赖人工设计的 test-time 策略的局限性。
甚至试图探索用 RL 进一步训练,该模型是否能够自主开发和执行自己的 test-time 推理策略
为此,团队取得了 o3 的早期 checkpoint 的访问权限,来评估竞赛编程。
参与 IOI 2024 竞赛时,o3 与 o1-ioi 一样严格遵守官方规则,每个问题最多允许提交 50 次。
与 o1-ioi 为每个子任务单独采样解决方案不同,团队在评估 o3 时,采用了不同的方法:
从包含原始问题的单个提示中采样。
△o3 测试自己的解决方案
多提一句,参加 IOI 2024 的 o3 版本比参加 CodeForce 的 o3 版本更新,包含了额外的更新的训练数据。
不过团队确认了 IOI 2024 的测试集不包含在新的训练测试里。
在单个问题只能提交 50 次的限制下,o3 在 IOI 2024 的最终得分是 395.64,超过了 IOI 2024 金牌门槛。
(IOI 2024 共产生 34 名金牌选手,金牌线为≥ 359.71)
而在 CodeForce 基准测试上,仅仅依靠进一步的 RL,o3 就获得了 2724 分的成绩,力压 99.8% 的选手。
这个成绩直逼人类顶尖选手的水准!
值得注意的是,从得分 2214 的 o1-ioi(超越 98% 选手),到得分 2724 的 o3(超越 99.8% 选手),反映了推理模型在竞赛编程中的显著提升。
这表明 o3 能够以更高的可靠性,解决更广泛的复杂算法问题,使其能力更接近 CodeForces 的顶级人类竞争对手。
更有意思的是,o3 在 CodeForce 参赛期间展现出了更深思熟虑的思维链。
它不仅能写代码、执行并验证,还会根据反馈不断完善解法。
面对验证复杂的难题,o3 在端到端 RL 期间,竟然学会了先写出暴力解法,再用最优算法的结果来交叉验证。
这种自主学习的验证机制,有效提高了方案的可靠性。
综上,团队表明,o3 的性能优于 o1-ioi 的原因,不依赖于针对 IOI 的特定人工设计的 test-time 策略。
相反,o3 训练期间出现的复杂 test-time 技术——如用暴力解法来验证输出——成为了人工设计策略的替代品,让 o3 不需要 o1-ioi 所需的手动设计聚类、选择 pipeline 等需求。
且比人工设计策略的性能高出不少。
軟體工程任务表现如何?
除了竞赛编程,论文还在真实的軟體工程任务上测试了 OpenAI 推理模型三兄弟的表现。
团队主要是在 2 个数据集上测试了仨模型:
HackerRank Astra:用于评估大模型在跨網域多檔案项目问题上正确性和一致性的测试集
SWE-bench:用于评估和预测軟體工程的基准测试和模型评估集,由普林斯顿大学 NLP 团队开发
令人惊喜的是,推理能力的增强对軟體工程任务也有显著提升。
三兄弟不仅能在竞赛编程中直逼人类顶尖选手,在真实的軟體工程任务上也有亮眼表现。
HackerRank Astra
HackerRank Astra 由 65 个面向项目的编码挑战组成,每个挑战都是为了模拟真实的軟體开发任务而精心设计的。
这些挑战涵盖了一系列框架,包括 React.js、Django 和 Node.js,允许获得构建功能和应用程式的实践经验。
该数据集的与众不同之处在于,它专注于评估反映实际开发环境的复杂、多檔案、长上下文场景中的问题解决技能。
与典型的竞争性编程数据集不同,HackerRank Astra 不提供公开的测试用例,这使 OpenAI 团队无法依赖人工制作的测试时策略。
使用此数据集评估性能可以揭示推理能力是单独提高算法问题解决的成功率,还是扩展到更实际的、与行业相关的编码任务。
上图中的 pass@1,表示首次尝试成功完成任务的概率;平均分数,代表了通过的测试用例的平均比例。
结果显示,与 GPT-4o 相比,o1-preview 的 pass@1 提高了 9.98%,平均分提高了 6.03 分。
而 RL 进一步微调可以提升 o1 的性能,其 pass@1 为 63.92%,比 o1-preview 提高了 3.03%;平均得分为 75.80。
这些指标证明了 o1 增强的推理和适应性,使其能够有效地处理复杂的、与行业相关的軟體开发任务。
SWE-bench
SWE-bench 由普林斯顿大学 NLP 团队开发,而 SWE-bench Verified 是 OpenAI 的 preparedness 团队经过人工验证的 SWE-bench 的子集。
它可以更可靠地评估 AI 模型解决实际軟體问题的能力。
这组经过验证的 500 个任务,修复了 SWE-bench 的某些问题,如正确解决方案的不正确评分、未指定的问题陈述以及过于具体的单元测试——这有助于确保基准测试准确地对模型功能进行分级。
所有模型都尝试 5 次来生成候选 patch。
如上图所示,与 GPT-4o 相比,o1-preview 在 SWE-bench 上的性能提高了 8.1%,展示了推理能力的显着进步。
通过在训练期间应用额外的 RL 计算,o1 进一步改进了 8.6%。
值得注意的是,训练计算资源比 o1 多得多的 o3,比 o1 改进了 22.8%," 非常 impressive"。
这些结果表示,推理模型对軟體工程等实际任务,也有很大适用性和使用价值。
One More Thing
OpenAI 员工表示,一张梗图可以很好地总结这篇论文。
略显遗憾的是,OpenAI 这篇新作虽然挂在了 arXiv 上,但更像是报告而非论文——因为整篇论文没怎么透露方法细节,光晒成绩单了。
但其中所写还是引起了网友的感慨:
任何可以测量的东西,都将得到改善。
论文直通车:
https://arxiv.org/pdf/2502.06807
参考链接:
[ 1https://x.com/arankomatsuzaki/status/1889522974467957033
[ 2 ] https://x.com/iScienceLuvr/status/1889517116816244995
[ 3 ] https://x.com/jennywxiao/status/1889517249033281631