ColPali:基于PaliGemma-3B的视觉检索模型
ColPali是一个创新的视觉语言模型(VLM),旨在高效地从视觉特征中索引文档。它是基于Google的PaliGemma-3B模型进行扩展,生成类似ColBERT的文本和图像的多向量表示。这个模型首次在论文《ColPali: Efficient Document Retrieval with Vision Language Models》中介绍,并在GitHub上发布。
模型架构
ColPali的架构是从SigLIP模型开始逐步构建的。研究人员首先对SigLIP进行微调,创建了BiSigLIP模型。然后,他们将SigLIP输出的图像块嵌入输入到PaliGemma-3B语言模型中,从而创建了BiPali模型。
这种将图像块嵌入输入到语言模型的方法有一个显著优势:它可以将图像特征自然地映射到与文本输入(查询)相似的潜在空间。这使得模型能够利用ColBERT策略来计算文本标记和图像块之间的交互,从而在性能上实现了质的飞跃。
模型训练
数据集
ColPali的训练数据集包含127,460对查询-页面对,由公开的学术数据集(63%)和合成数据集(37%)组成。合成数据集是由网络爬取的PDF文档页面构成,并使用Claude-3 Sonnet生成的伪问题进行增强。训练集设计为全英文,以研究模型对非英语语言的零样本泛化能力。
训练参数
模型在训练集上训练一个epoch。研究人员使用bfloat16格式,并在语言模型的transformer层和最终的随机初始化投影层上应用低秩适配器(LoRA)。他们采用paged_adamw_8bit优化器,在8 GPU设置下进行数据并行训练,学习率为5e-5,并使用线性衰减和2.5%的预热步骤,批量大小为32。
使用方法
ColPali可以通过Python库colpali_engine来使用。用户可以通过pip安装该库,然后使用提供的示例代码来加载模型、处理图像和查询,并进行推理。该模型支持批量处理,可以高效地处理多个图像和查询。
局限性
ColPali主要专注于PDF类型的文档和高资源语言,这可能限制了它对其他文档类型或资源较少的语言的泛化能力。此外,由于模型依赖于基于ColBERT后期交互机制的多向量检索,可能需要额外的工程努力来适应那些缺乏原生多向量支持的广泛使用的向量检索框架。
许可证和引用
ColPali的视觉语言骨干模型(PaliGemma)遵循gemma许可证,而附加到模型上的适配器则采用MIT许可证。研究人员鼓励使用ColPali数据集或模型的用户在其研究中引用相关论文。
总的来说,ColPali代表了视觉语言模型在文档检索领域的一个重要进展,为高效处理和检索大规模文档数据提供了新的可能性。