<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Test-Time Compute on Chico's Tech Blog</title><link>https://realtime-ai.chat/tags/test-time-compute/</link><description>Recent content in Test-Time Compute on Chico's Tech Blog</description><image><title>Chico's Tech Blog</title><url>https://github.com/chicogong.png</url><link>https://github.com/chicogong.png</link></image><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 12 May 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://realtime-ai.chat/tags/test-time-compute/index.xml" rel="self" type="application/rss+xml"/><item><title>推理模型这一年:o3 之后学到了什么</title><link>https://realtime-ai.chat/posts/reasoning-models-2026/</link><pubDate>Tue, 12 May 2026 10:00:00 +0800</pubDate><guid>https://realtime-ai.chat/posts/reasoning-models-2026/</guid><description>从 o1、o3 到 2026 年,推理模型把 test-time compute 变成可调旋钮。这一年大家学到的是:思考有成本,不是所有任务都值得想。</description><content:encoded><![CDATA[<p>让模型回答之前先&quot;想一会儿&quot;,这件事确实有用。</p>
<p>2026 年 4 月有一篇论文,标题直接叫《When More Thinking Hurts》(想多了反而坏事)。里面有个例子我印象很深:让一个大推理模型算&quot;9900 加 1&quot;,它居然烧掉了几千个思考 token,中途还一度把正确答案推翻又改回来。一道小学一年级的题,被它想成了奥数。</p>
<p>这就是推理模型这一年的缩影。o1 出来的时候,大家的第一反应是&quot;哇,会思考了&quot;;到了 2026 年,大家学到的是另一句话——<strong>思考是要花钱的,而且大部分时候,你根本不需要它想那么多</strong>。</p>
<h2 id="推理模型到底改了什么">推理模型到底改了什么</h2>
<p>先把概念说清楚。</p>
<p>传统 LLM 的算力几乎全花在训练上。模型训完,推理(inference)时就是一次前向计算,吐 token,快进快出。你给它一道难题,它&quot;脱口而出&quot;——答得对不对,基本取决于训练时见过没见过类似的东西。</p>
<p>推理模型动的是另一处:<strong>test-time compute</strong>,推理时算力。它在真正回答你之前,先在内部生成一长串&quot;草稿&quot;——拆解问题、试不同思路、自我检查、推翻重来。这串草稿就是所谓的思考过程(chain-of-thought)。你看到的最终回答可能只有三句话,但背后它可能写了一万五千个 token 的内心戏。</p>
<pre class="mermaid">flowchart LR
  Q[你的问题] --> A{普通模型}
  A --> A1[直接吐答案]
  Q --> B{推理模型}
  B --> B1[内部草稿<br/>拆解·试错·自检] --> B2[最终答案]
  style B1 fill:#fde7c2,stroke:#e8b23c
