你以为让 AI "多想想"靠的是一句 prompt?错了

你跟 AI 说"请仔细思考",它真的会多思考吗?

答案是:几乎没有用。

那市面上那些推理模型——Claude 的 effort、OpenAI 的 reasoning_effort、DeepSeek 的"深度思考"——到底是怎么控制模型"多想"还是"少想"的?

我把 8 家厂商的方案扒了一遍,分两派讲清楚。


一、先搞清楚:模型是怎么"思考"的

Transformer 是自回归的——它一次只能吐出下一个 token,然后基于之前所有的 token 再吐下一个。

所谓的"思考",就是模型在输出最终答案之前,先吐出一大段中间推理过程。这个过程在概念上就是一串用户不直接看到的 token,但它会成为后续 token 生成的上下文。

换句话说:思考 = 模型给自己搭了一个越来越长的脚手架,然后爬上去够答案。

关键问题是:谁来控制这座脚手架搭多高?


二、正派:RL 训练 + API 参数(闭源厂商的标准答案)

这派的核心思路:训练时用强化学习把"听话"刻进模型,推理时用 API 参数传信号。

2.1 Anthropic Claude — effort + Adaptive Thinking

{
  "thinking": { "type": "adaptive" },
  "output_config": { "effort": "high" }
}
  • 训练阶段:模型在后训练 RL 阶段被训练成能识别 effort 信号。Reward 函数里加了"思考 token 不能超过正确解平均长度的 r%",超了就零分。结果模型学会了根据 effort 自动调节思考深度——难题多想想,简单题少想想。
  • 推理阶段effort 是 API 请求体里的一个参数,它不拼进 prompt。服务端推理引擎根据它调整 token 分配策略。Adaptive Thinking 下模型自己决定具体用多少 token。
  • 粒度:5 档(low / medium / high / xhigh / max

老版本(Claude 3.7~4.5)用的是 budget_tokens(硬上限),4.6+ 改成了 effort(倾向性),4.7 彻底移除 budget_tokens。

2.2 OpenAI o 系列 / GPT-5 — reasoning_effort

{
  "reasoning": { "effort": "high" }
}

和 Claude 同思路:RL 训练让模型学会听 effort 参数的话。区别是 OpenAI 把思考过程完全隐藏——用户永远看不到内部 CoT。粒度比 Claude 少一档,4 档(minimal / low / medium / high)。

2.3 Google Gemini — thinking_budget

{
  "thinking_config": { "thinking_budget": 4096 }
}

既可以传具体 token 数,也支持低/中/高等级。Google 的独特之处在于 Gemini 2.5 开始思考是默认开启的,不像 Claude 需要显式指定。

2.4 xAI Grok — reasoning_effort

只有两档:low / high,最简设计。

厂商 模型 控制参数 粒度 思考过程可见?
Anthropic Claude 4.x output_config.effort 5 档 摘要可见
OpenAI o3/o4/GPT-5 reasoning.effort 4 档 完全隐藏
Google Gemini 2.5/3 thinking_budget token/档位 部分可见
xAI Grok 4 reasoning_effort 2 档 部分可见

三、野派:训练定死 + prompt 辅助(开源模型的主力方案)

开源模型没有闭源推理框架层的能力,走的是另一条路。

3.1 DeepSeek R1/V3 — 纯训练 + prompt 指令

DeepSeek 的 R1 没有任何推理时 effort 参数。思考行为是通过 RL(GRPO 算法)在训练阶段训练出来的默认行为——模型加载后天然就会用 <think>...</think> 包裹思考过程。

想让它不思考?只能在 prompt 里写 "/no_think""请直接回答不要思考"。粒度几乎为零。

3.2 Qwen QwQ / Qwen3 — 训练 + system prompt 模式切换

Qwen3 支持两种模式,在 system prompt 里切换:

  • "thinking" 模式 → 深度推理
  • "non-thinking" 模式 → 直接回答

模型在训练时学会了识别这些信号,所以 system prompt 的切换是有效的。但仅限于"思考/不思考",不能调力度。

3.3 Llama 4 (Meta) — 完全靠 prompt

Meta 目前没有专门的推理参数。想让 Llama 4 推理?写一句 "Let's think step by step"。这其实是 2022 年的思路——纯 prompt engineering。

3.4 开源后训练方案(Sky-T1、s1)— Budget Forcing

来自斯坦福论文 s1: Simple test-time scaling,最简单粗暴的方案:

如果模型想停止思考 → 强行追加 "Wait" → 模型被迫继续
如果思考超过预算   → 强行插入 "</think>" 或 EOS → 截断

不训练,不调参,纯靠 token 流层面的实时干预。 一个外部控制器进程监控着推理过程,到了预算就截,不够就续。


四、底层原理:为什么 RL 训练 + 推理参数是正解

有一个关键训练技术叫 AEC(Adaptive Effort Control)

reward = 答案正确 ? 1 : 0

约束:思考 token 数 < 当时正确解平均长度的 r%
如果超了 → reward = 0(答对也没用)

用 GRPO 做 16 次 rollout 取平均,效果是 2~3 倍的思考长度压缩,准确率不降反升

为什么比"固定惩罚每个思考 token"好?

  • 固定惩罚:难题永远亏本 → 模型放弃尝试 → 训练不出推理能力
  • 相对约束:没正确解时约束自动解除 → 模型自由探索 → 有了正确解后再收紧 → 模型学习压缩

这就是为什么 effort 不能靠 prompt 实现。 Prompt 告诉模型"多想想",它不知道怎么控制——因为训练时没有把"多想"绑定到可量化的 reward 信号上。RL 训练把 effort 变成了模型的第二本能。


五、全景对比大表

分类 厂商/方案 控制机制 推理时参数? 粒度 思考可见
闭源正派 Anthropic Claude RL + effort API 参数 5 档 摘要可见
OpenAI o/GPT-5 RL + reasoning_effort 4 档 完全隐藏
Google Gemini thinking_budget 参数 token/档位 部分可见
xAI Grok reasoning_effort 参数 2 档 部分可见
开源野派 DeepSeek R1/V3 RL 训练(GRPO) prompt 级 完全可见
Qwen3/QwQ RL + system prompt 2 档 可见
Meta Llama 4 纯 prompt CoT 可见
Sky-T1/s1 Budget Forcing token 数 可见

总结

  1. 主流方案是"RL 训练让模型听懂 effort 信号 + 推理时 API 传参",不是 prompt trick
  2. 闭源厂商(Anthropic、OpenAI、Google)都走 RL + API 参数路线,因为掌控推理框架层
  3. 开源厂商没有推理框架控制能力,更多靠训练时 RL 把推理行为"刻死",推理时用 prompt/特殊 token 做粗粒度切换
  4. 最粗暴的方案是 Budget Forcing——一个外部进程监控 token 流,想停就加 “Wait”,想截就插 EOS
  5. 本质上,effort 不改变模型权重,但改变了推理引擎的资源分配策略,而模型之所以"听得懂",是因为 RL 训练时把它刻进了行为模式

如果这篇文章帮你理清了大模型推理控制的底层逻辑,点个赞收藏一下,有问题评论区聊。


Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