当前位置: 首页 > news >正文

[论文笔记]ColPali: Efficient Document Retrieval with Vision Language Models

引言

今天带来一篇多模态RAG的论文笔记:ColPali: Efficient Document Retrieval with Vision Language Models。

引入了一种利用视觉语言模型文档理解能力的检索模型架构ColPali,从文档页面图像上生成高质量的上下文嵌入,结合延迟交互匹配机制。开源在 https://huggingface.co/vidore 。

为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。

1. 总体介绍

文档检索将用户查询与给定语料库的相关文档进行匹配。

Refer to caption

图 1:对于用户查询中的每个词语,ColPali 会识别出最相关的文档图像块(突出显示区域),并计算查询到页面的匹配分数。然后,我们可以快速从大型预索引语料库中检索出最相关的文档。

本篇工作主要由两点贡献:

  1. ViDoRe 我们认为文档检索系统也要考虑检索文档的上下文和视觉元素,因此我们发布了ViDoRe,一个用于评估系统在页面级文档检索方面的性能,涵盖了视觉元素和语言。
  2. ColPali 提出了一种基于视觉语言模型(Vision Language Models, VLMs)的新型模型架构和训练策略,可以有效地从文档的视觉特征对其进行索引,允许随后使用后期交互机制进行快速查询匹配。

2. 问题陈述 & 相关工作

问题设定 检索系统对语料库 D \mathcal D D中的文档 d d d和查询 q q q的相关性进行平分。计算语料库 ∣ D ∣ |\mathcal D| D个文档中每个的相似度得分 s ( q , d ) ∈ R s(q,d) \in \R s(q,d)R,然后进行排名以提取最相关的文档。

我们专注于页面级检索: 给定一个查询,系统是否检索到正确的文档页面? 这里的文档指单个页面。同时对评分系统施加了延迟约束。目前多数检索系统可以分解为:(1) 离线索引节点,构建文档索引。 (2) 在线查询阶段, 查询与索引中的文档匹配,并且低延迟对用户体验至关重要。

高效的文档检索系统展现了高检索性能(R1)、低查询延迟(R2)和高索引吞吐量(R3)的联合特性。

2.1 文本检索方法

文本空间中的文档检索 基于词频的统计方法,如TF-IDF和BM25,简单和高效,仍被广泛使用。

神经网络检索器 在双编码器模型(bi-encoder)中,文档被独立离线地映射到一个密集的向量空间,查询在线嵌入,并通过快速余弦距离计算与文档匹配。一种速度较慢但性能略高的替代方案是交叉编码器(Cross-encoder)系统。

后期交互的多向量检索 每个文档词元被预先计算嵌入并索引。运行时可以计算单个查询词元嵌入的相似度。利用单个查询词元和文档词元之间的丰富交互,同时利用双编码器带来的离线计算和快速查询匹配优势。

检索评估 目前没有基准同时考虑文本和视觉文档特征数来评估文档检索方法。

2.2 整合视觉特征

对比视觉语言模型 通过对比损失对齐分离的视觉和文本编码器,已经实现了将文本内容隐藏的表示映射到相应视觉内容表示。虽然这些模型中存在一些OCR功能,但视觉组件通常没有针对文本理解进行优化。FLIP框架将后期交互机制扩展到跨模态视觉-语言模型,依赖于文本交际和图像块之间的最大相似度操作。

视觉丰富文档理解 为了超越文本,一些面向文档的模型联合编码文本标记以及视觉或文档布局特征。VLM在视觉问答、字幕生成和文档理解方面展现出强大的能力,但并未针对检索任务进行优化。

3. ViDoRe基准

ViDoRe旨在全面评估检索系统在页面级将查询与相关文档进行匹配的能力。包含多个子任务,重点关注各种模态——文本、图像、信息图表、表格。

image-20241023074331991

4. 基于后期交互的视觉检索

4.1 架构

Refer to caption

图 2:与标准检索方法相比,ColPali 简化了文档检索,同时在更低的延迟下取得了更强的性能。

视觉语言模型 将VLM用于检索,利用多模态微调过程中获得的文本和图像标记输出嵌入之间的对齐。我们引入了ColPali,能够生成文本和图像的ColBERT风格的多向量表示,基于Paligemma-3B的扩展。添加了一个投影层,将输出语言模型嵌入映射到一个降维的向量空间 D = 128 D=128 D=128

