评估集作为模拟器的偏移:当离线指标提升而生产表现恶化时
LLM 产品中最昂贵的失败模式并不是一次糟糕的发布。而是连续六次好的发布——从内部所有计分板来看都是如此——而与此同时,用户的信任却在悄悄流失。离线评估分数在每个周五的演示中稳步上升。每周业务回顾中的 CSAT 曲线先是持平,然后下降,接着没人知道它是什么时候开始下降的,因为没人在交叉分析这两张图表。等到复盘总结(postmortem)点出问题时,团队已经花了两个季度的时间,针对一个在第三个月左右就不再符合现实的数据集来调优提示词(prompt)。
这就是“评估集即模拟器漂移”(eval-set-as-simulator drift),也是我所知道的一个最典型的例子:一群跳过了必读清单的 LLM 团队,正以极其惨痛的代价重新发现一个古老的机器学习教训。评估套件(eval suite)并不是一个固定的基准。它是一个模拟器,而一个从未根据它声称要预测的系统进行重新校准的模拟器,最终预测的将是另一个不同的系统。
样本如何变成固 定基准
每个评估集的生命都始于生产流量的一个样本。有人导出了最近的一千次对话,根据他们关心的失败模式进行了过滤,人工标注了值得评分的部分,并将结果提交到了仓库。在第一天,评估集是对用户实际提问以及理想答案是什么样子的忠实反映——尽管范围很窄。
然后,评估集有了名字、CI 任务和计分板。它产生的数字变成了提示词变更能否发布的关卡(gate)。负责提示词的团队现在有了强烈的动力——以及许多日常的小动力——去研究其特定的边界情况(edge cases)。他们注意到第 47 号示例因为某种特定的措辞而失败,于是他们修复了提示词以处理这种措辞。他们注意到套件中的 LLM 评委(LLM-as-judge)偏好列举要点(bullet points),于是下一次提示词修订就会使用更多的要点。这都不是不诚实的行为。每一个单独的改变都是对真实信号的合理反应。但累积起来,团队现在是在针对评估集优化系统,而不是针对用户——这就是 Goodhart 定律的强力版本:当你过度优化一个代理指标时,你真正关心的事物往往会变得更糟,而不仅仅是脱节。
与此同时,有三种力量正在悄悄使生产环境偏离那个冻结的样本:
- 用户行为漂移。 客户学会了智能体擅长什么、不擅长什么。第一个月的查询分布主要由探索性问题占据;到第六个月,它被简单问题无法覆盖的长尾边界情况所主导。在第一个月采样的评估集,现在测试的是错误的分布。
- 模型升级漂移。 每一次模型更换都会改变“用户发送的内容”与“系统响应方式”的联合分布。一个能更优雅地处理模糊提示词的模型会引来更多模糊的提示词。下一版本的评估集却在根据上一版本的流量模式进行评分。
- 概念漂移。 “我们的退款政策是什么?”的正确答案在政策变更的那天起就变了。那些基准真相(ground-truth)已经失效的评估项现在正积极地误导评分——学习了新政策的模型在针对旧政策编写的评估中失败了。这是推荐系统文献十年来经典的概念漂移问题,LLM 也没有特权豁免。
到第四个月,评估集只是一个移动目标的快照。到第六个月,快照和目标已成为统计学上不同的群体。到第八个月,支撑整个测试套件合理性的离线与在线相关性已经消失,而且没人费心去测量它。
三种失败模式的叠加
这三种力量中的任何一种单独存在都很糟糕。当它们叠加在一起时,就会产生复盘总结中出现的特定病态:一个离线指标完全是谎言的系统。这不仅仅是噪声——而是负相关。在套件中得分最高的发布版本,正是那些针对其边界情况调优最卖力的版本,而针对陈旧的固定基准进行过度调优,正是你向当前用户发布回归错误(regression)的捷径。
在基准测试领域你也能看到同样的模式。公共基准测试达到饱和并不是因为模型变得完美了,而是因为实验室学会了如何应对考试 。MMLU 在模型停止进步的数年前就已经无法区分前沿模型了。同样的动态也在内部上演:每个团队最终都会发布自己的 MMLU,每个团队最终都会在不知不觉中使其饱和——区别在于,公共基准至少会轰轰烈烈地退役,而内部评估套件只会默默地腐烂。
那些及早发现这一问题的团队都有一个共同习惯:他们测量差距,而不仅仅是分数。他们保留一个数值来表示离线评估分布与本周生产分布的差异程度——无论多么粗略,这是一个发散度指标(divergence metric)——并将其放在同一个仪表盘的分数旁边。差距才是承重的信号;分数只是其下游产物。如果分数上升的同时差距也在上升,这没有任何意义,仪表盘应该让这一点变得清晰可见。
“模拟器纪律”的具体表现
- https://hamel.dev/blog/posts/evals-faq/
- https://hamel.dev/blog/posts/evals/
- https://sohl-dickstein.github.io/2022/11/06/strong-Goodhart.html
- https://arxiv.org/pdf/2205.05256
- https://www.shaped.ai/blog/evaluating-recommender-models-offline-vs-online-evaluation
- https://en.wikipedia.org/wiki/Concept_drift
- https://gradientscience.org/platinum-benchmarks/
- https://www.latent.space/p/benchmarks-201
- https://venturebeat.com/infrastructure/monitoring-llm-behavior-drift-retries-and-refusal-patterns
- https://atalupadhyay.wordpress.com/2026/03/28/llm-observability-in-production-tracing-evals-cost-tracking-and-drift-detection/
- https://orq.ai/blog/model-vs-data-drift
- https://newsletter.pragmaticengineer.com/p/evals
- https://galileo.ai/blog/best-llm-output-drift-monitoring-platforms
