高三教室里,小明和小红水平相当。一模考试,小明 40 分钟做完卷子就趴着睡觉;小红花同样的时间做完,再用剩下的时间逐题检查:把计算重新验算一遍、换一种解法确认结果、对拿不准的题多推演几步。二模成绩出来,小红比小明高出十几分。老师点评:不是小红突然变聪明了,而是她学会了「考试时多花时间检查」。 大模型也有同样的故事。传统模型拿到问题就像小明一样「秒交卷」——你说一句,它立刻回一句,从不回头检查。而测试时计算(Test Time Compute,简称 TTC)的理念是:同一个模型,在回答问题时多投入一些计算量——多推演几步、多尝试几个答案、多验证几遍——最终输出的质量就能显著提升。OpenAI 的 o1 模型就是这一思路的明星代表。 这篇文章会用「考试检查」这条线,带你完整理解 TTC:它是什么、计算花在了哪里、o1 是怎么做到的、收益有多大、怎么控制预算,以及它的代价和边界。

岗位关联

理解 TTC 是在不改变模型参数的前提下、用推理时的计算量换取答案质量的核心理念,是读懂 o1 等推理模型和前沿推理优化方案的关键。

目录
  1. 可视化演示
  2. 概念原理:考试时多检查几遍
  3. 实现方式:检查答案的三种姿势
  4. o1 模型:把检查练成本能的「考神」
  5. 性能收益:多花的力气值不值
  6. 预算控制:检查也要讲性价比
  7. 适用场景:哪些题值得检查
  8. 挑战局限:考试检查的代价
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示Best-of-N/树搜索/自迭代三种测试时计算策略、训练与测试扩展的权衡关系,以及边际递减效应与最优区间。

本节配有交互动效(进入视口后自动加载,约 3KB)。

'+_captions.strategies+'

概念原理:考试时多检查几遍

回到开头的小红。她为什么检查有效?因为她知道,自己第一次作答时可能粗心、可能漏条件、可能算错一步。检查不是重做一遍那么简单,而是把「会做的题」稳定地转化成「做对的题」。这个转化的关键,发生在考试进行中——而不是考试之前。

传统大模型的推理(Inference)流程就像「不检查的考生」:输入一句话,模型基于训练时学到的知识直接生成答案,整个过程一次性完成,没有回头路。训练阶段(Training)决定了模型「会多少知识」,而推理阶段只负责「把知识说出来」。长期以来,研究者把大部分算力都花在训练上,推理时则追求快、省。

测试时计算把注意力转向了推理阶段。它允许模型在生成答案之前、期间或之后,投入额外的计算资源:写一份推演草稿、生成多个候选回答、反复比对验证,最后才给出结论。这笔额外开销记为 C_test,与训练开销 C_train 合在一起,构成模型生命周期里的总计算量。TTC 的核心命题就是:在 C_test 上多花一点预算,不必改动 C_train,也能换来更高的答案质量。

所以 TTC 不是什么魔法,它把「考试时多检查」这件朴素的事搬到了模型身上。同一个模型、同一份训练数据,推理策略不同,最终表现可以差出好几个数量级。这正是它吸引人的地方——不动模型一根汗毛,只调整「交卷前的动作」,成绩就上去了。

Ctotal=Ctrain+Ctest\displaystyle C_{\text{total}} = C_{\text{train}} + C_{\text{test}}
通俗说:总计算开销 = 平时学习花的力气 + 考试时检查花的力气。TTC 就是在后半部分上做文章。
  1. 总计算量 C_total模型从训练到推理的全生命周期总计算开销,相当于「学习+考试」的全部精力投入。
    CtotalC_{\text{total}}
  2. 训练计算量 C_train平时「刷题学习」阶段消耗的算力,对应模型学习知识库的过程。
    CtrainC_{\text{train}}
  3. 推理计算量 C_test回答问题时额外「检查验算」投入的算力,是 TTC 关注的焦点。
    CtestC_{\text{test}}

实现方式:检查答案的三种姿势

