Ahead of AI · Sebastian Raschka

控制LLM中的推理努力

Controlling Reasoning Effort in LLMs

二〇二六年七月十九日 · 英文原文

OpenAI 发布 GPT-5.6 模型系列,包含三种尺寸(Luna、Terra、Sol)及五到六种推理努力设置。文章系统梳理了推理模型的定义、训练方法(如 DeepSeek-R1 提出的 RLVR)与推理扩展技术。重点分析了多种推理努力模式的实现机制,包括系统提示控制、SFT 与 RL 阶段的条件化训练、token 预算调整等。对比了 DeepSeek V4、Nemotron 3 Ultra、Kimi K2.5、GLM-5、Qwen3 和 Inkling 六种开源模型的具体方案,指出努力模式通过独立专家、混合 SFT 数据、模式条件化奖励或硬预算等方式实现。

自 OpenAI 发布 o1 以来已近两年,该模型普及了基于 LLM 的推理模型这一概念。大约四个月后,DeepSeek-R1 问世,同时公开了使用可验证奖励强化学习(RLVR)训练此类推理模型的详细方案。上周,OpenAI 发布了 GPT-5.6 模型系列。该系列包含三种尺寸,每种尺寸大约有五到六种推理努力设置。

图 1:GPT 5.6 Sol 模型在不同推理努力设置下的表现。(Ultra 的基准测试数据目前尚未公布,但应与 Max 相对接近,因为它使用了类似的努力级别,但通过四个子代理加速了工作。)

因此,是的,推理模型已经站稳脚跟。它们已成为现代模型发布的标准组成部分。过去,我介绍过推理模型的方法论(《理解推理 LLM》)以及相关研究论文(《LLM 推理的强化学习现状》和《LLM 推理模型推理现状》)。我甚至写了一本全新的 440 页书籍,介绍如何开发推理模型:《构建推理模型(从零开始)》。

图 2:我的新书《构建推理模型(从零开始)》。彩色版!

这些资源侧重于将传统 LLM 转变为推理模型。现在,在这篇文章中,我想聚焦并解释如何开发一个具有多种努力模式的推理模型,类似于本文开头图表所示。别担心,这篇文章可以独立阅读。不过,上述资源可能也很有趣且有用。

1. 推理模型的简要定义

在讨论几乎任何机器学习或 AI 技术或子领域时,一个经验法则是我们通常不应“按字面意思”理解技术术语。例如,机器学习与 AI 中的(人工)神经网络并非真的像人脑这样的生物神经网络那样工作。同样,当谈论“推理模型”时,我们不应期望这些模型真的像人类一样推理。

在 AI 和 LLM 研究的语境中,“推理模型”指的是输出中间推理轨迹的模型,这就像一个逐步处理问题或任务的中间响应。通过展示一个例子来解释这一点可能最容易。

图 3:传统 LLM 回答(左)与推理模型回答(右)的示意图。

2. 训练与推理扩展推理模型的简要概述

提升(推理)任务性能主要有两种方式:训练扩展和推理扩展。

图 4:训练扩展和推理扩展是提升 LLM 和推理模型问题解决能力的两种方式。图表基于《Learning to reason with LLMs》。

我们先简要谈谈训练。

2.1 训练推理模型

简而言之,DeepSeek-R1 提出使用可验证奖励强化学习(RLVR)训练 LLM,将其转变为推理模型。RLVR 是一种为可验证数据领域提供奖励信号(0=错误,1=正确)的技术。这里的可验证数据领域是数学(我们可以使用符号数学检查器,如 SymPy 或 WolframAlpha 来检查结果)和代码(我们可以使用编译器或单元测试,或像 LeetCode 这样的集成平台来检查正确性)。

图 5:RLVR 训练期间准确率奖励和格式奖励的示意图。

值得注意的是,推理轨迹本身并未用于训练或更新模型。尽管他们尝试使用这种中间响应信息进行训练,但 DeepSeek-R1 论文报告称这对模型训练没有帮助,因此最终未被使用。(是否以及如何通过过程奖励模型将中间推理轨迹纳入训练信号是一个活跃的研究领域。)

图 6:RLVR 期间忽略中间推理轨迹;只有最终答案和响应格式决定奖励。

2.2 “啊哈”时刻

