为生产环境中的 LLM 构建幻觉检测流水线
你的 LLM 应用通过了每一项评估(eval)。演示看起来完美无缺。接着,一位用户询问了一个利基监管要求,模型自信地引用了一个根本不存在的法规。十二小时后,这份支持工单躺在了你的收件箱里,而那个虚假的答案早已被转发给了合规团队。这就是生产环境中的幻觉问题:并不是模型会犯错,而是它们犯错时表现出的流畅度和自信心,与它们回答正确时完全一样。
大多数团队将幻觉视为提示词(prompting)问题——增加更多上下文、调整温度(temperature)、告诉模型“仅使用提供的信息”。这些措施有所帮助,但并不能解决根本问题。事后验证(Post-hoc verification)——即在生成后检查主张,而不是寄希望于模型不产生幻觉——比任何仅限预防的策略都更便宜、更可靠,且能更好地与现有基础设施结合。
幻觉的三种类别
并非所有幻觉都是平等的,你的检测策略取决于你 正在处理哪种类型。
捏造(Fabrication) 是最危险的类别。模型虚构了在任何来源中都没有根据的实体、引用、统计数据或事件。一个捏造的法律引用在语法上看起来是正确的——标准的报告格式、看似合理的卷号——但却指向了一个从未宣判的案例。研究估计,在已发表的文献中,由 AI 幻觉产生的引用目前已达数十万条。捏造需要存在性验证:检查引用的实体是否确实存在于权威来源中。
矛盾(Contradiction) 发生在模型的输出与其提供的上下文信息相冲突时。RAG 系统检索到的一份文档称季度营收为 42 亿美元,而模型的摘要却说是 48 亿美元。这是机械检测最容易实现的类别,因为你的上下文窗口中就有事实标准(ground truth)。自然语言推理(NLI)模型在这方面表现出色——它们可以分类一个主张是被源段落蕴含、中立还是矛盾。
过时的知识(Outdated knowledge) 是最微妙的失败模式。模型的参数化知识在训练时是正确的,但世界已经发生了变化。某家公司更换了 CEO,一项法规被修订,或者一个库弃用了一个函数。这类问题尤其具有误导性,因为模型以极高的自信陈述它所训练的事实,而任何提示词工程都无法解决训练数据的问题。检测需要具备新鲜感感知(freshness-aware)的检索:根据当前来源检查主张,而不是信任模型的内部知识。
每个类别都需要不同的检测机制。一个能捕获矛盾但忽略捏造的流水线会提供虚假的信心——你抓住了简单的问题,却漏掉了那些真正损害信任的问题。
