ColPali:基于视觉语言模型的高效文档检索

发布于:2025-04-05 ⋅ 阅读:(16) ⋅ 点赞:(0)

摘要

文档是视觉丰富的结构,不仅通过文本传递信息,还包括图表、页面布局、表格,甚至字体。然而,由于现代检索系统主要依赖从文档页面中提取的文本信息来索引文档(通常是冗长且脆弱的流程),它们难以高效利用关键的视觉线索。这种局限性影响了许多实际的文档检索应用,如 Retrieval Augmented Generation (RAG)

为了对当前系统在视觉丰富文档检索中的能力进行基准测试,我们引入了 Visual Document Retrieval Benchmark (ViDoRe),该基准涵盖多个领域、语言和实际场景下的页面级检索任务。由于现有系统在应对这些复杂任务时存在性能瓶颈,我们提出了一种新的概念:直接通过嵌入文档页面图像来进行文档检索。

我们发布了 ColPali,一种 Vision Language Model (VLM),专门用于从文档页面图像生成高质量的多向量嵌入。结合后期交互匹配机制(late interaction matching mechanism),ColPali 在性能上远超现代文档检索管道,同时极大地简化了流程,提高了速度,并且可以端到端训练。我们在 https://hf.co/vidore 公开发布所有模型、数据、代码和基准测试。

1 介绍

文档检索 的目标是在给定的语料库中,将用户查询与相关文档进行匹配。这一任务在许多工业应用中至关重要,可以作为独立的排名系统(如搜索引擎),也可以作为更复杂的信息提取或 Retrieval Augmented Generation (RAG)流水线的一部分。

近年来,预训练语言模型(PLMs) 使文本嵌入模型的性能取得了显著提升。然而,在实际工业环境中,影响文档检索效率的主要瓶颈往往不是嵌入模型的表现,而是 数据摄取(ingestion)过程的复杂性。例如,索引一个标准的 PDF 文档通常需要多个步骤:

  1. 使用 PDF 解析器或 Optical Character Recognition (OCR) 系统提取页面上的文本;
  2. 运行 文档布局检测(Document Layout Detection)模型,分割段落、标题以及诸如表格、图像、页眉等页面对象;
  3. 设计文本分块(chunking) 策略,以保证语义连贯性;
  4. 现代检索系统甚至可能引入 图像描述(captioning),将视觉元素转换为自然语言,以便文本嵌入模型处理。

我们的实验(见表 2)表明,在视觉丰富的文档检索任务中,与其优化文本嵌入模型,不如优化数据摄取管道,这样可以获得更显著的性能提升。

贡献 1:ViDoRe

在本研究中,我们认为文档检索系统的评估不应仅限于文本嵌入模型的能力(Bajaj et al., 2016; Thakur et al., 2021; Muennighoff et al., 2022),还应考虑文档的上下文和视觉元素。因此,我们创建并公开发布ViDoRe,一个综合基准,用于评估系统在页面级文档检索(page-level document retrieval) 方面的表现。ViDoRe 覆盖多个领域、视觉元素和语言,针对现实文档检索场景进行评测,其中查询通常需要结合 文本和视觉信息才能准确匹配相关文档。

我们在 ViDoRe 评测中揭示了当前以文本为中心的检索系统在这些任务上的不足。
在这里插入图片描述

贡献 2:ColPali

我们提出了一种新的概念和模型架构,基于 Vision Language Models (VLMs),可以 纯粹基于文档的视觉特征进行高效索引,并结合 后期交互匹配机制(late interaction matching mechanism, Khattab & Zaharia, 2020) 实现快速查询匹配。

我们的方法 ColPali在 ViDoRe 任务上的表现远超其他检索系统,同时具备更快的检索速度,并且可以端到端训练。这一结果表明,我们提出的 “视觉空间检索(Retrieval in Vision Space)” 概念具有巨大潜力,并可能从根本上改变工业界对文档检索的处理方式。

我们在 https://hf.co/vidore公开发布所有资源。

2 问题定义与相关工作

问题设定
在本研究中,检索系统的目标是对语料库 D 中的文档 d 计算其相对于查询 q 的相关性评分 s(q, d) ∈ ℝ,然后基于该评分对所有 |D| 个文档进行排序,以提取最相关的文档。本研究关注 页面级检索(page-level retrieval),即在给定查询的情况下,系统是否能够检索到正确的文档页面。为了与现有文献保持一致,我们进一步使用 document 一词来指代单个页面,即在本设定中可检索的最小元素。

由于我们关注的是 实际工业检索应用(如 RAG 和搜索引擎)且语料库可能极其庞大,因此对检索系统的 查询延迟(latency) 施加了约束。大多数现代检索系统可以分为两个阶段:

  1. 离线索引阶段(offline indexation phase):构建文档索引。
  2. 在线查询阶段(online querying phase):查询与索引中的文档进行匹配,并确保低延迟,以优化用户体验。

在这些工业约束下,我们识别出一个高效文档检索系统应具备的三大核心特性

  • (R1) 强检索性能:以标准检索指标衡量的系统检索能力。
  • (R2) 快速在线查询:通过平均查询延迟来衡量响应速度。
  • (R3) 高吞吐量的语料索引:即在给定时间内能够嵌入的页面数量。

