跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

多模态 RAG 在企业数智化场景中的设计与优化

探讨了 2024 年多模态大模型背景下 RAG 在企业数智化场景中的设计与改进。文章分析了两种主流技术路线:基于广义 OCR 的方案和基于 VLM(如 PaliGemma、Qwen2-VL)的方案。重点介绍了 ColPali 及其背后的延迟交互模型(Late Interaction Encoder)原理,对比了双编码器、交叉编码器和延迟交互编码器的优劣。文中详细阐述了如何在 Infinity 数据库中通过 Tensor Index 和 MaxSim 算法优化多模态检索,提出了结合 OCR 与 VLM 的混合策略以适应不同业务场景,并补充了工程落地时的缓存、异步处理及监控建议。

链路追踪发布于 2025/2/7更新于 2026/9/963 浏览
多模态 RAG 在企业数智化场景中的设计与优化

2024 年多模态大模型与 RAG 的演进

2024 年可以算得上是多模态大模型取得井喷的一年。5 月发布的 GPT-4o,让多模态大模型进一步走进了我们的视野。如果说在 2023 年,多模态的应用还停留在传统的简单图像搜索,到 2024 年,则真正开始了对多模态数据的深度理解。

RAG 在企业数智化场景下的设计与改进

从对图像的理解角度来看,2024 年已经取得了长足进步。随之而来的,就是多模态 RAG(Retrieval-Augmented Generation),是否也会开始落地并产生价值?我们先来看看多模态 RAG 都有哪些使用场景。所谓多模态 RAG 的概念并不稀罕,在 2023 年 RAG 概念刚火热起来不久,就有了多模态 RAG 的场景描述,例如针对个人相册、企业宣传素材的搜索需求。然而,这种搜索需求更多是把存在很久的向量搜索的使用场景如图像搜索、以图搜图等安插到了多模态 RAG 之上,并没有真正从业务角度来逐步挖掘多模态 RAG 的场景价值。

随着 RAG 技术在 2024 年快速发展,更多的企业已经把 RAG 看成是大模型在 B 端应用的标准配置。来自于企业内部的文档问答,已经解锁出大量使用需求和场景。在这些文档中,有相当一部分包含各类复杂的图表内容,它们本质上就是各种多模态数据。如何对这些数据进行有效问答,成了挖掘企业内部数据金矿的刚性需求来源之一。

技术路线一:广义 OCR 方案

针对这类数据,一种解决方案是采用视觉模型,利用广义上的 OCR 技术,把这些多模态文档的布局首先识别出来,再根据不同语义区块,调用相应的模型来做处理。

RAG 在企业数智化场景下的设计与改进

这个流程中,得到的图片和表格,都属于典型的多模态数据。因此,采用相应的模型,将它们转成文本数据,就解决了对多模态数据的理解问题。从原理上来说,这样的技术也分为两代:

第一代:专用视觉模型

第一代是采用各类视觉模型,针对不同类型的图表数据分别进行训练,将它们转化为文字。例如针对表格处理的,有表格识别模型;针对流程图、饼图、柱状图等企业图表,也需要相应的模型来处理。这些视觉模型,本质上是个分类模型或检测模型,依赖于特定领域的标注数据。

第二代:生成式模型

第二代则采用生成式模型。不同于流行的 LLM 采用的 Decoder Only 架构,基于 Transformer 的多模态生成式模型,通常采用 Encoder-Decoder 架构。Encoder 的输入端是各种图表,Decoder 的输出就是各类文本。依托于这种广义的 OCR 技术,可以把一个多模态 RAG 系统变成一个标准的 RAG 系统。在我们的开源和商业版的 RAGFlow 中,分别基于这两类技术提供了相应的实现。

技术路线二:VLM 直接理解方案

另一种解决方案,则直接依托于多模态模型本身,简称 VLM(Vision Language Model)。输入文字和图像,输出得到基于图像和文字内容理解得到的答案文字。

RAG 在企业数智化场景下的设计与改进

如前文所提到,VLM 在 2024 年取得了显著进展,它们已经大大超越了过去图像搜索这种简单的场景。我们先以 Google 在 7 月开源的 PaliGemma 为例,看看对一个复杂的多模态文档理解的效果。上传一张包含柱状图、饼图以及各类文本的复杂 PDF 截图,然后针对图表进行提问,可以看到,PaliGemma 给出了准确的回答。

