⏱️

Test-Time Compute

测试时计算 / 推理时计算

📖 什么是Test-Time Compute?

Test-Time Compute(测试时计算)是指在模型推理阶段增加计算量来提升输出质量的技术。与传统的「训练时堆算力」不同,这里是在回答问题时多花时间思考

代表应用:OpenAI o1的"think before answering"、DeepSeek-R1的推理时搜索、各类CoT扩展方法。

💡 一句话理解

🧠 比喻

「考试时多算几遍」

以前考试靠平时练得多(训练时计算);现在考试时可以多算几遍草稿(测试时计算),想好了再填答案。做数学题时多检查几遍,正确率自然更高。

🆚 训练时计算 vs 测试时计算

🏋️ 训练时计算

时机:模型训练阶段

目标:学习知识

成本:一次投入

效果:提升模型能力

例子:预训练、微调

⏱️ 测试时计算

时机:每次推理时

目标:提升输出质量

成本:按次计费

效果:提升特定任务表现

例子:CoT、Best-of-N

⚙️ 主要技术方法

🧠 Chain-of-Thought

逐步推理

🎯 Best-of-N

生成多个选最优

🔍 Self-Consistency

多次采样取共识

📝 Self-Refine

自我修正迭代

🌳 Tree-of-Thought

思维树搜索

🔄 Verifier-guided

验证器引导

📊 效果对比

# 数学题正确率 (GSM8K benchmark)

GPT-4 (标准推理):          ~92%
GPT-4 + CoT:               ~95%  (+3%)
GPT-4 + Best-of-N(100):    ~97%  (+5%)

OpenAI o1 (测试时多计算):  ~96% (但用更小的模型!)

# 关键洞察:
# - 小模型 + 大量测试时计算 ≈ 大模型
# - 成本可灵活控制(按需增加计算)
# - 适合需要高质量答案的场景

💻 代码示例:Best-of-N + Verifier

import openai

def best_of_n_with_verifier(prompt, n=10):
    """生成N个候选答案,用验证器选最优"""
    
    # 1. 生成N个候选
    candidates = []
    for _ in range(n):
        response = openai.chat.completions.create(
            model="gpt-4",
            messages=[{"role": "user", "content": prompt}],
            temperature=0.8,  # 较高温度增加多样性
        )
        candidates.append(response.choices[0].message.content)
    
    # 2. 用验证器评估每个候选
    best_answer = None
    best_score = -1
    
    for candidate in candidates:
        # 验证器判断答案质量
        verify_prompt = f"""问题: {prompt}
候选答案: {candidate}
请给这个答案打分(0-10),判断正确性和完整性:"""
        
        score_response = openai.chat.completions.create(
            model="gpt-4",
            messages=[{"role": "user", "content": verify_prompt}],
            temperature=0,
        )
        
        # 提取分数
        score = extract_score(score_response.choices[0].message.content)
        if score > best_score:
            best_score = score
            best_answer = candidate
    
    return best_answer

# 使用:测试时计算 = N次生成 + N次验证
answer = best_of_n_with_verifier("解方程: 2x + 5 = 13", n=10)

🎯 适用场景

  • 数学推理:多算几遍,确保正确
  • 代码生成:生成多个方案,选最优
  • 重要决策:深思熟虑比快速响应更重要
  • 安全关键:医疗、法律等领域
  • 竞赛题目:追求极致正确率

⚠️ 权衡考虑

💰 成本增加

N倍计算量

延迟增加

响应时间变长

📈 边际递减

N越大提升越小

🎯 按需使用

关键任务才启用

📖 相关导航

← 返回术语百科 | 首页 | 文章 | 专题