2.1 文本检索方法

文本空间中的文档检索
基于 词频统计 的方法,如 TF-IDF(Sparck Jones, 1972)和 BM25(Robertson et al., 1994),因其简单高效,至今仍被广泛应用。近年来,基于 大规模语言模型(LLMs) 的 神经嵌入模型(Neural Embedding Models) 在多种文本嵌入任务上表现出色,并在检索排行榜中取得领先地位(Muennighoff et al., 2022)。

神经检索(Neural Retrievers)

  • 双编码器模型(Bi-Encoder Models)(Reimers & Gurevych, 2019; Karpukhin et al., 2020; Wang et al., 2022):文档在离线阶段独立映射到 稠密向量空间(dense vector space),查询时在线计算嵌入,并通过快速的 余弦距离计算(cosine similarity computation) 进行匹配。
  • 交叉编码器模型(Cross-Encoder Systems)(Wang et al., 2020; Cohere, 2024):将查询和文档拼接为单一输入序列,并逐一计算匹配分数。这种方法可以进行 全注意力计算(full attention computation),但因必须对 |D| 个文档逐一编码,计算成本较高。

基于后期交互的多向量检索(Multi-Vector Retrieval via Late Interaction)
ColBERT(Khattab & Zaharia, 2020)提出了 后期交互(late interaction) 检索范式,即:

  • 每个文档的 token 级别嵌入(token embeddings) 预先计算并索引;
  • 运行时,仅计算 查询 token 与 文档 token 之间的相似度。

该方法结合了 双编码器(高效离线计算)和 交叉编码器(强匹配能力)的优势。详见附录 E。

检索系统评估(Retrieval Evaluation)
虽然已有多个基准和排行榜用于评测文本嵌入模型(Thakur et al., 2021; Muennighoff et al., 2022),但在实际工业场景中,提升检索系统性能的关键往往在于 优化数据摄取流程(data ingestion pipeline),而非仅优化嵌入模型本身。

此外,尽管文档通常依赖 视觉元素 来更高效地传递信息,但基于文本的检索系统很少能充分利用这些视觉线索。部分研究专门针对 表格 或 图表 检索(Zhang et al., 2019; Nowak et al., 2024),但仅限于特定任务,未能在 端到端、多文档类型、多主题 的实际应用场景中全面评测检索系统的能力。

目前尚无公开基准能全面评估文档检索系统在 实际应用环境 下的性能,同时结合 文本 与 视觉特征 进行评测。

2.2 视觉特征的整合(Integrating Visual Features)

对比视觉语言模型(Contrastive Vision Language Models)
将 文本内容的隐表示(latent representations) 映射到 对应的视觉表示 已成为主流方法,通常通过 对比损失(contrastive loss) 训练 独立的视觉和文本编码器(Radford et al., 2021; Zhai et al., 2023)。
尽管这些模型具备一定的 OCR 能力,但视觉组件通常 未针对文本理解进行优化。

Fine-grained Interactive Language-Image Pre-training(Yao et al., 2021)进一步扩展了 后期交互机制(late interaction mechanism) 到 跨模态(cross-modal)视觉语言模型,通过 最大相似度运算(max similarity operations) 计算 文本 token 与 图像 patch 之间的交互。

视觉丰富文档理解(Visually Rich Document Understanding)
部分专门针对 文档 的模型同时编码:

  • 文本 token
  • 视觉布局特征(document layout features)

相关研究包括(Appalaraju et al., 2021; Kim et al., 2021; Huang et al., 2022; Tang et al., 2022)。

近年来,强推理能力的大型语言模型(LLMs) 被结合到 Vision Transformers (ViTs)(Dosovitskiy et al., 2020)中,形成 Vision Language Models (VLMs)(Alayrac et al., 2022; Liu et al., 2023; Bai et al., 2023; Laurençon et al., 2024b)。在这些模型中:

  • 通过 对比训练(contrastive training) 训练的 ViT 图像 patch 向量(Zhai et al., 2023),被输入到 LLM 中;
  • 并与 文本 token 嵌入 进行拼接。

PaliGemma
PaliGemma-3B(Beyer et al., 2024)基于 Pali3(Chen et al., 2023),将 SigLIP-So400m/14(Alabdulmohsin et al., 2023) 的 patch 嵌入 投影到 Gemma-2B 的文本向量空间(Gemma Team et al., 2024)。

相比于其他高性能 VLMs,PaliGemma-3B 具有较小的模型尺寸,并且其文本模型经过 全块注意力(full-block attention) 进行微调,适用于前缀(指令文本和图像 token)。详见附录 E。

尽管 VLMs 在 视觉问答(Visual Question Answering)、图像字幕生成(captioning) 和 文档理解(document understanding) 方面表现出色(Yue et al., 2023),但 尚未针对检索任务进行优化。

3 ViDoRe 基准测试

现有的对比视觉-语言模型基准主要用于评估自然图像的检索能力(Lin et al., 2014; Borchmann et al., 2021; Thapliyal et al., 2022)。另一方面,文本检索基准(Muennighoff et al., 2022)主要评测文本段落级别的检索能力,并未专门针对文档检索任务进行优化。

我们提出 ViDoRe,一个专门利用视觉特征进行文档检索的综合性基准,以填补这一研究空白。