无论如何,如图 7 所示,仅凭输出奖励进行训练就足以让模型学会如何推理一个问题,这意味着它会学会编写中间解释、回溯和自我纠正。这些模型意识到自己犯了错误并自我纠正的时刻被称为“啊哈”时刻。

图 7:一个“啊哈”时刻的例子,推理模型注意到其中间推理中的错误,并在生成最终答案前进行纠正。

顺便提一下,虽然 DeepSeek-R1 无疑是更受欢迎的论文,也是引发对可验证奖励强化学习和推理模型开发热情的论文,但还有另一篇论文,Kimi K1.5,于同一天(2025 年 1 月 22 日)发表在 arXiv 上。此外,RLVR 这个术语早在两个月前的 Tülu 3: Pushing Frontiers in Open Language Model Post-Training 中就已提出。

DeepSeek R1 最终成为更受欢迎论文的原因之一是它证明了推理行为可以通过纯强化学习(RL)实现。

图 8:DeepSeek-R1-Zero 直接将 RLVR 应用于预训练的基础模型,无需监督微调。

例如,Tülu 3 和 Kimi K1.5 是在监督微调(SFT)模型之上应用强化学习。DeepSeek-R1 模型也是从 DeepSeek-V3 基础模型的 SFT 检查点开始训练的,并且包含一个使用纯 RLVR 训练的 DeepSeek-R1-Zero 变体。R1 Zero 是比 R1 更弱的模型,但它表明 RLVR 足以教会模型生成和使用推理轨迹。

虽然 R1-Zero 更像是一个概念验证模型,但请注意,完整的 DeepSeek-R1 推理模型训练流程通常是多阶段的,并且如上所述稍微复杂一些。

图 9:更详细的推理模型训练流程。此图描绘了各种 DeepSeek-R1 模型。更多详情,请参阅我的另一篇文章:《理解推理 LLM》。

顺便提一下,当今大多数 LLM 实际上都是推理模型,这意味着它们已经使用某种形式的 RLVR 以类似于 DeepSeek-R1 的方式进行了训练。

2.3 推理扩展简述

除了通过训练改善推理行为之外,提升模型性能的另一个杠杆是推理计算扩展。简而言之,这意味着我们在模型训练后,在使用过程中花费更多计算资源以获得更好的答案。这本身就是一个完整的话题,你可以阅读我的《LLM 推理模型推理现状》以获取更详细的介绍:我将尝试总结以下作为背景信息最需要提及的内容。

首先,使用 RLVR 训练模型已经隐式地导致了一种推理扩展形式,因为推理模型在推理期间通常比传统 LLM 输出更多的 token,这意味着我们在推理期间花费了更多的计算资源。其次,我们可以通过推理努力级别进一步调整这个输出长度,但稍后会详细介绍。

第三,还有许多额外的推理扩展技术。一个流行的方法是自一致性,通常实现为多数投票的形式,即多次查询模型,并通过多数投票选择最终答案。

图 10:自一致性的一个例子,这是一种流行的推理扩展技术。这可以应用于传统 LLM 以及推理模型。此外,此方法可以按需使用,并作为推理训练的补充。一个很好的例子是 DeepSeekMath-V2,研究人员在推理模型(专门用于数学)之上应用了极端的推理扩展,以在具有挑战性的数学奥林匹克类型问题上达到最先进的性能。

图 11:两种推理扩展(自一致性和自我优化)一起使用以提高数学性能。图表改编自 DeepSeekMath-V2: Towards Self-Verifiable Mathematical Reasoning。

但同样,我将参考我的另一篇文章《LLM 推理模型推理现状》以了解其他技术的概述。

3. 思考 Token

你可能在之前的“啊哈时刻”图中看到过这些 token。我也在下面附上了相应的图,这样你就不必一直向上滚动。

图 12:推理模型中常见的格式化 token。

这些 <think></think> 标签在推理能力方面是装饰性的。它们不会让模型进行推理,也不是实现良好推理性能所必需的。可以在没有这些分隔符的情况下训练相同的模型,并且可能达到类似的基准测试性能。这些标签或 token 的主要目的是标记推理轨迹的开始和结束,以便训练流程或用户界面可以将其与最终答案分开,并可选地对用户隐藏。(像 ChatGPT 或 Codex 这样的用户界面通常会这样做。)

