Skip to content

高频面试题

LLM 为什么会幻觉?工程上怎么缓解?

这道题考你是否理解生成式模型的不确定性,以及能不能把“别乱说”落到证据链、校验器、评估集和产品兜底里。

适合阶段:AI 应用开发 / 可靠性面核心能力:Grounding · Faithfulness · Guardrail · Fallback

面试官角度分析,想考什么

  • 为什么模型会编造看起来合理的答案?
    考你能否把幻觉说成生成目标、知识边界和上下文不足共同造成的问题,而不是简单归因于“模型不聪明”。

  • RAG、工具调用和结构化输出分别能缓解什么?
    考机制差异:RAG 提供证据,工具提供实时事实,schema 约束格式,但它们都不能自动保证结论忠实。

  • 生产环境如何把幻觉风险控制住?
    考工程边界:引用、拒答、校验、评估、人工确认、前端信任提示和高风险场景降级。

可直接抄走的 30 秒参考答案

text
LLM 会幻觉,是因为它生成的是概率上合理的文本,不天然等于事实查询或业务系统查询。缓解幻觉不能只在 prompt 里写“不要编”,而要先判断任务是否需要事实;需要事实就接 RAG 或工具调用,并要求答案忠于证据;证据不足时拒答或追问;结构化场景做 schema 校验;高风险场景加审核、人工确认和产品降级。前端也要展示来源、范围和不确定性。

面试回答详解,知其所以然

这道题的核心不是证明“模型会犯错”,而是说明你能把幻觉风险分层治理。面试官更关心你怎么设计系统,而不是你能不能背出一个幻觉定义。

1. 幻觉的根源是生成目标不等于事实校验

  • 训练目标:模型学的是预测下一个 token,不是事实数据库查询。
  • 知识过期:模型参数里的知识可能不是最新。
  • 问题缺上下文:用户问法模糊,模型补全了不存在的前提。
  • 解码随机性:高 temperature 会增加发散。
  • 上下文冲突:system prompt、用户输入、历史消息和检索证据互相矛盾。
  • 任务边界不清:创意写作允许虚构,政策问答却不能虚构;如果产品没有区分,模型也容易混用能力。

所以不要把幻觉理解成“模型不知道答案”。很多幻觉发生在模型拿到部分信息时,它会把缺口补成一个看似完整的故事。

2. RAG、工具和 schema 只能降低风险,不能自动消灭幻觉

不同手段解决的问题不一样:

  • RAG:把外部知识放进上下文,解决知识过期和私有知识缺失,但仍可能召回错文档、漏召回、引用不支持结论。
  • 工具调用:用搜索、数据库、订单系统、计算器等外部工具拿实时事实,但仍要处理工具失败、权限不足、参数错误和结果解释错误。
  • 结构化输出:用 JSON Schema 或字段校验约束格式,但它只能保证形状更稳定,不保证字段事实正确。
  • 低 temperature:让输出更稳定,但如果输入证据错或缺,它只是更稳定地产生错误。

一个更可靠的事实型链路通常是:

text
先确认是否需要事实
-> 需要事实就查证据或调工具
-> 证据不足就拒答或追问
-> 输出后做校验和引用
-> 高风险动作人工确认

这里的关键是“忠实于证据”,不是“看起来有引用”。引用必须能支撑对应结论,否则只是把幻觉包装得更像真的。

3. 生产治理要覆盖评估、前端和高风险降级

不同任务要用不同策略:

  • 知识库问答:RAG + 引用 + 证据不足拒答。
  • 数据查询:最终答案基于工具或数据库结果,模型负责解释,不让模型凭记忆编数据。
  • 结构化抽取:低温、schema validation、字段级重试和人工抽检。
  • 创意写作:允许虚构,但要明确场景不是事实回答。
  • 高风险建议:安全策略、审核模型、人工确认和明确免责声明。

前端也要参与信任设计:

  • 展示答案来源和引用范围。
  • 标注“基于上传文档”“基于实时查询”还是“模型通用知识”。
  • 证据不足时给追问入口,而不是强行生成完整答案。
  • 对高风险内容展示确认、转人工或只给通用信息。
  • 支持用户反馈“答案不准确”,并把反馈回流到评估集。

评估幻觉不能只靠感觉。至少要保存问题、检索证据、工具返回、模型答案、引用、是否有无依据断言、错误来源和修复版本。这样才能判断问题来自检索、prompt、模型、工具还是产品流程。

面试官追问3个问题

追问一:temperature 降到 0 能消除幻觉吗?

  • 考察点:采样稳定性和事实正确性之间的区别。
  • 回答方向:不能。低温通常让输出更稳定、更少发散,但事实正确性取决于输入证据、模型知识、工具结果和约束链路。如果上下文里没有答案,或者检索证据本身是错的,低温只会让模型更稳定地产生错误答案。

追问二:RAG 答案有引用就一定可信吗?

  • 考察点:是否理解 citation 和 faithfulness 不是一回事。
  • 回答方向:不一定。引用可能只和问题相关,但不支持最终结论;也可能只支持一部分字段。生产里要检查“答案中的每个关键断言是否能被引用片段支持”,必要时做引用级高亮、LLM-as-Judge、规则校验和人工抽检。

追问三:什么时候应该拒答?

  • 考察点:安全边界和产品降级意识。
  • 回答方向:证据不足、用户问题超出资料范围、权限不够、工具失败、高风险建议缺少必要信息、用户要求编造来源时,都应该拒答、追问或转人工。拒答也要有信息量:说明缺什么证据、能回答哪一部分、下一步怎么补充。

扩展知识

幻觉治理分层

text
数据层:可靠来源、权限过滤、数据新鲜度
检索层:召回、重排、去噪、引用片段
生成层:证据约束、低温、拒答策略
校验层:规则校验、工具复核、LLM-as-Judge、人工抽检
产品层:引用展示、不确定性提示、反馈入口、人工确认

官方资料里的共同建议

Anthropic Reduce Hallucinations强调让模型承认不知道、要求引用、逐步校验和用证据约束回答;OpenAI Retrieval把外部知识检索作为提升事实相关性的核心能力。它们共同说明:幻觉治理不是单点 prompt,而是证据、生成、校验和产品流程的组合。

基于 MIT 协议开源