Skip to content

如何减少 RAG 系统的幻觉问题?有哪些实用方法? ​

  • 标签:RAG、幻觉问题

🏛 业务架构师 ​

减少 RAG 幻觉的组合拳,我按"检索—生成—校验—运营"四道防线组织:

检索侧(让模型有据可依):

  1. 提高召回质量:混合检索+Rerank,确保正确文档进入上下文——检索不到是幻觉的头号来源;
  2. 相似度阈值兜底:低于阈值宁可返回"未找到相关资料",也不喂低质量内容让模型硬编;
  3. 上下文去噪:喂之前过滤无关分块、去重——噪声会诱导模型"联想发挥"。

生成侧(约束模型行为):

  1. 提示词强约束:"仅依据提供的资料回答,资料未提及就明确说明",并要求逐条标注引用来源;
  2. 低 temperature(0~0.3):降低"自由发挥"倾向;
  3. 结构化输出:要求答案分"结论/依据/引用"三段,强迫证据链完整。

校验侧(不信任生成结果):

  1. 忠实度校验:用 LLM-as-Judge 或 NLI 模型比对"答案是否被检索内容支持",不支持的段落拦截或标记;
  2. 关键数字走确定性来源:金额、日期、库存这类硬数据,从结构化系统直取,不让模型"转述"。

运营侧(持续降低):

  1. 幻觉率指标化:抽检+用户反馈(点踩)统计幻觉率,纳入版本发布门禁;
  2. badcase 回流:每周分析幻觉案例,归因到检索/切分/提示词层定向修复。

业务定调:幻觉治理不是技术终点线而是运营基线——上线只是开始,指标看板+回流机制才是长期压低幻觉率的关键。我的目标设定经验:把"带引用且引用正确"作为硬指标考核,比笼统的"准确率"更可执行。

🏗 系统架构师 ​

RAG 幻觉治理我用全链路六道防线(按数据流顺序):

  • 建库侧:知识质量:语料清洗(去重、纠错、版本管理),答案源头脏,后面全白搭;分块保语义完整(结构化切块 + 父子块),破碎 chunk 逼模型脑补;
  • 检索侧:宁缺毋滥:相关性阈值过滤——低于阈值不给模型("检索不到"比"给了不相关的"安全得多);混合检索 + Rerank 提升相关性;元数据过滤(时间/来源可信度)保证引用的是"对的版本"的资料;
  • Prompt 侧:强 grounding 约束:"仅依据提供的资料回答,资料无依据时回答'未找到相关信息'"——拒答合法化;要求先列依据原文再作答(证据链前置);
  • 生成侧:解码收敛:低 temperature(0~0.3);结构化输出包含"依据片段 ID"字段,强制对齐;
  • 校验侧:后验核查:faithfulness 校验(NLI 模型或 LLM Judge 判断答案每句是否被检索内容支撑),不通过 → 拦截/降级/重新生成;关键实体与数字和原文精确比对;
  • 运营侧:反馈闭环:用户点踩/纠错回流 → badcase 归因(检索没召回?还是生成编造?分开统计)→ 定向修库或改 Prompt。

度量指标:faithfulness(忠实度)、groundedness、拒答正确率、用户纠错率——分检索与生成归因,别混在一个"幻觉率"里。

架构认知:幻觉无法清零(生成模型的本质),系统设计要假设幻觉发生:高风险领域(医疗金融)答案必须带引用 + 置信度,低置信自动转人工。

💻 全栈开发专家 ​

我按「数据、检索、生成、后验」四段减幻觉,每条都是项目里验证过的:

数据源头:

  • 知识库质量治理:去重、版本管理(旧版本文档是「合法的幻觉源」)、权限与时效标注;
  • chunk 带元数据(来源、时间、可信级别),检索时可加权。

检索侧(提高依据质量):

  • 混合检索(向量+BM25)+ Rerank——依据不对,生成再稳也没用;
  • 相似度阈值:低于阈值的块不进上下文,宁可少给依据也不给噪声;
  • 检索为空时走拒答分支,不要「硬答」。

生成侧(约束模型行为):

  • Prompt 三件套:仅依据上下文 + 强制引用 [n] + 明确拒答许可;
  • 低温度(0~0.3);
  • 指令里给出「资料边界」:哪些资料是权威的、冲突时以哪个为准。

后验校验(最后一道闸):

python
from ragas import evaluate
from ragas.metrics import faithfulness
score = evaluate(dataset, metrics=[faithfulness])  # 答案是否被上下文支撑
# 低分答案拦截或降级为"请稍后转人工"

NLI 忠实度校验、引用编号核对(引用的 chunk 是否真的包含该论断)。

运营闭环:幻觉案例回流——每周分析 badcase 归因(检索问题/生成问题/知识缺失),分别驱动索引优化、prompt 迭代、知识补录。

实测结果参考:我们客服 RAG 上线初期幻觉率 12%,做完「rerank+阈值+引用+忠实度拦截」降到 2% 以内。核心认知:幻觉治理是系统工程不是单点技巧,且永远到不了 0——目标是可控、可发现、有兜底。