Software Engineering Empirical Research Radar

LLM 修复成本预算

先算 token 和测试成本,再决定 pilot 尺度。

LLM repair 的钱主要花在两处:模型 token 和反复测试的机器时间。价格变化很快,正式跑之前必须重新查官方价格页;这里给的是预算方法和量级直觉。

Token 成本公式

cost_per_call =
  input_tokens / 1_000_000 * input_price_per_1m
  + output_tokens / 1_000_000 * output_price_per_1m

total_cost =
  bugs * arms * rounds * candidates_per_round * cost_per_call

量级例子

场景假设直觉成本
3-bug smoke3 bugs * 3 arms * 5 rounds,每轮 40k input + 4k output。便宜模型通常几毛到几美元;主要成本是调脚本。
Csv-1..16 pilot16 bugs * 3 arms * 5 rounds。可控,适合第一次真实信号判断。
50-bug pilot50 bugs * 3 arms * 5 rounds。如果用强模型,可能进入几十到几百美元量级。
854 active full run854 bugs * 3 arms * 5 rounds。强模型可能上千美元量级;必须先做 pilot、缓存和失败截断。

按公开价格快速估算

Example

40k input + 4k output 的一次调用

如果模型价格是每 1M input tokens 1.25 美元、每 1M output tokens 10 美元,则一次调用约为 0.04*1.25 + 0.004*10 = 0.09 美元。854 bugs * 3 arms * 5 rounds 约 12810 次调用,模型费约 1153 美元。更便宜的小模型可能低一个数量级,但 correct patch 率也可能下降。

正式预算请重新查官方价格页:OpenAI API pricing。如果用 DeepSeek、Claude、Gemini 或本地模型,也按同一公式填表。

降低成本的办法

先 smoke 后扩展

3 bugs -> 16 bugs -> 50 bugs -> full。任何阶段没有信号就停。

固定上下文截断

不要让某个 arm 因为塞更多文件而更贵也更强。所有 arm 用同一 token budget。

失败早停

编译失败、patch 无法 apply、重复 patch、明显测试删除都应早停并记 receipt。

缓存上下文

代码上下文、Ochiai top-k、diagnostic card、triggering tests 都可缓存;不要每轮重算。

分层测试

先 triggering tests,再 full tests。full tests 很贵,只有候选补丁值得时才跑。

小模型筛选,大模型确认

可以探索小模型生成候选、强模型复审,但这会引入新变量,主实验要谨慎。