3.1 基准设计

ViDoRe 旨在全面评估检索系统在页面级别匹配查询与相关文档的能力。该基准涵盖多个正交子任务,重点关注以下多个维度:

  • 不同模态:文本、图表、信息图、表格等。
  • 不同主题领域:医学、商业、科学、行政管理等。
  • 不同语言:英语、法语等。

此外,任务的复杂度也涵盖不同层次,以便测试较弱系统和较强系统在不同任务上的表现。

由于许多检索系统需要大量时间进行页面索引(例如,基于图像字幕生成的方法,每页可能需要数十秒处理),我们对每个检索任务的候选文档数量进行了限制,以便在合理的时间范围内评测复杂系统,同时不牺牲检索质量。

对于可训练的检索系统,ViDoRe 还提供了一个参考训练集,以便不同系统之间的公平对比。
在这里插入图片描述

学术任务 我们将广泛使用的视觉问答基准重新用于检索任务:对于每个页面-问题-答案三元组,我们使用问题作为查询,关联的页面作为标准文档(表 1)。这些学术数据集要么关注单一特定模态(Mathew et al., 2020; 2021; Li et al., 2024),要么面向更丰富的视觉文档(Zhu et al., 2022)。此外,我们引入了 TabFQuAD,这是一个基于法语工业 PDF 文档提取的表格数据集,并由人工标注。本节 A.1 提供了详细信息。

实践任务 为了超越传统 QA 数据集的应用范围,并评估检索系统在更现实的工业环境(如 RAG)中的表现,我们构建了涵盖多个领域的主题特定检索基准。为此,我们收集了公开可访问的 PDF 文档,并使用 Claude-3 Sonnet(Anthropic, 2024)这一高质量的专有视觉-语言模型,生成与文档页面相关的查询。最终,我们为每个主题收集了 1,000 个文档页面,并为其匹配了 100 条经过人工严格筛选以确保质量和相关性的查询。基准测试的主题被刻意设计得较为专门化,以最大化文档之间的句法相似性,从而形成更具挑战性的检索任务,同时覆盖多个不同的领域(表 1)。

评估指标 我们使用检索领域的标准指标(nDCG、Recall@K、MRR)来评估系统在 ViDoRe 基准上的表现(需求 R1)。在本研究中,我们主要报告 nDCG@5 作为核心性能指标,并发布完整的结果集及模型。

为了评估系统是否符合实际工业需求(第 2 节),我们还考虑查询延迟(R2)和索引吞吐量(R3)。

3.2 评估当前系统

Unstructured 我们评估了在标准工业 RAG 流水线中常见的检索系统。按照惯例,我们使用 Unstructured 这一开源工具,在最高分辨率设置下从 PDF 文档中构建高质量的文本块。Unstructured 负责协调整个文档解析流程,包括使用深度学习视觉模型检测标题和文档布局(Ge et al., 2021)、OCR 引擎(Smith, 2007)提取非原生 PDF 文本,以及采用专门的方法或模型检测并重建表格。此外,它实现了一种基于标题的分块策略,以便在拼接文本时保留检测到的文档结构,从而保持章节边界。

在最基本的 Unstructured 配置(仅文本)中,仅保留文本元素,而图表、图片和表格等被视为噪声信息并被过滤掉。

Unstructured + X
虽然 Unstructured 本身是一个强大的基线,但我们进一步增强了其输出,使其能够整合视觉元素。

  • (+ OCR) 配置中,表格、图表和图片会经过 OCR 引擎处理,并由 Unstructured 解析后独立分块。
  • (+ Captioning) 配置中,我们设定了一套完整的图像字幕生成策略(Zhao et al., 2023),其中将视觉元素输入强大的专有视觉-语言模型 Claude-3 Sonnet(Anthropic, 2024),以获得高度详细的文本描述。

这两种策略都旨在将视觉元素纳入检索流程,但都会带来较高的延迟和资源消耗(第 5.2 节)。

Embedding Model 对于文本块的嵌入,我们评估了 Okapi BM25(当前标准的稀疏统计检索方法)以及 BGE-M3(Chen et al., 2024),这是一种在同等规模下达到 SOTA 性能的多语言神经方法。文本块被独立嵌入并评分,页面级别的得分则通过对该页面所有文本块得分的 max-pooling 获得。

对比 VLMs 我们还评估了当前最强的视觉-语言嵌入模型,包括 Jina CLIP(Koukounas et al., 2024)、Nomic Embed Vision(Nomic, 2024)和 SigLIP-So400m/14(Alabdulmohsin et al., 2023)。

结果 从性能角度来看,最佳结果来自将 Unstructured 解析器与视觉信息相结合的方案,例如使用字幕策略或对视觉元素运行 OCR(表 2)。BM25 和 BGE-M3 嵌入方法之间的差异很小,突出了视觉信息的瓶颈效应。对比 VLMs 的表现相对较弱。

除了检索性能(R1)外,索引延迟(R2)结果(图 2)表明,PDF 解析流水线的耗时可能会很长,尤其是在整合 OCR 或字幕策略时。所有评测系统的在线查询延迟(R3)均表现良好(在 NVIDIA L4 上≤22ms),得益于快速的查询编码和余弦相似度匹配。

