mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
3323 字
10 分钟
OpenAI o1/o3 与推理时代的开启
2025-05-14

2024 年 9 月 12 日,OpenAI 发布 o1-preview,这是一个改变 LLM 发展方向的模型。和以往追求更大参数、更多训练数据不同,o1 将重心转向了推理阶段的计算:让模型”想得更久”,而不是”练得更多”。o1 在 AIME 数学竞赛上从 GPT-4o 的 9.3% 跃升到 74.4%,在 GPQA Diamond 上从 35.4% 到 83.0%,这些数字宣告了 LLM 推理时代的到来。

本文要点#

  • o1 的核心突破:Test-Time Compute Scaling
  • RLVR 训练方法的原理与实现
  • Self-Play 推理与 Chain-of-Thought 的深度结合
  • o3 的性能飞跃与 Extended Thinking
  • 推理模型对 AI 范式的影响
  • 与 DeepSeek R1 的对比

一、o1 的核心突破#

1.1 性能飞跃#

o1 在推理密集型基准上实现了跨越式提升:

基准GPT-4oo1-previewo1提升幅度
AIME 20249.3%56.7%74.4%+65.1%
GPQA Diamond35.4%67.3%83.0%+47.6%
ARC-AGI21.7%32.0%50.3%+28.6%
MATH52.9%75.0%96.4%+43.5%
Codeforces Rating80814261891+1083

这些数字的含义需要理解基准的难度:

  • AIME:美国高中数学邀请赛,15 道题,每题 1 分,平均分约 5/15。GPT-4o 只能做对不到 1.5 题,o1 能做对超过 11 题
  • GPQA Diamond:Google-Proof Question Answering,博士级科学问题,人类专家正确率约 65%
  • Codeforces 1891:相当于”Grandmaster”级别,全球仅约 0.1% 选手达到

1.2 Test-Time Compute:核心范式转变#

o1 的核心创新是将计算重心从训练时(Training-Time Compute)转移到推理时(Test-Time Compute)。

flowchart TB subgraph 传统范式 A1["大量训练数据"] --> B1["大参数模型<br>Pre-training"] B1 --> C1["人类偏好对齐<br>RLHF"] C1 --> D1["直接输出答案<br>低推理成本"] end subgraph o1 范式 A2["训练数据"] --> B2["基础模型<br>Pre-training"] B2 --> C2["推理能力强化<br>RLVR"] C2 --> D2["生成推理链<br>高推理成本"] D2 --> E2["验证 → 输出答案"] end D1 -.->|"范式转变"| D2

这个转变的本质是:训练时计算是固定的,推理时计算可以弹性扩展。对于一个简单问题,o1 可以只生成几步推理链;对于复杂问题,它可以生成数千 token 的推理过程。这种弹性是传统模型不具备的。

1.3 推理时间与性能的关系#

o1 的一个关键发现是:推理时间(thinking tokens)与答案质量正相关

# o1 推理时间与性能的关系
thinking_time_performance = {
"低思考(<1K tokens)": {
"AIME": "~30%",
"适用": "简单问题、知识问答",
},
"中思考(1K-10K tokens)": {
"AIME": "~60%",
"适用": "中等难度推理",
},
"高思考(10K-100K tokens)": {
"AIME": "~74%",
"适用": "竞赛级数学、复杂编程",
},
}

这意味着 o1 的用户可以根据任务难度选择不同的推理预算。简单问题不需要让模型思考太久,复杂问题则可以给予更多思考空间。

二、RLVR:基于验证的强化学习#

2.1 从 RLHF 到 RLVR#

o1 的训练方法 RLVR(Reinforcement Learning from Verifiable Rewards)是对 RLHF 的根本性改进。

flowchart TB subgraph RLHF A1["模型输出"] --> B1["人类标注者<br>偏好排序"] B1 --> C1["训练奖励模型<br>Reward Model"] C1 --> D1["PPO 强化学习<br>模糊奖励信号"] end subgraph RLVR A2["模型输出<br>推理链 + 答案"] --> B2["验证器<br>确定性校验"] B2 --> C2["正确 = +1<br>错误 = -1"] C2 --> D2["强化学习更新<br>精确奖励信号"] end

