colpali
让 AI 直接「看」文档图片进行检索,无需 OCR,是视觉文档 RAG 的开源 SOTA 方案
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让 AI 直接「看」文档图片进行检索,无需 OCR,是视觉文档 RAG 的开源 SOTA 方案
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景:你手上有几千份 PDF 财报、年报、合同,里面密密麻麻的文字和表格混杂在一起。当你想问「我们去年 Q3 的研发费用支出情况如何」时,传统 RAG 需要先跑 OCR 识别文字,再切块、向量化,整个流程复杂又脆弱——一旦 PDF 排版复杂,OCR 就容易出错,表格结构也会被打散。
ColPali 的出现彻底改变了这个局面。它让 AI 直接「看」文档,把每一页当作图片处理,无需 OCR,无需文字提取,一个模型同时理解文字、表格、图表和版式。

图1:ColPali 核心架构——将文档页面直接编码为多向量嵌入,与查询向量进行 Late Interaction 匹配
ColPali 诞生于 2024 年,由法国 AI 公司 ILLUIN Technology 的研究团队提出,论文发表于 ICLR 2025。其核心思想非常简单优雅:用 Vision Language Model(VLM)直接编码文档页面图像,生成 ColBERT 风格的多向量嵌入(Multi-Vector Embeddings),然后用 Late Interaction 机制进行精确匹配。
这项技术的背后是一个深刻的问题:传统文档检索依赖 OCR + 文字切块,但 OCR 对复杂版式极其脆弱。发票、表格、手写内容、多栏排版都是 OCR 的噩梦。更糟糕的是,文字切块往往会破坏表格和段落的语义连贯性。
ColPali 的解决思路是:既然 VLMs 已经能「看懂」图片,为什么不让它们直接看文档? 这就诞生了「视觉文档检索」这个全新的研究方向。
ColPali 的技术架构融合了两个强大思想:
第一,Vision Language Model 作为视觉编码器。 团队以 Google 的 PaliGemma-3B 为基础,将 ViT 输出的图像块(patch)通过线性投影层映射为向量表示。每个 patch 变成一个向量,整页文档就变成了一串向量的序列——这与 ColBERT 的多向量思想完全吻合。
第二,Late Interaction 匹配机制。 传统 bi-encoder 把文档和查询各自压缩成一个向量,匹配时是向量点积,信息损失大。ColBERT 的 Late Interaction 则允许查询中每个 token 与文档中每个 patch 向量独立计算相似度,最后求和取最大值。这种「晚匹配」机制能捕捉细粒度的语义对应——比如查询「第三条利润表」能精准命中文档第三段的表格。
这种架构的副产品也很有价值:可解释性强。通过相似度热力图(Similarity Maps),可以直观看到模型关注了文档的哪些区域,每个查询词对应哪些视觉块,一目了然。
ColPali 不是单一模型,而是一个不断壮大的模型家族。截至 2026 年初,仓库中支持以下模型:
| 模型 | 基础 VLM | 参数量 | ViDoRe 得分 | 许可证 |
|---|---|---|---|---|
| ColPali v1.3 | PaliGemma-3B | ~3B | 84.8 | Gemma TOS |
| ColQwen2 v1.0 | Qwen2-VL-2B | ~2B | 89.3 | Apache 2.0 |
| ColQwen2.5 v0.2 | Qwen2.5-VL-3B | ~3B | 89.4 | Apache 2.0 |
| ColSmol-500M | SmolVLM-500M | ~500M | 82.3 | Apache 2.0 |
| Tomoro-ColQwen3 | Qwen3-VL | ~4B | 90.6 | Apache 2.0 |
Apache 2.0 许可的 ColQwen2 系列是目前最受欢迎的选择——完全开源可商用,2B 参数量对硬件要求相对友好。最新登顶的 Tomoro-ColQwen3-Embed-4B(90.6 分)代表了当前 SOTA 水平。
财务报表分析:输入年报 PDF,直接问「我们去年研发投入同比增长多少」,ColPali 能准确定位到对应页面的表格和数字。
合同审查:输入合同文本,问「违约金条款是什么」,即使合同是多栏排版或有水印,ColPali 也能准确检索。
学术论文检索:在 arXiv 论文集中检索相关工作,图表和公式密集的页面同样能被正确理解。
多语言文档:ColNetraEmbed 基于 Gemma-3-4B,支持 22 种语言,跨境企业的多语言合同和文件同样适用。
ColPali 定位是 Python 库,没有独立的 Web UI,一切通过代码调用。安装只需一行:
pip install colpali-engine
推理代码也非常简洁——加载模型,处理图片/查询,计算相似度,三步搞定。但有一点需要注意:必须要有 GPU。ColQwen2-2B 推荐至少 6GB 显存,ColPali-3B 需要 16GB+。Mac 用户用 MPS 也可运行,但遇到 torch 2.6.0 兼容问题,需降级到 2.5.1。
可选安装 [lik] 额外依赖可启用 Triton 融合内核,在 H100 等 Ampere+ 架构 GPU 上将最大可训练 batch size 翻倍,推理吞吐量提升约 30%。
ColPali 的生态非常活跃,官方 README 列出了超过 17 个社区集成:
这套生态意味着:ColPali 不是孤立的学术项目,而是可以直接嵌入生产 RAG 管道的实用组件。
ColPali 也并非完美。首先,速度是硬伤——Late Interaction 的 O(Lq x Ld) 复杂度在大规模文档集上是性能瓶颈,ColQwen2 + LoRA + Triton fused kernel 能缓解但无法根治。团队正在推进 fast-plaid 实验性加速方案。
其次,图片理解受 VLM 本身能力限制——如果 VLM 本身对某个领域术语识别能力弱(如罕见药物名称),ColPali 也会跟着弱。这是多模态模型的通病,不是 ColPali 的特有问题。
第三,显存占用不小。ColPali-3B 需要 16GB+ 显存,不是任何机器都能跑。虽然有 ColSmol-500M 这样的轻量选项,但 ViDoRe 得分会从 84.8 掉到 80.1,有明显差距。
最后,部署复杂度高于纯文本检索——需要 GPU、CUDA 环境、正确版本的 PyTorch,生产运维门槛不低。
ColPali 的价值不只是提升了多少百分点的检索分数,更在于它开创了一个新范式:从「读懂文字」到「看懂版面」。在金融、医疗、法律、学术等领域,文档的结构和版式本身就是信息的一部分——表格的相对位置、段落的层次、图表的标注,都是人类理解文档时依赖的线索。传统 OCR + 文本检索丢弃了这些信息,而 ColPali 将它们完整保留。
随着 Qwen2.5-VL、Qwen3-VL 等更强 VLM 底座的引入,ColVision 模型的性能还在持续提升。ViDoRe 基准榜的分数从 ColPali 初代的 81.3 攀升到 2026 年的 90.9,这个领域的进步速度令人瞩目。
如果你正在构建需要处理 PDF、扫描件、图片文档的 RAG 系统,ColPali(尤其是 ColQwen2 系列)是目前最值得考虑的技术选择。