在这里插入图片描述

4 基于延迟交互的视觉检索

4.1 架构设计

视觉语言模型:基于现有视觉语言模型(VLMs)在文档理解任务中的优异表现,我们提出将其适配至检索场景。核心思想是利用多模态微调过程中获得的文本与图像token输出嵌入的对齐特性。为此,我们开发了ColPali——基于PaliGemma-3B模型的扩展架构,可生成ColBERT风格的多向量文本与图像表示(图1)。选择PaliGemma-3B因其模型体积小、提供多种针对不同图像分辨率与任务的微调检查点,以及在文档理解基准测试中的卓越表现。我们新增投影层将语言模型输出的文本/图像token嵌入映射至降维空间( D = 128 D=128 D=128,与ColBERT论文设定一致),以维持轻量级的嵌入表示。

延迟交互机制:给定查询 q q q与文档 d d d,其多向量表示分别为 E q ∈ R N q × D \mathbf{E_q} \in \mathbb{R}^{N_q \times D} EqRNq×D E d ∈ R N d × D \mathbf{E_d} \in \mathbb{R}^{N_d \times D} EdRNd×D,其中 N q N_q Nq N d N_d Nd分别表示查询与文档页面的向量数量。延迟交互算子LI ( q , d ) (q,d) (q,d)定义为所有查询向量 E q ( i ) \mathbf{E_q}^{(i)} Eq(i)与文档向量 E d ( 1 : N d ) \mathbf{E_d}^{(1:N_d)} Ed(1:Nd)最大点积之和:
L I ( q , d ) = ∑ i ∈ [ ∣ 1 , N q ∣ ] max ⁡ j ∈ [ ∣ 1 , N d ∣ ] ⟨ E q   ( i ) ∣ E d   ( j ) ⟩ (1) \mathrm{LI}\left(q,d\right) = \sum_{i\in\lbrack\left|1,N_q\right|\rbrack} \operatorname*{max}_{j\in\lbrack\left|1,N_d\right|\rbrack} \langle \mathbf{E_q}^{\mathrm{\,}(i)} | \mathbf{E_d}^{\mathrm{\,}(j)} \rangle \tag{1} LI(q,d)=i[1,Nq]j[1,Nd]maxEq(i)Ed(j)(1)

对比损失函数:延迟交互操作完全可微,支持反向传播。设批次数据 { q k , d k } k ∈ [ ∣ 1 , b ∣ ] \{q_k,d_k\}_{k\in[|1,b|]} {qk,dk}k[∣1,b]包含 b b b个查询-文档对,其中每个文档 d k d_k dk为查询 q k q_k qk的真实匹配。参照Khattab & Zaharia (2020),我们定义批次内对比损失 L \mathcal{L} L为正向分数 s k + = L I ( q k , d k ) s_k^+=\mathrm{LI}(q_k,d_k) sk+=LI(qk,dk)相对于最大负向分数 s k − = max ⁡ l , l ≠ k L I ( q k , d l ) s_k^-=\operatorname*{max}_{l,l\neq k}\mathrm{LI}(q_k,d_l) sk=maxl,l=kLI(qk,dl)的softmax交叉熵:

L = − 1 b ∑ k = 1 b log ⁡ [ exp ⁡ ( s k + ) exp ⁡ ( s k + ) + exp ⁡ ( s k − ) ] = 1 b ∑ k = 1 b log ⁡ ( 1 + exp ⁡ ( s k − − s k + ) ) (2) \mathcal{L} = -\frac{1}{b}\sum_{k=1}^b \log\left[\frac{\exp\left(s_k^+\right)}{\exp\left(s_k^+\right)+\exp\left(s_k^-\right)}\right] = \frac{1}{b}\sum_{k=1}^b \log\left(1+\exp\left(s_k^- - s_k^+\right)\right) \tag{2} L=b1k=1blog[exp(sk+)+exp(sk)exp(sk+)]=b1k=1blog(1+exp(sksk+))(2)

4.2 模型训练

数据集 我们的训练数据集包含118,695个查询-页面对,由以下两部分构成:

  1. 公开学术数据集的训练集(63%)
  2. 网络爬取PDF文档页面组成的合成数据集(37%),并采用VLM(Claude-3 Sonnet)生成伪问题进行数据增强

(具体数据集划分细节见附录A.3小节)

该训练集设计为纯英文数据集,便于研究对非英语语言的零样本泛化能力7。我们严格确保ViDoRe评估集与训练集之间不存在多页PDF文档的重叠,以避免评估污染。另从样本中抽取2%构建验证集用于超参数调优。我们将公开该训练数据集8以促进研究可复现性。

参数配置 所有模型均在训练集上进行1个epoch的训练,默认配置如下:

  • 精度格式:bfloat16
  • 适配器:在语言模型的transformer层及随机初始化的最终投影层应用LoRA(Hu等人,2021),参数α=32,r=32
  • 优化器:分页adamw 8bit
  • 硬件:8 GPU数据并行
  • 学习率:5e-5(含2.5%预热步长的线性衰减)
  • 批次大小:32

查询增强
参照Khattab & Zaharia(2020)的方法,我们在查询token后追加5个特殊token,作为可微分的软查询扩展/重加权机制。

5 实验结果

