什么是幻觉(Hallucination)
1️⃣ 考察意图
面试官想确认你是否真正理解“幻觉”在 LLM 语境下的精确含义,而非停留在“胡说八道”的模糊印象。考察类型为概念辨析 + 工程分类。刁钻点在于:很多人能说出定义,但分不清“事实性幻觉”和“忠实性幻觉”的本质区别,更不知道在 RAG 系统中哪种更致命。答好了能展示你对 LLM 失效模式的系统认知,以及从评估到缓解的工程完整流程能力。
2️⃣ 标准答
定义:幻觉指 LLM 生成的内容与事实(外部知识)或用户指令/上下文(内部约束)不一致的现象。它不是随机错误,而是模型在概率生成中“自信地犯错”。
核心分类(必须分清):
- 事实性幻觉(Factuality Hallucination):生成内容与客观事实矛盾。
- 例子:问“2024 年奥运会举办地”,答“东京”(实际是巴黎)。
- 根源:模型训练数据截止、知识记忆错误、或长尾知识缺失。
- 缓解:RAG 检索 + 知识图谱约束。但注意 trade-off:检索到的文档本身可能包含噪声或过时信息,需要配合证据验证(如用 NLI 模型判断生成与检索文档的蕴含关系)。
- 忠实性幻觉(Faithfulness Hallucination):生成内容偏离用户指令或上下文。
- 例子:要求“用中文总结这篇英文论文”,模型却输出英文;或要求“只基于给定文档回答”,模型却添加了文档中没有的细节。
- 根源:指令跟随能力不足、注意力分散、或解码策略(如 top-p 采样)引入随机性。
- 缓解:约束解码(如使用 grammar-guided generation)或指令微调(强化对齐)。实际落地坑:约束解码会显著降低生成多样性,在创意任务中不适用。
实际落地的坑 + 解法:
- 坑:在 RAG 系统中,即使检索到正确文档,模型仍可能“无视”文档,生成自己的知识。这叫上下文忽视(Context Ignorance)。
- 解法:使用对比解码(Contrastive Decoding)——同时运行一个“无上下文”的 base 模型和一个“有上下文”的 expert 模型,只保留 expert 比 base 更自信的 token。这能强制模型依赖上下文,减少幻觉。代价是推理成本翻倍。
评估方法:
- 自动评估:用 NLI 模型(如 DeBERTa-v3 微调的 NLI)判断生成与事实/上下文是否矛盾。指标:幻觉率(Hallucination Rate) = 含幻觉的句子数 / 总句子数。
- 人工评估:按严重程度打分(0=无幻觉,1=轻微不准确,2=严重错误)。注意:人工成本高,且不同标注者标准不一。
总结:幻觉是 LLM 的固有特性,无法完全消除,只能通过检索增强 + 解码约束 + 评估反馈的组合拳持续压制。
3️⃣ 答题模板(30 秒电梯版)
“这个问题我从定义、分类、缓解三个层面回答。定义上,幻觉是 LLM 生成与事实或上下文不符的内容。分类上,关键是区分事实性幻觉(知识错误)和忠实性幻觉(偏离指令),前者在 RAG 系统中更常见,后者在指令跟随任务中更突出。缓解上,RAG 加 NLI 验证是主流,但要注意上下文忽视问题,可以用对比解码强制模型依赖检索结果。总结一句:幻觉无法根除,但可以通过检索、解码、评估的完整流程持续降低其影响。”
4️⃣ 高频追问 & 应对
追问 1:你刚才提到 NLI 模型检测幻觉,具体怎么实现?准确率能到多少?
用预训练的 NLI 模型(如 DeBERTa-v3-large-mnli)将生成句子作为“假设”,检索文档作为“前提”,输出蕴含/矛盾/中立。如果矛盾概率 > 0.5,则标记为幻觉。准确率在公开 benchmark(如 HaluEval)上约 85-90%。但注意:NLI 模型对长文本、多跳推理的幻觉检测效果差,此时需要改用 LLM-as-judge(如 GPT-4 打分),但成本高且存在自洽性问题。
追问 2:在 RAG 系统中,检索质量差会导致幻觉,你怎么平衡检索召回率和幻觉率?
这是一个典型的 trade-off。提高召回率(如用更小的 chunk size、更多的 top-k)会引入噪声,反而可能增加幻觉。我的做法是:1)用 BM25+DPR 混合检索,兼顾关键词和语义;2)对检索结果做重排序(Rerank),用 cross-encoder(如 Cohere rerank)过滤掉低相关文档;3)设置置信度阈值,如果所有检索文档的相关性都低于 0.5,则拒绝回答,返回“信息不足”。这样幻觉率可降低 30-40%,但拒绝率会上升 5-10%。
追问 3:有没有不依赖外部知识库的幻觉缓解方法?
有,比如自洽性检查(Self-Consistency):对同一个问题生成多次(如 5 次),如果答案不一致,说明存在幻觉风险。另一种是内部知识探测:用模型最后一层隐藏状态训练一个“知识边界”分类器,判断模型对当前 token 是否有信心。但这类方法只能检测,不能修正,且计算开销大。
5️⃣ 避坑 · 常见错误答法
- ❌ 把幻觉等同于“模型胡说八道”,不区分事实性和忠实性 → ✅ 必须明确分类,并举例说明两者在工程上的不同影响(事实性影响知识准确性,忠实性影响指令跟随)。
- ❌ 说“用 RAG 就能解决幻觉” → ✅ RAG 只能缓解事实性幻觉,且引入上下文忽视的新问题,需要配合对比解码或 NLI 验证。
- ❌ 只谈概念不谈评估指标 → ✅ 必须给出具体指标(如幻觉率、NLI 矛盾概率阈值),展示工程落地能力。
6️⃣ 简历呼应
- 如果你有 RAG 项目:从“上下文忽视”这个坑切入,展示你如何用对比解码或重排序来降低幻觉率,并给出具体数据(如幻觉率从 15% 降到 8%)。
- 如果你只做过传统 NLP:用 NLI 任务类比——幻觉检测本质上是一个蕴含/矛盾分类问题,你可以迁移之前做文本蕴含的经验。
- 如果你是校招无项目:聚焦论文复现,比如复现 SelfCheckGPT 或 HaluEval 的检测方法,并写一篇博客分析不同方法的优劣,展示你对前沿研究的理解。
- 论文:SelfCheckGPT: Zero-Resource Black-Box Hallucination Detection for Generative Large Language Models
- 论文:HaluEval: A Large-Scale Hallucination Evaluation Benchmark for Large Language Models
- 工具:LangChain 的
NLIHallucinationChecker模块 - 博客:OpenAI 官方博客《Reducing Hallucinations in LLMs with Retrieval Augmentation》
- 论文:Faithful Chain-of-Thought Reasoning (Faithful CoT)