o1 刚出来的时候,很多人还质疑这还达不到 AGI(通用人工智能)。o3 体现出的编程和数学能力,不仅达到了 AGI 的门槛,甚至摸到了 ASI(超级人工智能)的边。
o3 也进一步验证了 RL 和 test-time scaling 的价值,在高质量预训练数据基本耗尽,模型能力'撞墙'的情况下,提供了一条通过后训练和增加推理时间,继续提升模型智力,解决更困难问题的路径。
o3 具体的性能指标很多人都看到了,我就不再重复了。省流版:
o3 在 Codeforces 编程竞技中击败了 99.9% 的程序员,在 168076 名程序员中排名 175 名。甚至 o3 的作者都打不过 o3。
o3 在编程解决真实世界需求方面也比 o1 有明显提升,在 SWE-Bench 软件开发测试中,之前发布的 o1-preview 是 41.3%,o3 是 71.7%,也就是 70% 的真实世界需求,o3 可以直接做对,并通过单元测试。也就意味着只有剩下 30% 的工作需要人类程序员去编码完成了,而这部分工作 AI 也可以帮助人类程序员大大提升效率。
在 AIME 2024 数学测试中做对了 96.7%,相当于在美国数学奥林匹克竞赛上只答错了一道题。
在博士级别科学问题测试的 GPQA Diamond 中超过 o1 10 个百分点,而 o1 已经基本上是人类博士生的平均水平。
图形逻辑推理的 ARC-AGI,o3 经过微调后,达到 87.5%,超过人类平均水平(85%)。
**但 o3 并不是万能的,现实世界工程任务的处理能力并没有想象的那么强。**我发现大型工程项目中的编程任务,o1 preview 的准确率并不如 Claude 3.5 Sonnet。o1 擅长的是边界清晰、定义明确的封闭式科学问题。o3 不知道怎么样,但从 SWE Bench 只能做对 71% 来看,还是不如人类软件开发工程师的,因为一个合格的全栈工程师不能说我只能完成 70% 的需求,剩下 30% 的需求做不了。o3 在 Codeforces 上超过 99.9% 的人类,是因为编程竞赛题都是边界清晰、定义明确的,而在真实世界的工程任务上就远不如编程竞赛那么强。
**有些人说 o3 现在太贵了,一个任务 1000 美金什么的,还是真人便宜。**我想从几个角度驳斥这个观点:
大多数软件项目的编程任务只要 o3 mini 的能力就够了,它比 o1 preview 更强,但比 o1 preview 便宜。而即使 o1 preview 的价格已经低于人类工程师的开发成本,这意味着对于 AI 能解决的软件开发问题,AI 的成本是低于人类工程师纯手工编程的。
o3 mini 不能解决,需要 o3 满血版才能解决的问题,往往是比较困难的问题,普通程序员或者数学专业的大学生并不能解决。如果要招一个靠谱的大神程序员或者数学专家来解决这些问题,所需的成本远远超过 1000 美金。
大模型的知识密度在不断提高,刘知远老师提出的知识密度定律(每 3.3 个月模型知识密度提升一倍)对 reasoning 模型仍然成立。例如仅仅半年过去,o3 mini 就以低 10 倍的成本达到了 o1 preview 的能力。因此,随着硬件的摩尔定律和模型知识密度提高,推理成本会快速降低。
因此,我认为这一波大模型的进展证实了我一直相信的观点:在能源有限的情况下,相比人类,AI 是智能更高效的形式。很高兴看到 OpenAI 一直在引领整个行业,探索将能源转化成智能更高效的解决方案。
从今年 9 月 o1 发布开始,我就陷入了迷茫:AI 的软件开发能力已经超过人类,AI 的智力超越人类也已成定局。那人类程序员还能做什么?
如果让我和 AI 上 Codeforces 打比赛,不要说 o3,连 o1 都不一定能打过。我也是 NOI 算法竞赛保送的,在公司我对编码能力还是有一些自信,比如我做面试官的时候,从来不让候选人运行代码,因为面试题这种几十行的小程序,我基本上一眼就能看出他哪里写错了。但在 AI 面前,我仍然感受到深深的无力感。
而真实项目中的简单软件开发需求,我也不一定能打过 Claude 3.5 Sonnet。有时候我觉得 Cursor 里面的 Composer Agent(或者类似的一款 AI 编程软件 Windsurf)输出比较慢,就想只改几行代码的简单需求,我自己写会不会更快。但我试了几次,往往是我刚刚在代码仓里面定位到该改哪块代码,AI 就已经写完了。大多数时候我干的事情反而是最没有技术含量的,或者说更类似产品经理的:把需求用自然语言描述清楚告诉 AI,然后看 AI 输出的东西是否符合我的需求。(当然今天 AI 还没有这么强,当它搞不定的时候,还得我动手去改代码)今天 o3 的 demo 里面,也能看到整个 demo 里面最慢的不是 AI,而是操作 AI 的人。
那么 AI Infra 这种相对专业的领域,是不是还只能靠人类专家?比如给定一个万卡集群的训练任务和硬件配置,问 PP、DP、TP 三种并行方式最优的参数怎么选择?我在草稿纸上算了一晚上才算出来。如果直接去问 o1-preview,它也会答错,因为缺少领域知识,比如它不知道 GPU 的硬件参数和 LLaMA 70B 的 tensor shape。但如果我从知识库里找到相关的背景知识告诉 o1-preview,在它第一步输出之后指出它的问题,让它继续改进,只要 5 轮对话,半个小时(包括输入 prompt 的时间),o1-preview 就能列公式计算,得到跟我想了一晚上一样的结论。一个好的推论是,基于推理能力最强的模型,AI 可以大大提升领域专家的工作效率。一个坏的推论是,领域专业知识和经验并不是人在 AI 面前的护城河。
昨天晚上我正好跟老婆讨论这个问题,我老婆就说,9 月我觉得 AI 编程厉害,可以一个人写一个大项目,不需要团队。但实际呢?