在这里插入图片描述

5.1 检索性能(R1)

我们通过三个关键因素的迭代组合实现性能突破:

  1. 精心构建的领域专用数据集
  2. 预训练LLM与视觉模型的协同架构
  3. 采用多向量嵌入表征替代单向量表示

文档检索定向微调的视觉模型:BiSigLIP 基于WebLI英文数据集预训练的SigLIP9双编码器模型,经过我们文档数据集的定向微调(BiSigLIP)后,在图表检索(ArxivQA)和表格检索(TabFQuAD)任务中表现显著提升。

LLM图像块处理:BiPali PaliGemma架构将SigLIP生成的图像块嵌入输入文本语言模型,获得经LLM上下文优化的图像块表征10。通过平均池化生成的单向量模型(BiPali)在英语任务中略逊于BiSigLIP,但在未训练的法语任务中展现出色迁移能力11,证明Gemma 2B LLM的多语言理解优势。

基于延迟交互的多向量嵌入:ColPali 通过语言模型处理的图像块嵌入天然对齐文本查询的潜在空间,这使得采用ColBERT策略构建每个图像块token的独立嵌入成为可能。如表2所示,ColPali在InfographicVQA(信息图)、ArxivQA(图表)、TabFQuAD(表格)等视觉复杂任务上显著超越基于Unstructured和标题生成的基线模型,同时在所有评估领域和语言中保持最优文本检索性能。

失败案例 ColSigLIP(BiSigLIP的延迟交互变体)因预训练阶段仅优化池化表征导致性能低下。BiSigLIPPaliGemma则因SigLIP与Gemma嵌入空间错位而表现不佳(详见附录C.1)。

5.2 延迟与内存占用

在线查询(R2) ColPali查询编码耗时约30ms12,较BGE-M3的22ms略高。但优化后的延迟交互引擎(Santhanam等人,2022;Lee等人,2023)可支持百万级文档库的毫秒级检索。

离线索引(R3) 如图2所示,ColPali通过端到端图像编码跳过了传统PDF处理的布局检测/OCR/分块等耗时步骤,索引速度显著提升13。固定序列长度设计支持高效批处理,并能利用Flash Attention(Dao,2023)等LLM加速技术。

存储优化 每页存储需求为257.5KB(投影维度D=128)。通过分层均值token池化(Clavie等人,2024)可将向量数量减少66.7%同时保持97.8%性能(图3左)。但文本密集型文档(如Shift数据集)因信息密度高而更易受池化影响。

Token池化技术

Token池化(Clavie等人,2024)是一种符合CRUDE标准的方法(支持文档动态增删),旨在减少多向量嵌入的数量。在ColPali系统中,许多图像块(如白色背景区域)包含冗余信息。通过池化处理这些相似图像块,我们可以在保留大部分信息的前提下显著减少嵌入向量数量。

如图3(左)所示,采用分层均值token池化处理图像嵌入时,当池化因子设为3时:

  • 向量总量减少66.7%
  • 仍能保持97.8%的原始检索性能

值得注意的是,以高文本密度著称的Shift数据集表现出明显异常——信息密集度更高的文档所含冗余图像块更少,因此在该池化技术下可能遭受更严重的性能衰减。

在这里插入图片描述

5.3 INTERPRETABILITY

通过将 late interaction heatmap 叠加在原始图像上,我们可以可视化查询的每个术语对应的最显著图像区域,从而获得关于模型关注区域的可解释性见解。如图 3(右)所示,我们观察到 ColPali 具有较强的 OCR 能力,因为“hourly”和“hours”这两个词与查询 token <hour> 具有较高的相似度。此外,我们还注意到模型特别关注一些非显而易见的图像特征,例如代表小时的 x 轴具有显著性。其他可视化示例见附录 D。

6 ABLATION STUDY

我们进行了多种消融实验,以更好地理解模型的工作机制。除非另有说明,以下报告的结果变化指的是所有 ViDoRe 任务的平均 nDCG@5 变化值。详细结果见附录 C.2。

模型规模与图像 patch 数量之间的权衡

我们训练了一个 PaliGemma 变体,将图像 patch 数量减少至一半(512)。相比于 1024-patch 的 ColPali 模型,我们观察到明显的性能下降( − 24.8 -24.8 24.8 nDCG@5),但内存使用量显著降低。

作为 PaliGemma 的替代方案,我们训练了 Idefics2-8B(Laurençon et al., 2024b),这是一种 VLM,采用与 PaliGemma 类似的架构,但基于 Mistral-7B(Jiang et al., 2023)语言模型,并使用 SigLIP 视觉编码器与 perceiver resampler 进行配对。这两者的主要区别在于语言模型的规模(分别为 2B 和 7B)以及图像 patch 的数量(PaliGemma 介于 512 到 2048 之间,而 Idefics2 经过 resampling 仅保留 64 个 patch)。

我们的结果表明,更强的语言模型可以提高图像嵌入的表示效率——ColIdefics2 仅使用 64 个 patch 就远超 ColPali(512 个 patch),提升了 + 20.1 +20.1 +20.1 nDCG@5。然而,ColIdefics2(64)仍然不及 ColPali(1024),性能下降 − 4.7 -4.7 4.7 nDCG@5,同时在训练和推理延迟方面大约慢两倍。这些结果表明,在性能(R1)、在线查询延迟(R2)、离线索引阶段(R3)以及索引内存大小之间存在权衡。

