Appearance
如何证明优化真的有效:Ablation 与 Repeated Trials
前置:如何定位质量退化:Planner、Context 与 Regression Evaluation
核心问题:一个新机制让成功率从 80% 到 82% 时,怎样证明提升来自机制本身而不是随机噪声?
去掉 reranker 后成功率从 82% 变成 80%,只跑一次不能说明 reranker 没价值;模型随机性、provider latency 和样本顺序都可能造成波动。要判断某个机制是否真的贡献质量,需要 Ablation 控制变量 + Repeated Trials 报告分布,而不是拿两次单点结果下结论。
Ablation
Ablation 的目标是回答“某个组件到底贡献了什么”。一次只移除或替换一个因素,并保持 dataset、model、prompt、tool schema、runtime version 等其他条件不变。
例如要验证 reranker:
text
baseline: hybrid retrieval + reranker + top-8
ablation: hybrid retrieval + top-8如果同时换模型、改 prompt、调 chunk size,就无法把变化归因给 reranker。
Benchmark Noise / Repeated Trials
LLM 输出、外部服务 latency、采样和队列竞争都会让同一配置产生波动。小幅提升必须看重复试验后的分布,而不是两个单点。
假设 5 次试验得到:
| 配置 | Success | Avg Cost | p95 Latency |
|---|---|---|---|
| baseline | 82, 84, 81, 83, 82% | $0.42 | 18.1s |
| no reranker | 80, 81, 79, 82, 80% | $0.36 | 15.4s |
这时可以讨论“约 2 个百分点质量换来多少成本/延迟”,而不是说某一次 82 vs 80 就证明了因果。对差异很小的实验,应进一步报告方差/置信区间,并扩大样本或重复次数。
如何验证
选择一个你认为“明显有效”的组件,例如 reranker 或 compaction policy:
- 固定 dataset、model、prompt、tool schema 与 runtime version;
- 只移除这一项能力;
- 对 baseline 与 ablation 分别重复运行;
- 比较 success、cost、latency 的分布,而不是只看单次均值;
- 如果差异小于运行噪声,就不能把提升归因给该组件。
自测
- 一次实验新策略胜出 1/1 次,为什么不能证明优化有效?Repeated trials 要控制哪些随机因素?
- 做 ablation 时每次只去掉一个机制,能帮助回答什么因果问题?