ColPali
ColPali是一种面向视觉丰富文档的检索模型,由研究者在2024年提出,核心思路是跳过光学字符识别等文本抽取环节,直接对文档页面图像编码为多向量表示,再用后交互机制与文本查询匹配。它同时发布了用于评测视觉文档检索的ViDoRe基准,在页面级检索任务上明显优于此前的文本抽取式流程,成为检索增强生成处理PDF、扫描件与图表类文档时的重要技术路线。
定义
ColPali是一种把文档页面当作图像直接编码的检索模型,其输出为页面级的多向量嵌入,用于根据文本查询对页面排序。它的名称来自ColBERT式多向量匹配与PaliGemma骨干网络的组合,论文题名为《ColPali: Efficient Document Retrieval with Vision Language Models》[1]。
与该领域的其他方法相比,ColPali属于视觉文档检索(Visual Document Retrieval)这一类任务,即给定文本查询,从一批以图像形式保存的文档页面中找出相关页面。传统的检索系统依赖从页面中抽取的文本建立索引,而ColPali将页面的视觉形态本身作为索引对象,因此表格、版式、字体和插图等信息可以一并保留[1]。
模型以PaliGemma为骨干,参数规模约3B,由SigLIP视觉编码器与Gemma语言模型组成,并在其上加了一层线性投影,用于得到逐token的嵌入向量[2]。配套发布的ViDoRe基准覆盖多个行业领域、多种语言和多种页面级检索任务,用于衡量此类系统的实际表现[1]。
原理
ColPali的编码过程不经过文本抽取。文档页面先被渲染为固定尺寸的图像并划分为若干图像块,模型对每个图像块输出一个向量,一页通常产生上千个向量;查询侧则由语言部分对查询文本逐token编码,得到数量与查询长度相当的向量序列[3]。
两侧向量的匹配沿用ColBERT提出的后交互(late interaction)机制。对每个查询向量,在全部页面向量中取相似度最大值,再把这些最大值求和,作为该页面与查询的相关性得分,可写成 $S(q,d)=\sum_{i}\max_{j} \mathbf{q}_i^{\top}\mathbf{d}_j$,其中 $\mathbf{q}_i$ 为第 $i$ 个查询向量,$\mathbf{d}_j$ 为第 $j$ 个页面向量[3]。
这一打分方式意味着页面与查询不压缩为单个向量,而是保留细粒度的逐块对应关系。由于每个查询词元与页面图像块的相似度可以单独取出,模型能够生成叠加在原图上的相似度热力图,显示查询中的某个词主要对应页面的哪一区域[3]。
训练采用对比学习的方式,通过批内负样本与难负样本,使查询向量与相关页面向量靠近、与无关页面向量远离;整个流程可以端到端训练,无需OCR、版面检测、分块等中间步骤[4]。
发展历程
ColPali的论文于2024年6月发布在预印本平台arXiv上,编号为2407.01449,作者包括Manuel Faysse、Hugues Sibille、Tony Wu、Bilel Omrani、Gautier Viaud、Céline Hudelot与Pierre Colombo[5]。该工作在2025年入选第十三届国际学习表征会议(ICLR),并在会议海报环节报告[6]。
随论文一同公开的还有ViDoRe基准、模型权重、数据与评测代码,采用开放许可发布[1]。研究团队随后陆续发布v1.1、v1.2、v1.3等检查点,并推出以Qwen2-VL、Qwen2.5-VL、SmolVLM等为骨干的同族模型,统称ColVision系列[6]。
随着新模型能力提升,原版ViDoRe逐渐显得偏易,团队因此着手构建难度更高的第二版基准,并持续加入新任务[6]。在工程侧,Elasticsearch自8.18版本起以技术预览形式支持后交互模型,文档向量字段与相应的打分函数可用于承载ColPali生成的嵌入[7];官方代码库亦列出Qdrant、Vespa、Weaviate等向量数据库的集成示例[8]。
应用
ColPali最主要的应用场景是检索增强生成中的文档检索环节。对于财务报表、技术手册、演示文稿、扫描发票与科研论文这类版式复杂、图表演示密集的文件,先OCR再切块的流程容易丢失空间结构,而按页面图像直接检索可以保留这些线索[4]。典型做法是先用ColPali召回相关页面图像,再交给视觉语言模型阅读并生成答案,检索与阅读全程停留在视觉空间[9]。
在评测层面,有研究将基于ColPali的视觉流水线与传统描述式流程在技术文档上对比,前者在Recall@5、MRR与nDCG@5上均更高,代价是检索耗时有所增加[10]。这类结果说明视觉优先的索引方式在版式敏感的文档上更有优势。
部署方面,社区围绕该架构形成了若干配套工具,例如用于PDF索引与检索的库、面向生产环境的向量数据库适配,以及把嵌入转换为二进制编码以加速大规模比对的方案[8]。模型可通过Python包加载并批量编码页面图像,输出可直接写入支持多向量的索引结构[3]。
局限
多向量表示带来显著的存储开销。每页上千个向量远超单向量文本嵌入的体量,中等规模的文档集合就可能占用可观的存储空间,大规模部署时需要压缩或近似检索来缓解[11]。有研究在不明显损失效果的前提下压缩页面向量,仅在保留约11.8%原始内存时维持约98.2%的检索性能[11]。
打分阶段需要对查询向量与页面向量两两比较,语料规模增大时计算量随之上升,通常要借助专门的索引结构或多阶段检索来提速[3]。已有实测表明,先对向量做池化再对候选做精确重排,可将吞吐提升数倍,但召回率在较大的截断位置会有所下降[12]。
模型的检索效果与页面中的文字覆盖程度相关,纯文字内容较少的页面可能表现较差;同时它对查询与页面块的匹配偏向较抽象的词汇对应,而非严格的字面重合[13]。对于只需要纯文本检索的语料,采用单向量文本嵌入在存储效率上更划算,多向量视觉检索并非必要选择[14]。
参见
参考资料
- 99e9e141aafc314f76b0ca3dd66898b3-Abstract-Conference [引用日期2026-10-29]
- tonywu71 (Tony Wu) [引用日期2026-10-29]
- pypi.org 上的网页 [引用日期2026-10-29]
- arxiv.org 上的网页 [引用日期2026-10-29]
- citations [引用日期2026-10-29]
- Manuel Faysse | Presented ColPali at the ICLR Poster Session [引用日期2026-10-29]
- Elasticsearch:使用 ColPali 进行复杂文档搜索 [引用日期2026-10-29]
- colpali-engine [引用日期2026-10-29]
- Llama 3.2 Vision 与 RAG:使用 Ollama 和 ColPali 的指南 [引用日期2026-10-29]
- ieee.org 上的网页 [引用日期2026-10-29]
- huggingface.co 上的网页 [引用日期2026-10-29]
- acm.org 上的网页 [引用日期2026-10-29]
- arxiv.org 上的网页 [引用日期2026-10-29]
- ColQwen / ColPali Engine [引用日期2026-10-29]