17. Test-Time Compute / 推理时扩展是什么概念?为什么受到关注?

整理 Test-Time Compute 的基本概念及其受到关注的原因。

简单回答

Test-Time Compute(TTC)是指在推理阶段投入更多计算资源来提升模型表现的策略,典型方式包括生成更长的思维链、多次采样取最优(Best-of-N)、或使用搜索/验证机制。它受到关注是因为它开辟了一条新的 scaling 路径——在模型参数固定的情况下,通过"让模型多想一会儿"来提升效果,和传统的增大模型规模形成互补。

详细解释

传统 Scaling vs Test-Time Scaling

传统的 scaling 是在训练时扩展:更大的模型、更多的数据、更多的算力。效果遵循 Scaling Law,但成本增长极快(训练一个万亿参数模型需要几千万美金)。

Test-Time Compute 是在推理时扩展:模型参数不变,但在推理阶段花更多计算来得到更好的答案。这种 scaling 的边际成本更可控——只在需要的时候投入额外计算。

常见的 TTC 策略

第一类是延长思考(longer thinking)。让模型生成更长的思维链,更仔细地推理。Reasoning Model(o1、R1)本质就是在做这件事。thinking tokens 越多,答案质量通常越高,呈现出"推理时 Scaling Law"的趋势。

第二类是多次采样(Best-of-N / Self-Consistency)。对同一个问题采样多次,然后通过投票或用 verifier 选出最好的答案。这种方式简单但有效,尤其在有 verifier(如数学题可以验证答案)的场景下效果很好。

第三类是搜索与验证(Search + Verification)。类似 AlphaGo 的 MCTS(蒙特卡洛树搜索),在推理时做树搜索,每一步生成多个候选,用 reward model 或 verifier 评估,选最优路径继续。这是更重的方案,但在复杂推理任务上效果最好。

为什么受到关注?

第一,它提供了一条性价比更高的 scaling 路径。训练侧 scaling 的成本已经越来越高,而 TTC 可以让一个中等规模的模型通过"多想"达到大模型的效果。

第二,OpenAI 的 o1 系列用实际产品验证了这条路径的可行性:在数学、代码竞赛等场景,TTC 带来了巨大的性能提升。

第三,它让计算资源的分配更灵活。简单问题快速回答,复杂问题多花时间思考,不需要为所有请求都用最大的模型。

关键权衡

TTC 的效果不是无限增长的,也存在边际递减。多想 10 倍的时间不一定带来 10 倍的效果提升。而且 TTC 增加了延迟和推理成本,在延迟敏感的场景(如实时对话)中可能不合适。

面试时可以这样答

Test-Time Compute 的核心概念就是:模型参数固定,通过在推理阶段投入更多计算来提升效果。常见做法有三类:让模型生成更长的思维链、多次采样取最优、以及在推理时做搜索加验证。

它之所以受关注,主要是因为传统的训练侧 scaling 成本已经非常高了,而 TTC 提供了一条互补的路径。一个中等大小的模型通过"多想一会儿",在复杂推理任务上可以达到甚至超过更大模型的效果。o1 和 DeepSeek-R1 就是这条路线的代表。

但需要注意两点。第一,TTC 也有边际递减,不是想多久效果就能提升多少。第二,它增加了推理延迟和成本,在实时交互场景中不一定合适。所以实际应用中更理想的做法是做路由——简单问题快速响应,复杂问题才启用深度思考,动态分配计算资源。

常见追问

  1. Test-Time Compute 的"Scaling Law"是什么样的?和训练侧 Scaling Law 有什么不同?
  2. Best-of-N 采样中,怎么评判哪个答案是"最好的"?verifier 怎么训练?
  3. TTC 和 Agentic 方案(多步工具调用、自我反思)之间有什么联系?