乐于分享
好东西不私藏

ICML 2026 | 长文档多模态 RAG 重排太慢?ZipRerank 单次前向做到 10 倍级加速

ICML 2026 | 长文档多模态 RAG 重排太慢?ZipRerank 单次前向做到 10 倍级加速

✨导读:长文档多模态 RAG 的第二阶段重排很贵:候选页多、视觉 token 长、listwise reranker 还常常要自回归生成排序。ZipRerank 同时砍掉两个瓶颈:用 query-image early interaction 剪掉低相关视觉 token,再用 single-logit scoring 一次前向完成候选排序。在 MMDocIR 上,它接近或超过 MM-R5 的效果,同时将 LLM 延迟降低到 0.36 秒量级,端到端相比 MM-R5 快 7.6 倍。

• 作者: Yiqun Sun, Pengfei Wei, Lawrence B. Hsieh

• 单位: Magellan Technology Research Institute (MTRI), Japan

• 论文标题: Very Efficient Listwise Multimodal Reranking for Long Documents

• 论文链接: https://arxiv.org/abs/2605.11864v1

• 发表信息: ICML 2026

• 代码链接: https://github.com/dukesun99/ZipRerank

🔍 行业背景:多模态长文档检索,重排阶段正在成为瓶颈

在文本检索里,常见架构是“两阶段”:第一阶段 retriever 快速召回候选,第二阶段 reranker 精排 top-k。这个思路搬到多模态长文档时,问题会放大。

一份长文档可能有几十页甚至上百页,每页都被渲染成图片;如果 listwise reranker 同时看 20 个候选页,输入里会包含大量视觉 token。更麻烦的是,许多 VLM reranker 会生成排序序列或 reasoning trace,自回归解码一步步输出,延迟进一步增加。

论文把成本拆成两部分:

1.Prefill 成本。 长视觉上下文导致 attention over visual tokens 很贵。

2.Decoding 成本。 自回归生成排序需要多步,每步还要访问同一段长上下文。

ZipRerank 的目标非常工程化:既要保留 listwise reranking 的跨候选比较能力,又要把长上下文和多步解码的成本压下来。

💥 三大核心亮点:输入更短,输出只要一步

1.Query-image early interaction。 在正式重排前,先用查询 token 和视觉 token 的相似度判断哪些图像 patch 更重要,只保留高相关视觉 token。

2.Single-logit listwise scoring。 每个候选页绑定一个单 token 标识符,例如 A、B、C;模型只做一次 next-token logits 计算,再按这些标识符的 logits 排序。

3.两阶段训练。 第一阶段用大规模文本重排数据渲染成图片学习通用排序;第二阶段用 MMDocIR 图像页和 VLM teacher 的软排序监督做多模态适配。

图1:ZipRerank 在 MMDocIR 上的速度-精度曲线。红色点代表不同 token keep ratio 下的 ZipRerank,相比 MM-R5 显著降低延迟。

这张图能直观看出 ZipRerank 的定位:不是一味追求最大模型的最高精度,而是在接近 SOTA 的情况下,把延迟压到更适合真实系统上线的范围。

🧠 方法拆解:一边学 listwise,一边省 token

ZipRerank 的训练有两个阶段。

第一阶段使用 RankZephyr 文本重排数据。作者把每个 passage 渲染成 280 × 280 图片,让模型在视觉形式下学习 listwise ranking。这相当于先学“排序能力”,但不依赖真实多模态文档页。

第二阶段使用 MMDocIR training set。这里候选是真实文档页图片,监督来自 GPT-5-mini 等 VLM teacher 生成的相关性排序。为了处理 teacher 监督噪声,ZipRerank 使用 soft-ranking objective,不是只给硬标签。

图2:ZipRerank 框架。训练阶段先做渲染文本预训练,再做多模态微调;推理阶段通过视觉 token 剪枝和单 token 打分完成重排。

推理阶段有两步:

1.视觉 token 剪枝。 先取查询 token hidden states H_q,再对每个候选图像 token 计算与任一 query token 的最大余弦相似度。

核心公式:a_{i,j} = max_t cos(h_t, v_{i,j})

随后按 keep ratio ρ 保留每张图中分数最高的视觉 token。

2.单步排序。 每个候选页对应一个标识 token t_i。模型看完过滤后的多模态输入后,只计算下一 token logits,抽取 {z_{t_i}},再按 logit 从高到低得到排序。

核心公式:π = argsort↓(z_{t1}, …, z_{tk})

这样 ZipRerank 把传统的“生成排序答案”变成了“一次前向打分”。

📊 硬核实测:DSE 与 ColQwen 两种召回器都有效

实验在 MMDocIR page-level retrieval 上进行。评测集包含 313 篇长文档、10 个领域、平均 65.1 页,以及 1,658 个专家标注 query。第一阶段召回 top-20 页面,第二阶段再重排。

