机制分析
先找到候选,再判断证据是否够用
本例使用五份虚构报销资料,问题是“出差打车没有发票,能报销吗?”常见问题标题与查询用词很接近,但标题只指向其他条款,不能单独支撑答案。真正相关的信息分布在交通票据条款与票据遗失核验条款中:常规需要合规票据,可提交材料发起补充核验,最终仍以财务审批为准。
词项路根据人工拆分的词语计算 BM25,语义路用人工二维向量计算余弦相似度,两路各取前 K 条。随后用 RRF 按名次融合并按检索块编号去重,再以人工相关性标签模拟重排。这里展示一种混合检索方案,并不要求所有 RAG 都必须包含这些步骤。
| 处理阶段 | 它能改变什么 |
|---|---|
| 切分与索引 | 确定可检索单元,以及条件能否一起被取回 |
| 双路召回 | 决定哪些块进入候选集合 |
| 融合与重排 | 合并或重排已有候选,无法补回未召回条款 |
| 证据注入 | 把选中摘录实际放进本轮输入 |
| 回答与核对 | 检查结论是否得到原文条件支持 |
条款被切开后,限制条件可能消失
把“发起补充核验”和“是否报销以审批为准”拆为两块,再限制候选数量,可能只取回其中一部分。于是“有核验流程”被误读成“允许报销”。切分并非纯粹的文件处理,它会改变后续是否有机会同时取得完整条件。
重排后的证据还要进入本轮输入。原文架上存在资料、检索器曾经找到资料,都不能证明模型已经收到。本例按发票要求、核验流程与审批限制三个固定事实检查完整性,再显示预设回答;真实回答仍需另外核对内容与引用是否对应。
工程取舍
增加资料之前,先定位信息在哪一步丢失
检索块大一点,还是小一点?
小块更容易精确命中,也可能把例外、前提和正文分开;大块保留上下文,却会占用更多输入并混入无关内容。可以按条款结构切分,为相邻条件保留关联,再在需要时扩展上下文。不能只根据单块相似度判断最终证据是否完整。
增大 K,还是改写问题?
增大 K 可以扩大候选,但会增加后续成本,未必解决用词不匹配。改写能引入条款中的词语,也可能改变原意,因此原问题与改写都应可追溯。本页“改写查询”只改变词项路,语义查询向量固定为 [1,0],用于控制对照;语义排名不变,不能推广成真实嵌入模型对改写不敏感。
更强的重排,能弥补多少召回问题?
重排可以改善候选次序,前提是必要条款已在集合中。若审批限制没有召回,就应处理切分、查询或召回范围,而不是只调重排分数。高融合分也不代表事实正确率,它反映的是本例中各路排名的组合。
落到实现
保存候选变化,才能解释答案缺口
一次排查至少要能看到原问题、实际检索查询、召回候选、重排次序、最终注入片段及其来源。这样才分得清未找到、被排除、未装入和回答误用。只保留最后一句回答,通常无法判断该改检索还是该改生成。
本页资料完全虚构,没有真实报销政策。向量、相关性和回答是演示预设,BM25、余弦与 RRF 在本地计算;固定事实检查器不是生产级证据验证器。证据进入模型以后,也不能保证结论必然可靠。
检索系统需要关注的不只是排名第一是谁,还包括必要事实是否一起到场,以及最终答案有没有越过这些事实能够支持的范围。