一次塞24篇不如窄窗口连跑12次,RAG覆盖差14.4点

The Laws of Context Allocation: Causal Measurement and Closed-Loop Orchestration in Generative Search

Peiyang Liu, Xi Wang, Di Liang, Wei Ye

cs.LG, cs.CL, cs.IR

2026-08-24

北大用因果留一探针量RAG真正用了哪篇证据,证明加宽上下文被检索衰减卡住。同样24槽拆成12轮窄窗口,portfolio recall比一次塞满高14.4点。

这篇在解决什么

搜索引擎面对歧义查询,会返回一份互相补位的文档列表。RAG 继承了「查询意图不唯一」这件事,交付方式却改成把检索段落一次塞进提示,压成一条答案。复杂信息需求下,单次合成几乎必然丢掉一部分证据支撑的事实。

预算就卡在这里。固定检索池、固定硬件预算,系统可以一次喂很宽的上下文,也可以把同样数量的文档槽拆成多轮窄窗口、每轮换新鲜证据。主流做法偏向加宽。要比较这两种包装,先得量模型到底用了提示里的哪一篇,不能只量文档跟查询像不像。

方法

测量工具是因果留一(leave-one-out, LOO)探针。回复 y 已经生成完,把文档 d 从上下文抠掉,看固定文本的平均 token 对数似然掉多少。掉得越多,生成对这篇的结构依赖越强。y 固定,所以每次消融只是一次 teacher-forced 前向,不必重新自回归解码;k 篇文档对应 k+1 次可并行的前向。

他们用这个探针拆开一套常见的评价幻觉。填充文档换成完全无关主题的 off-query distractor 时,query–document cosine 和 BM25 在宽度 k=24 上 AUC 接近 1.000,LOO 只有 0.829。换成同一查询下不含答案的 hard negative 之后,BM25 和 cosine 在 k=3 掉到 0.444 和 0.484,接近随机;LOO 仍是 0.876,k=24 时 0.824。相似度量的是话题重合,探针量的是生成依赖。

校准掉自由生成时文本变长、变含糊带来的假阳性之后,宽度弹性是 −0.68(标准误 0.02):上下文越宽,单篇证据的归因越稀。这不是硬件截断。实验提示最长 5,485 token,远低于模型窗口。

调度侧把探针接到闭环里,系统叫 Ascp。检索文档先按语义簇切成知识切面;每轮读 LOO 反馈,用单调子模目标给已经用过的切面打折,下一轮优先塞未探索证据。解码侧再加一层 attribution-steered contrastive decoding:从 logit 里减去「过度使用文档」方向,用 adaptive-plausibility constraint 把候选钉在合理词表里,避免把模型推出流形后胡编。

对照包括无反馈的 Rotate、Vanilla RAG、MMR、xQuAD、PM-2、DPP-RAG 和 Carriage。检索池冻结在 ALCE 的 top-30(深池实验扩到 400),生成器用 Qwen2.5-7B、Llama-3.1-8B、Mistral-7B,分配规律另外在 Qwen2.5-14B/32B 上复现。任务覆盖 ASQA、QAMPARI、ELI5,外加跨文化食谱改写作为非英语压力测试。

结果

核心实验是去混淆的 k×T 因子设计:宽度 k∈{2,5,12,24} 交叉轮数 T∈{1,5,12}。旋转臂每轮换不相交的排名窗口;固定臂反复在同一 top-k 上独立采样,用来拆开「多采几次」和「看见新文档」。

包装文档槽旋转 PR@T固定 PR@T新鲜证据增量
k=2, T=120.2040.2040
k=2, T=12240.3970.257+0.140
k=24, T=1240.2530.2540
k=24, T=122880.4210.336+0.085

T 从 1 拉到 12,portfolio recall 在窄窗口涨 19.3–20.5 个点(k=2:0.204→0.397;k=5:0.218→0.423),在 k=24 仍涨 16.8 个点。这就是摘要里那句 16.8–20.5。宽度从 2 扩到 24,单次生成只赚 +0.050,T=12 时只剩 +0.024;超过 12 篇没有可检测收益。

