一、多模态RAG技术总结及实现范式
多模态RAG我们已经讲过很多了,综合来看,其核心问题有多个,即:如何有效地解析和索引多模态文档,如何实现多模态检索,如何在生成过程中整合多模态数据,以及如何评估和改进MRAG系统的性能。
而截止到目前,围绕多模态RAG,已经出现了多个RAG综述,列举截止目前的4个多模态RAG综述。
1、《A Survey of Multimodal Retrieval-Augmented Generation》,https://arxiv.org/pdf/2504.08748,这个最早,核心可以看看起提出了三个版本的多模态RAG,后面会重点介绍。
2、《Retrieval Augmented Generation and Understanding in Vision: A Survey and New Outlook》,https://arxiv.org/pdf/2503.18016
核心看两张图:
一个是五个不同的用于视频检索和理解流程的RAG模型一集对应的方案。
一个是三种不同的多模态RAG(检索增强生成)流程,包括 :(a) 将所有模态统一到单一的综合模态中;(b) 将所有模态嵌入到一个共享的向量空间中;© 为每种模态分别维护独立的数据库。
3、《Ask in Any Modality》: A Comprehensive Survey on Multimodal Retrieval-Augmented Generation,https://arxiv.org/pdf/2502.08826,主打一个覆盖面。
可以看上面的图,多模态检索增强生成(RAG)流程概览,显示了每个阶段所采用的进展和技术。
流程从查询预处理开始,用户查询被优化后与多模态数据库一同编码到共享嵌入空间中。
检索策略,如模态中心检索、相似性搜索和重排序,增强文档选择,而融合机制通过分数融合或基于注意力的方法对齐并整合来自多种模态的数据。
增强技术,如带反馈机制的迭代检索,进一步优化了为多模态大模型(LLM)检索到的文档。
生成阶段融链式推理(Chain-of-Thought reasoning)和来源归因,以获得更好的输出结果。损失函数结合了对齐损失和生成损失,以优化检索和生成组件。
此外,应用噪声管理技术,以提高训练的稳定性和鲁棒性。
还有4、《Retrieving Multimodal Information for Augmented Generation: A Survey》,https://arxiv.org/pdf/2303.10868
我们这里来看一个最新的,比较实用的,走的是文档这个领域的,即《A Survey on Multimodal Retrieval-Augmented Generation》,https://arxiv.org/pdf/2504.08748不错,可以看看,重点看两点。
1、基本的多模态RAG的核心组件
一个基本的多模态RAG的核心组件包括多模态文档解析和索引、多模态检索以及多模态生成。
其中:
在多模态文档解析和索引阶段。首先,MRAG系统需要对多模态文档进行解析和索引。这包括提取文本内容(使用OCR或特定格式的解析技术从多模态文档中提取文本内容)、检测文档布局并将其分割成结构化元素(如标题、段落、图像、视频等)。对于图像、视频等非文本数据,使用专门的模型生成描述性caption。然后,将这些片段和caption编码成向量表示并存储在向量数据库中。
在多模态检索阶段,系统将用户查询编码成向量表示,并使用相同的嵌入模型从向量数据库中检索最相关的文档片段和caption。通过合并重复或重叠的信息,创建一个综合的外部知识集,并在生成阶段将其整合到提示中。
在多模态生成阶段,MRAG系统将用户的查询和检索到的文档合成一个连贯的提示。然后,使用大型多模态语言模型(MLLM)结合其参数化知识和检索到的外部信息生成响应。
2、多模态RAG的三个版本
基于上述的基本范式,可以将其划分为3个版本。分别是:
MRAG1.0,通常被称为“伪MRAG”,与传统的RAG非常相似,由三个模块组成:文档解析与索引、检索和生成。尽管整个过程基本保持不变,但关键区别在于文档解析阶段。在这一阶段,使用专门的模型将多模态数据转换为特定模态的描述性文本(captions)。这些描述性文本随后与文本数据一起存储,以便在后续阶段中使用。
这种方法引入了显著的信息损失,并且解析和检索过程复杂且计算开销大。
MRAG2.0,通过文档解析和索引保留了多模态数据,同时引入了多模态检索和多模态大模型(MLLMs)用于答案生成,真正意义上进入多模态。
这种方式通过使用多模态大型模型(MLLMs)直接处理多模态数据,减少了信息损失。这一阶段的系统支持多模态输入并保留原始多模态数据。
MRAG3.0,在文档解析和索引阶段整合了文档截图,以最大程度减少信息丢失。
在输入阶段,引入一个多模态搜索规划模块,将视觉问答(Visual Question Answering, VQA)和检索增强生成(Retrieval-Augmented Generation, RAG)任务统一起来,同时优化用户查询。在输出阶段,多模态检索增强组合模块通过将纯文本转换为多模态格式。
那么,既然说了多模态RAG,那么核心的核心其实还是embedding,那么,这块除了clip这些,还有啥可用,我觉得可以来看看,例如,最近文档https://mp.weixin.qq.com/s/8o0flybYLQVHLctvbPJY8w中提到的jina-reranker-m0多模态、多语言重排器(reranker),其核心能力在于对包含丰富视觉元素的文档进行重排和精排,同时兼容跨语言场景。
应用场景是:当用户输入一个查询(query)以及一堆包含文本、图表、表格、信息图或复杂布局的文档时,模型会根据文档与查询的相关性,输出一个排序好的文档列表,模型支持超过29种语言及多种图形文档样式,例如自然照片、截图、扫描件、表格、海报、幻灯片、印刷品等等。
相较于前代纯文本的重排器jina-reranker-v2-base-multilingual,jina-reranker-m0不仅新增了处理视觉信息的能力,在纯文本重排场景下,针对多语言内容、长文档及代码搜索等任务进行优化。
在模型设计上,跟jina-reranker-v2-base-multilingual不一样,jina-reranker-m0 不再使用经典的交叉编码器(cross-encoder)架构,而是转向了仅解码器(decoder-only)的视觉语言模型。
复用了Qwen2-VL预训练模型中的视觉编码器(visionencoder)和映射(projector),用LoRA对其中的大语言模型(LLM)部分进行了微调,并且在之后额外训练了一个多层感知机(MLP),专门用于生成表征查询-文档相关性的排序分数(rankinglogits)。
开源链接:https://huggingface.co/jinaai/jina-reranker-m0
jina在RAG方面做了不少踏实的工作,很棒,大家可以多关注。
二、大模型幻觉问题排行榜以及两个检测工具
最近大模型开源或者发布的很密集,幻觉问题也依旧受到关注,所以,我们再来看看hallucination-leaderboard(https://github.com/vectara/hallucination-leaderboard)的最新情况,更新到2025年4月17号的版本。结果如下:
从中可以看到,DeepseekR1(14.3%)已经不在top25了,唯一入的,是Deepseek-V2.5(2.4%),但是,Zhipu AI GLM-4-9B-Chat(1.3%)的幻觉率较低。
但是,针对这种幻觉评估结果,是依赖于评估数据集跟评测方式的,其评测方式主要是针对文章问大模型问题,最后使用模型模型来评估幻觉,评估模型在:https://huggingface.co/vectara/hallucination_evaluation_model
顺着这个说,我们又可以看到一些幻觉监测工具,例如:
我们之前说过的,关于基于AI搜索进行大模型幻觉检测的一个工作,https://demo.exa.ai/hallucination-detector?continueFlag=4eb95165e93ab90578d83aa493b261ee,https://github.com/exa-labs/exa-hallucination-detector,如下:
原理是:
声明提取:当输入内容时,该工具会使用一种大型语言模型(Claude 3.5 Sonnet)将文本拆分为单独的声明->来源验证:每个声明都会通过Exa的搜索工具进行检查,以在线查找可靠的来源,这些来源可以支持或反驳该声明->准确性分析:声明及其对应的来源将由我们的大型语言模型进行分析,以确定其准确性。->结果展示:最后,会以简单明了的方式展示结果,指出任何错误并提供修复建议。
又有LettuceDetect(https://github.com/KRLabsOrg/LettuceDetect,https://krlabs.eu/LettuceDetect/),用于检测RAG的幻觉,通过将答案与提供的上下文进行对比,识别出答案中缺乏支持的部分。
在实现上的流程如下:
具体的,在RAGTruth数据集上进行了训练和评估,并利用ModernBERT(https://github.com/AnswerDotAI/ModernBERT)来处理长上下文,使其非常适合需要广泛上下文窗口的任务。训练数据人如下:
训练好的模型是一个基于标记(token)级别的模型,用于预测一个标记是否是幻觉生成的,模型经过训练,能够根据上下文和问题预测答案中哪些标记是幻觉生成的,架构图如下:
处理的对象是一个包含示例问题、上下文和答案的三元组,首先,文本被分词,之后 LettuceDetect 执行标记级别的分类,来自问题和上下文的标记被屏蔽(图中用红线表示),以将其排除在损失函数之外。答案中的每个标记都会获得一个概率值,表明它是幻觉生成的还是有支持的。对于段级检测,将幻觉概率高于0.5的连续标记合并为一个预测的段。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。