CANOPY:让多模态 RAG 按证据需要自适应压缩上下文
多模态 RAG 通常被拆成两个问题:先从大规模数据中找到可能相关的文本、表格、图像或视频,再把这些结果交给模型生成答案。但“检索到了什么”并不等于“模型需要阅读多少”。如果直接保留完整文档或整段视频,噪声会迅速堆积;如果一律切成很细的片段,又可能丢掉解释证据所需的上下文。CANOPY 试图在这两者之间建立一套跨模态的统一方法。
核心方法
- 把检索结果表示成层级结构。 文本可以由文档、段落到句子逐级细化,表格或视频也可按照原有区域组织成不同层次。这样,系统不必在固定大小的片段上做单一选择,而是能够在同一条检索结果内保留不同范围的证据。
- 用节点编码器评估相关性。 CANOPY 以问题和层级节点为输入,对候选区域进行打分。该编码器在标注的黄金证据上微调,目标是识别哪些区域真正有助于回答问题。
- 采用父节点相对细化规则。 子区域的分数不是孤立判断,而是与其父区域比较。高层节点可以保留较宽上下文,明显更有价值的子节点则进一步细化,从而形成多种粒度并存的证据集合。节点筛选不依赖逐节点调用大语言模型,有助于控制处理开销。
- 让压缩器能够“承认不知道”。 压缩只能删减已经检索到的内容,无法找回从未被召回的证据。因此,CANOPY 增加了一个 critic,用于判断当前证据是否足够;如果不足,就请求面向缺口的后续检索,再对新结果进行压缩后加入上下文。
论文在包含 3300 万条异构项目的语料库上,使用五个问答基准进行评估。结果显示,CANOPY 的平均回答准确率高于所比较的检索基线。在未进行路由、采用 Qwen3-VL-8B-Instruct 作为阅读器的设置中,压缩后的读入证据 token 相比同一迭代流程减少约 14.2%—27.7%,同时保持相近的回答表现。消融结果还表明,多跳问答中的主要准确率增益来自额外的定向检索,而不只是压缩策略本身。
意义与局限
CANOPY 的价值在于把“检索”和“上下文压缩”连接起来:前者负责扩大可能的证据覆盖面,后者负责按区域调整阅读范围,critic 则处理证据缺失问题。这种设计比为文本、表格、视频分别建立压缩器更接近一个共享的多模态流程,也为长上下文系统降低输入成本提供了思路。
不过,方法效果仍依赖初始检索能否覆盖关键证据,以及节点层级是否能够合理表达内容结构。额外检索也意味着新的计算和延迟开销。因而,CANOPY 并不是简单地“压缩得越多越好”,而是在证据完整性、上下文规模与检索成本之间进行动态权衡。
评论
正在确认登录状态……
正在加载评论……