文档上下文条件量化,ColBERT在2字节/token上MRR仍涨0.010

CrossQ: Task-Aligned Cross-Token Conditional Quantization for Late Interaction Retrieval

Rohit Kumar Salla, Manoj Saravanan, Ramya Manasa Amancherla

cs.IR

2026-06-11

CrossQ用索引时算出、并不入库的文档上下文给token选码,按排序目标训练。MS MARCO上2字节/token的MRR@10从0.359到0.369,4字节时相对全精度约64倍压缩。

这篇在解决什么

ColBERT这类晚交互检索把文档存成一串token向量,查询时对每个查询token做max-sim再求和。精度高,索引也肥。工业部署往往要把文档侧压成每token几个字节,才能放进内存。

常见量化(PQ、OPQ、残差量化)最小化平均重建误差。晚交互并不吃平均误差。真正进得分的是稀疏的「赢家token」:一篇文档里多数token对任何查询都赢不了max-sim,均匀分配比特等于把七成预算花在从不计分的向量上。重建MSE和MRR的相关只有0.3左右,按失真训练会训歪。

方法

CrossQ只压文档侧,查询向量保持全精度,质量差就能归因到索引压缩。编码仍是ColBERT/ColBERTv2那套。

索引时给每篇文档算一个轻量、与查询无关的上下文向量h(D),用它调节每个token的码本选择,让更可能成为赢家的token拿到更有效的表示。h(D)算完即丢,库里只留整数码。量化是加性残差码本,K=256,M=2/4/8对应2/4/8字节每token。

训练目标对准max-sim排序,不是像素级重建:

离散码用直通估计器。可选轻度微调:解冻最后两个Transformer块和投影头,让检索器适应量化噪声,不必整网重训。

结果

主表是MS MARCO、三随机种子、严格按名义码预算对齐。

方法2B MRR@102B R@104B MRR@108B MRR@10
OPQ0.3450.7960.3660.379
Token-wise RQ(排序)0.3590.8110.3710.387
PLAID(候选对齐参照)0.3570.8120.3810.389
CrossQ0.3690.8260.3860.395
CrossQ + 轻度微调0.3740.8310.3920.399

2字节时相对最强足迹对齐基线+0.010 MRR,相对PLAID +0.012。4字节时九数据集BEIR子集平均nDCG@10从0.387到0.396。8字节加微调约保留全精度ColBERT MRR@10的98%。4字节相对原始token存储约64倍,含元数据约61倍,按对齐填充保守算约58倍。

4字节消融:去掉文档上下文,MRR从0.386掉到0.371,是最大单项;去掉listwise到0.377;只留重建掉到0.358。参数对齐的无上下文变体只挽回0.001,打乱h(D)掉到0.370,说明涨点来自跨token信息,不是多出来的131K参数。索引吞吐从PQ的2400篇/秒降到1850,约1.3倍慢;2万候选打分p50是3.6毫秒对PQ的3.2毫秒。

为什么重要

晚交互一直被存储卡住。CrossQ把「每token均分精度」改成「按这篇文档内部谁更可能计分来分精度」,而且上下文不入库。对内存装不下全精度ColBERT索引、又不愿退回单向量检索的人,2到4字节这一档开始能用。排序损失比再抠重建误差更对症,相关只有0.28到0.41已经把这件事说死了。

这是文档侧压缩,不是新的检索架构。PLAID那套路由堆栈并未按每个字节预算重训,论文把它标成系统参照而不是严格足迹对照。

局限与存疑

极端压缩下max-sim仍可能翻盘。目标算子绑在ColBERT式max-sim上,换打分方式要改训练信号。查询侧未压缩。索引变慢约三成,高更新语料上会痛。教师是同一骨干的全精度文档向量,不是交叉编码器,蒸馏上限受教师本身限制。社会风险与普通晚交互检索同类:把强检索变便宜,也可能把有偏排序部署得更广。

术语

原文与代码

社区讨论

相关论文

全部论文解读