当前位置:首页 > 技术文章 > 正文内容

o3编程世界排名18 ,OpenAI发布o1到o3变强报告

arlanguage2个月前 (03-10)技术文章14

来源:AI寒武纪

OpenAI 刚刚发布了一份研究报告,主题是关于人工智能在竞技编程领域的进展。他们展示了自家的大模型是如何一步步从“编程小白”成长为可以和顶尖程序员 PK 的“高手”

竞技编程,可能有些朋友不太熟悉,简单来说就是比拼编程能力和算法技巧的比赛,像 ACM、ICPC、Codeforces 这些平台就聚集了很多编程高手

报告里提到,最初的模型表现平平,在编程方面显得比较吃力。但关键的转折点是 大型推理模型 的出现,特别是结合了 强化学习 (Reinforcement Learning) 进行训练之后,o1到o3模型变强的“心路历程”,但是方法依然是个迷,问就是四个字:强化学习

故事的开端:强化学习赋能 “推理” 大脑

OpenAI 这次报告的核心,其实还是他们一直强调的 强化学习 (Reinforcement Learning, RL) 。报告一开始就明确指出,RL 是提升大型语言模型 (LLMs) 在复杂编程和推理任务上性能的 关键驱动力

为了验证 RL 的效果,OpenAI 首先推出了 通用推理模型 OpenAI o1。这个模型在训练时,特别注重提升 链式思考 (chain-of-thought reasoning) 能力。简单来说,就是让 AI 学会像人类一样,一步一步地分析问题、拆解难题,最终找到解决方案

图:OpenAI 推理模型 o1-preview, o1 与 gpt-4o 在 Codeforces 上的性能对比图

数据说话,效果惊人! 在模拟的 Codeforces 竞赛环境中,o1 模型的表现相比之前的模型 大幅提升。它的 Elo 评分从 1258 分 (62nd percentile) 直接跃升到 1673 分 (89th percentile)

挑战 IOI:特训模型 + 人工策略 “双剑合璧”

OpenAI 的目标远不止于此。为了挑战更具含金量的 国际信息学奥林匹克竞赛 (IOI),他们对 o1 模型进行了 专项强化训练,并打造了 o1-ioi 模型。同时,为了确保在 IOI 这种高强度竞赛中取得好成绩,研究团队还 “祭出” 了 手工打造的测试时策略 (hand-crafted test-time strategies)

这些策略,可以理解为人类专家为 AI 模型 “量身定制” 的一套竞赛技巧 “组合拳”,包括:

  • 子任务分解 (Subtask Decomposition): 将 IOI 复杂问题拆解成更小的、更易于解决的子任务。IOI 竞赛评分也是基于子任务的,这个策略非常契合竞赛特点

  • 大规模采样 (Large-Scale Sampling): 针对每个子任务,模型生成 10,000 个候选解决方案,通过 “广撒网” 的方式,提高找到正确答案的概率

  • 聚类与重排序 (Clustering and Reranking): 对生成的候选方案进行聚类,然后根据预设的评分标准进行重排序,选出最优的方案进行提交

  • 模型生成测试用例与验证 (Model-Generated Test Inputs & Validators): 利用模型自身生成测试用例和验证器,用于评估和筛选候选方案的正确性。

图:进一步训练 OpenAI o1 模型并加入测试时策略后,模型性能的提升

“人机协作” 威力显现! 手工策略 的加持下,o1-ioi 模型在 IOI 竞赛中获得了 49% 的排名,得分 213 分。更令人振奋的是,当 OpenAI 放宽提交次数限制 (从官方的每题 50 次放宽到 10,000 次) 后,o1-ioi 模型竟然 一举夺得金牌!得分高达 362.14 分


报告中还提到,这些 手工策略 非常有效,为 o1-ioi 的 IOI 成绩 提升了约 60 分,在 Codeforces 上的 percentile 排名也 提升了 5% (从 93% 提升到 98%, Elo 评分达到 2214 分)。

纯粹 RL 的力量:o3 模型 “无招胜有招” 的自主进化

虽然 o1-ioi 模型取得了亮眼的成绩,但 OpenAI 并没有满足于 “人机结合” 的模式。他们更进一步,推出了 新一代模型 o3。这次,他们想要探索 纯粹强化学习 的极限—— 完全不依赖任何人工策略,只通过 RL 训练,AI 能否在竞技编程领域达到顶峰?

o3 模型在 Codeforces 上的 Elo 评分更是达到了 2724 分 (99.8th percentile), 全球排名 Top 0.2%, 接近 全球 Top 175 名 的水平!

图:OpenAI o3 模型在 Codeforces 上的性能表现

o3 模型在没有任何人工策略辅助的情况下,竟然在官方 IOI 竞赛的严格约束下,也成功斩获金牌! 得分高达 395.64 分,进一步超越金牌线

OpenAI o3 在 2024 年国际信息学奥林匹克竞赛(IOI)中获得 395.64分(满分 600 分),获得金牌,世界排名第 18 位。该模型没有受到这些数据的污染,并且使用了 50 次提交限制。这也印证了奥特曼的说法今年我们很可能会看到超人的编码模型

“自主进化” 的解题策略:暴力验证,殊途同归