解冻视觉组件

我们训练了一个 ColPali 变体,允许反向传播更新视觉编码器及其投影层。这导致了轻微的性能下降( − 0.7 -0.7 0.7 nDCG@5)。不过,在更大规模的训练数据下,这一结论可能会有所变化。

“query augmentation” token 的影响

在 ColBERT 中,特殊 token 被连接到输入查询,以充当软查询增强缓冲区。当不使用这些 token 进行训练时,我们在英语基准测试中未观察到显著的性能变化。然而,在法语任务上,性能有所提升(Shift 数据集 + 9.8 +9.8 +9.8 nDCG@5,TabFQuAD 数据集 + 6.3 +6.3 +6.3 nDCG@5,见表 7)。

Pairwise CE loss 的影响

在训练过程中,若使用 in-batch negative contrastive loss 而非仅考虑最难负样本的 pairwise CE loss,则整体基准测试的性能会略有下降( − 1.6 -1.6 1.6 nDCG@5)。

适应新任务

与更复杂的多步检索流水线不同,ColPali 可端到端训练,直接优化下游检索任务,从而极大地简化了针对特定领域、多语言检索或模型难以处理的视觉元素的微调过程。

为了验证这一点,我们在训练集中额外加入了 1552 个代表法语表格及其相关查询的样本。这些样本是训练集中唯一的法语数据,其他数据保持不变。结果表明,TabFQuAD 基准测试的 nDCG@5 显著提升( + 2.6 +2.6 +2.6),Recall@1 提升更为明显( + 5 +5 +5),而其他基准任务的性能未受影响(总体提升 + 0.4 +0.4 +0.4 nDCG@5)。

更强的 VLM 促进更好的视觉检索器

随着更先进的 VLM 发布,我们可以观察当这些模型适配为图像检索任务时,是否能延续其在生成任务上的优异表现。

我们使用相同的数据和训练策略,训练了最近发布的 Qwen2-VL 2B(Wang et al., 2024b),这是一款 SOTA 级别的 20 亿参数生成式 VLM,生成 ColQwen2-VL。为了大致匹配 ColPali 的内存需求,我们将图像 patch 数量限制在 768,比 ColPali 的 1024 略少。结果显示,ColQwen2-VL 的性能比 ColPali 提高了 + 5.3 +5.3 +5.3 nDCG@5,这表明在生成任务上的改进确实可以转换为检索任务的性能提升。

跨领域泛化能力

ViDoRe 基准中的部分数据集具有训练集,我们已将这些数据集整合至 ColPali 的训练集中(例如学术任务)。这种做法在嵌入模型中较为常见(Wang et al., 2024a; Lee et al., 2024)。虽然 ColPali 在未见过的任务(如法语数据)上仍然表现出色,但研究模型在完全不同的数据分布上训练后的表现仍然值得探讨。

为此,我们仅使用最新的 DocMatix 数据集(Laurençon et al., 2024a)训练了一个 ColPali 变体。DocMatix 是一个大规模、合成标注的视觉文档问答数据集,我们对其进行子采样,使训练集规模与原始训练集相当。ViDoRe 评测结果表明,性能下降幅度较小( − 2.2 -2.2 2.2 nDCG@5),但仍然比最接近的基线方法高出 12 个百分点。这些结果表明 ColPali 在未见过的领域仍能很好地泛化,同时也证明了我们的结果并未因可用的微调数据而对基线方法(如 BGE-M3)造成不公平的优势。

7 结论

在本研究中,我们提出了 Visual Document Retrieval Benchmark (ViDoRe),用于评估在包含视觉复杂文档的现实环境中进行文档检索的系统。我们证明了当前的检索流水线和对比式 Vision-Language 模型难以有效利用文档中的视觉信息,从而导致性能次优。

为了解决这一问题,我们提出了一种新的检索方法 ColPali,该方法利用 Vision-Language Models 仅通过视觉文档特征创建高质量的多向量嵌入。ColPali 在很大程度上超越了现有最佳文档检索方法,同时加快了语料库索引时间,并保持了较低的查询延迟,从而规避了现代文档检索应用中的许多痛点。我们希望通过公开发布 ViDoRe 基准、数据、代码库以及所有模型和基线,推动工业界的应用,并鼓励未来的研究工作。

未来工作 除了可以通过更优质的数据、更强的基础模型或更好的训练策略提升性能之外,我们的长期愿景是结合视觉检索系统与视觉基础的查询回答(visually grounded query answering),从而创建仅依赖图像特征运行的端到端 RAG 系统。这一构想得到了同期研究的支持(Ma et al., 2024),该研究表明 VLMs 在视觉 QA 任务中展现出极大的潜力,并最终可能成为文档处理的新工业标准。

在这一研究方向上,系统的可靠性至关重要。信息检索方法的置信度估计技术可能成为实现拒答机制(abstention mechanisms)的核心(GisserotBoukhlef et al., 2024)。考虑到 late interaction 系统的信息丰富的多向量评分机制,这一方向尤其值得关注。此外,扩展基准测试范围以覆盖更多语言、模态和任务也是未来研究的重要方向(Jiang et al., 2024)。

