Appearance
10.4.2 为什么没有评测闭环的优化很容易“局部提升、整体退化”?
先给结论:没有评测闭环时,优化很容易只提升某一类问题,却在不知不觉中伤害其他问题。结果看起来“有进步”,但整体稳定性反而变差。
这是 RAG 调优里最常见的“假提升”现象。因为很多优化动作本身就带有取舍,如果没有回归评测,你很难发现:
- 哪一类问题变好了
- 哪一类问题变差了
为什么会出现“局部提升、整体退化”
最常见的原因是:
- 你优化了一个指标,却伤害了另一类问题
例如:
- 扩大
TopK提高了召回率,但噪声变多,生成质量下降 - 增加
Rerank提高了准确率,但延迟变大,部分场景体验变差 - 缩短上下文减少成本,却导致复杂问题漏条件
如果没有评测闭环,你很容易只看到:
- 某些案例变好了
却看不到:
- 其他问题已经退化
闭环的关键不是“多测几次”,而是“持续回归”
很多团队的“评测”只发生在优化前后的一次对比上。这样会造成:
- 你只能看到短期变化
- 不能发现结构性退化
真正的评测闭环,需要的是:
- 固定的基线集
- 关键问题的持续跟踪
- 版本之间的系统性回归比较
这和“做一次评测”是完全不同的。
没有闭环时,最常见的三种误判
误判一,看见分数提升,就以为系统更好
分数提升可能只代表:
- 某一类题提升了
而不是:
- 整体更稳了
误判二,只优化高频问题,忽略高风险问题
如果没有专门的评测集覆盖高风险问题,这类问题退化时你很难发现。结果是:
- 高频问题很好
- 关键风险问题变差
误判三,只看离线指标,不看线上反馈
离线评测集如果不持续回流真实问题,很容易变得“越来越理想化”,导致你以为系统稳定,实际用户体验下降。
闭环应该至少包含哪几层
一个最小可用的闭环通常至少需要:
- 固定的基线评测集
- 按错误类型分桶的指标统计
- 每次优化后的回归对比
- 线上失败样本的回流机制
这四层里任何一层缺失,都很容易出现“局部提升、整体退化”的假象。
一个简单的闭环工作流示意
python
loop = [
"run_eval_on_baseline_set",
"check_bucket_distribution_shift",
"apply_one_change",
"rerun_eval_and_compare",
"log_regressions_and_new_failures",
"add_online_failures_to_eval_set"
]这个示意的重点是:
- 每一次改动都回到同一套基线去验证
- 重点看结构变化而不是只看总分
为什么要强调“结构变化”
因为总分容易掩盖真实问题。举例:
- 简单题提升了 5 分
- 复杂题下降了 5 分
总分可能没变,但系统已经出现了结构性退化。只有分桶指标才能发现这种问题。
一个很实用的判断信号
如果你发现:
- 离线评测稳步上升
- 线上反馈却没有同步改善
这往往说明:
- 评测闭环缺失
- 或者评测集已经偏离真实问题分布
一句话总结
没有评测闭环时,优化很容易出现“局部提升、整体退化”。闭环的价值在于让你看到结构性变化,而不是只盯着某一次的分数提升。