RLHF 和 RLVR 的核心区别:

维度RLHFRLVR
奖励来源人类偏好排序确定性验证器
奖励精度模糊(0.3 vs 0.5?)精确(对/错)
适用领域对话、写作(主观)数学、编程(客观)
可扩展性受限于人类标注速度自动验证,无限扩展
奖励模型需要单独训练不需要(验证器即规则)

2.2 RLVR 训练流程#

RLVR 的训练流程可以概括为以下步骤:

# RLVR 训练伪代码
def rlvr_training(model, problems, verifier, num_epochs=1000):
optimizer = setup_optimizer(model)
for epoch in range(num_epochs):
batch = sample_problems(problems, batch_size=64)
for problem in batch:
# 1. 生成推理链(Chain-of-Thought)
reasoning_chain = model.generate(
prompt=problem.question,
max_tokens=32000, # 允许长推理链
temperature=0.8, # 适度随机
)
# 2. 提取最终答案
answer = extract_answer(reasoning_chain)
# 3. 验证答案正确性
is_correct = verifier.verify(
answer=answer,
ground_truth=problem.answer,
problem_type=problem.type, # 数学/编程/逻辑
)
# 4. 计算奖励
if is_correct:
reward = 1.0
# 额外奖励:更短的推理链获得略高奖励
length_bonus = max(0, 1.0 - len(reasoning_chain) / 32000 * 0.1)
reward += length_bonus
else:
reward = -0.1 # 轻微负奖励
# 5. 策略梯度更新
loss = -log_prob(model, reasoning_chain) * reward
loss.backward()
optimizer.step()
optimizer.zero_grad()

2.3 验证器设计#

RLVR 的关键在于验证器的设计。不同类型的问题需要不同的验证策略:

# 不同类型的验证器
class MathVerifier:
"""数学问题验证器:比较最终答案"""
def verify(self, answer, ground_truth):
# 标准化数学表达式后比较
normalized_answer = self.normalize(answer)
normalized_truth = self.normalize(ground_truth)
return math.isclose(normalized_answer, normalized_truth, rel_tol=1e-6)
class CodeVerifier:
"""编程问题验证器:运行测试用例"""
def verify(self, code, test_cases):
for test_input, expected_output in test_cases:
actual_output = self.execute(code, test_input)
if actual_output != expected_output:
return False
return True
class LogicVerifier:
"""逻辑推理验证器:检查证明步骤"""
def verify(self, proof_steps, axioms):
for step in proof_steps:
if not self.is_valid_step(step, axioms):
return False
return True

验证器的精确性是 RLVR 的最大优势。RLHF 中奖励模型可能给出 0.7 和 0.8 的差异,这种模糊信号让模型难以精确优化。而 RLVR 的信号是二元的:对或错。这种清晰信号让强化学习更高效。

2.4 RLVR 的局限#

RLVR 只适用于答案可验证的领域:

领域可验证性RLVR 适用性
数学完全适用
编程完全适用
逻辑推理完全适用
科学问答部分适用
创意写作不适用
对话不适用

这意味着 RLVR 训练的模型在数学和编程上极强,但在开放式对话和创意任务上不一定优于 RLHF 模型。o1 在 ChatBot Arena 上的表现不如其在推理基准上的提升幅度,正是因为对话质量难以用验证器评估。

三、Self-Play 推理#

3.1 AlphaZero 式的自我博弈#

o1 的推理过程被 OpenAI 描述为类似 AlphaZero 的 Self-Play。AlphaZero 通过自我对弈不断提升棋艺,o1 则通过自我推理不断优化问题解决路径。

flowchart TB subgraph AlphaZero Self-Play A1["当前策略网络"] --> B1["自我对弈<br>生成棋局"] B1 --> C1["胜负作为奖励"] C1 --> D1["更新策略"] D1 --> A1 end subgraph o1 Self-Play 推理 A2["当前推理策略"] --> B2["生成推理链<br>多条候选"] B2 --> C2["验证器检验<br>对/错判定"] C2 --> D2["正确路径强化<br>错误路径抑制"] D2 --> A2 end

