压缩 75% 只掉 0.002 nDCG:视觉检索按文档自动定位合并边界

AdaMerge: Tuning-Free Patch Compression for Multi-Vector Visual Document Retrieval

Jianxin You, Kun Ni

cs.CV, cs.IR

2026-09-19

聚类合并余弦曲线的陡崖位置跨 11,273 篇文档集中在窄带;按文档切崖免掉逐数据集调参,长文档检索上稳定压过调过参的 PtM。

这篇在解决什么

ColPali 这类多向量视觉文档检索(VDR)把每页文档编码成几百到上千个 patch 向量,查询时用 MaxSim 逐 patch 打分再取最大值。精度好,代价是存储和延迟:一页就占几十 KB,一个中等语料库不压缩轻松上百 MB。压缩思路分剪枝(扔掉不重要 patch)和合并(相似 patch 聚成簇心),当前最强的 PtM(Prune-then-Merge)在高压缩率下稳定优于纯剪枝,但它需要一个逐数据集网格搜索的簇预算 m。蒙特利尔的两位作者发现,这个调参可以整个省掉。

方法

观察在先:对一页的 patch 做层次聚类,每一步合并的两个簇心之间的余弦相似度构成一条单调不增的序列,这条曲线普遍存在一个陡崖,崖左边是可合并的冗余,右边是承载检索信号的 patch。统计 14 个数据集的 11,273 篇文档,崖的位置集中在很窄的带内(逐数据集中位数落在 0.77 到 0.85)。这说明合并边界是文档自身的属性,不是数据集级的超参。

AdaMerge 流程:

全局只有 cmin 和剪枝力度 k 两个超参,对所有数据集和两个骨干共用同一组值。

结果

长文档基准 ViDoRe-V2(ColQwen2.5 骨干):

压缩率AdaMerge调参 PtM不压缩
75%0.5930.5520.595

压掉四分之三的向量,nDCG@5 离不压缩只差 0.002,同期网格调参的 PtM 掉到 0.552。ColNomic-3B 骨干上,85% 到 90% 压缩区间领先 PtM 最多 +0.036。Wilcoxon 配对检验(1,344 个查询、两骨干合并)各操作点全面占优,幅度 +0.012 到 +0.038,p 值全部小于 10⁻⁴。

短文档基准 ViDoRe-V1(10 个数据集)上各种合并方法本来就接近无损,AdaMerge 与调参 PtM 打平,卖点只在不用调。消融归因:自适应切崖贡献 +0.039,注意力加权质心再贡献 +0.009。单线程 CPU 上每篇文档约 10ms,比 PtM 慢 1 到 2ms。

为什么重要

多向量检索落地最大的痛是成本,这篇把 SOTA 压缩方法剩下的最后一项隐性成本也去掉了:换数据集、换骨干不用重新网格搜索,同一组全局超参直接跑。对已经在用 ColPali 系模型做文档 RAG 的团队,这是一个即插即用的索引压缩件,文档越长、冗余越多,收益越大。

局限与存疑

收益集中在长文档,短文档场景对 PtM 没有精度优势;cmin 虽是全局值仍要手设,作者也承认崖的成因没有理论刻画;只在 ColPali 系编码器上验证,其他多向量编码器未测;每篇比 PtM 慢 1 到 2ms,超大规模索引构建时这个差值会累积。

术语

原文与代码

社区讨论

相关论文

全部论文解读