这里的要点是,这些 token 并没有赋予模型“思考”或推理或更好推理的能力。可以在没有此类 token 的情况下训练相同的模型,并达到类似的基准测试性能。字面字符串 <think></think> 也没有什么特别之处。另一对分隔符可以达到相同的目的。

顺便提一下,实现这一点的方式通常是在 RLVR 阶段添加一个格式化奖励。因此,不仅仅是根据答案正确性奖励模型,还会为使用这些 token 提供额外的奖励,这反过来鼓励模型使用它们。例如,在 DeepSeek-R1 中,总奖励计算为 R_total = R_accuracy + R_format,其中格式奖励是一个简单的基于规则的检查,鼓励模型将其推理放在 <think></think> 标签内。

4. 推理模式开关

第一代推理模型是专用的推理模型。我的意思是,有一个 DeepSeek-V3 基础模型和一个单独的 DeepSeek-R1 推理模型。无论提示是什么,R1 通常都会输出非常冗长的响应,使用大量 token,即使对于简单的提示也是如此。它也没有内置的选项来关闭推理模式。

图 13:推理模型非常冗长,即使对于最简单的提示也是如此。

后来的模型,如 Qwen3 等,尝试了混合方法,其中同一个模型可以像常规指令微调模型一样,也可以按需像推理模型一样运行。注意:一些模型开发者称之为“思考模式”,而另一些则称之为“推理模式”。这两个术语指的是相同的行为。

在 Qwen3 中,这是通过 tokenizer 使用 enable_thinking=Trueenable_thinking=False 来处理的。在底层,设置 enable_thinking=False 基本上会在助手响应的开头添加一个空的 <think></think> 部分,以关闭 Qwen3 的推理(“思考”)模式。

图 14:Qwen3 0.6B 推理模型在 thinking=Falsethinking=True 时的响应。(左侧界面中隐藏了空标签,因为它们是修改后的输入提示的一部分,而不是生成的答案。)

在训练期间如何实现这一点,使得模型在推理时支持这种切换,如上图所示?简而言之,正如 Qwen3 技术报告中所解释的,这种开/关行为主要是通过监督微调(SFT)引入的,然后在其最大的旗舰模型中的通用 RL 阶段得到强化。

例如,在通过长思维链 SFT 和推理 RL 训练初始推理模型之后,他们添加了一个“思考模式融合”阶段。在这个额外的 SFT 阶段,模型会看到思考和非思考的示例: /think: {reasoning} {answer} /no_think: {answer} 思考是默认行为,因此 /think 也可以省略。随后的通用 RL 阶段进一步强化了这种模式和格式遵循。这些 /think/no_think 标志是一个“软”开关。然而,前面提到的 enable_thinking=False 设置,在 False 情况下强制添加空的 <think></think>,则充当了一个“硬”开关。

图 15:Qwen3 训练流程中的“思考模式融合”,以实现推理模式的开启和关闭。

换句话说,tokenizer 不会将 /no_think 添加到查询中。它直接在助手响应的开头填入空的 <think></think> 部分。模型只看到生成的 token,并直接继续生成答案。

无论如何,这种开/关切换本质上是 GPT-5.6 等模型中推理努力级别的简化版本,我将在下一节中介绍。

5. “推理努力”设置如何工作

在本节中,我想简要概述不同的推理努力切换可能如何实现,这些切换已在 GPT 5 等模型中引入,并且现在几乎存在于所有旗舰模型中。具体来说,在本文开头,我展示了一张来自 Codex GPT 5.6 界面的图,该界面允许用户选择多个推理“努力”设置。

图 16:GPT-5.6 公开了六种推理努力设置,范围从 Light 到 Ultra。

以下小节将说明这些设置可能如何实现。然后,在下一节中,我将介绍一些与此主题相关的更有趣的研究论文。

5.1 推理努力与响应长度和质量

不幸的是,OpenAI 没有分享其努力设置的实现细节,但有一些证据可以用来进行有根据的猜测。例如,通过他们去年开源的 gpt-oss 模型(我在《从 GPT-2 到 gpt-oss:分析架构进步》中写过),我们知道 OpenAI 允许我们通过系统提示(“Reasoning effort: low/medium/high”)来切换推理努力设置,该提示会被添加到每个提示之前。

图 17:gpt-oss 聊天模板在将提示发送给同一模型之前,将选定的推理努力插入到系统消息中。

正如预期的那样,推理努力直接影响响应长度和准确性,如下所示。