</pre><p>这个改动的意义在于:模型的能力第一次变成了<strong>可以用算力买的</strong>。同一个模型,让它多想,它在数学、代码、逻辑题上的准确率就实打实地往上走。OpenAI 当初说 o3 在真实世界的难题上比 o1 少犯约 20% 的重大错误,靠的不是换了更大的底座,很大程度上就是想得更久、更会想。</p>
<p>从 o1 到 o3、o4-mini,再到 Gemini 2.5 的 thinking、Claude 的 extended thinking、DeepSeek R1、Qwen 3 的思考模式——2026 年你能叫得出名字的主力模型,基本都带&quot;会思考&quot;这一档。test-time compute 从一个研究概念,变成了产品标配。</p>
<h2 id="这一年学到的思考不是免费的">这一年学到的:思考不是免费的</h2>
<p>如果故事到这里就结束,那这篇文章没什么好写。问题恰恰在于——<strong>让模型多想,代价大得超出很多人的预期</strong>。</p>
<p>代价有三笔,都很实在。</p>
<p><strong>第一笔是 token,直接对应钱。</strong> 思考过程里的每一个 token,几乎都按输出价计费。一次普通的 extended thinking 请求,思考部分烧掉五千到两万 token 很常见,加上最终回答,单次成本可能从几分钱跳到三四毛人民币。你界面上看不到这些草稿,但账单上看得到。2026 年有个被反复引用的说法:前沿模型那个&quot;推理强度&quot;旋钮,从低档拉到高档,准确率大概能涨 8 到 22 分,但费用会膨胀 4 到 17 倍。</p>
<p><strong>第二笔是延迟。</strong> 同一个旋钮,延迟能拉长 5 到 60 倍。好消息是绝对值在变好——2025 年初,思考模型动不动想 30 秒到 2 分钟;到 2026 年初,o4-mini、Gemini Flash Thinking 处理大多数推理任务能压到 3 到 15 秒。但 3 到 15 秒,对一个要&quot;对话感&quot;的产品来说,依然是灾难。你没法让用户盯着转圈等模型憋一道并不难的题。</p>
<p><strong>第三笔最阴险:想多了真的会把答案想错。</strong> 这不是玄学。前面那篇论文给的结论很硬:延长推理常常和&quot;放弃了原本正确的答案&quot;绑在一起。模型想着想着,把对的推翻了。在简单任务上尤其明显——标准模型一步到位答对,推理模型绕一大圈,既慢又贵,还更容易错。</p>
<table>
  <thead>
      <tr>
          <th></th>
          <th>普通模型</th>
          <th>推理模型(高思考档)</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>首 token 延迟</td>
          <td>数百毫秒</td>
          <td>数秒到数十秒</td>
      </tr>
      <tr>
          <td>单次 token 成本</td>
          <td>基准</td>
          <td>基准的 4–17 倍</td>
      </tr>
      <tr>
          <td>简单任务准确率</td>
          <td>高</td>
          <td>可能更低(过度思考)</td>
      </tr>
      <tr>
          <td>难题准确率</td>
          <td>一般</td>
          <td>明显更高</td>
      </tr>
      <tr>
          <td>适合场景</td>
          <td>高频、对话、抽取</td>
          <td>低频、难、可离线</td>
      </tr>
  </tbody>
</table>
<p>把这张表盯久一点你会发现:推理模型不是&quot;更强的普通模型&quot;,它是一个<strong>取舍完全不同的工具</strong>。强在难题,弱在日常。</p>
<h2 id="什么任务该用什么任务别用">什么任务该用,什么任务别用</h2>
<p>这是这篇文章最想讲的部分,因为踩坑的人太多了。</p>
<p>我的判断很简单:<strong>默认用普通模型,只在被证明需要时才升级到推理模型。</strong> 顺序别反过来。很多团队上来就把所有请求挂到推理模型上,觉得&quot;反正更聪明&quot;,结果账单爆炸、延迟爆炸,用户体验还更差。</p>
<p>具体怎么分?我按&quot;这道题需不需要多步推演&quot;来切。</p>
<p><strong>该用推理模型的:</strong></p>
<ul>
<li>数学、竞赛题、需要严格推导的逻辑题——这是它的主场,22 分的提升花 17 倍的钱也值。</li>
<li>复杂代码任务:跨多个文件的重构、根据一段模糊描述推断完整实现、调一个需要顺着调用链想的 bug。</li>
<li>多步规划:把一个大目标拆成一串带依赖的子任务,Agent 的&quot;想清楚再动手&quot;那一步。</li>
<li>别人会拿你的输出去仔细核对的场景——反正要花人力 review,模型多花几秒想清楚是划算的。</li>
</ul>
<p><strong>别用推理模型的(普通模型完全够):</strong></p>
<ul>
<li>分类、打标签、情感判断、意图识别——一步到位的判别任务,让它&quot;思考&quot;纯属浪费。</li>
<li>信息抽取、格式转换、把一段文本改写成 JSON。</li>
<li>闲聊、客服话术、陪伴类对话——这些要的是快和自然,不是深。</li>
<li>摘要、翻译这类&quot;理解 + 复述&quot;的活儿。</li>
<li>任何高频、对延迟敏感、用户在等你回话的链路。</li>
</ul>
<p>有个反例特别值得记:实时语音对话。我之前写过语音 Agent 的延迟预算,从用户说完到 AI 出声,及格线是 500 到 900 毫秒。一个动不动想 5 秒的推理模型,直接出局——它不是慢一点,是把整个产品形态打碎了。语音链路上要么用普通模型,要么把推理模型藏到后台异步去跑,绝不能放在用户等待的关键路径上。</p>
<pre class="mermaid">flowchart TD
  T[一个请求进来] --> Q{需要多步推演吗}
  Q -->|否:分类/抽取/闲聊/摘要| M1[普通模型<br/>快·便宜]
  Q -->|是:数学/复杂代码/规划| M2{延迟敏感吗}
  M2 -->|是| M3[推理模型·低思考档]
  M2 -->|否| M4[推理模型·高思考档]
  style M1 fill:#d6ebd6,stroke:#5fa55f
  style M3 fill:#fde7c2,stroke:#e8b23c
  style M4 fill:#fde7c2,stroke:#e8b23c
