评估集衰退:为什么你的基准在构建六个月后会变得具有误导性
你花了三周时间精心整理一套高质量的评估集。你编写了测试用例来覆盖产品经理担心的边缘情况,从内测用户中采样了真实查询,并得到了一个团队认可的准确率数字。六个月后,这个数字仍然出现在每周的仪表盘上。你刚刚发布了一次在评估中表现出色的模型更新,用户却在提交工单。
问题不在于模型退步了。问题在于你的评估集几个月前就已经不再代表现实——而没有人注意到。
这种失败模式有个名字:评估集衰退。它几乎发生在每一个生产AI团队身上,而且几乎从不会在用户行为中出现可见损失之前被发现。
评估集衰退的真实面貌
评估集是你构建它时用户分布的冻结快照。真实流量并不是冻结的。用户会演变他们表达请求的方式。新的使用场景会涌现。在你的内测用户群中不存在的边缘情况,在你的大规模发布用户群中变得普遍。你的产品定位发生变化,吸引了具有不同期望的不同用户画像。
你的静态评估集与实时分布之间的差异并非随机的——它是有方向性且不断加速的。它会产生以下结果:
误导性的绿色指标。 你的评估套件通过率为91%。真实用户却很沮丧。差异在于你的评估用例来自六个月前的查询模式,而当前流量已经以评估无法测试的方式演变。你在衡量用户曾经问过的问题上的性能。
不可见的失败类别涌现。 生产环境会随着时间积累新的失败模式——措辞模式、请求格式、边缘情况——而这些都早于你的评估集。当你问"这次模型更新是否导致了退步?"时,你的评估只能对比它在你构建时所了解的失败模式。新型失败是不可见的。
基准饱和而无能力提升。 当团队持续针对同一个评估集迭代模型时,他们最终会对其过拟合。分数攀升至98-99%。真实性能停滞或下降。评估不再具有区分度——它正在被"作弊",即使没有人刻意为之。
关于合成基准的研究发现,它们只能捕获出现在实际用户行为中60-70%的失败。随着评估集老化,这个差距会越来越大。
机制:为什么用户行为会漂移
理解漂移发生的原因有助于你预测它在哪里漂移得最快。
词汇和措辞演变。 用户根据他们观察到的有效方式调整语言。如果早期用户发现某些措辞能产 生更好的响应,他们就会分享这些模式。后来的用户采纳它们。措辞分布从你在内测中看到的发生了变化。你用旧惯用法编写的评估用例不再具有代表性。
用户群组成变化。 面向机器学习工程师推出的产品与同一产品在10倍规模下以企业运营团队为主要用户时,查询分布完全不同。为第一个群组构建的评估集不能代表第二个群组。
使用场景演变。 用户发现了产品未预料到的应用。这些应用涉及不同的请求格式、领域词汇和成功标准,超出了你最初设计的预期。评估集对此没有覆盖。
领域知识时效性。 在涉及当前事件的任何内容中——定价、法规、技术规格、人员——评估用例中的基准事实可能仅仅因为时间流逝就变得不正确。你现在在测试模型是否同意过时的事实。
衰退速度因领域而异。金融新闻、软件工具和当前事件等高变动领域可能在数周内让评估集过时。基础数学推理或通用文档摘要等稳定领域衰退较慢——但它们仍然会衰退。
衡量衰退:如何判断你的评估在说谎
第一步是让漂移变得可见。大多数团队只有在生产事故发生后才意识到评估已经衰退。有更早期的信号。
生产-评估语义距离。 将最近生产查询的样本和评估用例的样本嵌入到同一个向量空间中。测量质心距离和两个分布之间的重叠。如果向量空间正在发散,你的评估覆盖的是与流量不同的领域。这可以作为每 周检查自动化执行。
覆盖热力图。 按主题、意图和措辞模式对生产查询进行聚类。衡量每个聚类中有多少比例有对应的评估用例。你会发现实时流量中整片区域没有评估覆盖——这些就是你的盲点。覆盖热力图将衰退从抽象变为具体:你可以指出你目前无法衡量的具体查询类型。
随时间变化的多样性指标。 跟踪传入流量与评估集的n-gram熵和语义多样性。当流量多样性指标向上偏离评估多样性指标时,用户正在探索评估未覆盖的领域。Vendi分数和嵌入不相似性指标在这里很有用,因为它们不需要标注——它们直接对查询分布进行操作。