RAG 在企业数智化场景下的设计与改进

而近期阿里开源的 Qwen2-VL-7B,也在视觉图像理解上达到了更好的效果。如何将这些 VLM 应用于针对大量企业内部 PDF 文档的多模态 RAG,同样是今年 7 月公开的 ColPali,则是一个堪称里程碑的工作。

ColPali,全称叫 Contextualized Late Interaction over PaliGemma,是一个基于 PaliGemma 的延迟交互模型。PaliGemma 是一个结合了视觉和语言模型的混合模型,它使用 SigLIP 视觉编码器生成的图像块 (Image Patch) Embedding,并将这些 Embedding 输入到 Gemma 文本语言模型中,以获得上下文相关的语言模型输出 Embedding。

RAG 在企业数智化场景下的设计与改进

而 ColPali 则在 PaliGemma 基础上添加了一个 Col Adaptor,它负责将 PaliGemma 的 Embedding 输出映射到一个更低维度(128 维)的向量空间,并采用延迟交互模型来计算文本和文档之间的相似度。所谓 ColPali 的"Col",跟最知名的用于文本排序的延迟交互模型 ColBERT,是一个含义,它是用来在 RAG 系统中解决文档排序的一种标准方法的总称。也就是说,我们可以在任何模型基础之上来新增一个 Col Adaptor,同时辅之以训练的正负样本对数据,就可以得到各种 ColXX 模型,它们都是采用延迟交互模型,可以用来捕获查询和文档之间的上下文相似度。

RAG 在企业数智化场景下的设计与改进

检索排序模型架构详解

在 RAG 常用的排序模型中,主要有三类架构,理解它们的差异对于构建高效的多模态 RAG 至关重要:

1. 双编码器(Dual Encoder)

以 BERT 模型为例,它针对查询和文档分别编码,最后再经过一个 Pooling 层,使得输出仅包含一个向量。在排序阶段,只需要计算两个向量相似度即可。由于双编码器针对查询和文档分别编码,因此无法捕获查询和文档的 Token 之间的复杂交互关系,在语义上会有很多损耗。其优势在于检索速度极快,适合大规模粗排。

2. 交叉编码器(Cross Encoder)

Cross-Encoder 使用单编码器模型来同时编码查询和文档,它能够捕捉查询和文档之间的复杂交互关系,因此能够提供更精准的搜索排序结果。Cross-Encoder 并不输出查询和文档的 Token 所对应的向量,而是再添加一个分类器直接输出查询和文档的相似度得分。它的缺点在于,由于需要在查询时对每个文档和查询共同编码,这使得排序的速度非常慢,因此 Cross-Encoder 只能用于最终结果的重排序。例如针对初筛结果的 Top 10 做重排序,仍然需要耗时秒级才可以完成。

3. 延迟交互编码器(Late Interaction Encoder)

以 ColBERT 为例,相比于交叉编码器,ColBERT 仍采用双编码器策略,将查询和文档分别采用独立的编码器编码,因此查询的 Token 和文档的 Token 在编码时互不影响,这种分离使得文档编码可以离线处理,查询时仅针对 Query 编码,因此处理的速度大大高于交叉编码器。这样带来的好处就是延迟交互编码,可以放到数据库内部执行,不仅可以大大降低成本,更重要在于它可以针对更多的文档排序(例如 Top 100 甚至 Top 1000),从而大大提升最终的查询精度。相比于双编码器,ColBERT 输出的是多向量而非单向量,这是从 Transformer 的最后输出层直接获得的,而双编码器则通过一个 Pooling 层把多个向量转成一个向量输出,因此丢失了部分语义。

RAG 在企业数智化场景下的设计与改进

延迟交互编码器,是面向未来的 RAG 排序模型,它既有交叉编码器的排序质量,又具备较高的性能,解决了 RAG 检索过程中语义损耗的问题。正因为此,ColPali 算是延迟交互编码器在多模态 RAG 检索的应用,它的出现,对于提升多模态 RAG 的检索精度,具有显著的价值。

下图是 ColPali 在文章中对比采用传统视觉模型的广义 OCR 实现的多模态 RAG,可以看到在查询精度上,领先优势很大。甚至在整体的数据写入速度上,也大大领先。

RAG 在企业数智化场景下的设计与改进

