什么是推理

Armin Ronacher 新闻

摘要

本文介绍了AI模型中推理链路的工作原理,讨论了其实现、隐藏和提取技术,并以GPT-OSS和DeepSeek等模型为例。

<p>几周前,<a href="https://arxiv.org/html/2608.09867v1">有一篇论文被分享</a>,展示了如何从闭源权重模型中提取推理链路。结合在线上关于如何诱骗模型泄露这些链路的讨论,我出于好奇心进行了更多研究。Twitter上似乎充斥着关于其工作原理的半真半假和混乱信息,因此或许这能帮助一些人理解正在发生的事情。</p> <h2>隐藏链路</h2> <p>推理链路通常对我们隐藏。<a href="https://earendil.com/posts/session-portability/">我们曾对此表示遗憾</a>,但多数情况下只能接受。开源模型则揭示了这些链路,从它们的行为可以看出,其链路可能冗长且令人困惑。这或许是将其与通常展示给用户的内容分开的一个好理由。</p> <p>至少,用户界面需要检测它们。业界成功地让推理链路听起来特殊而神秘,但它们实际上只是文本:模型被训练在最终答案前,将思考过程输出到草稿本中。</p> <p>GPT-OSS的Harmony响应格式让这一点显而易见:</p> <div class="highlight"><pre><span></span>&lt;|channel|&gt;analysis&lt;|message|&gt; I need to work this out ... &lt;|end|&gt;&lt;|start|&gt;assistant&lt;|channel|&gt;final&lt;|message|&gt; The answer is ... &lt;|return|&gt; </pre></div> <p>这些标记是特殊标记,但其间的推理过程使用与最终答案“相同的文本”(只是GPT的思维链文本听起来真的很有趣)。当模型采样到<code>analysis</code>通道标记时,解析器会将后续文本路由到通过Responses API暴露的单独流中。对于闭源模型,可能使用简单模型进行编辑和摘要。</p> <h2>推理预算</h2> <p>有多少预算用于推理?早期的API暴露了推理标记预算,使其看起来像是采样过程的一个属性。实际上,推理预算被内置在系统提示中。GPT-OSS在系统提示中放入:</p> <div class="highlight"><pre><span></span>Reasoning: low </pre></div> <p>仅此而已。训练产生了相应的行为,例如输出切换到<code>analysis</code>通道的标记序列。这也解释了为什么更改预算会使KV缓存失效。我认为闭源GPT模型称推理预算为“juice”,因为你可以询问大多数模型它们还有多少“juice”。</p> <p>在<a href="https://github.com/antirez/ds4">DwarfStar</a>中,针对DeepSeek的最大推理预算,会在系统提示中添加:</p> <div class="highlight"><pre><span></span>Reasoning Effort: Absolute maximum with no shortcuts permitted. You MUST be very thorough in your thinking and comprehensively decompose the problem to resolve the root cause, rigorously stress-testing your logic against all potential paths, edge cases, and adversarial scenarios. </pre></div> <h2>不要思考</h2> <p>因此,推理标记的目的地是一种学习到的惯例:模型被训练将草稿工作保留在<code>final</code>通道之外。诱骗它以为自己在该通道中,它可能会泄露标记。我们甚至看到旧模型在思考被禁用时,推理到bash工具并回显其思考到<code>/dev/null</code>。</p> <p>所以在某种意义上,某些模型唯一的“特殊”行为就是不思考。这有时通过“机械地”移除模型通常的思考方式来实现。在<a href="https://github.com/antirez/ds4">DwarfStar</a>中,禁用思考使用预填充<code>&lt;/think&gt;</code>,而启用思考使用<code>&lt;think&gt;</code>,这些是结束和开始思考的标记。GPT-OSS不进行预填充,而是让模型自行决定。</p> <p>但很可能,一些推理API在推理启用时预填充了开始标记,因此模型从不自行采样,并且在推理禁用时可能防止采样推理标记,因为它可以被轻易检测到。这可能解释了为什么<a href="https://gist.github.com/mitsuhiko/0904a3d89741e8e3bcca1ca93ea076de">自定义<code>think</code>工具</a>可以诱骗模型将某些推理放在不应去的地方——但仅在原生推理被禁用时。</p> <details><summary><small>有趣的是:这篇博文触发了安全检查</small></summary> <p>搞笑的是,由于安全过滤,我无法使用GPT 5.6 terra为这篇博文进行拼写和语法检查。不得不切换到Kimi。</p> <img src="/static/gpt-5.6-terra-spell-check.png" alt="GPT-5.6-terra拒绝为这篇博文进行拼写检查" style="width: 100%"> </details>
查看原文
查看缓存全文