</pre><p>注意这张图最后还分了一档。&ldquo;该用推理模型&quot;不等于&quot;该拉满&rdquo;——这就引出下一节。</p>
<h2 id="思考预算可调成了标配然后呢">&ldquo;思考预算可调&quot;成了标配,然后呢</h2>
<p>2026 年最重要的工程变化,不是某个模型又强了多少,而是<strong>思考的量,从开发者手里交了一部分回给模型自己</strong>。</p>
<p>早期的 extended thinking,你得手动设 <code>budget_tokens</code>,告诉模型&quot;最多想这么多&rdquo;。这玩意儿很难调:设小了难题想不透,设大了简单题被过度思考反噬。你得对着每一类任务反复试。</p>
<p>新一代的做法变了。Claude 在 4.6 这一代把固定预算的 extended thinking 标成了 deprecated,换成 Adaptive Thinking——模型自己判断这题要不要想、想多深,简单问题秒回,复杂问题才深挖。OpenAI 的 o 系列、Gemini 的 thinking 模式给的是 <code>reasoning_effort</code> 这种&quot;高/中/低&quot;的强度档。Qwen 3 更直接,一个开关切&quot;思考模式&quot;和&quot;非思考模式&quot;。形式不同,内核是一个意思:<strong>思考量变成了一个旋钮,而且默认应该让模型自适应</strong>。</p>
<p>这件事对工程的影响,我觉得有三点值得说。</p>
<p><strong>第一,选型粒度变细了。</strong> 过去选模型是&quot;用 A 还是用 B&quot;,现在是&quot;用 A 的哪一档&quot;。一个模型族内部就能覆盖从&quot;便宜快&quot;到&quot;贵而强&quot;的一大段。这意味着你的系统里不该只有一个固定配置,而该有一个<strong>按任务路由思考强度</strong>的策略层——简单任务走低档甚至关掉思考,难任务才放开。</p>
<p><strong>第二,成本和延迟从&quot;基本固定&quot;变成&quot;高度可变&quot;,可观测性必须跟上。</strong> 同一个接口,这次请求 800 毫秒、下次 12 秒,这次两分钱、下次三毛,都正常。你必须把思考 token 数单独打点监控,否则某天账单翻五倍你都不知道是哪类请求干的。我的建议是:思考 token 当成一类独立指标,和普通输出 token 分开看。</p>
<p><strong>第三,别太迷信&quot;自适应&quot;。</strong> 模型自己决定想多深,方向是对的,但它对&quot;这题难不难&quot;的判断并不总是准——开头那个把加法想成奥数的例子就是证据。所以稳妥的做法是给自适应<strong>加一道硬上限</strong>:用 <code>max_tokens</code> 卡死最坏情况,既防失控成本,也防它越想越歪。让它自适应,但别让它无限自适应。</p>
<h2 id="写在最后把想多久当成一个设计决策">写在最后:把&quot;想多久&quot;当成一个设计决策</h2>
<p>推理模型这一年,最大的收获其实是一句很朴素的话:<strong>思考不是越多越好,是要恰好够用。</strong></p>
<p>o1 刚出来时,行业的潜台词是&quot;模型终于会思考了,以后让它多想就对了&quot;。一年下来,这个叙事被修正得很彻底。多想会变贵、会变慢、在简单任务上甚至会变笨。真正成熟的用法不是&quot;全都拉满&quot;,也不是&quot;全都关掉&quot;,而是把&quot;这个请求该想多久&quot;当成一个<strong>和选模型同等重要的设计决策</strong>。</p>
<p>如果你 2026 年在搭一套 LLM 系统,我会建议你这样排优先级:先默认用普通模型,把延迟和成本压在地板上;再把那些真正需要推演的任务挑出来,升级到推理模型;最后给推理那部分配上强度路由和硬上限,让它在&quot;够聪明&quot;和&quot;别失控&quot;之间待着。</p>
<p>会思考是能力,知道什么时候不该思考,才是工程。</p>
]]></content:encoded></item></channel></rss>