跳到主要内容

LLM 作为验证器的反模式:为什么你的 AI 质量门禁存在盲点

· 阅读需 10 分钟
Tian Pan
Software Engineer

你的 AI 功能上线时带有一个质量门禁:每个回复都会经过一个 GPT-4 提示词,根据帮助性、准确性和语气进行评分。绿色分值不会触发报警。仪表盘显示通过率为 97%。与此同时,你的支持工单翻了一倍。

问题出在结构上。你使用了与生成输出相同类型的系统来验证这些输出。当生成器产生一个听起来很合理的虚假事实(幻觉)时,基于相同互联网文本分布训练的评判模型会认为这个幻觉是可信的并予以通过。两个模型共享相同的盲点。你的质量门禁衡量的是置信度,而非正确性。

这就是 LLM 作为验证者(LLM-as-validator)反模式:将 LLM 部署为另一个 LLM 输出的主要质量门禁,而缺乏确定性检查、统计测试或人工审查的补充层。这种做法很常见,构建容易,但具有系统性的误导性。

为什么循环验证会无声无息地失效

这种失效模式非常隐蔽,因为它仅在共享的错误类别上触发。对于生成器能很好处理的问题,评判模型也能很好处理——系统看起来很可靠。而对于系统性故障,生成器和评判模型往往都认为输出没问题。结果是,质量指标准确地衡量了一个模型相对于另一个模型先验知识的校准程度,而对基准真相(ground truth)却毫无用处。

已证实的偏见加剧了这一问题。对 LLM 评判模型的研究显示了连贯的模式:自我提升偏差(GPT-4 在两两比较中给自己的输出评分高出约 10%;Claude-v1 显示了约 25% 的自我偏好)、位置偏差(两两评估倾向于先展示的输出)以及冗长偏差(无论质量如何,较长的回复得分更高)。当你使用与生成器同系列的评判模型时,仅自我提升偏差就会污染信号。

温度(Temperature)参数让情况变得更糟。运行温度大于 0 的评判模型在不同运行中会对相同的输出给出不同的分数。让同一个模型对同一个回复评分三次,你可能会得到三个不同的分数。该指标不仅存在偏差,而且是非确定性的,这意味着它无法用于回归测试。

更深层的问题是标准漂移。用户和产品团队会根据观察到的输出不断完善对质量的预期。如果你的主要质量信号来自一个与生成器自身偏好一致的 LLM 评判模型,标准会逐渐向模型的故障模式倾斜,而不是强制执行实际需求。你并不是在提高质量,而是在校准接受度以匹配模型能力。

生产环境中什么会最先崩溃

无声故障是主要的生产风险。LLM 故障不会抛出异常。延迟和错误率监控保持绿色,而输出却变得错误。2025 年的一项行业调查发现,51% 在生产中使用 AI 的组织至少经历过一次因 AI 不准确导致的负面后果。在未经验证的部署中,现实生产环境的幻觉率仍高达 27%。如果你的唯一质量层是 LLM 评判模型,无声故障在设计上就是不可见的。

第二种失效模式是评判模型的不稳定性。当你更换评判模型提示词或升级评判模型时,即使产品模型没有变化,你的质量指标也会发生偏移。你无法区分是真正的能力退化还是测量伪影。你的历史趋势数据变得无法解释。

第三点:细粒度评分比二元评分更脆弱。从通过/失败(Pass/Fail)转向 1-5 分的量表,会极大地增加 LLM 评判模型的随意波动。量表越精细,信号越少,噪音越多。

分层评估策略

解决办法不是取消 LLM 评判模型——它们在规则无法编码的主观质量维度上确实有用。解决办法是将 LLM 评判模型视为评估栈中的一层,而不是唯一的关卡。

第一层:确定性检查

确定性评估器的运行时间以微秒计,成本几乎为零,并且对相同的输入产生相同的结果。它们应该放在每个评估流水线的最前端。它们适用于任何可以表达为明确规则的标准:

  • Schema 验证:必需字段是否存在、类型是否正确、无多余键。
  • 格式门禁:回复长度在范围内,所需的结构(列表点、标题、JSON)存在。
  • 政策检查:必需的免责声明存在,禁止术语不存在。
  • 工具契约验证:工具调用参数有效,返回值符合预期类型。

这些检查能捕捉到 LLM 评判模型漏掉的整类错误,因为当文字内容看起来不错时,评判模型不会注意到缺失的 JSON 字段。它们也是可版本化、可测试和可审计的——它们的行为就像 CI 流水线中的单元测试。

第二层:统计一致性测试

