RAG 的难点在证据链:长上下文为何没有让检索失去意义
原载:荒岛书生 · 原文 · 作者:荒岛书生 · 原始发布日期:2026-09-09。 迁移核对:2026-11-07,依据当前公开正文;保留原文资料截止日期、作者观点与核验说明,不将历史资料视作今日消息。
回答带了引用,为什么仍然可能错
用户问“这项政策是否适用于新员工”,系统返回一段流畅解释,还附上内部文档。点击来源后却发现,引用的是去年的制度,而且正文遗漏了试用期的例外。这里的问题不是缺少文字,而是没有正确建立问题、证据与结论之间的关系。
2020 年 RAG 论文把生成模型与外部检索知识连接起来,为知识密集型任务提供一条路径。但论文中的具体系统,并不等于今天所有被称为 RAG 的产品。本文讨论的是由此衍生的工程问题,而不是承诺某种架构自动消除幻觉。RAG 原论文。
先把一次回答拆成四段
第一段是数据进入知识库:来源是否可靠、更新时间是什么、谁有权阅读。第二段是召回:用户问题能否找到真正需要的文档。第三段是选证据:多个版本、相互冲突的段落如何处理。第四段才是生成答案,并明确引用支持哪一句结论。
这四段需要分开检查。若最新政策根本未入库,换提示词无法解决;若原文已找到却被截断,应调整切分与上下文组织;若证据完整但结论仍错,才进一步检查生成指令和模型能力。
切分文档不是按字数剪纸
固定长度切片方便实现,却可能把标题、定义与例外条件分开。表格的列名被切掉后,一行数字就失去含义。更适合实际任务的做法,是保留文档标题、章节层级、版本和相邻上下文,再用真实问题检验切片是否独立可解释。
检索也不必押注单一方式。精确名称、编号和专业缩写适合保留关键词匹配;同义表达可能受益于语义检索。本站的工程建议是先从错误样本看缺什么,再决定是否加入混合检索与重排,避免为架构完整而增加没有证据支持的环节。
长上下文改变成本结构,没有取消选择问题
2023 年 Lost in the Middle 研究观察到,其测试模型对不同位置的信息利用并不一致。这个历史发现不能直接当作所有新模型的测评结果,但它提供了值得长期保留的测试方法:同一证据放在开头、中间和末尾,答案是否稳定?原论文。
即使模型能读下全部文档,仍要决定哪些版本有效、哪些内容用户有权看、来源矛盾时相信谁。检索帮助缩小候选范围,长上下文帮助容纳更多相关材料;两者可以协作。选择时需要同时衡量召回遗漏、上下文噪声、延迟与费用。
建立可以定位问题的验收集
假设要做公司制度问答,可以准备常规问题、带例外的问题、需要跨文档的问题和知识库没有答案的问题。每题保留正确文档及关键证据,而不只写一段参考答案。
| 检查项 | 失败意味着什么 |
|---|---|
| 必要文档是否进入候选集 | 召回或数据覆盖有问题 |
| 有效版本是否优先 | 元信息和规则不足 |
| 引用是否支持具体结论 | 证据选择或生成有问题 |
| 无答案时能否说明缺口 | 系统可能在用猜测补洞 |
这套方法是本文提出的评估框架,并非上述论文报告的实测结果。不要把一组内部样本的准确率写成对所有文档都有效。
权限必须在证据进入模型前生效
如果无权阅读的材料已经送入上下文,再要求模型“不要泄露”,系统就把本可由确定性规则执行的权限判断交给了概率输出。更稳妥的设计是检索阶段按身份过滤,日志也只保留必要信息。
对使用者而言,一个好的知识助手不仅会给答案,还会让人看到答案从哪里来、哪部分证据不足、何时需要回到原文。RAG 的价值因此可以表述得很具体:让知识更新与回答依据更可管理,而不是给文本外面装饰几个链接。
资料来源
资料核验:2026-09-09。本文为基于公开资料的原创整理。