多模态检索增强生成(RAG)技术深度解析与实现
多模态检索增强生成(Multimodal Retrieval Augmented Generation,简称 Multimodal RAG)是一种新兴的设计范式,允许 AI 模型与文本、图像、视频等多种信息存储接口进行交互。随着大语言模型(LLM)能力的扩展,单一文本模态已无法满足复杂场景需求,多模态 RAG 成为构建现代智能系统的关键技术。
本文将首先介绍什么是检索增强生成(RAG)及多模态概念,随后探讨如何将两者结合以构建多模态 RAG 系统。在理解基本概念后,我们将使用 Google Gemini 和类似 CLIP 的编码模型来构建一个实际的多模态 RAG 示例。
检索增强生成简介
在深入多模态之前,先回顾传统的检索增强生成(RAG)。RAG 的核心概念是找到与用户查询相关的信息,然后将这些信息注入到提示词(Prompt)中并传递给语言模型,从而利用外部知识库增强模型的生成能力。
RAG 基本原理
RAG 系统的基本原理是根据用户的查询检索相关信息,然后将这些信息与用户的查询结合(称为增强)后传递给语言模型。

RAG 系统的检索通常是通过'嵌入'(Embedding)实现的。为了嵌入某些内容,我们使用高级 AI 模型将信息转换为代表该信息的向量。这个过程是通过一组参考文档以及用户的查询来完成的。可以计算这些向量之间的距离,文档与用户查询之间距离最小的被认为是最相关的。

*注:AI 模型会提取一些文本序列并创建一个代表该文本序列的向量。
一旦 RAG 系统检索到足够相关的信息,用户的查询和相关文档将用于构建一个增强提示,然后将其传递给语言模型进行生成。
"Answer the customers prompt based on the folowing context:
==== context: {document title} ====
{document content}
...
prompt: {prompt}"
这种通用系统通常预设整个知识库由可以传递给语言模型的文本组成,但许多知识来源不仅仅是文本。可能还有音频、视频、图像等。这就是多模态 RAG 的作用。
多模态概念
在数据科学中,'模态'(Modality)本质上是数据的一种类型。文本、图像、音频、视频、表格等都可以被视为不同的'模态'。长期以来,这些不同类型的数据被视为彼此分离,数据科学家需要为文本、视频等分别创建模型。近年来,这种概念逐渐消失,能够理解和处理多种模态的模型变得更加高效且易于访问。
联合嵌入(Joint Embeddings)
多模态模型的概念通常围绕'联合嵌入'展开。基本上,联合嵌入是一种建模策略,迫使模型同时学习不同类型的数据。这个领域的标志性论文之一是 CLIP(Contrastive Language–Image Pre-training),它创建了一个能够处理图像和文本任务的强大模型。

*注:CLIP 风格的模型使用复杂的训练过程使多个模型组件协同工作,以理解图像和文本。
自 CLIP 以来,各种建模策略已被创建,以某种方式对齐图像和文本。到处都有可以处理多种类型的数据新模型问世。
多模态 RAG 架构方法
多模态 RAG 的概念是允许 RAG 系统以某种方式将多种形式的信息注入多模态模型中。因此,多模态 RAG 系统不仅可以根据用户提示检索文本片段,还可以检索文本、图像、视频和其他不同模态的数据。