图 18:gpt-oss 模型在不同推理努力下的响应长度和质量(来自模型卡的注释图)。

据推测,他们的 GPT 5 模型,包括最近的 GPT 5.6 模型,使用了类似的方法。顺便提一下,请注意上图中不同努力设置如何缩放响应长度。努力级别似乎与 token 使用量直接相关,而 token 使用量又似乎与准确性相关。也许可以提出超出“high”的努力设置,但我假设性能会在某个点饱和。这种饱和在 GPT 5.6 Sol 模型中更为明显,该模型也表明增加推理预算在某个点可能变得不经济。

图 19:推理努力增加了 API 成本和编码代理性能,在最高的 GPT-5.6 设置下收益递减。图表基于 Artificial Analysis Coding Agent Index v1.1。

另一个很好的、非常新的数据点是 Thinking Machine Labs 本周发布的 Inkling 模型,它展示了推理努力、token 使用量和基准测试性能之间的关系。

图 20:增加 Inkling 努力级别通常会增加生成的 token 和基准测试性能,但在更高努力下收益递减或不均匀。图表来自 Inkling 发布博客。

正如本节所讨论的,在推理期间,推理努力级别可以简单地通过系统提示来控制。(ChatGPT 用户界面可能只是将菜单选择映射到系统提示。)然而,这对于任意模型是行不通的,并且需要对训练流程进行某些修改,这将在接下来讨论。

5.2 可能的努力级别实现

虽然训练细节并未公开,无论是对于 GPT 5.6 还是开源的 gpt-oss 模型,通常,推理努力标签会在后训练期间包含在提示中。通常有两种方法可以实现这一点。

首先,我们可以将其作为 RLVR 过程的一部分来实现,并在使用不同系统提示时应用不同的长度惩罚。例如,当“Reasoning effort: low”时使用高长度惩罚,当“Reasoning effort: high”时使用轻微或无惩罚。

其次,我们可以在 RLVR 之后通过监督微调(SFT)对模型进行微调,使其遵循不同的努力指令。例如,在核心 RLVR 阶段之后和 SFT 期间,训练数据集中的提示与表现出所需推理量的目标响应配对。(目标可能由人类编写、由另一个模型生成,或生成后过滤。)

图 21:努力条件化 RLVR 和 SFT 的示意图。(这是一种可能的实现,并非 OpenAI 训练流程的确认描述。)

在这个 SFT 阶段,模型直接从训练示例中学习努力标签与目标推理长度之间的关联。基于 RL 的实现会将努力标签和预算感知奖励放在 RLVR 阶段内。这两种方法也可以结合,我怀疑 gpt-oss 和 GPT 5.6 都是这样做的(注意,GPT 5.6 中的努力设置可能只是针对给定用户查询更改系统提示)。

5.3 Inkling 案例研究

刚刚发布的 Inkling 技术报告给出了一个虽小但相对具体的努力级别训练示例。

图 22:Inkling 在 0.2 到 0.99 之间扫描连续的努力值;更高的努力通常会产生更长的响应和更高的基准测试分数。

在大规模 RL 期间,他们对每个样本做了两件事:

从概念上讲,奖励可能看起来像这样: R = R_accuracy - λ(e) * token_count 这里,e 是请求的努力级别,λ(e) 控制 token 惩罚。低努力使用更大的每 token 成本,鼓励更短的推理轨迹。高努力使用更小的每 token 成本,允许模型花费更多 token。

然后,在推理时,Inkling 会收到诸如“Thinking effort level: 0.8”之类的系统消息,并相应地调整其 token 使用量。Inkling 与 gpt-oss 和 GPT-5.6 等模型之间的区别在于,努力标签是 0 到 1 之间的连续数字,而不是像 low、medium、high 这样的序数标签。这使得 Inkling 的努力级别条件化主要发生在推理 RL 阶段,而不仅仅是后来的 SFT 阶段。不过,他们没有透露确切的奖励公式、token 成本系数,或者努力条件化是否也包含在 SFT 中。

5.4 关于推理扩展与训练扩展的简短说明

在进入推理努力论文之前,我想简要地将本节与之前的“2.3 推理扩展简述”部分联系起来。之前,我将扩展分为训练计算扩展和推理时扩展。GPT-5.6 界面提供了一个很好的方式来说明这种区别,如下所示。