下图是 ColPali,对比不采用延迟交互模型的 BiPali(就是采用双编码器的 PaliGemma,对查询和文档分别用 PaliGemma 编码),在查询精度上的领先优势:平均 nDCG 从 50 多到 80 多,这在产品上几乎就是可用和不可用之间的差异。

RAG 在企业数智化场景下的设计与改进

随着 ColPali 的出现,更多的将延迟交互模型用于多模态 RAG 检索的模型也出现了,例如将 Col Adaptor 用于 Qwen2-VL-2B 的 ColQwen2,在 ViDoRe Benchmark 榜单上,近期已经跑到了第一名,它的平均 nDCG 指标,比 ColPali 还领先了 5 个百分点。ViDoRe,全称是 Visual Document Retrieval Benchmark,类似适用于标准 RAG 的 MTEB Benchmark,ViDoRe 可看作是多模态 RAG 的 MTEB。

RAG 在企业数智化场景下的设计与改进

并且可以看到,在 ViDoRe Benchmark 上,排名前列的模型,全都是延迟交互模型:

RAG 在企业数智化场景下的设计与改进

工程化落地与数据库支持

那么如何将 ColPali,应用到企业级的多模态文档知识库系统中呢?我们先来看 ColPali 模型,它会把每张图片,具体来说,就是 PDF 的某一页,看作是 32*32=1024 个 Image Patches,每个 Patch 都会生成 128 维向量。因此,一页图片,就可以用这 1024 个向量来表示。在查询的时候,查询的每个 Token,也都会生成一个 128 维向量,根据 ColPali 模型,查询和一页图片的相似度,是查询每个 Token 的每个向量,跟所有 Patch 的向量之间内积之和的叠加,这就是 MaxSim。

因此可以看到,我们需要这样的基础组件,来完成基于 ColPali 搜索的产品化:

  1. 需要有 Tensor 类型:就是多向量,来表示一页。
  2. 需要有效的支撑 MaxSim 算法:MaxSim 的计算并不是难事,但由于 Tensor 类型的引入,它带来 2 个问题:其一是 MaxSim 的查询复杂度较高;其二是 Tensor 的空间复杂度很高。一页 PDF 的 Tensor 需要 1024*128 = 128KB,对于大量的 PDF 来说,这是很高的空间开销。

在实际使用中,我们发现,单纯采用 ColPali,确实可以解读图表,但对于一些文本内容,仍然无法有效召回。因此,标准 RAG 所必备的能力:全文搜索和多路召回,仍然不可或缺。

在我们的开源 AI 原生数据库 Infinity 中,就已经提供了以上支持,针对第二点,主要优化在于:

我们首先试验了 Tensor Index 的必要性。在实现了 SOTA 的 Tensor Index 后,我们在文本排序上做了对比,发现 Tensor 类型,MaxSim 计算仅放在 Reranker 即可。下图是在一个基于文本的排序评测上,分别对比了采用 Tensor Index,普通搜索 + Tensor Reranker,以及基于 Tensor 的暴搜,可以看到,基于 Tensor Reranker 的结果,甚至高于采用 Tensor Index。

RAG 在企业数智化场景下的设计与改进

基于以上结论,采用 Tensor Reranker 即可达到效果,而 Tensor Reranker 可以采用更多的优化空间,例如采用二值量化,也就是把向量的每个维度的浮点数,用一个 bit 来表示,这样存储空间可以降低为原来的 1/32,同时计算复杂度也大大降低。

基于以上结论,采用 Tensor Reranker 来实现 MaxSim,那我们在前边的粗筛,同样离不开向量搜索。只是不同之处在于,我们需要这种向量搜索,也具备多向量的能力,意思是,向量搜索是以 Patch Embedding 为单元,但我们期望返回的结果,是以 PDF Page 为单元。

RAG 在企业数智化场景下的设计与改进

因此,采用 Infinity 数据库,将可以很好的支持多模态 RAG。

技术选型策略与未来展望

以上我们提到了 2 种技术路线,一个是基于广义 OCR,另一个是基于 VLM,分别用于实现多模态 RAG。那么这两种技术路线,哪种更有前景呢?在 ColPali 的论文中,已经给出了针对前者的比较,只是这种比较,主要是针对采用简易的 OCR 技术。在参考资料中,也针对这两种方法进行了对比,结论如下图所示:

RAG 在企业数智化场景下的设计与改进

