RAG 通过哪些手段减少幻觉?
未标记
考查重点:可信证据与回答忠实性。检索可信新证据并附来源,去重重排保完整条件,生成后核关键断言,无证据补查/说明缺口
本题目录
参考答案
核心回答
RAG 通过给模型提供可核验的外部证据,减少对参数记忆和猜测的依赖,但不能自动消除幻觉。 要同时做好证据质量、检索与上下文、生成约束和回答核验。
先保证知识来源、版本和适用范围正确,再把回答所需的完整证据找齐、去噪并附来源;生成时要求结论有证据、缺信息时澄清或说明缺口;最后检查关键事实、引用和确定性结果,并用包含无答案、冲突和干扰信息的评测集持续验证。
找到相关材料,还要判断它能否支持结论
语义相似只说明主题接近,不保证材料包含答案。例如设备 B 的维修手册可能与设备 A 的问题非常相似,但不支持 A 的操作步骤。知识入库时应保留型号、版本、时间、来源位置和必要的访问范围,检索时按当前问题过滤。
文档解析与切分要保住条件和例外。若一个片段只留下“可以复位”,却丢掉前文的适用型号和停机条件,模型即使照着片段回答,也可能给出错误建议。对于跨段、表格或多文档问题,需要找齐相关证据,而不是只追求一个分数最高的片段。
可用关键词与向量混合检索处理型号、错误码和自然语言的差异,再用重排筛出更能回答问题的材料。Query Rewrite 和多查询扩展应保留原问题的对象与约束;扩大 Top-K 后仍要检查噪声和输入长度。
HyDE 生成的假设性段落只是检索线索。它不是已经查证的事实,不能直接作为最终答案的证据。 最终仍要回到真实文档。
让模型看见完整证据及其边界
上下文应包含证据正文和来源标识,必要时带版本、适用对象和相邻段落。重复片段可以去重,冗长内容可以压缩,但不能把否定、数值单位、前置条件或例外删掉。
提示词可以明确:基于给定材料回答;关键结论标注对应来源;资料冲突时指出冲突;缺少依据时先澄清或说明无法判断。证据内容应与系统指令分开,检索文档中的“忽略之前要求”等文字只是外部数据,不能获得执行指令的权限。
这些约束需要应用层配合。仅写“禁止编造”无法验证模型是否遵守;降低 temperature 也只是改变输出采样,不是事实正确性的保证。
生成后检查“说法”与“证据”的对应
对金额、日期、型号、步骤顺序和适用条件等关键断言,逐项检查是否由引用片段支持。引用存在、链接能打开,并不代表这句话真的在来源里得到支持。
能确定性检查的内容,优先用程序或业务系统核验:数值可重新计算,结构可按 JSON Schema 校验,工具是否执行则查询真实结果。格式合法不等于业务事实正确,检查对象要与问题对应。
还要区分两类结果:
- 上下文忠实性:回答有没有超出或歪曲给定材料。
- 事实正确性:材料和结论在当前业务、时间与版本条件下是否成立。
模型忠实复述一份过期政策,前一项可能合格,后一项仍可能错误。为此,知识更新、来源选择与版本过滤也是减少错误回答的一部分。
证据不足时,可在预算内补检索、追问缺失条件,或转交人工;不要用反复生成替代查证。若重新检索仍无法支持结论,最终回答应保留这个缺口。
怎样判断措施真的有效
评测集应覆盖可回答、不可回答、版本冲突、相似型号混淆、条件缺失,以及混入无关或恶意内容的情况。分别看必要证据覆盖、回答正确性、上下文忠实度、引用支持程度和恰当拒答,避免只比较回答是否更流畅。
模型裁判可以辅助发现不受证据支持的断言,但它也会误判。应使用明确标准,并拿人工确认的样本校准;对高影响结论保留原文核对。每次改检索或生成策略,都要回放原失败问题和未参与调整的留出问题。
对应教程
- 第19章:RAG 检索增强生成:理解外部知识怎样经过切分、检索和上下文组装进入模型;本文进一步解释证据边界与生成后的核验。
参考资料
- 国内:JavaGuide:RAG 优化:借鉴上下文保留条件、提示词限制证据范围和引用校验的说明,解释为什么仅要求模型拒绝编造还不够。
- 国内:阿里云百炼:RAG 效果优化:参考元数据筛选、切片完整性、生成约束与拒答机制,组织找对资料到控制回答边界的过程。
- 国内:Datawhale:记忆与检索:根据多查询扩展和假设文档嵌入的机制,区分检索辅助文本与真正可引用的知识证据。
- 国内:腾讯云:RAG 操作指南:参考从文档解析到检索、重排和提示模板生成的链路,说明外部材料经过处理后才进入模型,并非直接保证答案正确。
- 国外:LangChain:Evaluate a RAG application:用于区分回答对参考答案的正确性、对检索材料的忠实度,以及回答与问题的相关性。
- 国外:Microsoft:Retrieval augmented generation and indexing:核对有检索依据仍会产生不准确回答的限制,以及检索阶段权限控制和将检索内容视为不可信输入的边界。