图3:以 DSE 为第一阶段召回器时的主结果。ZipRerank 在 Recall@3 和 Recall@5 上超过 MM-R5,同时 LLM time 仅 0.36 秒。

以 DSE 为召回器时:

1.ZipRerank Recall@3 macro/micro 为 84.8/84.5,高于 MM-R5 的 79.1/79.0

2.ZipRerank Recall@5 macro/micro 为 89.0/89.4,高于 MM-R5 的 83.8/83.9

3.ZipRerank Recall@1 为 64.2/63.3,略低于 MM-R5 的 66.1/65.1

4.LLM time 为 0.36s,远低于 MM-R5 的 3.82s

也就是说,MM-R5 在 top-1 更强,但 ZipRerank 更擅长把相关页放进 top-3/top-5,并且快一个数量级。

图4:以 ColQwen 为第一阶段召回器时的主结果。ZipRerank 同样在 Recall@3 和 Recall@5 上领先 MM-R5,说明方法不绑定单一召回器。

以 ColQwen 为召回器时:

1.ZipRerank Recall@3 macro/micro 为 84.9/84.4,高于 MM-R5 的 83.0/82.1

2.ZipRerank Recall@5 macro/micro 为 89.3/89.1,高于 MM-R5 的 86.6/86.1

3.Recall@1 上 MM-R5 仍略高,ZipRerank 是 66.1/65.1,MM-R5 是 68.5/67.4

4.ZipRerank LLM time 为 0.36s,MM-R5 为 3.74s

🧩 消融:single-logit decoding 是延迟关键,soft-ranking 是效果关键

消融实验显示,各组件各司其职。

图5:ZipRerank 的消融实验。去掉 single-logit decoding 几乎不影响排序质量,但延迟从 0.36s 增到 2.19s;去掉 soft-ranking loss 则明显伤害效果。

关键观察:

1.去掉第一阶段预训练,Recall@5 micro 从 89.4 降到 88.7

2.去掉第二阶段多模态微调,Recall@5 micro 降到 84.6

3.去掉 single-logit decoding,Recall 基本接近,但时间从 0.36s 增到 2.19s,超过 6 倍

4.去掉 soft-ranking loss,Recall@1 micro 从 63.3 降到 55.5,说明软排序监督对 noisy teacher label 很重要。

⚙️ 参数与效率:50% 视觉 token 也能保持强结果

ZipRerank 的视觉剪枝不是随机丢 token,而是 query-aware。论文对 keep ratio 和候选数做了参数分析。

图6:视觉 token keep ratio 和候选数 k 的参数分析。降低 keep ratio 会减少 LLM time,但也会带来一定召回下降;候选数增加时延迟随之上升。

在附录中,作者还比较了随机剪枝和 text-to-image pruning。以 DSE 为召回器,keep ratio 为 0.5 时,随机剪枝 R@1/3/5 为 54.7/77.0/84.7,T2I 剪枝为 61.1/80.8/86.6。这说明查询感知剪枝确实保留了更相关的视觉信息。

端到端效率同样很亮眼。

图7:ZipRerank 的排序质量与端到端效率。ZipRerank 的 nDCG@5 和 mean rank 优于 MM-R5,端到端总延迟为 538.5ms。

Table 11 给出的端到端结果:

1.ZipRerank 总延迟 538.5ms,MM-R5 为 4107.0ms,端到端约 7.6× 加速。

2.ZipRerank-50% 总延迟进一步降到 454.1ms

3.ZipRerank cached QPS 为 2.80,MM-R5 为 0.31

4.ZipRerank-50% TFLOPs/query 从 179.7 降到 84.9,filter 开销只有 4.5ms

🧐 深度解析:这是一个很适合落地的 reranker 设计

ZipRerank 的实用性来自两个判断:

1.长文档多模态重排不一定需要生成长答案。 如果任务只是排序候选页,那么用标识 token 的 logits 直接排序,更符合任务本质。

2.视觉 token 不是越多越好。 对一个具体 query,很多页面 patch 与问题无关;先用轻量相似度过滤,再让 VLM 看关键 token,可以更好地把预算用在有用证据上。

它也有边界:ZipRerank 主要评测 page-level reranking,对跨页合成答案、跨段落推理和复杂表格解析的泛化还需要更多实验;另外,Recall@1 仍略弱于带显式 reasoning 的 MM-R5,说明极致 top-1 精排可能仍受益于更强推理。

✅ 全文总结:把重排从“生成任务”改成“打分任务”

ZipRerank 的最大贡献,是把多模态 listwise reranking 重新设计成一个高效打分问题:输入端做 query-aware visual pruning,输出端用 single-logit scoring,一次前向完成排序。

对于长文档多模态 RAG 系统来说,这类 reranker 很有吸引力。它不追求用最慢的大模型做最强 reasoning,而是在效果和延迟之间找到更实用的平衡点:top-3/top-5 召回强、延迟低、端到端可部署。对真正要上线的 M-RAG 来说,这可能比“再等几十秒换一点 top-1”更关键。