3.2 推理链的生成与选择#

o1 在推理时可以生成多条推理链,然后选择最优答案:

# o1 的推理链生成与选择
def o1_reasoning(model, problem, num_chains=8, verifier=None):
candidates = []
for i in range(num_chains):
# 生成推理链(温度较高,增加多样性)
chain = model.generate(
prompt=problem,
max_tokens=32768,
temperature=0.8,
)
answer = extract_final_answer(chain)
# 验证答案
if verifier:
is_correct = verifier.verify(answer, problem.answer)
candidates.append({
"chain": chain,
"answer": answer,
"verified": is_correct,
"length": len(chain),
})
# 选择策略
# 1. 优先选择验证通过的
verified = [c for c in candidates if c["verified"]]
if verified:
# 在验证通过的候选中选最短的(奥卡姆剃刀)
best = min(verified, key=lambda x: x["length"])
else:
# 没有验证通过的,用多数投票
answer_counts = Counter(c["answer"] for c in candidates)
majority_answer = answer_counts.most_common(1)[0][0]
best = [c for c in candidates if c["answer"] == majority_answer][0]
return best["answer"], best["chain"]

3.3 思维链的内部机制#

o1 的思维链是可见的内部推理。OpenAI 公开了 o1 的推理过程(部分),使你能窥见模型如何”思考”:

让我分析这道数学题...
首先,我需要理解题目在问什么。给定 f(x) = x³ - 3x + 1,求在区间 [-2, 2] 上的极值。
步骤1:求导数 f'(x) = 3x² - 3
步骤2:令 f'(x) = 0,解得 x = ±1
步骤3:判断极值类型
- f''(x) = 6x
- f''(1) = 6 > 0 → x = 1 是极小值点
- f''(-1) = -6 < 0 → x = -1 是极大值点
等等,让我再确认一下边界值...
f(-2) = -8 + 6 + 1 = -1
f(2) = 8 - 6 + 1 = 3
f(-1) = -1 + 3 + 1 = 3 → 极大值
f(1) = 1 - 3 + 1 = -1 → 极小值
所以极大值是 3(在 x = -1 和 x = 2 处都取到),极小值是 -1。

这种推理链有几个关键特征:

  1. 自我纠错:模型会在推理过程中发现错误并修正
  2. 多路径探索:会尝试不同的解题方法
  3. 回溯机制:发现走不通时会回到之前的步骤重新选择
  4. 验证意识:得到答案后会主动验证

3.4 与 Chain-of-Thought 的关系#

o1 的思维链和 2022 年 Wei 等人提出的 Chain-of-Thought (CoT) 有本质区别:

维度CoT Promptingo1 推理链
产生方式人类提示触发模型自主生成
长度固定、较短(几百 token)弹性、可很长(数万 token)
质量依赖提示词质量通过 RLVR 优化
可靠性可能推理错误但不自知有自我纠错机制
验证内置验证步骤

CoT 是”教会模型展示推理过程”,o1 是”教会模型真正推理”。前者是一种 prompting 技巧,后者是一种训练范式。

四、o3 的进一步提升#

4.1 o3 发布#

2024 年 12 月 20 日(“12 Days of OpenAI”活动最后一天),OpenAI 发布了 o3。这是 o1 的重大升级:

基准o1o3提升
ARC-AGI50.3%87.5%+37.2%
GPQA Diamond83.0%87.7%+4.7%
FrontierMath2.0%25.2%+23.2%
SWE-bench Verified48.9%72.0%+23.1%
Codeforces Rating18912719+828

ARC-AGI 从 50.3% 到 87.5% 的跃升尤其引人注目。ARC-AGI 是 François Chollet 设计的通用推理基准,被认为是衡量 AI 是否具备”通用智能”的重要指标。o3 是第一个在这个基准上接近人类水平(约 85%)的模型。

4.2 ARC-AGI 与通用推理#

ARC-AGI 的设计哲学很独特:它测试的不是知识,而是抽象推理能力。每个任务给出几个输入-输出对,要求模型推断出变换规则并应用到新输入上。

