幻觉并非根本原因:生产环境 AI 的调试方法论
当一名律师在联邦备案文件中引用不存在的法庭案例时,这一事件被广泛报道为“ChatGPT 产生了幻觉”。当一家咨询公司的政府报告中包含虚假脚注时,复盘报告写道“AI 伪造引文”。当一个医疗转录工具在医疗笔记中插入暴力语言时,解释仅仅是“模型产生了幻觉”。在每一个案例中,代价昂贵的失败都被归结为一个由三个词组成的根本原因,这使得修复变得不可能。
“模型产生了幻觉”在 AI 领域等同于在堆栈跟踪中写下“未知错误”。它描述了发生了什么,却没告诉你为什么发生或如何修复。每一次幻觉都有一个可诊断的原因——通常属于四个类别之一——且每个类别都需要不同的工程响应。理解这种区别的团队能够交付可以优雅降级的 AI 系统。而不理解的团队则在不断地通过提示词玩“打地鼠”游戏。
四个真实的根本原因
现 代幻觉研究已经形成了一套对工程师直接有效的分类法。这些类别清晰地映射到你系统执行路径的不同环节,这意味着你可以独立地对它们进行检测,并在不触动模型的情况下修复它们。
检索失败(Retrieval failure) 是 RAG 系统中最常见的根本原因,也最容易诊断。你的检索器返回了实际上无法回答用户查询的文档——无论是由于查询与文档的语义不匹配、你所在领域的嵌入(embedding)质量问题,还是知识库过时。模型随后生成了听起来权威但缺乏依据的文本,因为它在缺乏相关证据的情况下补全了一个模式。其特征是,手动注入正确的文档就能让幻觉消失。模型本身并没有损坏。
上下文冲突(Conflicting context) 发生在你的检索流水线提取了相互矛盾的文档时,或者提取的事实与模型的参数化知识(即它在训练期间学到的内容)相冲突时。模型随后面临一个它并非为显式解决而设计的决策问题——它会挑选一个来源并自信地生成内容,而不会向调用者指出冲突。自我矛盾的输出——即模型在同一次回复中提出两个不相容的主张——就属于这一类。实体混淆也是如此,即模型将不同文档中两个名称相似的事物混为一谈。
提示词歧义(Prompt ambiguity) 是团队最常低估的根本原因。模糊的指令会产生理解间隙,模型会用统计学上最合理的后续内容来填补这个间隙——而这在事实层面可能是错误的。“描述 X 的现状”会诱发模型对它无法了解的现状产生幻觉。“总结公司取得的成就”在没有范围限制的情况下,会被编造的成就所填充。模型并不是在随机猜测;它正在做它被训练去做的事情,即在指令不明确的情况下生成流畅、符合主题的文本。
知识边界违规(Knowledge boundary violations) 是在模型实际认知的边缘发生的故障。训练截止日期是最明显的案例,但在实践中,问题更为隐蔽:模型经常在接近其知识边界时高估自己的自信度。一个训练到 2024 年初的模型不仅无法了解 2024 年中期的事件,它还会主动生成关于那个时期听起来很可信的错误信息,因为它有足够的上下文来生成流畅的文本,但没有足够的事实依据来保证准确性。罕见与常见关联的复合效应加剧了这一问题:模型看到的关于常见(有时是错误的)模式的文本比正确的罕见模式更多,于是它会倾向于向多数派产生幻觉。
一个正规的幻觉复盘报告是什么样的
好的和差的复盘报告之间的区别不在于洞察力,而在于检测工具(instrumentation)。只有在故障发生时记录了正确的数据,你才能进行根本原因分析。
任何 LLM 请求的最小生产环境追踪(trace)都应捕获:完整的提示词(包括系统消息)、所有检索到的文档及其检索评分、原始模型输出、可用的置信度评分,以及对于 Agent 系统而言完整的对话历史。没有这些,你就是在没有证据的情况下进行法医鉴定。
有了记录的追踪数据,调试工作流将遵循系统的执行路径:
从输入开始。用户的查询是否有歧义?一个理智的人读到它是否会产生多种解释?当任务需要事实检索时,提示词模板是否鼓励了推测(如“建议”、“想象”、“可能会”)?在你有意识地尝试以多种方式解释查询之前,提示词 歧义通常是隐形的。
然后转向检索。检索到的文档是否真的包含了回答查询所需的信息?高检索评分并不意味着高相关性——你的嵌入模型可能学到的是浅层的表面相似性,而不是针对你特定领域的语义相关性。在发布任何 RAG 系统之前,请在留出的评估集上衡量检索的精确率(precision)和召回率(recall)。许多团队跳过了这一步,结果通过生产环境中的幻觉才发现了问题。
接着检查上下文一致性。检索到的文档是否相互矛盾?它们是否与模型可能从参数化知识中声称的内容相矛盾?如果你正在调试特定的故障,可以通过对相同上下文进行多次模型补全采样来测试这一点——高方差标志着上下文冲突或边界违规,而低方差则表明存在提示词歧义或检索失败。
最后,评估知识边界。该查询是否关于模型可靠知识范围之外的事件、事实或现状?这里的关键洞察是,模型无法可靠地自我报告其知识盲点——你必须通过针对训练分布边缘或之外的已知事实进行测试,从外部进行探测。
在用户看到之前进行检测
复盘很有用,但目标是在幻觉到达用户手中之前捕捉到它们。2025 年的生产系统会叠加多种检测方法,因为没有任何一种单一方法足够可靠。
- https://dl.acm.org/doi/10.1145/3703155
- https://www.nature.com/articles/s41586-024-07421-0
- https://aclanthology.org/2025.acl-long.1176.pdf
- https://www.datadoghq.com/blog/ai/llm-hallucination-detection/
- https://www.traceloop.com/blog/tools-to-detect-reduce-hallucinations-in-a-langchain-rag-pipeline-in-production
- https://www.getmaxim.ai/articles/hallucination-evaluation-frameworks-technical-comparison-for-production-ai-systems-2025/
- https://arxiv.org/pdf/2305.15852
- https://oatml.cs.ox.ac.uk/blog/2024/06/19/detecting_hallucinations_2024.html