小红检查试卷时,通常有三种姿势。第一种,沿着自己的解题过程重新读一遍,看每一步有没有漏洞——这叫「顺着看」。第二种,把同一道题用另一种方法完全重做一遍,两边答案一致才算放心——这叫「换着做」。第三种,做完所有题后,让旁边成绩更好的同学帮忙把把关——这叫「找外援」。

TTC 世界里正好对应三种主流实现方式。第一种是思维链(Chain-of-Thought):让模型把推理步骤一步步写出来,而不是直接跳到最后答案。写步骤的过程给了模型「自我发现」的机会,很多错误在书写过程中就被纠正了。第二种是多次采样 + 多数投票(Majority Voting):同一个问题让模型独立生成 N 个答案,统计哪个答案出现得最多,就选它。相当于让 N 个「平行时空的自己」各做一遍,以众数为准。第三种是验证器重排(Verifier Re-ranking):额外训练一个打分器,对多个候选答案逐一评分,挑分数最高的输出——这就是「找外援」。

多数投票的数学表达非常简洁:每个候选答案 y 的得票数等于所有采样结果中等于 y 的次数,最终选择得票最多的那个。

三种姿势可以叠加使用:先思维链写步骤,再多次采样扩大候选,最后用验证器挑最优。计算量花得越多,答案越稳——当然,前提是你知道怎么花。这就像小红检查时既顺着看、又换着做、还请了外援,自然比只盯着答案发呆的小明强得多。

y^=arg⁡max⁡y∈Y∑i=1N1[yi=y]\displaystyle \hat{y} = \arg\max_{y \in \mathcal{Y}} \sum_{i=1}^{N} \mathbb{1}[y_i = y]
通俗说:N 个答案中谁被重复得最多,就选谁。群众的眼睛是雪亮的。
  1. 每次采样 y_i模型第 i 次独立生成的回答,每次采样都从模型的概率分布中抽出一个结果。
    yi,i=1,2,…,Ny_i, \quad i = 1, 2, \dots, N
  2. 投票计数遍历所有候选答案 y,统计被多少样本选中。示性函数 1[...] 在条件成立时取 1,否则取 0。
    ∑i=1N1[yi=y]\sum_{i=1}^{N} \mathbb{1}[y_i = y]
  3. 众数结果在所有候选答案中,挑取得票数最高的那个作为最终输出。
    y^=arg⁡max⁡y(得票数)\hat{y} = \arg\max_{y} (\text{得票数})

o1 模型:把检查练成本能的「考神」

小红只是「会检查」,而真正的高手把检查练成了本能。考场上的顶尖学霸不会在每道题上都平均用力,他会快速判断题目难度,简单题直接过,中等题一边做一边验,压轴题则反复推演、尝试多条思路,甚至推翻重来。OpenAI 的 o1 模型,就是被训练出了这种「考试本能」的学霸。

o1 是第一个把测试时计算大规模产品化的前沿模型。普通大模型被训练成「看到问题立刻作答」,o1 则通过强化学习学会「多想一想再作答」。它在推理时会生成一段很长的内部思考轨迹(俗称隐藏思维链),包含多步推演、假设检验和回溯,最后只把结论呈现给用户。训练 o1 时,奖励函数会鼓励模型在推理过程中多探索、多验证——思考质量越高,最终答案越有可能正确,模型就越倾向采用这种思考策略。

从强化学习的视角看,o1 的优化目标是最大化思考轨迹对应的期望奖励,这里的奖励直接由最终答案是否正确决定。

o1 的意义在于证明了 TTC 不只是实验室里的技巧,而是一条可以产品化的道路。当你在屏幕上看到 o1 显示「正在思考……」时,你要知道,那不是卡顿,而是它的「检查时间」——它正在用训练阶段学到的考试策略,为你的问题付出额外的计算量。