flowchart TB subgraph ARC-AGI 任务示例 A["输入网格 1"] --> D["输出网格 1"] B["输入网格 2"] --> E["输出网格 2"] C["输入网格 3"] --> F["输出网格 3"] G["测试输入"] --> H["?<br>预测输出"] end subgraph 需要的能力 I["模式识别"] J["规则抽象"] K["类比推理"] L["假设验证"] end

o3 在 ARC-AGI 上的成功说明:通过大量的 Test-Time Compute,LLM 可以进行深度抽象推理,而不仅仅是模式匹配。但 Chollet 本人指出,o3 的高分部分来自暴力搜索,而非真正的”理解”。

4.3 Extended Thinking#

o3 引入了 Extended Thinking 模式,允许用户控制推理深度:

# o3 的 Extended Thinking 配置
def o3_inference(problem, thinking_budget="auto"):
"""o3 推理配置"""
configs = {
"low": {
"thinking_tokens": 2000,
"适合": "简单问题、快速回答",
},
"medium": {
"thinking_tokens": 10000,
"适合": "中等推理、日常编程",
},
"high": {
"thinking_tokens": 100000,
"适合": "竞赛数学、复杂调试",
},
"auto": {
"thinking_tokens": "模型自主决定",
"适合": "默认模式",
},
}
config = configs[thinking_budget]
return model.generate(
problem,
max_thinking_tokens=config["thinking_tokens"],
)

Extended Thinking 的定价模式也与传统模型不同:o3 按”思考 tokens + 输出 tokens”计费,思考 tokens 的价格低于输出 tokens。这反映了推理计算的经济模型。

4.4 o3-mini:推理效率优化#

2025 年 1 月,OpenAI 发布 o3-mini,在保持强推理能力的同时大幅降低成本:

模型推理能力成本延迟
o1
o3最高最高最高
o3-mini中高

o3-mini 的策略是:用更小的模型架构 + 更多的 RLVR 训练,在特定推理任务上逼近大模型的效果。这和 LLaMA 3 的”小模型大数据”策略异曲同工。

五、推理模型对 AI 范式的影响#

5.1 两种 Scaling Law#

o1/o3 验证了一个重要的假说:推理时计算(Inference-Time Compute)可以替代训练时计算(Training-Time Compute)

flowchart TB subgraph 传统 Scaling Law A1["更多参数"] --> B1["更强能力"] A2["更多数据"] --> B2["更强能力"] A3["更多训练计算"] --> B3["更强能力"] end subgraph 新 Scaling Law C1["更多推理时间"] --> D1["更强推理能力"] C2["更多推理步骤"] --> D2["更少错误"] C3["更多候选路径"] --> D3["更高成功率"] end

这两种 Scaling Law 不是替代关系,而是互补关系:

  • Pre-Training Scaling:提升模型的知识广度和基础能力
  • Inference-Time Scaling:提升模型的推理深度和问题解决能力

理想模型应该两者兼备:强大的基础能力 + 深度的推理能力。

5.2 推理预算的经济学#

Test-Time Compute 引入了新的经济学考量:

# 推理成本对比
cost_comparison = {
"GPT-4o(直接回答)": {
"输入": "$2.50/1M tokens",
"输出": "$10.00/1M tokens",
"平均推理": "~500 tokens",
"平均成本": "~$0.005/问题",
},
"o1(推理后回答)": {
"输入": "$15.00/1M tokens",
"推理": "$60.00/1M tokens",
"平均推理": "~5000 tokens 思考 + ~500 tokens 输出",
"平均成本": "~$0.35/问题",
},
"o3(深度推理)": {
"推理": "按思考量计费",
"高思考模式": "~$3.50/问题",
"低思考模式": "~$0.15/问题",
},
}

o1 的推理成本约为 GPT-4o 的 70 倍,o3 高思考模式更是数百倍。这意味着推理模型不适合所有场景,而应该有选择地使用:

  • 简单问答:用 GPT-4o 等快速模型
  • 中等推理:用 o1 或 o3-mini
  • 竞赛级问题:用 o3 高思考模式

