考察点
「怎么规避大模型的幻觉」是 2026 面经 RAG 部分出现率最高的题之一。面试官想看你有没有把幻觉拆解开的能力——笼统说「提高检索质量」等于没答。能按错误来源分层给防线,说明你真处理过线上事故。追问常走「引用怎么做」「拒答怎么把握度」。
参考答案
先把幻觉拆成三类
RAG 场景的事实性错误有三个完全不同的来源,对策也不同:
- 无知幻觉:知识库里根本没有答案,模型凭参数知识硬答。
- 检索误导:检索到了内容,但检索结果是错的/过时的/不相关的,模型照着错材料答。
- 生成偏离:检索结果是对的,模型却没用,自由发挥或者错误综合了多个片段。
防线一:无知就拒答
针对无知幻觉,核心是敢不答。两道闸门:
- 检索阈值闸:Rerank 最高分低于阈值(按自己数据分布定,比如 0.3 以下),判定知识库无相关内容,走兜底话术「这个问题超出我的知识范围,已为您转接人工」。宁可拒答率略高,不可硬答。
- 生成侧诚实性 Prompt:明确指令「仅根据提供的资料回答,资料未涵盖时明确说明不知道」。这个指令要写进 system prompt 且给出拒答示例,否则模型默认「有问必答」。
拒答率的度靠业务定:客服场景错答的代价远大于拒答(错答政策是客诉事故),阈值从严;内部助手可以放宽。
防线二:引用强制
针对生成偏离,最有效的结构是强制引用:要求模型答案中每个事实性论断标注来源编号([1][2]),生成的引用必须是实际检索到的片段 ID。这带来两个好处:模型被「逼着」对着材料写,自由发挥空间被压缩;用户可以点击溯源,错了一眼能看出来。工程上再配合后验校验——答案里出现的关键实体(数字、日期、型号)必须在引用片段中出现过,没出现就标记为高风险,进人工队列或重新生成。
防线三:源头治理
针对检索误导,防线在检索侧不在生成侧:
- 知识库入库时做时效标注,政策类文档带生效/失效日期,检索过滤掉已失效版本——客服答出过期政策是最典型的 RAG 事故。
- 冲突检测:同一主题的多个文档说法不一致时,检索阶段就标记冲突,生成时呈现「不同来源说法不一致」而不是让模型瞎选一个。
- 多路召回 + Rerank 把噪声片段挡在 Top-K 外,这个前面专题讲过,不再展开。
闭环:幻觉率是可运营的指标
三层防线上线后,用忠实度评测(RAGAS 或自建 LLM 裁判逐条核对论断-出处)持续监控,配合人工抽检定级:P0 事故(答错政策、承诺不存在的权益)逐条归因,P1(细节偏差)周度聚类。我项目里上线引用强制 + 阈值拒答后,人工抽检的严重幻觉率从约 3% 压到 0.5% 以内,代价是拒答率升到 8%——业务上认为这是划算的交易。
最后一句实话:幻觉只能控制不能消灭。任何宣称 100% 解决的方案都不可信,工程目标是「幻觉率可度量、严重幻觉有兜底、出了错可追溯」。
可能的追问
Q:模型不按要求标引用怎么办? 两步:Prompt 里给 few-shot 示例明确引用格式;输出侧做解析校验,无引用或引用编号超出检索结果范围的答案直接拦截重试或降级。别指望一次生成都合规,校验是必需的。
Q:检索到多个冲突版本的政策怎么处理? 按文档元数据的优先级裁决(生效时间最新 > 来源权威性更高),并在答案中保留版本信息(「根据 2026 年 3 月版政策」)。冲突高频出现说明知识库治理有问题,要推内容侧解决。
Q:温度调低能不能减少幻觉? 边际作用。温度压的是采样随机性,RAG 幻觉的主因是无知硬答和材料错误,跟采样温度关系不大。temperature 设 0-0.3 是该做的,但别指望它解决幻觉。