面试官RAG 系统中大模型的幻觉问题你怎么处理‍♂️我幻觉的话我觉得只要检索到了相关内容LLM 就不会编造了所以关键是把检索做好就行了。面试官检索做好了就不会幻觉了检索到了内容但 LLM 没有严格照着说的情况你怎么处理这叫「生成层幻觉」你连这个都没考虑过‍♂️我那我在 prompt 里加一句「请根据资料回答」应该就可以了面试官加一句就够了你知道 RAG 里的幻觉有两个完全不同的来源吗检索层没找到和生成层超发挥解法完全不一样。你就只会加一句 prompt面试官这里在考察你对 RAG 幻觉来源的理解深度以及你是否有一套系统的防控策略。下面我从两类幻觉的根源出发逐层讲清楚怎么规避。 简要回答我遇到过的 RAG 幻觉主要有两类。第一类是检索没有召回到相关内容LLM 没有可用的上下文靠自身知识在编造答案。第二类是检索内容召回了但 LLM 没有严格遵循在文档内容的基础上加了自己的推断。我用来规避幻觉的策略主要有四个方向第一是 Prompt 强约束明确告知 LLM 只能根据提供的资料回答资料里没有的就说不知道第二是检索质量门控Rerank 分数低于阈值就直接拒答不让 LLM 在低质量上下文上硬撑第三是生成后引用核查每个关键的声明都要在 chunk 里找到来源依据第四是结构化输出强制溯源让 LLM 输出 JSON每条结论必须附上来源编号。其中 Prompt 强约束加检索质量门控是我觉得成本最低、收效最快的组合生产系统上线前这两个必须做。 详细解析幻觉是什么为什么 RAG 里会有幻觉先说「幻觉」这个词是什么意思。LLM 的幻觉就是模型一本正经地说了一件压根不存在的事。它不是在撒谎它只是在「预测下一个词」当它没有可靠依据时就会拼凑出一个「听起来合理」的答案但内容可能是错的。你可能会想RAG 不是已经把知识库的内容塞进 prompt 了吗LLM 为什么还会编造很多人以为做了 RAG 就不会有幻觉了这是一个非常常见的误区。问题是塞进去不等于 LLM 一定会「老老实实照着说」。LLM 有自己的「知识储备」来自预训练当 prompt 里的资料和它平时「学到的」不一致或者 prompt 里根本就没召回到相关内容它就可能绕开资料、自己发挥。所以 RAG 里的幻觉有两个完全不同的来源要分开理解第一种检索层没找到LLM 靠「猜」回答。这是最根本的问题。RAG 的前提是「检索到了相关内容再生成」但如果检索这一步失败了向量没找到相关的 chunkprompt 里就是空的或者全是不相关的内容LLM 会怎么做它不会说「我不知道」它会用自己训练时见过的知识编一个看起来像答案的东西。这个答案可能和你知识库里的内容完全相反而且 LLM 说得很自信用户根本看不出来。举个具体例子你的知识库里记录的退款政策是「7 天无理由退款」但某次检索没召回到这个 chunkLLM 用自己的「知识」给出了「30 天退款」的答案用户按这个信息去操作结果退款失败这就是检索层幻觉造成的实际损失。第二种检索到了但 LLM 没有严格照着说。那检索到了就安全了吗也不是。这种幻觉更隐蔽也更常见。相关的 chunk 确实被召回了塞进 prompt 里了但 LLM 在生成答案时「超发挥」了它把资料里的内容作为基础然后加了自己的推断、补充了原文没有的细节、甚至把两段不相关的信息混在一起拼出一个「更完整」的答案。读者很难分辨哪句话来自文档、哪句是 LLM 加的。这两种幻觉的根源不同解法也不一样。下面四个方案是从「成本最低」到「机制最严格」依次递进的思路。方案一用 Prompt 告诉 LLM「只准照着资料说」这是成本最低、最容易上手的方案效果也立竿见影。很多人搭 RAG 时只是把 chunk 塞进 prompt然后问「请回答这个问题」并没有明确约束 LLM 的行为。LLM 就会觉得「这些资料只是参考我可以结合自己的知识一起回答」幻觉就这样产生了。修复方法很简单在 system prompt 里明确立规矩只能用资料里的内容、资料里没有就说不知道、不准推断和补充。这几条规则每一条都有它的道理回答规则只能使用【参考资料】中的信息来回答不得引入资料之外的知识如果参考资料中没有足够信息必须明确回答「根据现有资料无法回答该问题」回答时标注信息来源来自哪条参考资料不要推断、不要猜测、不要补充资料中没有明确说明的内容第一条的作用是让 LLM「知道自己的边界」明确告诉它你只是个传话人不是百科全书只能照资料说话。第二条给了 LLM 一个「合法的逃生出口」当资料里没有答案时说「不知道」比编一个看起来合理的答案要好得多这条规则允许 LLM 优雅地认怂。第三条让 LLM 在回答时主动对照原文相当于给它加了一个自检动作哪句话来自哪条资料必须说清楚。这个方案能压制「生成层幻觉」但对「检索层幻觉」帮助有限如果 prompt 里根本就没有相关内容再强的约束也顶不住 LLM 瞎编。所以还需要下面这个方案配合。方案二检索质量差时直接拒绝回答方案一解决了「LLM 超发挥」的问题但如果检索这一步就失败了prompt 里全是无关内容光靠 Prompt 约束是拦不住的。那怎么办与其让 LLM 在低质量的上下文里强行生成一个「可能是错的答案」不如直接告诉用户「知识库里没有这个信息」。前者让用户误以为答案是对的后者虽然看起来不那么智能但至少不会给用户错误信息。怎么判断检索质量够不够好用 Rerank 模型打分。整个流程很直接检索召回 top-K 个候选 chunkRerank 模型对每个候选打一个 0 到 1 的相关度分数然后看最高分的值。如果最高分低于阈值说明这次检索根本没找到有用的内容直接返回「知识库无相关信息建议联系人工」不让 LLM 强行回答如果最高分达标就把所有达标的 chunk 筛出来喂给 LLM。这个阈值到底设多少没有通用数字得按你自己的业务数据调。调法是拿一批「已知答案在知识库里」和「已知答案不在知识库里」的测试集跑一遍看 Rerank 分数分布找那个能把两类分开的切点。一般经验值在 0.3 到 0.6 之间对精度要求高金融、医疗偏高对召回率宽松闲聊型问答偏低。先从中间值开始根据线上误判的样例往上或往下调。你可能会觉得「拒答」这个行为会让系统显得很笨。但反过来想用户问了一个知识库覆盖不到的问题最好的答案就是「我不知道请联系人工」而不是 LLM 编一个听起来合理但实际错误的回答。答错比不答更危险。结合方案一和方案二就能同时压制两类幻觉方案二负责「检索质量差时不让 LLM 胡说」方案一负责「检索质量还行但 LLM 容易超发挥时把它框住」。这两个是 RAG 系统上线前的基础配置成本也最低。方案三答案生成后逐条核查有没有「凭空捏造」前两个方案都是在「生成之前」做防控那万一还是漏了呢这个方案就是在「生成之后」做校验。思路是LLM 生成完答案再用另一个 LLM或者同一个 LLM回头检查答案里的每一条关键信息在 chunk 里有没有对应的依据。没有依据的内容标注「无法核实」或者直接删掉。实现方式是发起「第二次 LLM 调用」把原始答案和 chunk 一起送给 LLM让它充当编辑角色逐条核查每个声明有没有来源支撑。就像文章写完还要请编辑审阅一遍方案一是事前约束作者的行为方案三是事后审稿。这个方案的代价是多一次 LLM 调用响应延迟会增加成本也会翻倍。所以一般只在对准确性要求极高的场景使用比如医疗问诊、法律咨询答错了代价很大的地方。普通的企业知识库问答方案一 方案二组合通常已经够用。方案四强制 LLM 输出时带上来源编号如果说方案三是在内容层面做校验那方案四就是在格式层面做约束和方案一的「Prompt 约束」配合使用效果更好。让 LLM 输出结构化的 JSON每个结论都必须填写来自哪条参考资料的编号。这样一来用户看到答案的同时就能看到来源系统也可以自动验证每条结论的来源 ID 是不是真实存在。LLM 输出的格式大致是这样{ answer: 完整回答, statements: [ {claim: 具体结论1, source_ids: [1, 2]}, {claim: 具体结论2, source_ids: [3]} ], confidence: high/medium/low}这个方案为什么有效原因有两个一是 LLM 在构建 JSON 时必须主动想「这条结论我从哪条资料里找到的」这个过程本身就会减少瞎编的概率就好比你让学生写论文必须标注参考文献他自然就不敢随便编了二是系统拿到 JSON 后可以做程序化验证source_ids里的编号如果对应的 chunk 和claim明显不相关就可以自动过滤掉这条结论。四个方案怎么组合从易到难按场景递进来看普通的企业知识库和客服问答方案一加方案二是必须做的基础配置成本极低幻觉问题能解决大半对可信度要求高的场景比如金融分析、法律文档再加上方案四让每条答案都带上来源编号用户可以自己去原文核实对准确性要求极高、容错率极低的场景比如医疗问诊、合规审核答错了代价很大这时候四个方案全上在延迟和成本上付出代价换取最高级别的准确性保证。说到底规避幻觉没有一劳永逸的银弹。最重要的认知是检索质量是幻觉的最大来源检索到了正确的内容Prompt 再稍微约束一下幻觉就已经少很多了如果检索这一步就烂再多的生成层约束也填不了这个坑。所以治幻觉先治检索。 面试总结回到面试官的追问「检索做好了就不会幻觉」这个想法是错的。RAG 里的幻觉有两个来源检索层没召回到内容LLM 靠自身知识编造以及检索到了但 LLM 超发挥在资料基础上加了自己的推断。「在 prompt 里加一句请根据资料回答」也远远不够你需要一整套系统的防控策略Prompt 强约束压制生成层幻觉检索质量门控在检索失败时直接拒答生成后引用核查做二次校验结构化输出强制溯源让每条结论都有据可查。成本最低、收效最快的是 Prompt 约束加检索门控的组合生产系统上线前这两个必须做。记住核心原则治幻觉先治检索。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】