5.3 对 AI 应用开发的影响#

推理模型改变了 AI 应用的开发范式:

flowchart TB subgraph 传统 LLM 应用 A1["Prompt 工程"] --> B1["单次调用"] B1 --> C1["直接输出"] end subgraph 推理模型应用 A2["问题分解"] --> B2["推理调用<br>(长思考)"] B2 --> C2["验证答案"] C2 --> D2{"正确?"} D2 -->|"否"| E2["调整策略<br>重新推理"] E2 --> B2 D2 -->|"是"| F2["输出结果"] end

关键变化:

  1. 问题路由:先判断问题难度,再选择模型和推理预算
  2. 推理编排:将复杂问题分解为子问题,分别用推理模型解决
  3. 验证循环:推理结果需要验证,错误时重新推理
  4. 成本控制:根据问题价值分配推理预算

5.4 与 DeepSeek R1 的对比#

2025 年 1 月,DeepSeek 发布 R1,是开源推理模型的里程碑:

维度o1/o3 (OpenAI)DeepSeek R1
训练方法RLVR(细节未公开)GRPO + 冷启动
开源程度闭源,API 访问完全开源,权重公开
AIME 202474.4% (o1)79.8% (R1)
MMLU92.3% (o1)90.8% (R1)
推理可见性部分可见完全可见
推理成本高(闭源定价)低(可自部署)

DeepSeek R1 的关键创新是 GRPO(Group Relative Policy Optimization),它不需要单独的价值模型,而是在同一组采样中用相对排名计算优势函数,大幅降低了训练成本。R1 还证明了纯 RL 训练(不经过 SFT 冷启动)也能让模型学会推理,这一发现震惊了整个领域。

六、推理模型的未来方向#

6.1 推理效率优化#

当前推理模型的最大瓶颈是效率。让模型”想得更久”虽然有效,但成本太高。未来方向包括:

方向方法预期效果
自适应推理深度根据问题难度动态分配思考量简单问题快速回答
推理蒸馏用大推理模型训练小模型小模型也具备推理能力
推理缓存缓存相似问题的推理路径减少重复推理
并行推理多条推理链并行生成降低延迟

DeepSeek R1 的蒸馏实验提供了有力证据:将 R1 的推理能力蒸馏到 7B 模型后,小模型也能解决相当比例的推理问题。

6.2 多模态推理#

推理能力不应局限于文本。o 系列的下一步是将推理扩展到多模态:

  • 视觉推理:分析图像中的几何关系、物理场景
  • 代码推理:理解代码执行流程、调试复杂 bug
  • 科学推理:理解实验数据、提出假设

6.3 推理对齐#

推理模型带来了新的对齐挑战:当模型在推理链中探索多个路径时,如何确保它不会找到”有害”的推理路径?传统的 RLHF 对齐主要作用于输出层,而推理模型的推理链可能有数百步,每一步都需要保持安全。

七、总结#

o1/o3 开启的推理时代对 AI 领域的影响是深远的:

  1. 范式转变:从 Pre-Training Scaling 到 Test-Time Compute Scaling,推理时间可以弥补训练时间的不足
  2. RLVR 方法:验证奖励的强化学习比人类偏好更适合推理任务,自动验证器使训练可无限扩展
  3. Self-Play 推理:类似 AlphaZero 的自我博弈,让模型通过自我推理持续优化
  4. 可见思维链:o1 的推理过程部分可见,提供了模型”思考过程”的可解释性窗口
  5. 开源追赶:DeepSeek R1 证明开源社区也能实现推理模型,GRPO 方法大幅降低了训练门槛

推理时代才刚刚开始。未来的 AI 系统很可能不是”知道答案”,而是”能推理出答案”。这种能力从数学扩展到科学、工程、法律等需要深度推理的领域时,将产生真正革命性的影响。


参考资料#

支持与分享

如果这篇文章对你有帮助,欢迎支持作者或分享给更多人

OpenAI o1/o3 与推理时代的开启
https://blog.souloss.com/posts/machine-learning/llm-paper-history/o1-o3-reasoning-era/
作者
Souloss
发布于
2025-05-14
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时