缓存时间: 2026/08/20 03:32

# 什么是推理? 来源:https://lucumr.pocoo.org/2026/8/19/what-is-reasoning/ 发布于2026年8月19日 几周前,一篇论文(https://arxiv.org/html/2608.09867v1)展示了如何从闭源模型中提取推理痕迹。结合网上关于诱使模型泄露这些痕迹的讨论,我出于好奇进行了更深入的探究。Twitter上似乎充满了关于这一机制的半真半假和混淆信息,因此本文或许能帮助一些人理解其中原理。 ## 隐藏痕迹 推理痕迹通常对我们隐藏。我们曾对此表示遗憾(https://earendil.com/posts/session-portability/),但大多时候只能接受。所幸开源模型会揭示这些痕迹,从其行为可以看出,推理痕迹可能又长又令人困惑。这或许是将它们与通常展示给用户的内容分离的合理理由。至少,用户界面需要检测并处理这些痕迹。业界擅长让推理痕迹听起来显得特殊而玄奥,但它们本质上只是文本:模型被训练将思考过程输出到草稿本中,作为响应的一部分,然后再给出最终答案。 GPT-OSS 的 Harmony 响应格式使这一点一目了然: ``` <|channel|>analysis<|message|> 我需要推导一下... <|end|><|start|>assistant<|channel|>final<|message|> 答案是... <|return|> ``` 这些标记是特殊词元,但其中间的推理过程使用的是与最终答案“相同的文本”(只是 GPT 的思维链文本听起来相当有趣)。当模型采样 `analysis` 频道词元时,解析器会将后续文本路由到通过 Responses API 暴露的独立流中。对于闭源模型,推测是由一个简洁的模型进行编辑和摘要。 ## 推理力度 多少预算分配给推理? 早期的 API 暴露了推理词元预算,使其看似采样过程的一种属性。实际上,推理力度被写入系统提示中。GPT-OSS 在系统提示中这样设置: ``` Reasoning effort: max ``` 就是这样。训练产生了相应的行为,比如输出切换到 `analysis` 频道的词元序列。这也解释了为什么改变推理力度会使 KV 缓存失效。 我认为闭源的 GPT 模型将推理力度称为“juice”,因为你可以询问大多数模型它们还有多少“juice”。在 DwarfStar (https://github.com/antirez/dds4) 的 DeepSeek 最大推理设置中,系统提示会添加如下内容: ``` Reasoning Effort: Absolute maximum with no shortcuts permitted. You MUST be very thorough in your thinking and comprehensively decompose the problem to resolve the root cause, rigorously stress-testing your logic against all potential paths, edge cases, and adversarial scenarios. ``` ## 不要思考 推理词元的去向因此成为一个习得的约定:模型被训练将草稿工作保持在 `final` 频道之外。若诱使它误以为处于该频道,它可能会泄露词元。我们甚至见过旧模型在思考功能禁用时,会向 bash 工具输出推理过程,并将想法回显到 `/dev/null`。因此在某种意义上,某些模型唯一的“特殊”行为就是不去思考。这有时是通过“机械地”移除模型通常的思考方式实现的。 在 DwarfStar (https://github.com/antirez/ds4) 中,禁用思考使用预填充 `

相似文章

立场:推理是一种可学习的基于规则的过程

arXiv cs.AI

这篇立场论文认为,AI推理缺乏清晰的操作性定义,削弱了评估的有效性,并提出将推理定义为一种可学习的基于规则的过程,同时提供研究最佳实践的检查清单。

AI推理是否因错误的原因而正确?

Hacker News Top

《Quanta Magazine》的一篇文章探讨了AI推理研究的混乱现状,权衡了关于大型推理模型能力的相互矛盾的证据,以及它们的行为对真正推理意味着什么。

推理模型难以控制其思维链,但这其实是好事

OpenAI Blog

OpenAI的研究人员研究了推理模型是否能故意隐藏其思维链以逃避监控,发现当前模型即使知道自己被监控,也难以控制自己的推理过程。他们推出了CoT-Control,一个包含超过13,000个任务的开源评估套件,用于衡量推理模型中思维链的可控性。

从智能体轨迹中诱导推理原语

arXiv cs.AI

介绍推理原语诱导(Reasoning Primitive Induction)方法,该方法从成功的ReAct轨迹中挖掘,将重复出现的推理动作聚类为类型化的伪工具,在基准测试上比原始智能体高出数十个百分点。