J(θ)=Eτ∼πθ[R(τ)]\displaystyle J(\theta) = \mathbb{E}_{\tau \sim \pi_{\theta}} \left[ R(\tau) \right]
通俗说:模型的思考轨迹 τ 就像「检查过程」,奖励 R 就像「检查后的得分」。o1 被训练成总是选择得分期望更高的检查策略。
  1. 策略 π_θ参数为 θ 的模型,定义了生成各种思考轨迹的概率分布。
    πθ(τ)\pi_{\theta}(\tau)
  2. 轨迹 τ一次完整推理过程中的思维链加上最终答案,可以理解为「检查过程的完整记录」。
    τ=(CoT,answer)\tau = (\text{CoT}, \text{answer})
  3. 期望奖励对所有可能轨迹的奖励求加权平均,目标是找到让期望奖励最大化的策略参数。
    Eτ[R(τ)]\mathbb{E}_{\tau} [R(\tau)]

性能收益:多花的力气值不值

小红多检查半小时,真的能提分吗?答案是:能,但有边界。做口算题,检查 30 遍也不会让 1+1 变成别的数;做压轴大题,多检查几遍却可能从「毫无思路」变成「完整解出」。检查的价值,取决于题目本身值不值得检查。

TTC 的收益同样遵循这种「先快后慢」的规律。以小学数学应用题数据集 GSM8K 为例:直接作答(零额外计算)准确率约 50%;加上思维链,准确率提升到 70% 左右;再做多次采样与多数投票,可以接近 90%。但这个提升不是线性的——完成从 50% 到 90% 的跨越,只需少量额外计算;而想从 90% 提升到 95%,往往需要翻好几倍的计算量。经验上,准确率与推理计算量的关系可以近似写成一条指数饱和曲线。

这条曲线给我们的启示是:TTC 的投资回报率在最开始最高。对大多数实际系统来说,与其让模型「无限检查」,不如把预算花在刀刃上——用最少的额外计算拿到最大的提升,这和考试中「先把会做的题全部做对,再钻研难题」是一个道理。

Acc(Ctest)=90−50e−0.4Ctest\displaystyle \text{Acc}(C_{\text{test}}) = 90 - 50e^{-0.4 C_{\text{test}}}
通俗说:这是「收益递减」的数学形式——一开始投入回报大,越往后越接近天花板。
  1. 基础准确率当额外计算量为 0 时,准确率等于 90 - 50 = 40%,对应「直接作答」的基线水平。
    Acc(0)=90−50=40\text{Acc}(0) = 90 - 50 = 40
  2. 增长项随着测试时计算量 C_test 增加,指数项不断减小,准确率随之上升。
    50e−0.4Ctest50e^{-0.4 C_{\text{test}}}
  3. 天花板当计算量趋于无穷时,指数项趋近于 0,准确率收敛到 90% 的上限。
    lim⁡C→∞Acc(C)=90\lim_{C \to \infty} \text{Acc}(C) = 90

预算控制:检查也要讲性价比

考场上的时间就那么多,小红不可能对每道题都检查到最后一秒。聪明的做法是:先快速扫一遍卷子,把简单题直接拿下,把时间省给中难题;对压轴题,先花三分钟试一种思路,不行就换另一种;最后还剩五分钟时,不管有没有做完,都要停下来涂答题卡。这就是预算控制。

TTC 系统同样需要计算预算管理。如果对每个问题都无脑堆计算,成本会迅速失控,用户体验也会变得不可接受。常见的策略有三:一是按难度分配——用一个小模型或启发式规则预估问题难度,难题给更多采样次数;二是自适应长度——让模型根据推理过程的置信度决定何时停止继续思考;三是超时保护——设置硬性的计算量上限 C_max,一旦达到上限就强制终止,输出当前置信度最高的答案。实际工程中还有几条铁律:用小模型预估难度、把采样过程并发化、动态调整超时阈值,这些都能显著降低 TTC 的边际成本。

数学上,每个请求的预算可以写成难度估计值的线性函数,并受上限约束。

预算控制的本质是把「检查时间」当作一种稀缺资源来分配。同一个模型,预算分配得好,简单题秒答、难题深入思考,整体体验远胜于对每道题都「平均用力」。这也是 TTC 从论文走向工程必须要跨过的一道坎。