在左侧,选择 Luna、Terra 或 Sol 会改变模型本身。粗略类比,这对应于训练计算扩展。这些是单独训练的模型。在固定的训练方案和数据集大小下,更大的模型需要更多的训练计算。它通常也需要每个生成 token 更多的计算。

在右侧,我们保持模型固定,只改变推理努力。这是推理时扩展。模型权重保持不变,但允许模型花费更少或更多的 token 来生成答案。

图 23:模型选择和推理努力菜单对应于两个不同的扩展轴。选择 Luna、Terra 或 Sol 会改变模型,而改变推理努力则会调整固定模型的推理时计算。

一个小术语注意事项是,从菜单中选择不同的模型并不是当时的训练扩展。训练已经发生。最好将模型菜单视为在具有不同训练规模的模型之间进行选择。下面的 Artificial Analysis 结果显示了这两个轴在实践中如何相互作用。每条蓝色曲线对应一个模型:Luna、Terra 或 Sol。通过增加推理努力沿着曲线移动是推理扩展。从一个模型曲线移动到另一个模型曲线对应于模型扩展,我在这里将其用作训练扩展的实际代理。正如预期的那样,两种方法都可以提高基准测试分数,但它们也增加了成本。更有趣的是,曲线重叠。例如,在更高推理努力下的较小模型有时可以达到与在较低推理努力下的较大模型相似的分数。

图 24:GPT-5.6 模型系列在 Artificial Analysis Coding Agent Index 上的训练扩展和推理扩展。沿着每条模型曲线移动对应于增加推理努力。跨越 Luna、Terra 和 Sol 曲线移动对应于选择不同的模型。

顺便提一下,此图中的 x 轴显示的是 API 成本,而不是原始计算量。API 成本是一个有用的实际度量,但它也取决于提供商的定价和生成的 token 数量。此外,这些曲线的确切形状是特定于基准测试的。

因此,模型大小和推理努力形成了两个独立的旋钮。我们可以使用更大的模型,增加推理努力,或者两者结合。哪种组合最佳取决于所需的准确性、成本和延迟。

到目前为止,这篇文章应该让你对推理努力模式如何工作以及如何实现有了相当扎实的理解。如果你时间有限,这里是一个很好的收尾点。否则,如果你想了解一些最近开源权重模型的一些细节,请继续阅读!

6. 额外内容:实现推理努力的不同方式(在旗舰开源权重 LLM 中)

[如果你对额外细节不感兴趣,可以跳过本节]

第 5 节描述了训练推理努力控制的两种可能方式,即努力条件化监督微调和具有不同 token 成本的强化学习。最初,我想介绍关于实现推理预算的替代方法的研究文章。然而,阅读了大部分这些文章后,它们似乎更像是概念验证,在实践中可能有效也可能无效。因此,我决定稍微调整方向,介绍最先进和著名的开源权重(旗舰)LLM 所使用的方案。对于这些模型,至少有证据表明这些方法在实践中有效。这留下了六个例子:DeepSeek V4、Nemotron 3 Ultra、Kimi K2.5、GLM-5、Qwen3 和 Inkling。它们的报告详细程度不同,但每个都贡献了一个有用的变体。(我排除了那些报告仅显示用户界面中的努力设置,但没有解释该行为是如何训练的模型。)

6.1 DeepSeek V4 训练独立的努力专家

让我们从 DeepSeek V4 技术报告开始,它描述了三种模式的使用:

图 25:来自 DeepSeek V4 文档的推理努力控制概览。

起初,这听起来像是一个简单的提示工程技巧,但这个提示实际上是由不同的训练设置支持的。也就是说,每种模式使用自己的上下文窗口和长度惩罚(不幸的是,本报告没有详细说明确切的长度惩罚实现)。Think Max 获得比 Think High 更长的上下文窗口和更小的长度惩罚,这给了它更多空间来继续推理。因此,系统指令选择了一种在后训练期间创建的行为。将相同的指令添加到任意模型不会产生相同的效果。

图 26:DeepSeek V4 在报告的不同部分描述了三种努力模式和更大的教师池。

教师池包含十多个领域专家。报告没有透露这些教师如何映射到 Non-think、Think High 和 Think Max。不幸的是,公开且非常详细的 DeepSeek V4 报告没有足够详细地连接推理模式和领域专家的描述,以重建确切的教师分配。然而,报告指出,支持不同推理努力级别的最终模型是通过从所述教师进行在线策略蒸馏创建的。