统计测试衡量的是样本的模型行为,而不是评估单个输出。自我一致性评分会运行同一个提示词 N 次,并测量相同回复的比例。语义相似性测试通过使用嵌入距离(embedding distance)或检测蕴含与矛盾的 NLI(自然语言推理)分类器,在不调用大模型的情况下检查来自相同输入的多个输出在意义上是否一致。

一致性测试能捕捉到规则和评判模型都看不见的失效类别:一个在 80% 的时间里给出正确输出,但在另外 20% 的时间里给出自信且听起来合理的错误输出的模型。单次输出的通过率看起来不错,但一致性得分会暴露这种不稳定性。

第三层:带有护栏的 LLM 评判模型

LLM 评判模型适用于规则失效且人工审核无法扩展的主观维度:帮助性、语气是否恰当、推理质量、多步解释的连贯性。但它们需要护栏:

  • 在部署前根据人工黄金标准验证评判模型。 构建 50-100 个带注释的示例。如果评判模型与人工的一致性相关性低于 0.7,则评判信号就是噪音。
  • 绝不使用同一模型系列进行生成和评估。 如果你的产品模型是 GPT-4,请使用 Claude 或 Gemini 作为评判模型,反之亦然。
  • 在温度为 0 的情况下运行评判模型 以保证可重复性。随机的评判模型无法产生稳定的回归基准。
  • 平均多次评判运行 以估算变异性。如果同一个输出在三次运行中分别得到 3、4 和 5 分,那么变异性估算与平均值同样重要。
  • 将评判模型的输出视为信号而非裁决。 它们用于辅助路由和监控,但不取代确定性门禁。

第四层:人工抽检方案

人工审核无法扩展到每一个生产输出,但它在校准自动化层和捕捉自动化检查未预料到的失效类别方面是不可替代的。结构化抽检方案会对一部分生产输出进行采样——侧重于边缘案例、政策敏感查询以及自动化层意见不一的情况——并将它们路由给审核员,由审核员标注故障并按标准评分。

人工审核的产出不仅仅是一个质量指标。标注的故障会成为提示词优化、路由逻辑改进和更好的评判提示词的训练信号。它们维持着第三层评判模型所验证的人工标注黄金标准。如果没有定期的人工审核,每一个自动化层都会逐渐偏离实际的质量预期。

综合应用

实践架构看起来是这样的:在返回响应之前,同步运行确定性检查。统计一致性测试作为夜间评估批处理的一部分,针对采样的生产输入运行。LLM 评委在响应后异步运行,并将结果输入监控仪表板,而不是作为硬性的通过/失败关卡。人工审核者处理每周样本并更新金标准数据集。

这种结构将对延迟敏感的关卡(第 1 层)与对成本敏感的监控(第 2 层和第 3 层)以及基于人工的校准(第 4 层)分离开来。它使每一层的失败模式相互独立。当第 3 层的指标发生偏移时,你可以先检查第 1 层的通过率是否发生了变化——如果没有,那么你面临的是评委漂移问题,而不是质量回退。

最重要的转变是认识论层面的。LLM 评委不是基准真相(ground truth)。它们是带有自身偏见和错误类别的质量模型。将评委的输出视为质量裁决而不是质量信号,会消除“你可以衡量的东西”与“你关心的东西”之间的区别。那些能够很好地衡量 AI 质量的团队明确地保持了这种区别:他们仪表板中的每一个指标都与人工评估有着记录在案的关系、已知的偏见特征以及失效日期。

更深层次的问题在于组织层面

“LLM 作为验证者”这一反模式之所以持续存在,往往不是因为工程师们不懂,而是因为确定性检查需要就验收标准达成一致,而一致性测试需要参考语料库——这两者都要求产品和工程团队在构建之前就“正确”的含义达成一致。只需一个精心编写的 prompt,LLM 评委就可以在一个下午内搭建起来,并立即产生看起来像指标的数字。

这条捷径极具诱惑力。但一个衡量模型间一致性而非输出质量的指标并不是质量关卡——它只是一个合理性过滤器。它能捕捉到明显糟糕的输出,但也会放过那些始终如一的错误输出。对于在生产环境中部署 AI、且其输出会影响实际决策的团队来说,这两者之间的区别决定了一个系统是真正有用,还是一个自信地犯错的系统。

像投资测试套件一样投资你的评估栈。先建立确定性检查。在信任 LLM 评委之前,先建立人工金标准。将每个自动化指标都视为人类所关心事物的近似值,并附带记录在案的置信水平。你部署的模型将会不断改进——你的评估基础设施应该是比模型更长久的部分。

References:Let's stay in touch and Follow me for more thoughts and updates