Ctest(x)=min⁡(Cmax⁡,  α⋅d(x))\displaystyle C_{\text{test}}(x) = \min \left( C_{\max}, \; \alpha \cdot d(x) \right)
通俗说:题目越难,允许的检查时间越长,但无论如何不能超过总预算 C_max。
  1. 难度估计 d(x)对输入问题 x 的困难程度打分,取值通常在 0 到 1 之间,1 表示极难。
    d(x)∈[0,1]d(x) \in [0, 1]
  2. 线性预算通过系数 α 把难度映射成计算预算,难度越高,分配的检查资源越多。
    α⋅d(x)\alpha \cdot d(x)
  3. 上限截断取预算与上限的较小值,保证任何请求都不会消耗超过 C_max 的计算量。
    min⁡(Cmax⁡,… )\min(C_{\max}, \dots)

适用场景:哪些题值得检查

如果整张卷子都是判断题和默写题,小红就算把检查时间用到极致,分数也纹丝不动。反之,如果卷子里有大量需要多步计算的大题,检查的价值就非常可观。所以「检查有没有用」首先要问:「题目是不是那种值得检查的题?」

TTC 最适合具有「可验证性」的任务——存在明确的标准答案,或者结果可以被自动检验。三类典型场景:数学推理(步骤可逆推、结果可验证)、代码生成(生成的程序可以运行单元测试)、复杂规划(多步决策可以模拟回放、检查每一步是否合理)。在这些场景里,思维链、多次采样、验证器都有用武之地。反之,在开放对话、创意写作、情感分析等主观任务上,TTC 的收益很小——没有一个「标准答案」存在,多算几遍并不能让故事变得「更正确」。

判断一个场景值不值得引入 TTC,可以计算投入产出比:每多花一份计算成本,能换来多少准确率提升。

用考试来类比就是:检查大题的收益远高于检查选择题。做 TTC 方案时,第一步不是调参数,而是先确认业务场景是否具备可验证性。选错了战场,付出再多计算量也是白费。

ROI=AccTTC−AccbaseCtest−Cbase\displaystyle \text{ROI} = \frac{\text{Acc}_{\text{TTC}} - \text{Acc}_{\text{base}}}{C_{\text{test}} - C_{\text{base}}}
通俗说:划算不划算,取决于「多花力气带来的分数提升」有多大。
  1. 准确率提升 ΔAccTTC 方案与基线方案的准确率之差,衡量「多检查」带来的收益。
    ΔAcc=AccTTC−Accbase\Delta \text{Acc} = \text{Acc}_{\text{TTC}} - \text{Acc}_{\text{base}}
  2. 额外成本 ΔCostTTC 方案与基线方案的推理计算量之差,衡量「多检查」付出的代价。
    ΔCost=Ctest−Cbase\Delta \text{Cost} = C_{\text{test}} - C_{\text{base}}
  3. 投入产出比 ROI每单位额外计算成本带来的准确率增益,ROI 越高越值得投入。
    ROI=ΔAccΔCost\text{ROI} = \frac{\Delta \text{Acc}}{\Delta \text{Cost}}

挑战局限:考试检查的代价

考试检查不是没有代价。小红有时候把对的答案改错了;有时候在一道难题上死磕太久,导致后面的简单题没时间做;有时候明明已经做完了,却因为反复检查而怀疑自己,把心态搞崩。这些「过度思考」的代价,TTC 同样存在。

TTC 的局限可以概括为四件事。成本:一次深思熟虑的推理,计算量可能是普通推理的 10 到 100 倍,直接反映在服务器开销和电费上。延迟:用户不会永远愿意等——你问一句「今天天气如何」,等一分钟才回复是不可接受的。过度思考:模型可能对简单问题反复摇摆,甚至把本来正确的答案改错,这也是为什么预算控制至关重要。验证依赖:TTC 的收益高度依赖任务可验证性,在没有标准答案的领域,思维链和投票都只是「自我感觉良好」。从 Scaling 角度看,边际收益随计算量增加而衰减。

