你的评估也不稳定:停止信任无法复现的通过率
大多数人都知道 AI Agent 是非确定性的。你发送相同的提示词,却会得到不同的输出。
我们接受了这一点。我们开始使用 LLM 作为评判者来为这些 Agent 打分。
但我们犯了一个巨大的错误。我们假设我们的评判者是确定性的。事实并非如此。
你的评估套件是一个随机系统在给另一个随机系统打分。如果你不衡量你的评判者有多大的波动,你就没有质量关卡。你只有一次抛硬币的机会。
我在一个客服 Agent 上看到了这种情况。仪表盘连续几周都显示绿色。然后,客户投诉激增。我对 200 个旧回复运行了相同的评估。其中 14 个判定的结果发生了变化。Agent 本身没有变,是评判者改变了主意。
一个不稳定的关卡比没有关卡更糟糕。它会给你虚假的信心。
你的评估失败有三个原因:
- 评判模型:每个 LLM 评判者都存在波动。即使在 temperature 为 0 的情况下,供应商也不保证结果完全一致。一次静默的模型更新可能在一夜之间毁掉你的基准。
- 运行环境:如果你的上下文或工具输出在不同运行之间发生了变化,评判者看到的就会是一个不同的问题。输入发生了漂移。
- 评分标准:像“这好吗?”这样模糊的规则会产生波动。严谨、具体的规则可以减少波动。
你必须像对待不稳定的软件测试一样对待不稳定的评估。不要上线它们。将它们隔离。测量其不稳定率。
不要再只报告单一的通过率了。开始报告一致性。
对每次评判调用运行多次。如果评判者自己都无法达成一致,那么该判定就不是一个有效的信号。它是 UNSTABLE(不稳定的)。
一个 UNSTABLE 的结果应该在你的 CI/CD 流水线中作为一个核心结果。它应该显眼地报错。
要修复不稳定的评估,你需要两样东西:
- 评分层:计算稳定性,并将结果转化为 PASS、FAIL 或 UNSTABLE。
- 追踪层:你必须能够看到每次运行的原始字节、精确的提示词以及工具输出。
如果没有追踪,你会认为模型只是随机的。你会降低 temperature 并以为自己修复了它。你并没有修复它,你只是让这个 bug 变得更安静了。
遵循这些规则来构建真正的质量:
- 报告一致性,而不仅仅是平均值。
- 在你的流水线中将 UNSTABLE 设置为失败状态。
- 固定你的评判模型版本。
- 当检查失败时,阅读追踪记录。
一个无法复现的绿色仪表盘不是信号。它只是你讲给自己的故事。
Optional learning community: https://t.me/GyaanSetuAi