更深入地分析 o3 模型的 解题过程 (chain of thought),研究人员发现,o3 模型竟然 自主领悟 并发展出了一套 测试时策略!其中一个策略,与人类程序员的常用技巧 不谋而合:

  1. 先编写一个简单粗暴的 “暴力解法” (brute-force solution),确保程序的基本功能正确

  2. 再利用这个 “暴力解法”,去验证更复杂、更优化的算法,确保优化后的算法在逻辑上也是正确的

图6:o3 模型自主测试解决方案的流程示意

这种先 “保底” 再 “优化” 的思路,是不是和我们人类程序员在竞赛中常用的策略 如出一辙?AI 不仅学会了编程,还学会了 人类的思考方式, 这才是 o3 模型最令人震撼的地方!

不止于竞赛:RL 提升 AI 的 “通用” 编程能力

竞技编程的成功,只是 OpenAI 这次研究的一个侧面。他们还评估了这些模型在 软件工程 (Software Engineering, SWE) 任务中的表现,使用了 HackerRank Astra SWE-bench Verified 两个行业benchmark 数据集

结果显示,经过强化学习训练的模型,在软件工程任务上的 Pass@1 (首次尝试成功率) Avg Score (平均得分) 都得到了显著提升

o3 模型在 SWE-bench Verified 数据集上,相比 o1 模型,Pass@1 提升了 22.8%!这表明,强化学习不仅能提升 AI 的竞赛编程能力,也能有效提升其在更广泛的软件开发领域的应用能力

报告中关键数据回顾:

Codeforces Elo 评分: o1-preview: 1258 (62nd percentile), o1: 1673 (89th percentile), o1-ioi: 2214 (98th percentile), o3: 2724 (99.8th percentile, Top 0.2%, 全球 Top 175 左右)
IOI 竞赛得分: o1-ioi (官方约束): 213 分 (49th percentile), o1-ioi (放宽约束): 362.14 分 (金牌), o3 (官方约束): 395.64 分 (金牌). 手工策略为 o1-ioi IOI 提升 60 分, Codeforces percentile 提升 5%
  • SWE-bench 性能提升: o3 相比 o1, Pass@1 提升 22.8%. HackerRank Astra 数据也显示类似提升
Codeforces 模拟竞赛评估方法 (Appendix B):
  • 使用 Division 1 级别 竞赛题目 (2023 年底至 2024 年后)。

  • 采用 完整测试集 (full test suite), 模拟官方 Codeforces 评分环境。

  • 严格遵守 时间/内存限制

  • 进行 污染检查 (contamination check),确保测试题目未在模型训练数据中出现

  • 使用 Elo 评分系统 评估模型在 Codeforces 上的等级和 percentile 排名。
IOI 代码示例 (Appendix C):
报告中附录 C 提供了 o1-ioi 模型在 IOI 竞赛中生成的 C++ 代码示例, 包括 Nile 和 Message 两道题目的部分代码。例如,Nile 题目的代码中使用了 Union-Find 数据结构 来解决连通性问题。(感兴趣的朋友可以去原文附录 C 查看代码细节)
写在最后:
这份报告就是在讲强化学习的威力,只不过OpenAI只告诉了结果,现在大家都知道了,因为DeepSeek R1已经证明了同

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/3198.html

分享给朋友:

“o3编程世界排名18 ,OpenAI发布o1到o3变强报告” 的相关文章

Nginx安装、启动、停止、重载、查看

Nginx介绍Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在开源BSD-like 协议下发行。特点是占有内存少,并发能力强。1、安装 Nginx程序yum install nginx -y 或 dnf install nginx -y2、n...

linux上将大文件切割成小文件之split命令

说明:很多场景需要拷贝或传输文件时,如果我们需要拷贝的文件太大的话,就需要想办法将其分成小个文件进行拷贝,然后载重新合并。今天介绍 split 命令格式:split [OPTION] [INPUT [PREFIX]]一、压缩并切割使用tar命令进行压缩,使用split进行切割实例:# 压缩 ]# t...

宝塔面板——永久免费的服务器运维面板

宝塔面板是什么?宝塔面板,简单好用的服务器运维面板。官称永久免费。Linux版请确保纯净系统安装(支持CentOS、Ubuntu、Debian、Fedora、deepin),Web端管理,一键创建网站、FTP、数据库、SSL;安全管理,计划任务,文件管理,PHP多版本共存及切换;自带LNMP与LAM...

为什么服务器管理用户都使用宝塔面板?

宝塔面板宝塔面板到底是个什么鬼?为什么这么多站长使用宝塔面板?宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。有30个人的专业团队研发及维护,经过200多个版本的迭代,功能全,少出错且足够安全,已获得...

nginx-UrlRewrite 实现URL重写转发

URL重写在前后端分离的开发模式中,会遇到这样一个需求:前端通过特定路由前缀来访问后端接口,例如:http://localhost/api/getUser,这里 api 即是每一个前端 request 所多加的前缀。nginx 需要把http://localhost/api/getUser 转换成后...

01《Nginx 入门教程》Nginx 是什么?

关于 Nginx,百度百科的介绍如下:**Nginx (engine x)是一个开源、高性能的 HTTP 和反向代理 Web 服务器,同时也提供了 IMAP/POP3/SMTP 服务”。**首先,对 Web 服务器做一个简要说明:Web 服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序...