理解了这些代价,才能真正用好 TTC。它不是免费的午餐,而是一笔需要精打细算的投资。就像小红最终学会了「看菜下饭」——简单题不过多纠缠,难题才全力投入——一个成熟的推理系统,应该把 TTC 用在值得的地方,并时刻守着预算这条生命线。进阶的学习路线,也自然沿着「可验证任务 → 预算控制 → 验证器训练 → 强化学习思考策略」层层深入。

ΔAcc(C)≈k⋅C−α\displaystyle \Delta \text{Acc}(C) \approx k \cdot C^{-\alpha}
通俗说:每多投入一份计算,带来的额外收益越来越小,这是 TTC 的物理天花板。
  1. 边际收益 ΔAcc在计算量 C 的基础上,再微小增加一点计算量带来的准确率增量。
    ΔAcc(C)\Delta \text{Acc}(C)
  2. 幂律衰减收益与计算量的负幂次成正比,C 越大,增益项越小。
    C−αC^{-\alpha}
  3. 衰减指数 αα 是大于 0 的常数,刻画收益下降的速度,α 越大衰减越快。
    α>0\alpha > 0

AI 应用场景

数学竞赛辅导系统

阶段:推理优化

解决的问题:传统大模型直接作答竞赛题的准确率偏低,经常在关键步骤出错;对同一道题反复「硬想」也得不到更好结果。引入 TTC 后,系统让模型先写出完整思维链,再多次采样候选解法,最后用验证器对每一步推理打分,选出最可靠的解答。这样即使模型本身没有变强,输出的正确率也会大幅提升。

具体案例:某在线数学学习平台接入推理模型后,将竞赛题解答正确率从 45% 提升到 85%。代价是平均响应时间从 2 秒增加到 20 秒,平台通过「简单题秒答、难题多思考」的预算控制策略,把整体体验维持在用户可接受的范围。

代码自动修复助手

阶段:推理优化

解决的问题:大模型生成的代码补丁经常无法通过编译或测试,传统做法是让工程师反复修改提示词。TTC 让模型一次性生成多个候选补丁,再用自动化测试作为「验证器」运行每个补丁,选出唯一通过测试的那个。

具体案例:某 AI 编程助手的 Bug 修复功能,从「生成 1 个补丁直接返回」改为「生成 10 个补丁并行跑测试,只返回通过的版本」,修复成功率提升了近一倍,误报率大幅下降。因为「能通过测试」这个验证条件天然适合 TTC,投入回报极高。

自动化运维智能体

阶段:推理优化

解决的问题:运维智能体在执行多步骤操作时,一步出错可能导致严重后果。TTC 让智能体在行动前先进行多轮「沙盘推演」——用思维链模拟每一步操作的结果,评估风险后再真正执行。

具体案例:某云计算公司的智能运维系统,在处理「磁盘扩容」这类多步任务时,先让模型规划完整操作序列,再对每一步做模拟验证;只有全部步骤通过模拟的任务才被真正执行。系统操作成功率从 60% 提升到 95%,危险操作次数下降 80%。

Python 演示