后期交互 给定查询 q q q和文档 d d d,分别用 E q ∈ R N q × D E_q \in \R^{N_q \times D} EqRNq×D E d ∈ R N d × D E_d \in \R^{N_d \times D} EdRNd×D表示它们在公共嵌入空间 R D \R^D RD中的多向量表示。后期交互算子 LI ( q , d ) \text{LI}(q,d) LI(q,d)是所有查询标记向量 E q ( j ) E_q^{(j)} Eq(j)与每个文档标记嵌入向量 E d ( 1 : N d ) E_{d(1:N_d)} Ed(1:Nd)的最大点积之和:
LI ( q , d ) = ∑ i ∈ [ ∣ 1 , N q ∣ ] max ⁡ j ∈ [ ∣ 1 , N d ∣ ] ⟨ E q ( i ) , E d ( j ) ⟩ (1) \text{LI}(q,d) = \sum_{i \in [|1,N_q|]} \max_{j \in [|1,N_d|]} \langle E_q^{(i)} , E_d^{(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个查询-文档对组成,其中对于所有 k ∈ [ ∣ 1 , b ∣ ] k \in [|1,b|] k[∣1,b] d k d_k dk是与查询 q k q_k qk对应的文档。将批内对比损失 L \mathcal L L定义为正分数 s k + = LI ( q k , d k ) s_k^+ = \text{LI}(q_k,d_k) sk+=LI(qk,dk)相对于最大负分数 s k − = max ⁡ l , l = k LI ( q k , d l ) s^-_k = \max_{l,l=k} \text{LI}(q_k,d_l) sk=maxl,l=kLI(qk,dl)的softmax交叉熵。

4.2 模型训练

数据集 训练数据集包含127460个查询-文档对。

参数 所有模型都在训练集上训练1个epoch;使用bfloat16格式训练模型;LoRA:在Transformer层以及最终随机初始化的投影层上 α = 32 , r = 32 \alpha=32,r=32 α=32,r=32;使用paged_adamw_8bit优化器;学习率为5e-5;线性衰退;2.5%预热步长;批大小32。

查询增强 在查询标记后添加5个标记,作为一种软可微查询扩展或重新加权机制,如ColBERT的做法。

5. 结论

作者引入了 ColPali,这是一种新颖的检索模型,它利用最新的生成式视觉语言模型,仅从视觉文档特征创建高性能的多向量嵌入。

总结

⭐ 作者介绍了一种新的多模态检索框架ColPali,可以生成文本和图像的ColBERT类多向量表示,也引入后期交互计算每个查询标记和文档标记之间的交互,最终得到一个分数可用于检索排名。


http://www.mrgr.cn/news/56667.html

相关文章:

  • 因为一句废话,大模型无法解决小学数学题?
  • electron-vite_10electron-updater软件更新
  • MySQL 有多少种日志?
  • 002_基于django国内运动男装小红书文章数据可视化分析系统的设计与实现2024_qo6cy3i4
  • 怎么将avi转换成mp4?这8种转换方法值得你尝试一下!
  • 第55期 C语言实现中断<五>
  • PCL SAC-IA 算法实现点云粗配准(永久免费版)
  • 【卡尔曼滤波】观测模型包含输入的线性卡尔曼滤波
  • 输出时间序列中的时区是什么Series.dt.tz_convert(tz)
  • 酒店智能轻触开关的类型及其应用
  • 过零检测比较器电路设计
  • 【数据结构与算法】Java中的基本数据结构:数组、链表、树、图、散列表等。
  • Java | Leetcode Java题解之第502题IPO
  • Android Audio基础——音频混合器介绍(十二)
  • 深入解析 FarmHash 算法C++ 实现与性能优化
  • 【源码+文档】基于SpringBoot+Vue城市智慧社区综合服务平台【提供源码+答辩PPT+参考文档+项目部署】
  • 什么是感知与计算融合?
  • java中double强制转换int引发的OOM问题
  • 大厂物联网(IoT)高频面试题及参考答案
  • AIGC文本生成视频
  • Python中的isinstance和hasattr
  • 【使用Flask构建RESTful API】从零开始开发简单的Web服务!
  • 追寻数组的轨迹,解开算法的情愫
  • Python语法基础:复数
  • 【在Linux世界中追寻伟大的One Piece】Socket编程UDP
  • 道可云人工智能元宇宙每日资讯|上海市互联网业联合会人工智能专业委员会成立