附录A 基准数据集

A.1 学术数据集

DocVQA (Mathew et al., 2020) 包含从UCSF Industry Documents Library 收集的图像,问题和答案均由人工标注。

InfoVQA (Mathew et al., 2021) 包含从互联网上使用搜索关键词 “infographics”收集的信息图,问题和答案均由人工标注。

TAT-DQA (Zhu et al., 2022) 是一个大规模的 Document VQA 数据集,构建自公开可用的真实世界财务报告,重点关注包含丰富表格和文本内容且需要数值推理的文档。问题和答案均由金融领域的专家手工标注。

arXivQA (Li et al., 2024) 是一个基于arXiv 论文中提取的图表构建的 VQA 数据集。问题由GPT-4 Vision 以合成方式生成。

TabFQuAD (Table French Question Answering Dataset) 旨在评估 TableQA 模型在现实工业环境中的表现。我们使用与 A.2 小节相同的方法,基于已有的人工标注数据额外生成了一些查询。

A.2 实践数据集

方法论。 构建一个与真实应用场景接近的检索数据集是一项重大挑战,该数据集需要足够大以支持有效的微调,同时足够多样以涵盖广泛的模态(全文、表格、图表等)、领域(工业、医疗等)和查询-文档交互方式(抽取式问题、开放式问题等)。我们的方法包括以下几个步骤:

  1. 使用Web 爬虫收集与不同主题和来源相关的公开文档;
  2. 将这些 PDF 转换为一系列图像,每页对应一张图片;
  3. 使用 VLM 生成与每张图像相关的查询。

Web 爬虫

我们实现了一个 Web 爬虫来高效收集与指定主题相关的大量文档。爬虫以用户定义的查询(例如 “artificial intelligence”)为起点,并使用 GPT-3.5 Turbo 生成相关主题和子主题,以实现查询扩展策略,从而在广度和深度上增强搜索能力。

随后,GPT-3.5 Turbo 进一步用于从每个子主题生成不同的搜索查询,并将其传递给一组并行工作进程,这些进程负责抓取相关性最高的文档。

我们使用SerpAPI 以及文件类型过滤(仅限 PDF 文档)来自动化爬取 Google 搜索排名。每个文件都会经过哈希计算并存入Bloom Filter(Bloom, 1970),该滤波器在所有工作进程之间共享,以避免最终语料库中出现重复文档。去重后的文档会被下载,并存入SQLite 数据库,同时存储额外的元数据。

Datamix

通过Web 爬虫,我们为以下四个主题分别收集了约 100 份文档:

  • energy(能源)
  • government reports(政府报告)
  • healthcare industry(医疗行业)
  • artificial intelligence(人工智能)

这些主题经过精心挑选,以匹配检索模型的实际应用场景,并确保文档包含丰富的视觉内容。同时,我们移除了所有可能包含私人信息的文档。

查询生成

为了提高查询生成方案的效率并减少 API 调用次数,我们最多为每张图像生成 3 个问题。

在所有收集到的文档中,我们随机抽样每个主题 10,000张图像,并调用Claude-3 Sonnet,使用以下提示词(prompt):

在这里插入图片描述

人工验证

我们对 ViDoRe 中每一条合成生成的查询都进行了人工验证,以确保查询的质量、相关性,并符合该基准测试评估工业应用场景下检索任务的目标。在此过程中,我们随机分配文档-查询对给 4 名志愿标注者,并指导他们筛除不符合上述标准的查询。

此外,我们还要求标注者标记任何他们认为包含 PII(个人身份信息)或不适用于学术基准测试的文档。然而,在整个过程中没有发现任何需要标记的情况,这验证了我们先前的 PDF 采集策略的合理性。

最终,每个主题筛选出 100 条查询,标注者均为论文作者的同事和合作者,他们自愿参与该项目。每位标注者大约花费 3 小时,从更大规模的查询集中筛选出每个主题 100 条高质量查询。

A.3 训练数据集

训练集的统计信息如下表所示。其构建方法与 A.2 小节相同。

我们确保:

  • 同一 PDF 文档的页面不会同时出现在训练集和测试集中,以防止数据泄漏。
  • 每个数据划分(训练集、测试集)内都不存在重复文档。
    在这里插入图片描述

B 实现细节

B.1 代码库

代码库使用 PyTorch 编写,并利用 HuggingFace 工具实现模型和训练器。

B.2 超参数

超参数在训练数据集的 2% 验证集上进行调优。我们发现,双编码器方法比基于晚期交互的模型对学习率变化更为敏感,在所有模型中,学习率 5 e − 5 5e-5 5e5 达到最佳性能。我们尝试了 LoRA 的 rank 和 α 值,但未观察到 r = α = 32 r = α = 32 r=α=32 之后有显著的性能提升。由于序列长度较长,较大的批量规模会使得扩展变得更加复杂,因此每个设备的批量大小保持较小。我们通过多 GPU 训练模拟较大的批量规模,并使用总批量大小 b = 32 b = 32 b=32 进行训练,无需梯度累积,训练 1 个 epoch。

B.3 嵌入大小