python57 行
# -*- coding: utf-8 -*-"""测试时计算模拟:多数投票与动态预算分配""" import randomfrom collections import Counter  class WeakModel:    """弱模型:不同难度题目的基础正确率不同"""     def __init__(self, acc_map):        self.acc_map = acc_map        self.wrong_pool = ["选项A", "选项B", "选项C", "选项D"]     def answer(self, question, difficulty):        """返回一个回答,可能正确也可能错误"""        if random.random() < self.acc_map[difficulty]:            return question        return random.choice(self.wrong_pool)  def majority_vote(model, question, difficulty, n_samples):    """多次采样 + 多数投票:用众数作为最终答案"""    votes = [        model.answer(question, difficulty)        for _ in range(n_samples)    ]    return Counter(votes).most_common(1)[0][0]  def assign_budget(difficulty):    """动态预算:难度越高分配越多采样次数"""    budget_map = {"easy": 1, "medium": 5, "hard": 30}    return budget_map[difficulty]  def evaluate(model, difficulty, n_samples, trials=500):    """统计指定难度和预算下的最终准确率"""    question = "标准答案"    hit = 0    for _ in range(trials):        if majority_vote(model, question, difficulty, n_samples) == question:            hit += 1    return hit / trials  def main():    model = WeakModel({"easy": 0.95, "medium": 0.60, "hard": 0.35})    print("难度     预算     准确率")    for difficulty in ["easy", "medium", "hard"]:        budget = assign_budget(difficulty)        acc = evaluate(model, difficulty, budget)        print(f"{difficulty:6s}  {budget:3d}次  {acc:7.2%}")  if __name__ == "__main__":    main()
目的:模拟「同一个弱模型 + 不同采样预算」的 TTC 效果,展示按难度分配计算预算时准确率的变化。
  1. self.acc_map = acc_map保存不同难度题目的基础正确率,相当于给不同「科目难度」预设答题水平。
  2. random.random() < self.acc_map[difficulty]以对应概率返回正确答案,否则从错误池中随机抽一个,模拟模型的「粗心错误」。
  3. Counter(votes).most_common(1)[0][0]统计所有候选答案,取出现次数最多的那个,实现多数投票。
  4. budget_map = {"easy": 1, "medium": 5, "hard": 30}简单题只采样 1 次,难题采样 30 次,体现动态预算控制思想。
  5. hit / trials用大量重复实验估计准确率,让随机波动的影响降到最低。

常见误区

误区我以为 TTC 就是让模型变得更大更强,多花计算是指训练更大的模型、用更多的参数。反正效果提升都来自「烧更多算力」。

正解完全不是一回事。TTC 不改变模型参数量,也不修改训练过程,它是在推理阶段多花计算——同一个模型、同样的权重,只是回答问题时多思考几轮、多采样几次。「考试时多检查」和「考前换个更聪明的脑子」是两种截然不同的策略。

为何常见:大家习惯把「效果提升」和「模型变大」绑定在一起,忽略了推理策略本身也是一项可以优化的变量。

误区反正多花计算就能提升性能,那所有任务都上 TTC 好了,简单问答、闲聊、写作文统统先把计算量拉满。

正解TTC 只对「有标准答案、结果可验证」的任务有效,比如数学推理、代码生成、多步规划。对开放对话、创意写作等主观任务,不存在「标准答案」,多算几遍也不会让回答变得「更正确」。

为何常见:看到论文里 TTC 让准确率翻倍,容易以为有普适性,忽略了那是特定可验证任务上的实验结果。

误区既然 TTC 有效,那就把预算拉满,采样 100 次一定比采样 10 次好。计算量翻倍,准确率也翻倍,何乐而不为?

正解收益曲线是「先快后慢」的指数饱和形态,计算量超过阈值后准确率提升趋近于零,甚至可能因为过度思考而轻微下降。采样太多不仅浪费算力,还可能引入「重复性错误」——模型会以同样错误的方式错很多次。

为何常见:多数投票的直觉是「次数越多越稳」,忽略了模型采样之间的错误是相关的,不是独立随机的。

误区o1 在推理时「即兴发挥」地思考,模型自己决定要思考多久、怎么思考,这种能力是推理时自然涌现出来的。

正解o1 的「思考策略」是训练阶段通过强化学习学出来的。它知道何时该多思考、何时该收手,是训练时用大量数据和算力打磨出来的行为模式,不是推理时随机出现的。推理阶段只是执行这套学到的策略。

为何常见:从用户视角看,模型确实在推理时「想」了很久,容易误以为思考能力是在线涌现的,忽略了背后的强化学习训练。

面试题

Q1. 测试时计算(TTC)发生在哪个阶段?

单选题 · easy

  • A.数据预处理阶段
  • B.模型训练阶段
  • C.推理响应阶段← 正确答案
  • D.模型评估阶段

答案:C。TTC 的核心是「推理时多花计算量」,发生在模型收到问题到输出答案的推理响应阶段。数据预处理、训练、评估都发生在推理之前,不涉及「回答问题时检查」的含义。

Q2. 下列哪项属于典型的 TTC 方法?

单选题 · easy

  • A.扩大训练数据
  • B.增加模型参数
  • C.采用思维链← 正确答案
  • D.提升学习率