总结一下,DeepSeek V4 在后训练期间开发了三个推理专家。从基础模型开始,它应用监督微调,然后通过 GRPO 进行 RLVR。每种模式的 RL 配置不同。特别是,每个专家使用自己的上下文窗口和长度惩罚,而 Think Max 额外接收一个特殊的系统指令。然后,包括领域专家在内,不同的推理模式专家被蒸馏到一个支持所有三种努力模式的单一检查点中。

6.2 Nemotron 3 Ultra 结合了学习模式与硬预算

Nemotron 3 Ultra 技术报告描述了三种设置,称为 reasoning-off、regular 和 medium-effort,类似于上一节中的 DeepSeek V4。Medium-effort 是与 regular 相比更便宜的推理模式。NVIDIA 在 SFT 期间使用 GPT-OSS-120B 在其 medium-effort 模式下生成的示例引入这种模式,然后在 RLVR 期间进一步优化。大约 2.5% 的 RLVR 提示使用 medium-effort(这对应于应用于其奖励的基于长度的调整)。

6.2.1 在推理期间使用 Nemotron 推理预算

在推理时,所有三种模式都通过聊天模板选择。

图 27:通过聊天模板的 Nemotron 3 Ultra 推理设置(来自官方模型卡的示例)。

  1. Regular 是默认设置,使用 enable_thinking=True,这会使助手响应以 <think> 标签开头。
  2. Medium-effort 使用 enable_thinking=True 以及 medium_effort=True,后者还会将 {reasoning effort: efficient} 附加到最新的用户消息中。 顺便提一下,为了进一步复杂化,regular 和 medium-effort 模式也可以与单独的推理时推理预算结合。这个预算充当一个外部停止机制。在发布的实现中,聊天客户端要求模型在接近选定的 token 限制时结束推理轨迹。如果模型没有发出 </think>,客户端会关闭推理块并继续生成以产生最终答案。学习到的努力模式决定了模型如何使用其推理 token,而预算则限制了推理轨迹可以持续多长时间。这使得可以根据所需的成本和延迟,将任一模式与更紧或更松的预算配对。
  3. Reasoning-off 使用 enable_thinking=False,它会预填充一个空的 <think></think> 块(类似于第 4 节讨论的 Qwen3),以便模型直接进入最终响应。 因此,这些是聊天模板控制,而不是系统提示。
6.2.2 Nemotron 中的推理预算感知训练

上述推理控制由两个相关的 SFT 组件支持。第一个组件使用 GPT-OSS-120B 轨迹引入 medium-effort 行为,如前所述。第二个组件为硬推理预算准备模型。为了构建这个训练数据,作者采用常规推理轨迹,在随机选择的 token 预算处截断它们,并保留原始最终答案。插入的 </think> token 从 SFT 损失中屏蔽。结果,模型看到了这样的示例:它必须从完整的推理轨迹移动到答案,在推理块被外部关闭之后。Medium-effort 训练随后在 RLVR 期间继续。大约 2.5% 的 RL 提示在数学、STEM 和编码任务中使用 medium-effort 设置。报告指出,该模式可以通过奖励超参数进行校准,其中基于长度的奖励调整为成本-质量权衡提供了额外的控制。

图 28:Nemotron 3 Ultra 引入了使用教师生成的 SFT 数据、随机预算截断和 RLVR 期间的一小部分 medium-effort 子集的 medium effort。

6.3 Kimi K2.5 交替进行有预算和无约束的 RL

Kimi K2.5 技术报告讨论了一种称为 Token Efficient RL 的训练方法,用于降低推理努力。(虽然本周有 K3 的公告,但 K3 的推理努力方法并未公开披露,但它可能与 K2.5 类似或相关。)

6.3.1 Kimi 的 Toggle 方法

报告提到,固定的 token 预算可能会使推理模型过拟合短解决方案。这意味着模型变得更加简洁(即更快、更便宜),但它可能会失去从额外推理时计算中受益的能力,因此可能表现不佳。

图 29:提出的 Toggle 方法使 Kimi K2.5 在保持整体基准测试性能相似的同时,token 效率大大提高。注释图来自 https://arxiv.org/abs/2602.02276。

