✨ 复制成功!

以文会友,打造好学人设!

📋 已复制到剪贴板:

如何缓解 RAG 中的幻觉问题?除了“让模型只根据检索内容回答”,还有哪些工程和提示词层面的手段?

创建时间:2026-09-20 更新时间:2026-10-21 阅读次数:1363 次 分类:Agent与RAG应用

1、RAG 里的幻觉从哪来

RAG 幻觉不是单一原因,分几类:

检索没召回到正确文档:上下文里没有答案,模型只能编。

召回了噪声文档:上下文里有错误或无关信息,模型被误导。

检索内容冲突:多个文档说法不一致,模型不知道信谁。

模型不忠于上下文:明明给了正确内容,模型还是按自己参数里的知识回答。

模型过度补全:上下文只给了一半,模型自己补另一半。

Prompt 没约束好:没要求引用、没要求拒答。

所以缓解幻觉要从检索、上下文、Prompt、生成、后验校验多个层面一起做,而不是只靠一句“只根据检索内容回答”。

2、检索层面的手段

(1)提升召回质量

混合检索(向量 + 关键词),提高召回率。

查询改写(Query Rewriting),把用户问题改写成更适合检索的形式。

查询扩展(Query Expansion),补充同义词、相关词。

多路召回,融合结果。

(2)提升检索精度

重排序(Cross-Encoder),把最相关文档排前面。

元数据过滤(时间、来源、权限),排除不相关文档。

去重,避免同一内容多个版本。

(3)控制上下文质量

只保留高相关文档,减少噪声。

按相关性排序,最相关的放前面。

限制上下文长度,避免超出窗口或噪声过多。

冲突检测:多个文档矛盾时,标注或让模型谨慎处理。

(4)检索评估

用 Recall@K、MRR、NDCG 评估检索。

分析 bad case:是没召回,还是排错了。

持续迭代检索策略。

核心:检索质量是 RAG 幻觉的第一道防线。上下文里没有正确答案,模型必然编。

3、提示词层面的手段

(1)明确要求“只根据上下文回答”

最基础的手段。

但单独用不够,模型仍可能不遵守。

(2)要求引用来源

让模型在答案里标注来源,比如 [1]、[2]。

便于人工核查,也让模型更谨慎。

可以要求引用原文片段。

(3)允许说“不知道”

明确告诉模型:上下文没有答案时,回答“根据已知信息无法回答”。

减少模型硬编。

这是很重要的手段,很多团队会忽略。

(4)要求逐句依据

让模型每句话都对应上下文。

或者先列证据,再给结论。

这叫“先引用后回答”。

(5)角色和任务约束

设定角色:“你是一个只根据文档回答的助手。”

明确任务边界。

(6)少样本示例

给几个“正确回答”和“拒答”的示例。

让模型模仿。

(7)结构化输出

要求输出 JSON,包含 answer、citations、confidence。

便于后验校验。

(8)温度调低

生成时温度调低,减少随机性。

事实问答场景尤其有效。

核心:Prompt 要明确约束、要求引用、允许拒答,但不能只靠 Prompt。

4、生成层面的手段

(1)降低温度

温度低,输出更确定,幻觉更少。

但太低会死板,需要平衡。

(2)限制输出长度

输出太长,模型容易补全。

要求简洁回答。

(3)先推理后回答

让模型先列证据,再给结论。

类似 Chain-of-Thought,但基于上下文。

(4)多轮验证

生成后让模型自己检查:答案是否都有上下文支持?

或者用另一个模型做验证。

(5)约束解码

限制模型只能输出上下文里出现的实体或片段。

工程复杂,但有效。

核心:生成阶段控制随机性,要求基于证据。

5、后验校验层面的手段

这是很多人忽略但很重要的部分。

(1)引用校验

检查答案里的引用是否真的在上下文里。

引用不存在或对不上,就标记或重生成。

(2)事实一致性校验

用 NLI 模型判断答案是否被上下文蕴含。

不蕴含就拒答或重生成。

(3)答案-上下文对齐

逐句检查答案是否有上下文支持。

无支持的部分删掉或标注。

(4)多模型交叉验证

用另一个模型独立生成,对比结果。

不一致就谨慎处理。

(5)置信度估计

让模型输出置信度。

低置信度时拒答或转人工。

(6)人工审核

高风险场景(医疗、法律、金融)加人工审核。

或抽样审核。

核心:生成后要校验,不能直接信模型输出。

6、系统层面的手段

(1)拒答机制

检索分数低于阈值,直接拒答。

上下文不足,拒答。

校验不通过,拒答。