看起来似乎采用 ColPali 这样的延迟交互模型,已经具备足够的领先优势。然而,在前文已经提到,即使是广义的 OCR,也已经演进到了下一代基于 Transformer 的生成式模型架构,这在本质上跟 VLM 没有区别,所不同的是,前者直接输出文字,后者则输出 Embedding,而对于网络结构来说,都是 Encoder-Decoder 架构。

面对企业级的多样化需求,在查全和查准都要兼顾的前提下,我们很难说哪种一定会占据优势,因此,最佳的选择是,两者都要有:

  1. 高精度还原场景:在文字更容易表达,或者精确处理更加重要的场景,例如表格,我们可以采用更加准确的图像直接生成文字的做法,把整个表格精准的还原,然后让大模型准确回答问题。
  2. 效率优先场景:在文字表达不容易,如其他图表类场景,我们交给 VLM 来处理,这样效率更高。

多模态 RAG 系统,需要考虑各种情况,需要有个统一的任务管理模块,来针对用户数据的不同类型,分别调用相应的模块来进行处理。

此外,在工程落地层面,还需要注意以下几点:

  • 缓存策略:对于高频查询的页面,应建立多级缓存机制,减少重复的 Embedding 计算。
  • 异步处理:文档解析和向量化过程应设计为异步任务,避免阻塞用户的上传请求。
  • 监控告警:建立完善的日志监控体系,跟踪检索延迟、准确率等关键指标,及时发现模型退化或数据分布偏移问题。

随着 Encoder-Decoder 架构在工程上的渐趋成熟,Image Patch 的语义表达更加精细,多模态模型已经不再是未来,而是当下。以它为基础的多模态 RAG,也早已摆脱了图片搜索等上一代 AI,它们已经或者即将解锁企业内部的大量非结构化文档数据的深度理解,这将大大扩充 RAG 的使用场景,也大大增加大模型在企业端的应用价值。

作为同时开发端到端 RAG 产品和下一代 RAG 配套数据库的我们,也在密切跟进相关领域的发展,不论是产品侧,还是模型以及 Infra 侧。

参考资料

  1. https://huggingface.co/spaces/big-vision/paligemma-hf
  2. https://huggingface.co/spaces/GanymedeNil/Qwen2-VL-7B
  3. ColPali: Efficient Document Retrieval with Vision Language Models. https://arxiv.org/abs/2407.01449
  4. MMLongBench-Doc: Benchmarking Long-context Document Understanding with Visualizations. https://arxiv.org/abs/2407.01523

目录

  1. 2024 年多模态大模型与 RAG 的演进
  2. 技术路线一:广义 OCR 方案
  3. 第一代:专用视觉模型
  4. 第二代:生成式模型
  5. 技术路线二:VLM 直接理解方案
  6. 检索排序模型架构详解
  7. 1. 双编码器(Dual Encoder)
  8. 2. 交叉编码器(Cross Encoder)
  9. 3. 延迟交互编码器(Late Interaction Encoder)
  10. 工程化落地与数据库支持
  11. 技术选型策略与未来展望
  12. 参考资料

更多推荐文章

查看全部
  • QSDE:下一代 Python 异步下载引擎发布
  • 优秀网络安全工程师应具备的核心能力
  • 前端 SSR 技术指南:提升 SEO 与用户体验
  • 最佳信号覆盖问题
  • Python 类方法、实例方法与静态方法深度解析
  • AI 时代的生产力重构:非技术背景的产品化实践
  • Java 网络协议:HTTP 请求与响应
  • Python Mode for Processing 创意编程使用指南
  • HiClaw 开源:Team 版 OpenClaw 本地安装与架构解析
  • SDXL Prompt Styler 工具使用指南:优化 AI 绘画提示词
  • 2026 年主流 AI 大模型实测与选型指南:国产模型崛起与性价比分析
  • 本地部署 MaxKB 知识库系统,支持多种大模型零代码集成
  • MySQL InnoDB 存储引擎:B+树叶子节点能存多少数据?
  • Google Antigravity IDE 介绍:智能体驱动开发体验
  • Whisper.cpp 量化模型清单与 ggml 格式下载指南
  • AI 编程工具深度对比:Cursor、Copilot、Trae 与 Claude Code
  • 【实践】操作系统智能助手OS Copilot新功能测评
  • unstructured:非结构化文档预处理与结构化转换实践
  • 支持 Nor Flash 读写的 SPI 主控制器设计、仿真和 FPGA 验证(含 XIP 模式)
  • Windows Python 安装与环境配置完整教程

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online