答案:C。思维链(Chain-of-Thought)让模型在推理时写出详细步骤,是 TTC 的典型实现方式。扩大训练数据、增加模型参数属于训练阶段的改进,提升学习率是优化器参数,都与「推理时多花计算」无关。

Q3. 多数投票中,模型被要求回答同一个问题 11 次,结果 5 次输出 A、4 次输出 B、2 次输出 C,最终答案应该是什么?

单选题 · mid

  • A.随机选一个答案
  • B.最终选择答案 A← 正确答案
  • C.最终选择答案 B
  • D.最终选择答案 C

答案:B。多数投票取出现次数最多的答案,A 出现了 5 次、B 出现 4 次、C 出现 2 次,所以选 A。这就像让多个「平行时空的自己」各做一遍,以众数为准。

Q4. 设直接作答准确率为 50%,加思维链后 70%,再加多数投票到 85%,继续加大预算到 90% 后几乎不再提升。这最符合哪种规律?

单选题 · mid

  • A.准确率线性持续增长
  • B.计算量越大提升越大
  • C.边际收益逐渐递减← 正确答案
  • D.准确率与预算成反比

答案:C。准确率的提升幅度从 20 个百分点→15 个百分点→5 个百分点,说明边际收益在递减,最终趋平。虽然准确率总体上升,但绝不是线性增长,也不是「提升越大」。

Q5. 下列哪些场景更适合使用 TTC?

多选题 · mid

  • A.数学证明题← 正确答案
  • B.代码缺陷修复← 正确答案
  • C.开放型闲聊对话
  • D.多步任务规划← 正确答案

答案:ABD。数学证明、代码修复、多步规划都具有「可验证性」——有标准答案或可通过测试/模拟验证,TTC 收益大。开放闲聊没有标准答案,多算几遍不会让对话变得更「正确」。

Q6. o1 模型的「思考能力」主要来自哪一步?

单选题 · mid

  • A.推理时的随机搜索
  • B.训练阶段的强化学习← 正确答案
  • C.用户给出的思维链提示
  • D.更大的上下文窗口

答案:B。o1 的思考策略是训练阶段通过强化学习学出来的,奖励函数鼓励模型采用质量更高的推理轨迹。它不是推理时随机涌现的,也不是靠用户提示或更大的上下文窗口。

Q7. TTC 的常见实现方式包括哪些?

多选题 · mid

  • A.思维链逐步推理← 正确答案
  • B.多次采样加投票← 正确答案
  • C.增大模型参数量
  • D.验证器重排答案← 正确答案

答案:ABD。思维链、多次采样投票、验证器重排是 TTC 的三大主流实现方式,都发生在推理阶段。增大模型参数量属于改变模型本身,不属于 TTC。

Q8. 设计 TTC 计算预算时,需要权衡哪些因素?

多选题 · hard

  • A.问题本身的难度← 正确答案
  • B.用户可接受的延迟← 正确答案
  • C.推理计算的成本← 正确答案
  • D.训练数据规模大小

答案:ABC。预算控制的核心是根据问题难度分配计算量,同时受用户延迟耐受度和推理成本约束。训练数据规模是训练阶段的事,与推理预算无关。

Q9. TTC 与传统推理的核心区别是什么?

单选题 · easy

  • A.使用更大的模型
  • B.推理时投入额外计算← 正确答案
  • C.改用更小的学习率
  • D.增加训练的数据量

答案:B。TTC 与传统推理用同一个模型,区别只在于推理阶段是否投入额外计算量来检查、验证、改进答案。它不涉及模型规模、学习率或训练数据。

Q10. 当 TTC 计算量超过最优预算后继续增加,最可能发生什么?

单选题 · hard

  • A.准确率持续线性上升
  • B.准确率保持不变直到崩溃
  • C.收益递减甚至轻微下降← 正确答案
  • D.计算越多答案越简洁

答案:C。超过最优预算后,边际收益趋近于零,准确率曲线趋平;在极端情况下,过度思考可能把正确答案改错,导致轻微下降。这与「计算量越大越好」的直觉相反,所以预算控制才如此重要。