RandSlot 用随机软 token 把页面压成 4 向量,推理改填零仍保持增益

RandSlot: Learning Compact Visual Document Representations with Random Soft Tokens

Dewen Guo, Shi Yu, Lingxiao Zhang, Yang Zhang, Tao XU, Dan Wang

cs.IR

2026-09-26

RandSlot 在输入后追加每次重采样的随机单位向量,训出 4 路视觉文档检索表示。Qwen2.5-VL-3B 在 ViDoRe V3 上 nDCG@5 为 45.4,高于 32 页向量的 CausalEmbed(42.6);推理填零仍保持该分。

这篇在解决什么

视觉文档检索要把文本 query 对上散落在文字、表格、图表和版式里的证据。财报里的一个数字,通常得连着行标题和脚注一起看。页面当图像编码能保住这些关系,ColPali 一类方法把页面编成大量向量,让每个 query 向量在页上找最像的那个再加总(late-interaction)。代价是每页大约五千个向量,点积量跟着上去。

压缩要解决的是联合质量:只准几个输出时,它们还得一起把相关信息组织好。Light-ColPali、DocPruner 在编码后再合并或剪枝;MetaEmbed 追加可学习 token,CausalEmbed 把模型刚生成的表示自回归喂回输入。这些做法默认辅助输入可学或携带内容。RandSlot 检验一个更省事的选项:没有预定语义的位置,只要能注意前面的内容,输出端也可以当检索槽。

方法

蚂蚁集团与清华大学用共享因果编码器,对 query 和页面各产出 K 个检索向量,默认 K=4。内容序列后追加 K-1 个 soft token(连续向量占位):独立标准高斯,再 L2 归一成单位向量以卡住输入尺度,避免随机向量把注意力量级打飞。样本之间、query 与页面之间、各个位置之间都独立采样,每次调用编码器都重抽,不引入可学习 token 参数。

读出按因果前缀。第一个向量来自原始内容末位;每追加一个随机向量,就在新末位再读一个隐状态(readout)。默认四个输出里,一个看过全文,另外三个还能看见前面的随机槽。输出再归一,点积等于余弦。

打分用方向性 MaxSim,每个 query 向量在页面 K 个向量里取最大余弦再求和。训练是 batch 内 query-to-document 的 InfoNCE,只更新编码器适配参数(LoRA rank 16),随机 token 无梯度。检索目标固定、辅助输入一直在变,模型不容易靠记住某个固定取值过关。

推理时页面预先编成 Kd 个向量入库,query 现编 Kq 个再排序。同一检查点可以继续采样(RS-R),也可以把追加位改成全零(RS-Z),位置和输出个数不变,不用重训。

结果

训练用 ColPali 全集,评测 ViDoRe V1 十个任务、V2 四个、V3 八个公开集,指标为页级 nDCG@5。骨干 Qwen2.5-VL-3B 和 Qwen3-VL-4B 各出 4 向量,维数 2048 和 2560。单 epoch、923 step、8×A100 80GB、全局 batch 128。

和已发表 CausalEmbed(16 个 query 向量、32 个页向量)相比:

方法预算V3 nDCG@5
CausalEmbed16/3242.6
RandSlot-3B4/445.4
RandSlot-4B4/446.1
全 token Base约 5k50.2

V2、V1 相对 CausalEmbed 分别高 1.4 和 3.6 点。22 个任务中 20 个更高,V3 八个全赢。页向量少 87.5%。按 2048 维、每标量两字节计,每页 16 KiB、每对 16 次点积,对应 CausalEmbed 的 128 KiB 和 512 次。

同配方、同 4 向量、只换追加输入,V3 平均:

输入策略3B4B
Zero-Feedback43.945.1
Fixed-Random43.845.1
Learned-Feedback42.944.4
Direct-Feedback42.145.4
RandSlot45.446.1

3B 三个 seed 上,Zero-Feedback 为 43.50±0.43,RandSlot 为 45.03±0.40,平均高出 1.53 点。可学习表在两个骨干上都低于固定随机;3B 上输出回喂甚至低于全零。重采样相对固定随机分别高 1.6 和 1.0 点。

随机训练的编码器推理改填零:3B 仍是 45.4,4B 从 46.1 落到 45.8,都高于全程填零的 43.9 / 45.1。增益在权重里,线上不必采样。

训练 4 向量再改推理个数(3B):1 到 2 个时全零更好,3 到 8 个 RandSlot 领先。6 个向量 V3 到 46.0,7 和 8 个停在 45.9。4 加到 6,query 延迟 109.92 ms 升到 162.08 ms,页吞吐 4.01 降到 3.29 页/秒。

74,016 个正对上,RandSlot 文档侧获胜最散(边际熵 H=0.909,一对平均用到的不同文档槽 U=1.376),高于全零的 0.789 / 1.256。单个文档 readout 弱于两个对照,整组增益 6.34 点,对照是 3.73 和 3.17。四个槽在分担匹配。

为什么重要

压缩视觉文档多向量表示,可以不维护可学习 token 表,也可以不做输出回喂。训练时在固定位置注入重采样的随机单位向量,late-interaction 把信息组织进少量 readout;部署把这些位置填零,索引没有采样噪声。

场景很具体:页面截图入库、存储和点积预算紧、能接受每页约 16 KiB。相对 CausalEmbed 的 16/32,表示成本下降,V3 高 2.8 点。论文写明这些比例量的是表示成本,不是端到端加速。

全 token 基线 V3 仍是 50.2,和细粒度 patch 匹配还有缺口。4 向量是默认折中,加到 6 只再涨 0.6 点,延迟高了近一半。这是压缩 readout 的渐进改进,随机输入在训练里当正则。

局限与存疑

证据只在 ViDoRe 和两个骨干上;额外种子只覆盖 3B 对 Zero-Feedback 的主比较。更大模型绝对分更高,相对全零的增益更小(4B +1.0,3B +1.5)。Pharmaceuticals 和 Fin-F 相对全零是退步;Fin-E 在 3B 涨 2.0、在 4B 掉 0.9。

CausalEmbed 用的是已发表分数和原配方,不是同一超参重跑。Direct-Feedback 只对齐预算和训练流程,3B 上低于全零,不能拿它当 CausalEmbed 原设定的替代对照。MetaEmbed 的 Matryoshka 多预算训练这篇没有复现。

训练固定 4 槽、推理改 K,过小预算下随机策略会落后。代码计划发布,稿件未附仓库。撰写大量借助 Codex,定量结果声称来自实验记录。

术语

原文与代码

社区讨论

相关论文

全部论文解读