你以为让 AI 多想想靠的是一句 prompt?错了——大模型推理力度控制全揭秘
文章目录
你以为让 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 档 | 完全隐藏 |
| 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 数 | 可见 |
总结
- 主流方案是"RL 训练让模型听懂 effort 信号 + 推理时 API 传参",不是 prompt trick
- 闭源厂商(Anthropic、OpenAI、Google)都走 RL + API 参数路线,因为掌控推理框架层
- 开源厂商没有推理框架控制能力,更多靠训练时 RL 把推理行为"刻死",推理时用 prompt/特殊 token 做粗粒度切换
- 最粗暴的方案是 Budget Forcing——一个外部进程监控 token 流,想停就加 “Wait”,想截就插 EOS
- 本质上,effort 不改变模型权重,但改变了推理引擎的资源分配策略,而模型之所以"听得懂",是因为 RL 训练时把它刻进了行为模式
如果这篇文章帮你理清了大模型推理控制的底层逻辑,点个赞收藏一下,有问题评论区聊。
更多推荐




所有评论(0)