在工业检索系统中,如果数据库包含数百万个文档,最小化存储占用可能至关重要。基于此标准,我们比较了本研究中模型的嵌入大小。如表 4 所示,ColPali 的嵌入大小比 BM25 大一个数量级,比 BGE-M3 大两个数量级。然而,在实际场景中,通过中心聚类池化多向量嵌入,或将嵌入量化为二进制表示,可以将存储成本降低两个数量级(Santhanam 等,2022),且对性能的影响最小,从而使得存储成本与其他系统竞争。

在这里插入图片描述

B.4 延迟计算

为了确保比较的公平性,图 2 中展示的不同检索系统的延迟是在相同的 g2-standard-8 GCP 虚拟机(配备 NVIDIA L4 GPU)上测量的。文档页面使用 Unstructured 的最高设置和标题生成(参见 3.2 小节)进行嵌入。SigLIP 和 ColPali 都加载了 bfloat16 类型的参数。表 5 中报告的时间是对 ViDoRe 基准测试集的 1000 个随机选择文档进行每页索引操作时的平均延迟。BGE-M3 模型与 Unstructured 配合使用时的批量大小为 8,而 SigLIP 和 ColPali 的批量大小为 4。
在这里插入图片描述

B.5 标注

使用 Claude-3 Sonnet 为视觉丰富的文档块生成的标注示例如图 5 和图 4 所示。生成描述时使用的提示如下:

在这里插入图片描述
在这里插入图片描述

C 附加结果

C.1 其他指标

在这里插入图片描述

C.2 模型变种

在这里插入图片描述
在这里插入图片描述

D 更多相似性图

在图6中,当给定标记时,ColPali会将“哈萨克斯坦”一词的所有图块赋予较高的相似度。此外,我们的模型似乎展示了世界知识的能力,因为围绕词语“卡沙甘”(哈萨克斯坦的一个海上油田)的图块也显示出较高的相似度分数。

还值得注意的是,这个相似性图以及图3(右侧)显示的图像中都展示了一些具有较高相似度分数的白色图块。这个行为初看可能令人惊讶,因为白色图块不应该携带来自原始图像的有意义信号。我们认为,这些图块关联的向量与ViT寄存器(Darcet等人,2023)有类似的作用,也就是说,这些图块被重新用作内部计算,并存储了整个图像的全局信息。

E 模型术语表

1. SIGLIP
SigLIP(Sigmoid Loss for Language Image Pre-Training)基于CLIP(Contrastive Language-Image Pretraining)构建——一个通过最大化正确图像-文本对的相似度,并最小化错误图像-文本对的相似度来对齐图像和文本的基础模型,利用对比损失(Zhai等人,2023)。与CLIP(Radford等人,2021)不同,SigLIP使用sigmoid激活函数,而不是softmax函数。这一创新消除了对批次中所有图像-文本对之间全局相似度的需求,使得批量大小的扩展更加灵活(每批次可达1M项,最佳批量大小为32k)。这种方法使SigLIP在零-shot图像分类任务中实现了最先进的性能。

2. PALIGEMMA
PaliGemma是一个具有30亿参数的视觉-语言模型。它将SigLIP视觉编码器与Gemma-2B语言解码器结合,通过多模态线性投影层连接(Lucas Beyer等人,2024)。该模型通过将图像分割为固定数量的Vision Transformer(Dosovitskiy等人,2020)标记进行处理,并将这些标记添加到可选的文本提示中。

​ PaliGemma的一个显著特征是它作为一个前缀语言模型(Prefix-LM)运作。这种设计确保了图像标记和用户提供的输入(前缀)之间 的全注意力机制,同时自动回归地生成输出(后缀)。这一架构使得图像标记在处理过程中能够访问任务特定的查询,从而促进更有效的任务依赖推理。

​ PaliGemma的训练分为四个阶段:单模态预训练、扩展的多模态预训练、高分辨率短期预训练以及任务特定的微调。

3. COLBERT
ColBERT(Contextualized Late Interaction over BERT)是一种旨在平衡信息检索任务中的速度和效果的检索模型(Khattab & Zaharia,2020)。传统的检索模型通常根据其交互类型进行分类:要么独立地处理查询和文档以提高效率(双编码器),要么联合处理以捕捉丰富的上下文关系(交叉编码器)。ColBERT通过一种新的晚期交互机制结合了这两种方法的优点。

查询和文档使用BERT分别进行编码,从而实现文档表示的离线预计算,便于扩展。ColBERT并不像其他模型那样将嵌入池化成单一向量,而是保留了标记级别的嵌入,并使用MaxSim操作符计算细粒度的相似度分数。对于每个查询标记,模型确定与文档标记的最大相似度,并将这些分数加总以计算相关性。这种架构保留了深度语言模型的上下文丰富性,同时显著提高了计算效率。通过推迟交互步骤,ColBERT支持向量相似度索引,从而在大型文档集合中实现端到端检索,且不会产生过高的成本。基于段落搜索数据集的实证评估表明,ColBERT与现有基于BERT的模型(Devlin等人,2018)相比,能够在执行查询时快上几个数量级,并显著降低计算需求。

F 来自ViDoRe基准的数据示例

在这里插入图片描述

人工智能

在这里插入图片描述

医疗行业

在这里插入图片描述

政府报告

在这里插入图片描述

Shift

在这里插入图片描述