跳到主要内容

生产环境中的多模态 RAG:如何同时搜索图像、音频和文本

· 阅读需 14 分钟
Tian Pan
Software Engineer

大多数团队在意识到他们的语料库中很大一部分内容——产品截图、演示录制、架构图、客服通话录音——对于纯文本检索系统是不可见的之后,会将多模态 RAG 加入到他们的路线图中。在生产环境中令他们感到惊讶的并不是嵌入模型的选择或向量数据库的选择,而是模态之间的差距:同一个语义概念,当被编码为图像和句子时,会落在向量空间中完全不同的区域,而搜索引擎根本不知道它们是相关的。

这篇文章涵盖了多模态嵌入对齐的技术原理、在大规模场景下真正有效的跨模态重排序策略、相对于纯文本 RAG 的成本和延迟状况,以及多模态检索特有的失效模式。

多模态嵌入对齐的工作原理

基础挑战在于,文本嵌入和图像嵌入是由针对不同目标训练的不同编码器架构生成的。文本编码器被优化为将语义相似的句子放在一起。图像编码器被优化为将视觉相似的图像放在一起。两者都没有任何内在理由将句子“在公园里奔跑的狗”放在该场景的照片附近——除非你显式地训练这种关系。

CLIP (Contrastive Language-Image Pretraining) 是这方面的突破。它使用对比损失(contrastive loss)在 4 亿对图像-标题对上同时训练两个编码器——一个用于文本,一个用于图像。训练信号是:将成对的图像和标题的表示推在一起,将不成对的推开。训练后,你会得到一个共享的嵌入空间,其中文本“在公园里奔跑的狗”和对应的照片在几何上是接近的。

Meta 的 ImageBind 将这一想法扩展到了六种模态:图像和视频、文本、音频、深度、热感和 IMU 数据。核心架构见解是,图像充当了“绑定”模态。ImageBind 不需要为每种可能的模态组合(音频-深度、文本-热感等)提供配对示例,而只需要每种模态与图像配对的数据。因为图像已经通过类似 CLIP 的预训练与文本对齐,所以所有六种模态最终都会进入一个共享空间——即使是那些从未直接在一起训练过的模态对。

绑定架构的实际局限性在 2024–2025 年的基准测试中显现出来:像 Gemini Embedding 2 和 Qwen3-VL-2B 这样在单一统一架构中联合训练所有模态的模型,表现始终优于绑定架构。联合优化允许模型学习跨模态的交互,而不仅仅是通过图像进行介导的成对对齐。

模态差距(Modality Gap)问题

一篇名为《Mind the Gap》的 2022 年 NeurIPS 论文记录了对比式多模态模型中一个持久的结构缺陷。每个编码器的表示自然地聚集在高维空间中一个狭窄的几何锥体内,而这两个锥体并不完全重叠。对比损失只关心成对内的相对距离,它不会全局性地将分布推在一起。结果是,即使是对齐良好的模型,在模态集群之间也存在系统性差距,这会不可预测地影响检索准确性,并可能在下游应用中编码偏差。

缓解措施是从一开始就在单一架构中联合训练模态,这就是为什么像 Gemini Embedding 2(原生多模态,3,072 维输出)这样的新模型优于桥接独立预训练编码器的架构。对于仍在生产中使用 CLIP 或基于桥接方法的团队,实际的解决方法是在你的特定数据分布上验证跨模态检索的准确性,并为每个模态对调整余弦相似度阈值,而不是使用单一的全局阈值。

2026 年生产级嵌入模型的现状

生产级多模态嵌入已经出现了三个梯队:

统一基础模型 (Gemini Embedding 2,2026 年 3 月发布):将文本、图像、视频、音频和 PDF 映射到单个 3,072 维向量空间中。在 MTEB 英语测试中得分为 68.32——领先下一个竞争对手 5 分。在视频检索基准(Vatex、MSR-VTT、YouCook2)上,它达到了 68.8,而 Amazon Nova 2 为 60.3,Voyage Multimodal 3.5 为 55.2。价格:0.20 美元/百万 token,Batch API 为 0.10 美元/百万 token。硬件限制适用:每个视频剪辑 120 秒,每个音频剪辑 80 秒,每个 PDF 6 页。

托管多模态 API (Voyage Multimodal 3.5):在维度压缩方面表现最佳——通过 Matryoshka 表征学习将维度从 3,072 截断到 256 时,准确度损失小于 1%。当存储成本是核心约束时非常有用。

开源模型 (Qwen3-VL-2B):实现了 0.945 的跨模态检索得分,在该特定任务上击败了 Gemini (0.928) 和 Voyage (0.900)。量化后可在单个消费级 GPU 上运行。这个 20 亿参数的模型在跨模态检索上优于闭源 API,因为使用最新技术训练的模型能更好地处理模态差距。

使用 CLIP 进行生产检索的旧方法对于具有中小规模语料库的图像-文本工作负载仍然可行,但自 2023 年以来它没有收到过有意义的更新,并且越来越多地被这些新替代方案所超越。

跨模态重排序策略

两阶段检索是多模态 RAG 的生产标准,借鉴了在纯文本稠密检索中行之有效的模式:

阶段 1 — 初筛检索:使用快速嵌入模型在所有模态中检索候选集(前 100 或前 200 个结果)。在这个阶段,你倾向于召回率而非准确率 —— 只要不遗漏相关结果,检索到一些无关结果是可以接受的。

阶段 2 — 重排序:应用更重型的交叉编码器(Cross-encoder)或后期交互模型(Late-interaction model)对候选集进行评分,并返回最终的 top-K 结果。

这里的一个重要进展是像 ColPali 和 ColQwen 这样的后期交互模型。这些模型不再将文档压缩为单个向量,而是将其表示为一组 Token 级别的 Patch 嵌入。在查询时,MaxSim 算子将每个查询 Token 与所有文档 Patch 嵌入进行匹配并聚合分数。这实现了单向量方法无法达到的细粒度 Token 到区域的匹配。

特别是 ColPali,它直接将 PDF 页面作为图像处理 —— 无需 OCR,无需分块流水线。系统将布局、图表、表格和文本视为统一的视觉内容。一个生产环境中的顾虑是:ColPali 每页输出约 1,024 个 Token,每个 Token 为 128 维,因此索引一百万页的文档库会产生大约 500 GB 的多向量索引数据,这需要能够处理张量式索引而非简单 ANN 查找的基础设施。

对于需要更轻量化方案的团队,拥有约 1.74 亿参数的 ColFlor 在检索质量上接近 ColPali,但运行速度明显更快 —— 对于预算有限的企业级部署来说,这是一个务实的权衡。

基于 MLLM 的零样本重排序是新兴的第三种选择:将查询和检索到的候选结果同时传递给多模态 LLM,并要求它对相关性进行评分。零样本 MLLM 重排序器在组合图像检索任务中将检索准确率提高了 7 个百分点以上。显而易见的权衡是成本 —— 你在重排序器上运行完整的推理过程 —— 但对于高价值查询或安全至上的应用,准确率的提升证明了其合理性。

延迟与成本概况

坦诚地说,多模态 RAG 比纯文本 RAG 昂贵得多,而且这种差距在你进行生产环境压力测试之前往往并不明显。

在一个使用 ColQwen2 + MonoQwen2-VL 重排序器 + Qwen2-VL 生成,并运行在单个 L4 GPU 上的生产流水线中,其端到端延迟如下:

  • 检索:100–200ms
  • 重排序:500ms–2s
  • 生成:2–5s
加载中…
References:Let's stay in touch and Follow me for more thoughts and updates