(2)转人工

高风险或低置信度,转人工。

客服、医疗、法律常用。

(3)溯源展示

答案旁展示来源文档。

用户可自行核查。

(4)反馈闭环

用户反馈错误,用于迭代检索和 Prompt。

持续优化。

(5)监控和评估

线上监控幻觉率。

定期人工评估。

用 Faithfulness、Answer Correctness 等指标。

核心:系统要有拒答、转人工、溯源、反馈闭环。

7、评估幻觉的指标

Faithfulness:答案是否忠于上下文。

Answer Correctness:答案是否正确。

Context Precision / Recall:上下文是否相关且完整。

Hallucination Rate:幻觉比例。

Citation Accuracy:引用是否准确。

用 RAGAS、TruLens 等框架可以自动化评估。

8、一句话总结

缓解 RAG 幻觉要多层配合:检索层提升召回和精度,Prompt 层要求引用和允许拒答,生成层降低温度、先证据后结论,后验层做引用校验和一致性校验,系统层有拒答、转人工、溯源和反馈闭环。只靠“让模型只根据检索内容回答”远远不够。

9、这道面试题的质量点评

优点

  • 问题真实:幻觉是 RAG 最核心的痛点,必考。
  • 区分度好:
    • 初级:能说“只根据上下文回答”。
    • 中级:能说引用、拒答、温度、重排序。
    • 高级:能说后验校验、NLI、拒答机制、评估指标。
  • 开放但有边界:题目明确说“除了只根据检索内容回答”,逼候选人展开。
  • 有追问空间:可以追问 NLI 校验、RAGAS、拒答阈值、引用准确性。

缺点

  • 偏开放:手段多,容易泛泛而谈。
  • 容易背结论:可能只答“引用、拒答、温度”。
  • 缺少场景:没问“你实际项目怎么做的?幻觉率多少?”
  • 没覆盖约束解码、多模型验证:这些是进阶手段,题目没提。

总体评价

质量:上。 适合中高级岗位,能有效区分“知道 RAG 有幻觉”和“真正做过幻觉治理”的人。建议追问:

“引用校验怎么做?”

“NLI 模型怎么用?”

“拒答阈值怎么定?”

“幻觉率怎么评估?”

“高风险场景怎么处理?”

10、怎么回答才是最好的

回答原则

  • 先分类:幻觉来源多样,要分层治理。
  • 分层面说:检索、Prompt、生成、后验、系统。
  • 每个层面给具体手段:不要只列名词。
  • 主动提评估:Faithfulness、引用准确率。
  • 结合实践:说“我们用 RAGAS + 引用校验 + 拒答”。

推荐回答结构

“RAG 幻觉来源很多:检索没召回、召回噪声、文档冲突、模型不忠于上下文、过度补全。所以要分层治理。”

“检索层:混合检索、查询改写、重排序、元数据过滤、去重,保证上下文质量。这是第一道防线。”

“Prompt 层:要求只根据上下文、要求引用来源、允许说不知道、先列证据再回答、给少样本示例、结构化输出、温度调低。”

“生成层:降低温度、限制输出长度、先推理后回答、多轮验证。”

“后验层:引用校验、NLI 一致性校验、答案-上下文对齐、多模型交叉验证、置信度估计。这是很多人忽略但很重要的部分。”

“系统层:检索分数低就拒答、低置信度转人工、展示溯源、用户反馈闭环、线上监控幻觉率。”

“评估用 Faithfulness、Answer Correctness、Context Precision/Recall、Citation Accuracy,可以用 RAGAS。我们实际用引用校验 + NLI 校验 + 拒答阈值,高风险场景转人工。”

加分点

  • 提到 混合检索、查询改写、重排序、元数据过滤。
  • 提到 引用、拒答、先证据后结论、温度、结构化输出。
  • 提到 NLI 校验、引用校验、多模型验证、置信度。
  • 提到 拒答机制、转人工、溯源、反馈闭环。
  • 提到 Faithfulness、RAGAS、Citation Accuracy。
  • 结合真实幻觉治理经验。

减分点

  • 只说“让模型只根据检索内容回答”。
  • 不知道后验校验。
  • 不知道评估指标。
  • 说“温度调 0 就没幻觉”(不一定)。
  • 不知道拒答机制。

📌 面试天下网:一款服务于上班族的口袋书,让大家在地铁里/公交上可以学习大模型技术!
📌 网站公告:【悬赏 200 元/篇】寻找“大模型面试战场”的一手回忆录
📌 网站公告:【大模型/Agent面试陪练1V1指导】正式启动......

评论专区

评论加载中...