Kimi K2.5 的方法称为 Toggle,它在每固定数量的训练迭代中交替进行两个 RL 阶段:

  1. 有预算阶段,鼓励正确的解决方案保持在特定于问题的 token 预算内。
  2. 无约束阶段,恢复通常的最大生成长度,以便模型仍然可以从更长的解决方案中学习。 对于每个问题,预算从 RLVR 中正确 rollout 的响应长度的选定百分位数估计。然后,只有当该问题的平均准确率超过阈值时,预算约束才会被激活。这避免了在模型能够可靠地解决问题之前强迫其缩短推理。

图 30:Toggle 方法两个阶段的概述。

报告在 K2 Thinking 上评估了 Toggle,发现它减少了大约 25% 到 30% 的生成 token,而基准测试性能变化很小。相同的行为也从数学和编码 RL 任务迁移到了 GPQA 和 MMLU-Pro。Toggle 提供了一个具体的旗舰模型方案,用于训练更 token 高效的推理策略,同时保留其在测试时扩展的能力。

6.3.2 Toggle 在推理时改变了什么

Toggle 完全在 RL 训练期间运行。两个交替阶段更新相同的策略(即 LLM),最终的(统一)检查点没有预算与无约束的选择器。在推理时,生成的模型默认以思考模式运行。

然而,有趣的是,在我检查的一些 API(如 vLLM 或 SGLang)中,Kimi K2.5 本身公开了一个单独的二元选择,介于思考模式和即时模式之间。思考模式默认启用。即时模式通过官方 API 中的 thinking: {"type": "disabled"} 或通过 vLLM 或 SGLang 服务模型时的 chat_template_kwargs={"thinking": False} 禁用推理轨迹。然而,这些设置与 Toggle 是分开的。此外,官方 Kimi 报告没有为即时模式提供单独的训练方案。然而,K2.5 的 SFT 数据是使用早期的 K2 模型(产生直接响应,没有长推理)和 K2 Thinking(产生扩展推理轨迹)生成的。这可能使统一检查点暴露于两种响应格式,类似于上面 Nemotron 3 中所做的。在推理时,聊天模板通过预填充思考模式的开放标签或即时模式的空块来在它们之间进行选择。但同样,不幸的是,报告没有披露确切的数据混合或是否使用了额外的模式特定 RL。

较新的 Kimi K3 提供了更直接的推理时努力界面。当前的 Kimi Code 文档列出了三种设置:low、high 和 max,其中 max 是默认值。这些通过 reasoning_effort 参数传递。然而,Moonshot 尚未解释这三个努力级别是如何在训练期间创建的。其发布帖子称这些细节将出现在未来的 K3 技术报告中,所以我会持续关注。

6.4 GLM-5 通过 SFT 引入回合级和交错思考

GLM-5 技术报告将 GLM-4.5 引入的二元开/关思考开关扩展到多轮和工具使用场景。它描述了三种相关行为(而不是三个努力级别):

在推理时,回合级思考是实际的开/关开关。在 Z.ai API 中,思考默认启用,可以通过 thinking: {"type": "disabled"} 为单个请求禁用。托管的实现没有披露,但开放的 GLM-5 聊天模板显示了在使用 Transformers、vLLM 或 SGLang 自托管时的等效机制。当思考启用时,它以 <think> 开始助手响应;当禁用时,以 <think></think> 开始。后者立即关闭推理块,因此生成直接进入最终答案。

报告称,这些行为是在多任务 SFT 期间与更新的聊天模板一起引入的。在 SFT 之后,GLM-5 经历推理 RL、代理 RL 和通用 RL。最后一步在线策略蒸馏步骤使用前面阶段的检查点作为教师。这有助于最终模型恢复在顺序 RL 阶段可能减弱的能力。

图 31:GLM-5 训练流程。

6.5 Qwen3 使用模式融合和推理时截断

Qwen3 已经在第 4 节中介绍过,所以我只总结与此比较相关的部分。根据 Qwen3 技术报告,其后训练流程有四个阶段:长思维链 SFT、推理 RL、思考模式融合和通用 RL。思考模式融合是努力开/关开关的关键阶段。在这里,模型通过 SFT 在思考和非思考示例的混合上进行训练。/think 示例包含推理轨迹,而 /no_think 示例以空块开头,并附有简短答案。随后的通用 RL 阶段强化了两种行为的指令和格式遵循。

