Generative Late-Interaction Embeddings For Visual Document Retrieval
Mohamed Eltahir, Talal Aloushan, Rose Khairoalsendi, Jana Shata, Mohammed Alhassan, Leen Alrehaili, Tanveer Hussain, Naeemullah Khan
cs.IR
2026-09-11
KAUST发现ColPali页面向量落在五到六维的单位球面上。每页压成4个向量再按需重建,ViDoRe v1上保住未压缩系统79%的nDCG@5,415K参数三分钟拟合。
视觉文档检索现在的标准答案是迟交互:ColPali给一页图的每个patch各存一个向量,查询时用MaxSim逐token找最大内积再求和。一页大约1031个128维向量,bfloat16下约258KB,一百万页光向量就258GB。精度来自「别把一页压成一个向量」,代价是存储。
现有压缩几乎都是在encoder输出里做子集或局部平均:pooling、剪枝、合并。公开结果很少降到每页大约16个向量以下;再往下的方法往往要重训encoder,整库得重编码。这篇问的是另一件事:这些向量几何上到底是什么,能不能按几何来存。
在6729页、三个encoder上测下来,一页的token云内在维数中位数大约4.9到6.1,而且三个模型都把输出L2归一化,点恰好在单位球面上。环境维数从128到3072差24倍,内在维数只差1左右。
两条直接推论。第一,普通k-means质心是单位向量的欧氏均值,落在球内,MaxSim会被系统性低估。把质心重新投影回球面,零成本。第二,自由度只有五六个,少数锚点加一个共享解码器,理论上能把整页向量再生成出来。
GLIE分三步,encoder全程冻结:
查询分两段:先用k个存盘向量对全库做MaxSim,再只把前L=20页解码回全长精排。编解码器一共415K参数。
ViDoRe v1十个子集、宏平均nDCG@5。未压缩天花板约0.836。k=4时GLIE为0.657,相当于未压缩的79%;先前最好的免训练压缩大约70%。k=16时0.759,约91%。百万页从258GB降到约1.0GB。
| 方法(ViDoRe v1) | k=4 | k=16 |
| 归一化k-means(免训练) | 0.605 | 0.736 |
| GLIE | 0.657 | 0.759 |
| 匹配预算的Light-ColPali LoRA | 0.544 | 0.632 |
| 未压缩ColPali | 0.836 | 0.836 |
球面锚定单独就能+0.093(k=4)到+0.030(k=64)。学到的code在k≤16再加0.044到0.016,生成读出在k=4再加0.016。解码器从184K扩到13M,nDCG最多动0.009,最小的那个在k=4还最好。拟合1250/2500/5000页,k=4的边际几乎不变,大约一千页就饱和。同样配方迁到ColQwen2,k=4保住未压缩质量的82%。
匹配小预算下,给encoder做13.3M LoRA、约1.5 GPU小时,到不了免训练的归一化聚类;GLIE用三分钟、415K参数,六个预算全赢,差距0.074到0.132。注意这不是在打Light-ColPali原文:原文用13万查询、每档约72 GPU小时,而且主要报k≳16。
迟交互系统如果还在用k-means,质心归一化是今天就能上的一行补丁。要压到每页几个向量、又不想重编码语料,GLIE给出一条后处理路线:冻结公开checkpoint,缓存embedding,按预算单独拟合。
它打开的是「按需重建证据」这条轴,不是把向量再量化一档。作者自己把解码器写成下一步的主设计面。
k=4时,同一短名单上完美解码能到0.782,GLIE只有0.657,差距是解码保真;0.782到0.836才是短名单召回。把L从20加到100,GLIE几乎不动(0.660),oracle却爬到0.822,说明短名单里还有证据,当前解码器吃不到。ViDoRe v1在高预算会饱和,v2上读出收益一直维持到k=64,增益曲线跟基准有关,不是常数。
没有和PLAID、产品量化做组合实验。视频迟交互被点名为更大场景,但没做。代码仓库链接在论文里还是占位。