A12 · 第 4 章 · 第二编 多模态模型
检索增强与事实落地
把检索增强拆成查询、稀疏/稠密召回、分块、重排、上下文构造、生成和声明级引用链,分别评价召回、忠实性、完整性与新鲜度,并处理提示注入、权限和证据不足。
报告页面错误本章目标
- 把检索增强系统分解为查询、召回、重排、上下文构造、生成、引用和核验阶段。
- 比较稀疏、稠密与混合检索,计算Recall@k和倒数排名融合。
- 设计带稳定来源、重叠和访问控制的分块方案,并计算上下文预算。
- 区分证据被召回、回答忠实于证据、引用支持声明和来源本身正确新鲜。
- 处理检索提示注入、权限泄漏、索引更新延迟和证据不足时的拒答。
本页目录
检索增强是一条可分解的证据链
系统接收问题 后,先构造检索查询,召回候选片段,按相关性和权限过滤或重排,再在长度预算内组成上下文 ,最后由生成器估计 。输出若包含引用,还要把每个声明映射回片段、原文档、版本与位置。任一阶段都可失败:查询丢失约束、召回漏证据、重排误降、上下文截断、生成忽略证据或引用指错来源。
因此“加入检索”不是事实正确性的保证。它只让模型有机会读取外部材料。若来源错误或过期,忠实复述仍可能不正确;若正确材料进入上下文,模型仍可能加入没有支持的内容;若答案碰巧正确,引用也可能并不支持相应声明。检索、使用、忠实、正确和引用完整性必须分别评价。
链路还应保留可重放输入:原始问题、查询改写、索引版本、过滤条件、候选分数、最终片段顺序、生成配置和引用映射。只保存最后答案无法定位是检索错误还是生成错误。
稀疏检索和稠密检索利用不同匹配信号
稀疏检索以词项、文档频率和长度归一等统计匹配查询与片段,擅长产品编号、姓名、公式符号和罕见术语等精确重合。它对同义改写较弱,也受分词和拼写影响。稠密检索把查询与片段编码成向量,用内积或余弦检索语义相近内容,能连接部分同义表达,却可能忽略关键数字或否定词,并继承编码数据偏差。
两者都可采用近似索引降低大规模搜索成本。稀疏倒排只访问含查询词的列表;稠密近邻图或量化索引牺牲部分精确召回换取延迟和内存。评价时要用精确搜索或足够强基线区分“表示没找到”和“近似索引漏掉”。
混合检索不能直接相加未经校准的原始分数,因为稀疏和稠密分值范围不同。可以在验证集上归一化加权,也可只融合名次。倒数排名融合定义
其中 控制前几名差距,缺席某列表的文档不贡献该项。
文档甲在稀疏列表排一、稠密列表排十;文档乙分别排四和二。取 ,甲分数为 ,乙分数为 ,所以融合后乙略高。
若直接把一个范围为零到二十的稀疏分数与零到一的余弦相加,稠密信号几乎不起作用。RRF避免原始尺度问题,但参数六十和候选截断仍会改变结果,需在独立查询集上选择。
查询构造必须保留用户约束
短问题可直接检索,长对话常需把代词、时间、产品版本和地域补进独立查询。改写能提高召回,也可能改变意图:把“不能用于儿童的药物”改成“儿童药物”会丢失否定。应同时保留原始查询与改写,必要时并行检索后融合。
多跳问题可能需要先找到实体,再用第一跳结果形成第二跳查询。每次扩展都增加延迟和漂移风险,停止条件要由证据缺口而非固定“思考轮数”决定。涉及数值、日期和专名时,可把关键词通道与语义通道并行,避免只依赖生成式改写。
分块决定什么能够被独立召回
文档进入索引前通常按标题、段落、句子或token窗口切块。块过小会失去定义、条件和结论之间的上下文;块过大会混入多个主题、稀释向量并浪费生成窗口。固定重叠能减少边界切断,但会生成近重复候选,占据top-。
每块需要稳定标识、原文档标识、版本、起止位置、标题路径、时间和访问控制。稳定标识应区分同一文档的不同版本;更新后旧块要删除或标记失效,不能让新旧规则同时进入上下文。解析表格、代码和PDF时还要保留行列、页码或章节结构,而不是只拼成无位置纯文本。
一篇一千token文档采用块长三百、重叠五十,步长为二百五十。起点为零、二百五十、五百、七百五十,共四块,最后一块覆盖到文末。一个位于token二百九十到三百一十的事实,在第二块二百五十到五百五十中完整出现。
若无重叠且块起点为零、三百、六百、九百,该事实会被前两块切开,任何单块都不完整。重叠并非越多越好:重叠二百五十时步长只有五十,会产生大量近重复块并挤占候选。
语义分块可按标题或主题边界自适应,但模型分段结果需可复现,并避免使用未来敏感数据。分块策略变化相当于索引结构变化,比较前应整体重建或明确混合版本。
召回和重排是两道不同上限
第一阶段追求高Recall@,允许候选含噪;重排器读取问题和候选的联合特征,把更相关证据推到前面。cross-encoder重排能处理词间交互、否定和条件,成本随候选数增长。重排器只能移动已有候选,不能恢复未召回证据。
五个问题的首个正确证据在初检列表排名为 。Recall@5为三个成功除以五,即 ;Recall@10为四除以五,即 。取top-10交给重排器后,四个已召回证据被排到 ,最终Recall@3为 。
原排名十二的证据不在重排输入,无法被救回。若只报告重排后四个可见问题上的百分之百,会隐藏召回失败;分母必须保留全部问题,并分别报告候选Recall和重排增益。
多证据问题还要评价证据集合覆盖。只找到结论而漏掉适用条件,生成器可能作过宽回答;只找到两跳中的一跳,也不能支持最终推理。标注应尽量区分必要证据、可替代证据与背景材料。
上下文构造受窗口和来源映射共同约束
构造器按预算选择片段,去除近重复,保留标题、来源和边界,并避免在句中截断关键条件。相关性最高不一定是最佳组合:四个重复片段可能不如三个互补来源。可用覆盖、时间、来源多样性和权限作为约束,但每项都要说明排序规则。
模型窗口四千零九十六token,系统说明预留二百五十六,用户问题预留二百五十六,最大输出预留七百六十八,因此证据预算为 。
每块正文六百二十token,来源包装和分隔符四十,共六百六十。最多放入 块,占二千六百四十,剩余一百七十六。第五块会超预算;若实现截掉它的尾部,引用可能只保留结论而丢失限定条件,构造器应在块或句子边界明确取舍。
“窗口放得下”不表示模型能可靠使用每处证据。片段顺序、长上下文中的位置、冲突来源和问题复杂度都会影响使用。应比较不同候选数、顺序和oracle上下文,而不是把上下文长度当能力指标。
引用必须贴到它真正支持的声明
生成器可在上下文中读取带稳定编号的片段,并在句子或声明后输出编号。系统再把编号解析为原文档链接和位置。引用不能由答案生成后再仅按语义相似度“补一个最近来源”,因为相似文档可能没有蕴含该声明。
声明级检查至少回答三问:引用片段是否包含相应信息,片段是否在适用条件和时间上支持该表述,答案是否把多个来源的结论错误合并。一个段落含四个事实却只在末尾放一个来源,不能假定来源支持全部四项。
回答被拆成四个可核查声明,其中三个附引用,一个无引用。人工核对发现三个引用中有两个支持对应声明,一个只谈相近主题。引用覆盖率为 ,已引用声明的支持率为 ,全部声明得到支持的比例为 。
只报告覆盖率会把错误引用算成功,只报告已引用支持率又会忽略无引用声明。若某一声明需要两个来源联合支持,还应检查两个来源是否都被列出且推理连接有效。
自动蕴含模型可用于大规模筛查,但也会受长文本、否定和数值比较影响;高风险领域仍需抽样或人工核对。引用格式正确只是解析成功,不等于语义支持。
忠实于上下文仍不等于事实正确
上下文忠实性检查答案是否只陈述证据允许的内容。事实正确性还依赖来源质量、新鲜度和问题所指时点。两个版本冲突时,系统应按版本、发布日期和适用范围处理,并在无法消解时展示冲突或拒答,而不是让生成器默选一条。
假设设备手册旧版写最大压力八MPa,新版写十MPa,问题询问当前版本。检索器把旧版排一、新版排四,而上下文预算只放前三项。生成器回答八MPa并正确引用旧版:它对所见上下文忠实,引用也确实支持八,却没有回答当前版本事实。
修复要从索引和构造器处理版本:记录适用型号与生效时间,对“当前”查询优先有效最新版,并在旧版仍可能适用时说明范围。仅要求模型“更忠实”无法补回未进入上下文的新版本。
索引更新要有抓取时间、源版本、删除传播和缓存失效策略。实时源不代表实时索引;展示“来源日期”也不代表内容仍有效。对易变事实可设置最大陈旧时间或查询时回源,并把无法达到的新鲜度写入回答边界。
检索内容是不可信数据而不是指令
网页、邮件和文档可能包含“忽略先前要求”“调用工具发送数据”等提示注入文本。检索器把它们放入上下文后,生成模型可能误当指令。系统应把来源内容放在明确数据边界内,优先级低于系统与用户授权;对工具调用实行独立权限、参数验证和最小权限,不能依赖一句“不要听文档指令”。
注入防护还包括来源允许列表、主动内容剥离、可疑模式标记、工具前确认和输出数据流控制。攻击者可以用自然语言改写绕过简单关键词,因此要用端到端攻击集测试。即使模型拒绝执行,也可能在回答中泄露上下文里的秘密。
访问控制必须在召回前按当前用户过滤,不能先取全库top-再期待生成器不引用无权片段。索引缓存、向量副本、日志和引用链接都要继承删除与权限。稠密向量本身也可能泄露成员或内容特征,不应被视为无敏感信息。
评价从组件上限走到端到端回答
检索集标注查询—证据相关性,报告稀疏、稠密、混合的Recall@、排名和延迟;重排单独测候选内排序。生成阶段用oracle正确证据测试“会不会使用”,用真实检索测试端到端,用空上下文测试模型先验。三者差异有助于定位瓶颈。
答案评价拆成任务正确、声明支持、引用覆盖、来源质量、拒答适当性和冲突处理。安全评价加入恶意文档、越权文档、删除后文档和索引延迟。最终还要报告成本、尾延迟和失败率;提高候选数可能改善召回,却扩大上下文、注入面和费用。
练习
查看提示
查看解答
查看提示
查看解答
查看提示
查看解答
查看提示
查看解答
查看提示
查看解答
查看提示
查看解答
概念关系
- 视觉语言模型 提供双编码器相似度与跨模态检索。
- 哈希、堆与图算法 支持索引、近邻和候选管理。
- 条件概率 区分问题、上下文与输出的条件关系。
- 数据切分与泄漏 约束重复文档、查询和评价证据隔离。
- 语言建模与规模规律 提供条件生成目标与计算背景。
- 工具、记忆与规划 延伸权限、状态与外部动作链。
- 大模型智能体综合复习 汇总端到端成功、成本和安全评价。
资源
Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
Patrick Lewis, Ethan Perez, Aleksandra Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Küttler, Mike Lewis, Wen-tau Yih, Tim Rocktäschel, Sebastian Riedel, Douwe Kiela
用于核对检索—生成联合建模的原始范围;引用正确性和生产审计需要额外设计。
打开官方来源