Qwen3 还支持硬思考预算。在请求的阈值处,推理跨度被停止,并在模型继续生成最终答案之前插入一个停止思考指令。报告称,这种部分推理行为没有经过明确训练。它在思考模式融合后出现。这给了 Qwen3 一个学习到的开/关开关加上一个推理时预算。它与 DeepSeek V4 和 Nemotron 的方案类似但更简单。

6.6 Inkling 在连续努力值上条件化 RL

Inkling 已经在第 5.3 节中讨论过。简而言之,其技术报告提到他们使用连续努力条件化(0.0 到 1.0 之间的值)而不是固定的努力标签。在相对较小的初始 SFT 阶段之后,Inkling 的大部分后训练来自具有超过 3000 万次 rollout 的异步 RL。所需的努力包含在系统消息中,并且 token 长度惩罚在 RL 期间根据该值进行调整。如前所述,更高的 token 成本鼓励更短的响应。更低的 token 成本给模型更多的推理空间。

6.7 已知方案的概述

下表总结了六份技术报告中实际记录的内容。

图 32:六种具有推理努力设置的开源权重模型的公开训练机制和推理控制比较。

因此,观察这六种不同的开源权重模型,它们有一个共同的框架。首先,它们通过 SFT 和聊天模板引入努力模式控制。Qwen3 明确混合了思考和非思考示例,而 GLM-5 添加了交错、保留和回合级思考模式。第二个共享组件是模式条件化 RL 阶段,其中上下文窗口和长度惩罚随请求的努力而变化。DeepSeek V4、Nemotron 3 Ultra 和 Inkling 使用了这种方法。第三个成分提高了在明确预算下的鲁棒性。Nemotron 在随机截断的轨迹上训练,Qwen3 可以从强制停止的推理跨度继续,而 Kimi 交替进行有预算和无约束的 RL。这些方法有助于在可用推理长度发生变化甚至被截断时保持答案质量。

7. 结论

本文中的开源权重示例通过几种不同的机制实现了推理努力。类似的标签可以由独立的专家、混合 SFT 数据、模式条件化奖励、硬 token 预算或这些方法的组合来支持。很难说哪种方法最好。这些模型在基础检查点、训练数据、后训练计算、基准测试和服务目标上有所不同。它们的报告也省略了受控比较所需的许多细节。(此外,可能没有一种万能的方法,适用于交互式助手的方法可能不适合长时间运行的编码代理。)

圣杯当然是自动努力选择。我们之前在 GPT 5 的 Auto 模式中看到过这一点。这是一个棘手的问题,最终,实现可能更多是失误而非成功,这就是为什么它从用户界面中被移除了(至少,我再也找不到了)。在不久的将来,我认为推理努力将仍然是一个明确的模型输入,通常通过系统提示传递。然而,围绕 LLM 的代理包装器/框架,或内部路由器,可能会越来越多地从任务状态和可用资源中自动推断出适当的模式和预算(当然,同时仍然允许用户覆盖)。

我仍然希望努力选择会变得更加自动化。类似于 GPT 5 的自动模式,一个廉价的模型或路由器可以根据请求、工具状态和剩余时间或 token 预算来选择模式,同时仍然允许用户覆盖。如果你想优化延迟或成本,或最大化性能,覆盖功能很有用。

我意识到这是一篇很长的文章,也许不是最引人注目的主题。但我认为,鉴于所有关于 LLM、推理模型和代理的讨论,对推理模型的审视是以前没有涵盖过的,我希望这是一个独特且有些有用的概述!

进一步资源

如果你想动手实现推理模型背后的核心训练方法,我的《构建推理模型(从零开始)》一书逐步介绍了可验证奖励强化学习和推理时扩展,并附有代码。本文侧重于训练好的推理模型如何支持不同的努力模式。这本书退一步,首先展示了如何将传统 LLM 转变为推理模型。它是《构建大型语言模型(从零开始)》的续篇,并从该书结束的地方开始。印刷版现已开始发货。

《构建推理模型(从零开始)》[Manning] [Amazon] 如果你喜欢我之前写的《构建大型语言模型(从零开始)》,这本质上是一本续篇,从头实现了推理时扩展技术和强化学习算法。

如果你想支持未来像这样的长篇文章,请考虑成为付费订阅者。这有助于我继续撰写这些独立的深度文章,并分享附带的代码、图表和实验。

译自 Ahead of AI · Sebastian Raschka · 录于 二〇二六年七月十九日