同样 24 个物理槽,(2,12) 比 (24,1) 高出 0.144(95% CI [0.119, 0.170])。新鲜证据占窄窗口「加轮数」收益的 72%,即使 k=24 仍占 52%。固定上下文把 24 篇榨 12 轮,只 grounding 到 10.3 篇;旋转在 (24,12) 暴露 288 篇,ground 到 50.9 篇。

加宽在答案分散的 QAMPARI 上还有正收益,在证据集中在头部的 ASQA 上有害(Llama 在 T=12 时 k=24 相对 k=2 为 −0.061)。HotpotQA 更清楚:单次生成必须同时看见两段才能跳,加宽赚 +0.333;允许 12 轮之后宽度效应翻成 −0.046。Qwen2.5-7B-Instruct-1M 推到 k=96(约 11k token)也救不了:ASQA 上 k=48 相对 k=24 还掉 0.033。14B/32B 上 (2,12) 对 (24,1) 的 pooled 差是 +0.134 和 +0.138。

闭环调度在 2,400 个严格配对格子上,Ascp 的 PR@T 为 0.309,Carriage 0.276(+0.033),PM-2-RAG 0.228(+0.081),Vanilla RAG 0.237。Deep rotation 的 PR 是 0.303,跟 Ascp 差 +0.006,BH q=0.343,统计上分不开。Ascp 赢在用量:ECR 0.626 对 0.375,只提供 10.55 篇,rotation 塞了 25 篇。把 LOO 换成 embedding 相似度,调度增益塌回开环(对比 −0.002,p=0.73)。对比解码额外贡献 +0.0107 PR 和 +0.0555 ECR。

为什么重要

做 RAG 的人如果目标是覆盖多意图、多答案集合,加长上下文窗口不是默认正确答案。同样文档预算下,多轮窄窗口能把检索池里更深、但仍然带答案的证据轮进去,而不把模型的注意力摊在低密度尾部。相似度 MMR、xQuAD 这类开环多样化几乎帮不上忙,因为同一查询下的候选本来就挤在同一语义空间。

代价写在 Figure 6 里。Qwen/ASQA、A100、去掉探针之后,(2,12) 相对 (24,1) 大约 1.5 倍 token、约 10 倍顺序延迟(17.5 秒对 1.7 秒)。目标只要大约 0.35 的 portfolio recall,一次宽生成够用;要到 0.40–0.45,单次生成无论怎么加宽都到不了。这是把 test-time compute 花在轮次上,不是花在窗口上。

配套仓库给出了代码和探针。生产上更接近「多路短上下文 + 用量反馈」,不是「把 top-50 一次性塞进去」。

局限与存疑

论文没有独立的 Limitations 节,约束散落在实验设置里。主网格是 7–8B,14B/32B 只复现了 (2,12) 对 (24,1) 的分配规律,没有把完整 Ascp 调度器拉到这个尺度。超参只在 40 条 ASQA 开发集上定一次。检索器冻结,不回答「检索更好会不会改变分配规律」。

更关键的产品假设是用户愿意消费一个回复组合,而不是一条综合答案。他们用 integrate 指令和结构化单次枚举做过对照:给单次回复等同于 T=12 的解码 token,仍然落后 portfolio 2.9–10.9 个点,缺口随宽度收窄。单条答案产品会吃掉一部分收益。

Deep rotation 在 PR 上几乎打平 Ascp,闭环卖的是 token 效率(ECR)不是覆盖上限。Recipes 任务的相关密度几乎平坦(log-log 斜率 −0.01),宽窗口不被尾部噪声惩罚,旋转在这个 regime 反而该赢。把 −0.68 叫成「定律」也偏满:自然池、按冗余分层之后斜率在 −0.43 到 −0.67 之间,协议干净的 −0.68 来自固定目标和不随宽度收缩的阈值。评价终点是 gold answer unit 的覆盖率,不是用户是否真的把 T 条都读完。

术语

原文与代码

相关论文

全部论文解读