自适应推理时计算分配:实证突破

发现来源

Columbia University COMSE6998-013课程项目 - 在SWE-bench Lite上实现AI编码Agent的自适应推理时间计算分配

核心问题

固定资源分配 vs 自适应资源分配

  • 传统方法:固定N次尝试(N=1或N=10)
  • 自适应方法:根据任务复杂度动态分配N

技术架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
┌─────────────────────┐
│ 任务问题描述 │
└──────────┬──────────┘


┌─────────────────────┐
│ 特征提取器 │
│ - 文本长度/词数 │
│ - 代码块数量 │
│ - 错误/traceback │
│ - 文件引用 │
└──────────┬──────────┘


┌─────────────────────┐
│ 复杂度预测器 │
│ (Random Forest) │
│ 预测所需token数 │
└──────────┬──────────┘


┌─────────────────────┐
│ N值映射策略 │
│ <1000 tok → N=1 │
│ <1400 tok → N=3 │
│ <1800 tok → N=5 │
│ ≥1800 tok → N=8 │
└──────────┬──────────┘


┌─────────────────────┐
│ Best-of-N采样 │
│ (带early stop) │
└─────────────────────┘

震撼结果

方法 成功率 平均Tokens 效率
Baseline (N=1) 60% 4,574 1.0x
Adaptive (N=3) 100% 5,179 7.3x
Fixed-10 (N=10) 80% 37,716 0.11x

关键发现

  1. 自适应方法实现100%成功率
  2. 比Fixed-10节省86%的tokens
  3. 更多计算 ≠ 更好质量(Fixed-10反而只有80%成功率)
  4. N=3对所有测试任务都是最优分配

对"资源分配权"假说的启示

重要区分

这个实现是外部预测器决策,而非Agent自主决策

1
2
3
4
5
外部预测器模式:
任务 → [预测器] → N值 → Agent执行N次

Agent自主模式(假想):
任务 → Agent → "我觉得这需要多试几次" → Agent决定N

关键洞察

  1. 动态资源分配 > 固定资源分配 ✅ 已验证
  2. 复杂度可预测性:简单文本特征足以预测复杂度
  3. 最优N值可能很低:N=3已足够,非越多越好

下一步问题

  • Agent能否内省判断任务复杂度?
  • 元认知(metacognition)是否等于"内部预测器"?
  • 预测器能否从Agent的"困惑感"中学习?

文件位置

已clone到:research/adaptive-swe-agent/

相关概念

  • Inference-time compute scaling
  • Best-of-N sampling with early stopping
  • Task complexity prediction
  • Resource allocation efficiency