RAG2.0深入解读
RAG 2.0 深入解读
本文从 RAG 2.0 面临的主要挑战和部分关键技术来展开叙事,还包括了 RAG 的技术升级
和关键技术等。
一、Introduction
过去一年可谓是 RAG 元年,检索增强生成技术迅速发展与深刻变革,其创新与应用已深
刻重塑了大模型落地的技术范式。站在 2025 年,RAG 不仅突破了早期文本处理的局限,
更通过多模态融合、混合检索优化和语义鸿沟跨越等突破,开始在各个行业落地。如果把
2024 之前的 RAG 称为 RAG 1.0,那目前已进入 RAG 2.0 时代。
一个显着的进步是长上下文窗口,这一功能引发了争议,但到年中逐渐平息。很多人觉得
长上下窗口就够了,传统的检索和 RAG 会被取代。此外,LLMOps 等架构的成熟使企业
和个人能够使用矢量数据库、嵌入/重新排名模型、分块工具、Multimodal 技术的快速发
展。RAG 方面的 Paper 每周达到几十篇甚至更多。可以说,RAG 经历了野蛮快速生长的
RAG,从 1.0 超快速的进入了 2.0 时代。
RAG 越来越多的应用在企业和生产场景,但是仍面临很多的技术挑战,本文我们从 RAG
2.0 面临的主要挑战和部分关键技术来展开叙事。首先快速过一下 RAG 2.0 的主要问题:
多模态与复杂任务扩展
• 多模态支持不足:当前的 RAG 技术主要针对文本数据,但在处理图像、视频等多模
态数据时仍面临挑战。例如,如何有效检索和利用多模态信息仍是一个开放性问题。
现有 LLMOps 解决方案大多限于纯文本场景。PDF、PPT 或文本与图像结合的文档无
法充分发挥其商业潜力。这些类型的文档通常构成企业数据中的大多数。
• 复杂推理任务:尽管 RAG 通过检索外部知识增强了模型的推理能力,但在处理多跳
推理或复杂逻辑任务时,其性能仍有待提升。
检索质量与噪声问题
• 检索精度不足:RAG 的性能高度依赖于检索到的文档质量。如果检索到的文档与查
询不相关或包含噪声信息,会导致生成结果不准确甚至错误。
• Semantic GAP:RAG 的核心在于搜索功能。只有能够根据用户的查询“搜索”答案
时,它才能发挥作用。然而,这一先决条件往往无法满足,因为查询模糊或含糊,缺
乏明确的意图,或者“多跳”问题需要从多个子问题中综合而来。在这种情况下,提出
的问题和检索到的答案之间存在显著的语义差距,这使得传统的搜索方法无效。
• 噪声数据的影响:文档中的噪声信息可能混淆模型的推理路径,导致生成内容出现偏
差。例如,过时或不准确的信息会误导模型,降低生成结果的可信度。
• 召回率低:在某些情况下,RAG 可能无法检索到所有相关文档,导致生成模型缺乏
足够的背景信息来构造完整的答案。比如,纯向量数据库导致召回率和命中率偏低:
单纯依赖向量数据库会导致召回率和命中率偏低,阻碍有效的现实问答。这是因为向
量表示无法精确地表示准确的信息,并且在检索过程中会造成语义损失。
生成过程中的幻觉与冗余
• 幻觉问题:尽管 RAG 通过检索外部知识减少了模型生成幻觉的概率,但在检索信息
不足或相关性较低时,模型仍可能生成虚构或不准确的内容。
• 冗余与重复:当检索到的文档包含相似信息时,生成内容可能出现冗余或重复,影响
回答的质量和简洁性。
计算资源与效率问题
• 计算资源消耗:RAG 需要额外的计算资源来支持检索机制和数据库维护,如向量化
模型和向量知识库的构建与更新。
• 推理延迟:由于增加了检索步骤,RAG 的推理时间可能比传统 LLM 更长,尤其是在
处理复杂查询时。
• 实时性要求:RAG 需要实时检索最新信息,但知识库的更新频率和检索效率可能无
法满足高实时性需求。
安全与隐私问题
• 数据安全:RAG 需要访问外部知识库,这可能涉及敏感数据。如何确保数据的安全
性和隐私性是一个重要挑战。
• 对抗性攻击:RAG 系统可能受到对抗性数据注入或上下文冲突等攻击,导致生成内
容被操纵或误导
奖励函数与训练机制优化
• 奖励函数设计:当前的 RAG 系统通常采用基于结果的奖励函数,但在复杂任务场景
中,这种设计可能无法捕捉细微差异,影响模型性能。
• 训练数据依赖:RAG 的训练需要高质量的交互数据,但获取和标注这些数据可能成
本高昂且耗时.
二、技术范式的升级
RAG 从最初概念诞生到现在,架构经历了三个阶段演化:基础检索生成(Naive RAG)→
检索全流程优化(Advanced RAG)→ 具备反思能力的模块化系统(Modular RAG)。其中
模块化架构通过 LLM 的递归调用实现动态检索决策,例如让模型自主判断何时触发检索
或修正答案,形成类 Agent 的交互范式。具体可以看下图,细节在此不表,重点关注核心
技术。
其实不管哪种范式,其本质都是搜索 + LLM 的融合,所有核心技术的其实都是搜索和大
模型的技术的变革。
640
三、关键技术
3.1 检索技术
3.1.1 混合搜索
前面提到过目前 RAG 的 Retrieval 存在一些弊端,比如召回率低,准确率低,噪声大,存
在冗余查询,效率和鲁棒性差等。因此我们需要 Hybrid Search。目前比较通用的混合搜
索是三路混合检索:全文搜索 with BM25 + 稠密向量(语义匹配) + 稀疏向量(关键词
增强)。首先我们先简单介绍一下这集中检索方式:
全文索引
常使用倒排索引(Inverted Index)等技术,将文档中的每个单词映射到包含该单词的文
档列表,从而实现高效的查询。查询速度快,适合精确匹配。支持复杂的查询语法(如布
尔查询、通配符查询)。缺点是无法理解语义,仅依赖字面匹配。对同义词、语义相似性
等处理能力有限,当然这可以通过归一化等预处理来解决。相关性排序,常用算法为
BM25 算法,基于词频、文档长度和逆文档频率的综合评分。
BM25(Best Matching 25)是一种基于概率模型的文档相关性评分算法,广泛用于全文搜
索引擎中,用于衡量查询(Query)与文档(Document)之间的匹配程度。它是传统 TF-
IDF 算法的改进版本,尤其在处理文档长度和词频分布上表现更优。BM25 通过结合词
频、逆文档频率和文档长度归一化,提供了一种高效评估文档与查询相关性的方法,具有
高效、灵活和鲁棒的特点。BM25 因其简洁性和高效性,至今仍是文本检索的基石技术,
尤其在需要快速响应和可解释性的场景中不可替代。
Sparse vector search
稀疏检索是一种基于稀疏向量的搜索技术,通常用于传统的信息检索任务。稀疏向量是指
向量中大部分元素为零,只有少数元素非零。使用词袋模型(Bag of Words, BoW)或 TF-
IDF 等方法将文本表示为稀疏向量,然后通过计算向量之间的相似度(如点积)来检索相
关文档。主要使用在传统文本检索(如搜索引擎)。计算效率高,适合大规模数据集,但
是无法理解语义。
稀疏向量难以替代全文搜索:稀疏向量旨在替代全文搜索,其方法是使用标准预训练模型
消除冗余词并添加扩展词,从而得到固定维度(例如 30,000 或 100,000 维)的稀疏向量
输出。这种方法在一般查询任务上表现良好;但是,许多用户查询关键字可能不存在于用
于生成稀疏向量的预训练模型中,例如特定的机器模型、手册和专业术语。因此,虽然稀
疏向量和全文搜索都服务于精确召回的目的,但它们各有千秋,无法互相替代。
Vector Search
Vector search 是一种基于向量空间模型的搜索技术,将数据(如文本、图像、音频)转
换为高维向量(通常是稠密向量),并通过计算向量之间的相似度(如余弦相似度或欧氏
距离)来找到最相关的结果。利用机器学习模型(如深度学习)将数据映射到向量空间,
语义相近的数据在向量空间中距离较近。主要应用场景是语义搜索(Semantic
Search):理解查询的语义,而不仅仅是关键词匹配。能够捕捉语义信息,支持模糊匹
配。适合处理非结构化数据(如文本、图像)。但是需要预训练模型生成向量,计算复杂
度较高。对硬件资源(如 GPU)要求较高。
640
采用多种召回方法可以为 RAG 带来更好的结果。具体来说,将向量搜索、稀疏向量搜索
和全文搜索结合起来可以实现最佳召回率。这很容易理解,因为向量可以表示语义;一个
句子甚至整篇文章都可以封装在一个向量中。本质上,向量传达了文本的“含义”,表示其
与上下文窗口内其他文本共现的压缩概率。因此,向量无法精确表示查询。例如,如果用
户问:“我们公司 2024 年 3 月的财务计划包括哪些组合?”结果可能会返回来自其他时间
段的数据或不相关的主题,例如运营计划或营销管理。相比之下,全文搜索和稀疏向量主
要表达精确的语义。因此,将这些方法结合起来可以满足我们日常对语义理解和精度的需
求。
640
下图显示了使用 Infinity 在公共基准数据集上进行评估的结果,比较了单向召回方法(向
量、稀疏向量、全文搜索)、双向召回和三向召回。纵轴表示排序质量,很明显三向召回
取得了最佳结果,充分验证了 BlendedRAG 的效果。
640
目前的混合搜索架构中,不同的数据存储和检索大都是通过异构数据库和存储介质来实现
的,这会带来效率和精准度的问题,因此同时支持多种检索的数据库显得尤为重要,但是
有较大挑战,目前市面上实现此类功能的数据库有 Milvus(支持多模态向量+标量过
滤) , Weaviate(内置混合搜索)。
3.1.2 DPR(Dense Passage Retrieval)
在 RAG(Retrieval-Augmented Generation,检索增强生成)系统中,DPR(Dense
Passage Retrieval,稠密段落检索)是检索模块的核心技术之一。DPR 通过使用密集向量
表示来检索与查询最相关的文档或段落,是 RAG 系统的重要基础。由 Facebook AI
Research 团队在 2020 年首次提出。
DPR 是一种基于深度学习的检索方法,专注于将查询(query)和文档(passage)编码为
稠密向量,并通过计算向量之间的相似度来检索与查询最相关的文档。DPR 是稠密向量
检索在段落检索任务中的一个具体实现,它利用深度学习模型将查询和文档编码为稠密向
量,并通过相似度计算来检索相关文档。
DPR 的核心功能
1.** 双编码器架构**:DPR 采用双编码器架构,分别对查询和文档进行编码,将它们映射
到高维向量空间中。通过计算查询向量和文档向量之间的相似度(如内积),DPR 能够
高效地检索出与查询最相关的文档。
2.** 语义匹配**:与传统的稀疏检索方法(如 BM25)不同,DPR 能够捕捉查询和文档之
间的语义相似性,而不仅仅是关键词匹配。这使得 DPR 在处理复杂的自然语言查询时表
现出色。
3.** 高效检索**:DPR 利用密集向量表示和高效的最近邻搜索算法(如 MIPS,Maximum
Inner Product Search),能够快速从大规模知识库中检索出相关文档。
DPR 作为 RAG 系统中的检索器,负责从外部知识库中检索与用户查询最相关的文档或段
落。这些检索到的文档随后被送至生成模块,生成模块利用这些文档生成高质量、上下文
相关的回答。DPR 的高效语义检索能力显著提升了 RAG 系统在开放域问答等任务中的表
现。
尽管 DPR 已经取得了显著的成果,但仍有改进空间。例如,DPR 训练过程中的知识分散
化(decentralization)可以进一步优化,以提高检索的多样性和准确性。此外,研究者们
也在探索如何更好地将 DPR 与预训练语言模型结合,以进一步提升检索和生成的性能。
3.2 重排序 Ranking Models
我们前面讲过,三路召回(BM25 + 稠密向量 + 稀疏向量)效果最优,但如何高效融合多
路结果并重排序(Reranking)仍是难题。
排名是任何搜索系统的核心。排名涉及两个组件:一个是用于粗过滤的部分也就是粗排;
另一个是用于微调阶段的重排序模型也叫重排或者精排。混合检索能够结合不同检索技术
的优势获得更好的召回结果,但在不同检索模式下的查询结果需要进行合并和归一化(将
数据转换为统一的标准范围或分布,以便更好地进行比较、分析和处理),然后再一起提
供给大模型。这时候我们需要引入一个评分系统:重排序模型(Rerank Model)。
重排序模型会计算候选文档列表与用户问题的语义匹配度,根据语义匹配度重新进行排
序,从而改进语义排序的结果。其原理是计算用户问题与给定的每个候选文档之间的相关
性分数,并返回按相关性从高到低排序的文档列表。常见的 Rerank 模型如:Cohere
rerank、bge-reranker 等。
640
不过,重排序并不是只适用于不同检索系统的结果合并,即使是在单一检索模式下,引入
重排序步骤也能有效帮助改进文档的召回效果,比如我们可以在关键词检索之后加入语义
重排序。
在具体实践过程中,除了将多路查询结果进行归一化之外,在将相关的文本分段交给大模
型之前,我们一般会限制传递给大模型的分段个数(即 TopK,可以在重排序模型参数中
设置),这样做的原因是大模型的输入窗口存在大小限制(一般为 4K、8K、16K、128K
的 Token 数量),你需要根据选用的模型输入窗口的大小限制,选择合适的分段策略和
TopK 值。
需要注意的是,即使模型上下文窗口很足够大,过多的召回分段会可能会引入相关度较低
的内容,导致回答的质量降低,所以重排序的 TopK 参数并不是越大越好。
在 RAG(Retrieval-Augmented Generation)系统中,检索完成后进行重排序
(reranking)的目的是为了提高最终生成结果的质量和相关性。尽管初始检索阶段已经
返回了一组相关文档或段落,但这些结果可能并不完全符合生成模型的需求,或者可能存
在排序不合理的情况。重排序可以帮助筛选出最相关、最有用的信息,从而提升生成模型
的输出效果。
接下来我们重点介绍几种常用的 Reranker。
3.2.1 Cross-Encoder Reranker
Cross-Encoder Reranker 是一种基于深度学习的重排序模型,通过联合编码查询-文档对
(将查询和文档拼接后输入模型)直接预测相关性分数,而非生成独立向量。其核心是利
用交叉编码器(Cross-Encoder)架构来评估查询(query)和文档(document)对之间
的相似度。与双编码器(Bi-Encoder)不同,交叉编码器不是分别对查询和文档进行编
码,而是将查询和文档作为一个整体输入到模型中,从而能够更有效地捕获两者之间的交
互和关系。这种架构通常由多层神经网络单元组成,例如 Transformer 或循环神经网络
(RNN),能够将输入序列中的信息编码为固定大小的表。比传统向量检索更精准,能捕
捉深层次语义关系。它通过端到端分类任务(如二元相关性判断)优化,适合对 Top-K
候选文档进行精排。代表模型有 BAAI。
Cross-Encoder 可以与延迟交互(Late Interaction)结合,如本文前面提到过的 ColPali
(多模态 RAG 场景),通过分解查询-文档交互矩阵为多向量外积,实现高效语义排序,
同时保留细粒度交互能力。
在效率方面,可以将大型 Cross-Encoder(如 BERT-large)蒸馏为轻量级模型(如
TinyBERT),或采用 FP16/INT8 量化降低推理延迟。这些都是比较通用的方法,在此不
表。
使用示例:
# 导入所需库
import numpy
import lancedb
from lancedb.embeddings import get_registry
from lancedb.pydantic import LanceModel, Vector
from lancedb.rerankers import CrossEncoderReranker
# 创建嵌入模型(使用 sentence-transformers)
embedder = get_registry().get("sentence-transformers").create()
# 连接 LanceDB 数据库
db = lancedb.connect("~/.lancedb")
# 定义数据表的 schema
class Schema(LanceModel):
text: str = embedder.SourceField() # 用于文本嵌入的原始字段
vector: Vector(embedder.ndims()) = embedder.VectorField() # 嵌入向量字段
# 待插入的数据
data = [
{"text": "hello world"},
{"text": "goodbye world"}
]
# 创建表并插入数据
tbl = db.create_table("test", schema=Schema, mode="overwrite")
tbl.add(data)
# 初始化重排序模型(如 Cross-Encoder)
reranker = CrossEncoderReranker()
# 执行向量搜索并使用 reranker 重排序
result = tbl.search("hello").rerank(reranker=CrossEncoderReranker()).to_list()
3.2.2 Graph-Based Reranking
当前主流 RAG 系统遵循“检索-排序-生成”的线性流程,其中重排序环节通常采用两类方
法:(1) 基于独立编码的交叉注意力模型(如 MonoT5),单独评估每个文档与查询的相
关性;(2) 基于列表级损失的排序模型(如 ListNet),优化整个文档序列的排列。这两种
范式都存在根本性局限——它们将文档视为孤立的个体,完全忽视了文档间丰富的语义关
联,导致三个关键问题:
1.** 信息整合失效**:当答案需要综合多篇文档信息时(如对比型问题“比较 A 与 B 的优
缺点”),独立排序可能将与 A、B 分别相关但单独评分不高的文档排在后位,而实际上
这些文档的组合才最具回答价值[2][3]。
2.** 冗余放大效应**:高度相似的多篇文档可能因独立评分都较高而同时位居前列,挤占
其他重要但独特信息的展示空间。论文图 1 展示了传统方法在 HotpotQA 数据集上出现的
典型冗余案例,前 5 篇文档中有 3 篇内容重叠度超过 70%。
3.** 关系认知盲区**:现有系统无法识别文档间的因果、时序、对比等逻辑关系,而这些
关系往往是解答复杂问题的关键。例如回答“COVID-19 如何导致经济衰退”需要串联病因
学文档与经济分析文档,尽管它们的主题相似度可能很低。
更本质地,这些问题的根源在于传统排序将文档视为独立同分布样本,而现实中文档间存
在复杂的条件依赖关系。该论文首次提出将文档集合建模为图结构,其中节点表示文档,
边表示语义关系,通过图算法挖掘全局结构信息来指导排序决策。
现有 RAG 系统在处理文档与问题上下文关系时存在挑战,当文档与问题的关联性不明显
或仅包含部分信息时,模型可能无法有效利用这些文档。此外,现有方法通常忽视文档之
间的连接,导致无法充分利用文档间的语义信息。
这篇 Paper 《Don’t Forget to Connect! Improving RAG with Graph-based Reranking》该论
文提出了一种基于图的重排方法 G-RAG,旨在通过利用文档之间的连接信息和语义信
息,更有效地识别文档中的有价值信息,从而提高 RAG 在 ODQA 中的性能。
640
关键技术
1.** 图结构构建**
• 将检索到的文档或文本块表示为图中的节点,节点间的边通过以下方式建立:
• 语义相似性(如向量余弦相似度);
• 实体共现关系(如命名实体在同一文档中的关联);
• 逻辑依赖(如文档间的引用或因果链)[2][3]。
• 例如,类似 GraphRAG 的方法会预生成实体知识图,并通过社区检测划分紧密关联的
节点组。
2. 图神经网络架构
基于 GNN 的架构来重排序检索到的文档:
• 节点特征:使用预训练的语言模型(如 BERT)编码文档文本,并结合 AMR 图中的
最短路径信息来增强这些特征。
• 边特征:利用 AMR 图中共同节点和边的数量作为边特征。结合了 AMR 图,不仅捕捉
文档的语义信息,还通过图结构增强了文档之间的语义关联。
• 表示更新:通过 GNN 模型更新节点和边的表示,利用消息传递机制传递信息。
3.** 图算法重排序**
• 采用个性化 PageRank 或社区影响力评分对节点(文档)进行重要性排序,优先选
择图中中心性高或与问题节点连接紧密的文档。
• 类似 R4 框架的图注意力机制,学习文档间的交互关系以优化顺序。
• 通过多跳推理挖掘间接关联的文档(如 RAE 框架的链式检索策略)。
4.** 动态响应生成**
对重排序后的文档集,分两步生成答案:
1)局部响应生成:每个高权重文档或社区摘要独立生成部分答案;
2)全局整合:通过 LLM 对局部响应去冗余并合成最终答案。
类似 HippoRAG 的神经启发方法,模拟人脑记忆整合机制优化知识融合。
5.** 端到端优化**
引入强化学习(如 R4 的奖励机制)或轻量级评估器(如 CRAG)联合优化检索与生成模
块。
3.2.3 ColBERT Reranker
ColBERT(Contextualized Late Interaction over BERT)是一种高效的检索模型,特别适用
于大规模文本集合的检索任务。它通过延迟交互机制(late interaction architecture)结合
BERT 的上下文表示,实现了高效的检索和重排序。这里我们 Jina-ColBERT-v2
1.** 延迟交互机制(Late Interaction)**:ColBERT 引入了一种延迟交互相似性函数,通
过分别对查询和文档进行编码,然后在推理时计算查询和文档之间的相似性
(MaxSim),从而实现延迟交互。这种方法在保持高效推理的同时,能够捕捉到查询和
文档之间的复杂关系。
2.** 多向量表示**:与传统的单向量检索模型不同,ColBERT 为查询和文档中的每个标记
生成一个嵌入向量,然后通过聚合这些标记嵌入来计算相关性分数。这种方法能够更细致
地捕捉文本的语义信息。
3.** 多语言预训练**:Jina-ColBERT-v2 使用 XLM-RoBERTa 作为其基础模型,并通过在多
种语言的数据上进行预训练,提高了模型的多语言性能。
4.** 弱监督学习**:论文提出在大规模的弱监督文本对上进行预训练,以学习文本的一般
语义结构。这些文本对包括句子对、问答对和查询-文档对,涵盖了多种语言和领域。
5.** 三元组训练**:在预训练的基础上,模型进一步在多种语言的检索数据上进行微调,
使用标注的三元组数据和硬负样本进行训练,以提高检索性能。
3.3 Multimodal RAG 多模态 RAG**
目前,多模态检索增强生成(Multimodal RAG) 已成为 RAG 技术中最前沿和流行的方向
之一,它通过整合文本、图像、音频、视频等多种模态数据,显著提升了 AI 系统的理解
和生成能力。
对于多模态文档,传统方法是使用模型将多模态文档转换为文本,然后再进行索引以供检
索。另一种方法是直接多模态向量化,比如利用 视觉语言模型 VLM,直接生成向量,绕
过复杂的 OCR 过程。2024 出现的 ColPali。ColPali 将图像视为 1024 个图像块,并为每个
块生成嵌入,有效地将单个图像表示为张量。比如:
640
这意味着 VLM 对图像的理解更加深入,不再仅仅识别日常物品,而是可以高效识别企业
级多模态文档。例如,来自 Google 的开源 3B 模型 PaliGemma,能够将图像块(Image
Patches)嵌入到与文本相似的潜在空间中。ColPali 在此基础上扩展,通过投影层将模型
输出的高维嵌入降维至 128 维,生成多向量表示(每个图像块对应一个向量),从而保
留文档的细粒度视觉信息。借鉴文本检索模型 ColBERT 的“延迟交互”策略,ColPali 在检
索阶段计算查询文本的每个 token 向量与文档图像块向量的最大相似度(MaxSim),而
非传统的单向量相似度。这种方法避免了早期交互的计算负担,同时提升了检索精度。
640
这种技术的优势非常明显,端到端处理复杂文档,直接输入文档图像(如 PDF 页面),
无需传统 OCR、文本提取或布局分析等预处理步骤,显著简化流程并减少错误传播。还
可以实现多模态联合检索,通过视觉和文本嵌入的统一表示,模型能同时理解图表、表格
和文本内容。例如,在财务报告或科学论文中,ColPali 可检索出纯文本方法可能遗漏的
视觉关键信息。
如果我们可以使用 RAG 根据用户查询在大量 PDF 中查找包含答案的图像和文本,那么我
们就可以使用 VLM 生成最终答案。这就是多模态 RAG 的意义所在,它不仅仅是简单的图
像搜索。
检索过程需要一个 Versatile 的数据库,不仅支持基于张量的重新排序,而且还能在向量
检索阶段容纳多向量索引。
640
在这里我们简单介绍一下直接多模态向量化和模态转换。
直接多模态向量化
• 核心思想:
使用多模态模型(如 CLIP、Flamingo)直接生成跨模态的向量表示,跳过中间文本转换
步骤。
• 核心任务:
通过模型(如 CLIP、Flamingo)将不同模态数据(图/文/音)映射到同一向量空间,确
保语义相似的输入(如“狗”的图片和文本“犬”)向量距离相近。
• 关键技术:
1)对比学习(Contrastive Learning):如 CLIP 的图文对齐训练。
2)共享编码器(Shared Encoder):同一模型处理多模态输入。
• 输出:
向量(如 512 维浮点数组),不直接完成检索任务。
• 流程
640
模态转换,多模态转文本(Modality-to-Text)
• 技术原理:将非文本模态(如图像、音频)转换为文本描述(如 OCR、ASR、图像描
述生成),再使用传统文本 RAG 进行检索和生成。
• 优势:
• 实现简单,兼容现有文本 RAG 架构。
• 适用于结构化数据(如表格、PDF)和语音转文本任务。
• 代表工具:
• BLIP-2(Salesforce):生成高质量的图像描述。
• Whisper(OpenAI):语音转文本(ASR)。
• 流程
640
多模态转文本(Modality-to-Text)和直接多模态向量化(Direct Multimodal
Embedding)对比
640
当然,现实情况中,我们有多模态融合的 scenarios,这个时候我们需要建立一个共享向
量空间,使用跨模态模型(如 OpenAI 的 CLIP、DeepMind 的 Flamingo)将不同模态的数
据(如图片、文本、音频)映射到同一向量空间,文档中的文本、图像等模态均可检索,
通过距离计算匹配用户查询,实现跨模态语义对齐,比如以图搜文,以文搜图等。
3.4 强化学习
3.4.1 DeepRAG
强化学习(Reinforcement Learning, RL)RAG 中的应用并不鲜见。RL 能够优化 RAG 系统
的检索策略、查询生成和答案推理过程,可以说,强化学习是 RAG 最好的军师。比如
DeepSeek-R1 就是通过基于规则的强化学习 (RL) 成功激发推理能力。
这篇 Paper 《DeepRAG: Thinking to Retrieval Step by Step for Large Language Models》提
出了 DeepRAG,采用马尔可夫决策过程(MDP)建模检索增强推理,动态决定何时检索
外部知识。优化了推理精准度,减少不必要检索,提升计算效率。
640
• DeepRAG 框架:DeepRAG 将检索增强推理建模为马尔可夫决策过程(MDP),通过
迭代分解查询,动态决定在每一步是否检索外部知识或依赖参数推理。奖励函数根据
答案的正确性和检索成本来评估状态,结合答案正确性和检索成本,鼓励高效且准确
的推理路径。
• 检索叙事(Retrieval Narrative):确保结构化和自适应的检索流程,根据先前检索
到的信息生成子查询。
• 原子决策(Atomic Decisions):动态决定每个子查询是否检索外部知识或仅依赖
LLMs 的参数知识。
• 二叉树搜索(Binary Tree Search):为每个子查询构建二叉树,探索基于参数知识
或外部知识库的不同回答策略。
• 模仿学习(Imitation Learning):通过二叉树搜索合成数据,使模型学习“子查询
生成 - 原子决策 - 中间答案”的模式。
• 校准链(Chain of Calibration):通过校准每个原子决策来细化模型对其自身知识
边界的理解,使其能够更准确地做出检索必要性的决策。
640
DeepRAG 将检索增强推理建模为 MDP,结合二进制树搜索与校准链,实现了动态检索决
策。减少冗余检索和不必要的噪声,能够显著提高系统的准确性和效率。但是其训练和推
理过程可能需要较高的计算资源,且检索策略和知识边界校准方法有待提高,以泛化到更
多的场景。
3.4.2 CoRAG
传统的 RAG 方法通常在生成过程之前采用一次性检索策略,也就是只进行一次检索,但
这种方法在处理复杂查询时可能效果有限,因为检索结果可能并不完全准确,做过搜索的
同学应该都知道,想要完成一次准确的搜索,需要很多步骤,多路找回,多次检索,合
并,粗排,精排等等。这篇 Paper 《Chain-of-Retrieval Augmented Generation》提出了
CoRAG,核心思想是将检索过程分解为多个步骤,逐步获取和整合外部知识。
640
CoRAG 通过链式检索机制和强化学习,提升了检索增强生成技术的效率和性能,CoRAG
将检索过程分解为多个步骤,实现了逐步检索和动态调整,并且通过强化学习训练检索策
略,使模型能够根据任务需求自适应调整检索行为。
640
链式检索机制 逐步检索:将检索增强推理建模为多步决策过程,在生成过程中,模型根
据当前生成的内容和任务需求,动态决定是否进行下一步检索。采用自适应检索策略:若
中间答案置信度低,则重新检索;否则依赖已有信息继续生成。检索策略调整:通过强化
学习或启发式规则,优化检索策略,确保每次检索都能获取最相关的信息。
大多数 RAG 数据集仅附带查询 Q 以及相应的最终答案 A ,而无需提供中间检索步骤。
CoRAG 提出了一种通过拒绝抽样自动生成检索链的方法。
检索与生成的协同 多步检索整合:将每次检索的结果通过注意力机制与生成模型结合,
确保生成内容与检索信息的一致性。
动态生成控制:根据检索结果的质量和相关性,动态调整生成策略,避免冗余或无关信息
的引入。
训练与优化 训练数据:使用包含多步检索任务的数据集进行训练。数据集中的每个训练
实例都表示为一个元组 ( Q , A , Q 1 : L , A 1 : L ) ,并附有查询 Q 和每个子查询的相应前 k
个检索文档。使用多任务学习框架中的标准下一个标记预测目标对增强数据集进行微调。
奖励设计:结合任务目标(如答案准确性、文本连贯性)设计奖励函数,引导模型学习最
优检索策略。
模型架构:基于 Transformer 架构,扩展了检索决策模块和检索结果整合模块。
3.5 GNN 图神经网络
传统 RAG 方法在处理复杂关系和多源知识整合方面存在不足,难以捕捉知识片段之间的
复杂关系(如多跳推理任务),如多步检索或基于图的检索面临计算成本高、图结构噪声
或不完整、泛化性差等挑战。这篇 Paper 《GFM-RAG: Graph Foundation Model for
Retrieval Augmented Generation》提出了 GFM-RAG,通过构建图结构来显式建模知识之
间的复杂关系,可以提高检索和推理的效率。当然,这些方法仍然受到图结构噪声和不完
整性的影响,可能会限制其性能。
640
GFM-RAG 框架:GFM-RAG 通过构建知识图谱索引(KG-index)和图基础模型(GFM)来
增强 LLMs 的推理能力。KG-index 从文档中提取实体和关系,形成一个结构化的知识索
引。GFM 则利用图神经网络(GNN)来捕捉查询和知识图之间的复杂关系。
640
包含三个核心组件:
1.** KG 索引构建**:从文档中提取实体和关系,构建知识图谱(KG-index),并通过实
体解析增强语义连接。
传统的基于嵌入的索引方法将文档编码为单独的向量,但这些方法在对它们之间的关系进
行建模方面受到限制。另一方面,知识图谱 (KG) 明确捕捉了数百万个事实之间的关系,
可以提供跨多个文档的知识的结构化索引。KG 索引的结构性质与人类海马记忆索引理论
非常吻合,其中 KG 索引就像一个人工海马,用于存储知识记忆之间的关联,增强了复杂
推理任务对各种知识的整合。
为了构建 KG 索引,给定一组文档 ? ,我们首先从文档中提取实体 ℰ 和关系 ℛ 以形成
三元组 ? 。然后,构建实体到文档的倒排索引 M∈{0,1}|ℰ|×|?| 来记录每个文档中提到的
实体。这一过程可以通过现有的开放信息提取 (OpenIE) 工具实现。为了更好地捕捉知识
之间的联系,进一步进行实体解析,在具有相似语义的实体之间添加额外边 ?+ ,例如
( USA , equivalent , United States of America )。因此,最终的 KG 索引 ? 构建为 G =
{ ( e , r , e ′ ) ∈ T ∪ T + } 。在实施过程中,利用 LLM 作为 OpenIE 工具,并利用预先训练的
密集嵌入模型进行实体解析。
2.** 图基础模型检索器(GFM Retriever)**:
• 查询依赖的 GNN:动态调整消息传递过程,基于查询语义和 KG 结构进行多跳推理。
传统的 GNN 遵循消息传递范式,该范式迭代地聚合来自邻居的信息以更新实体表示。这
种范式不适用于 GFM 检索器,因为它是特定于图的,并且忽略了查询的相关性。但是
query-dependent GNNs 在捕获查询特定信息和对不可见图的通用性方面表现出良好:
640
其中
640
表示初始实体特征, HqL 表示在经过 L 层依赖于查询的消息传递之后以查询 q 为条件
的更新后的实体表示。
查询相关的 GNN 表现出更好的表达能力和逻辑推理能力,作为 GFM 检索器的骨干。它允
许 GFM 检索器根据用户查询动态调整消息传递过程,并在图上找到最相关的信息。
• 两阶段训练
• 无监督 KG 补全预训练:在大规模 KG 上学习图推理能力
• 有监督文档检索微调:优化查询-文档相关性。
GFM 检索器的训练目标是最大化与查询相关的实体的可能性,可以通过最小化二元交叉
熵 (BCE) 损失来优化:
640
其中 ?q 表示与查询 q 相关的目标实体集, ℰ-⊆ℰ∖?q 表示从 KG 中采样的负实体集。
然而,由于目标实体的稀疏性,BCE 损失可能遭受梯度消失问题。为了解决这个问题,进
一步引入了排名损失, 以最大化正负实体之间的边际:
640
最终的训练目标是 BCE 损失和排名损失的加权组合:
640
3. 文档排序与答案生成:根据实体相关性得分排序文档,输入 LLM 生成最终答案。
鉴于 GFM 检索器预测的实体相关性得分 Pq∈ℝ|ℰ|×1 ,首先检索相关性得分最高的前 T
个实体 ℰ qT :
640
然后,文档排名器使用这些检索到的实体来获取最终文档。为了减少热门实体的影响,按
照实体在文档倒排索引 M∈{0,1}|ℰ|×|?| 中被提及的频率的倒数来加权实体,并通过对文
档中提及的实体的权重求和来计算最终的文档相关性得分:
640
根据文档相关性得分 Pd 检索排名前 K 的文档,并以检索增强生成的方式输入到 LLMs
的上下文中,以生成最终答案:
640
图基础模型(GFM):GFM 是一个基于查询的 GNN,能够根据用户查询动态调整信息传
递过程,从而在单步中完成多跳推理。GFM 经过两个阶段的训练:无监督的知识图完成
预训练和有监督的文档检索微调。模型有 8M 参数,通过大规模训练(60 个 KG、14M 三
元组、700k 文档)实现跨数据集零样本泛化。在 7 个领域数据集上 zero-shot 表现优于
HippoRAG 18.9%。
关于 Scaling Law,从图中我们看到模型性能随模型参数大小和训练数据大小变化的拟合
趋势线。从趋势线中我们可以看到 GFM-RAG 的性能随着模型参数大小和训练数据大小的
增加而提高。同时,随着模型参数大小的增大,需要更大的训练数据量才能达到最佳性
能。也就是说,同时扩大模型大小和训练数据可以进一步提高 GFM-RAG 的性能。
640
训练过程:
• 无监督知识图完成预训练:通过掩码知识图中的实体来创建合成查询,训练 GFM 预
测被掩码的实体。
• 有监督文档检索微调:使用标注的查询-文档对进行训练,使 GFM 能够更好地理解用
户查询并检索相关文档。
GFM-RAG 通过图结构建模和图神经网络推理,显著提升了 RAG 在复杂推理任务中的性
能。但还是同样的问题,训练和推理过程可能需要较高的计算资源。如果有更高效的训练
策略和更大的模型规模,模型的效率和泛化性将会得到显著提高。
3.6 Agentic RAG
LLM 横行的年代,大多数人言则 Agent,事实确实如此,LLM 的落地一定是 Agent,RAG
也不例外。代理和 RAG 之间存在着不可分割的关系,RAG 本身是代理的关键组件,使它
们能够访问内部数据;相反,代理可以增强 RAG 功能,从而产生了所谓的 Agentic RAG,
例如 Self RAG 和 Adaptive RAG,因此两者实际上你中有我,我中有你的关系。
这种高级形式的 RAG 允许以受控的方式在更复杂的场景中进行自适应更改。要实现
Agentic RAG,代理框架必须具备“闭环”功能。在 Andrew Ng 的四种代理设计模式中,这
种“闭环”能力被称为反射能力。
640
Agentic RAG(基于代理的检索增强生成)代表了 RAG 技术的最新发展方向,通过将人工
智能代理(Agent)的自主规划与决策能力引入传统检索增强生成框架,实现了对复杂查询
任务的高效处理。本文将全面解析 Agentic RAG 的核心概念、技术架构、优势特点以及实
际应用场景,帮助读者深入理解这一前沿技术如何通过智能代理的动态编排机制和多跳推
理能力,显著提升传统 RAG 系统在复杂信息处理任务中的表现。
640
3.6.1 核心概念与产生背景
Agentic RAG(基于代理的检索增强生成)是传统检索增强生成技术的高级演进形式,它
通过引入人工智能代理(Agent)的自主决策能力,使 RAG 系统从被动的信息检索-生成管
道转变为具有主动规划和反思能力的智能体,本质上是一种融合了 Agent 能力与 RAG 架
构的混合系统,其核心创新在于将 AI 智能体的自主规划(如路由、行动步骤、反思等)
能力整合到传统的 RAG 流程中,以适应更加复杂的查询任务。
Agentic RAG 的产生背景正是为了解决传统 RAG 在复杂场景下的这些不足。随着企业知识
管理需求的日益复杂化,简单的问答式 RAG 已不能满足实际业务需求。企业环境中存在
大量异构数据源(如结构化数据库、非结构化文档、知识图谱等),用户查询往往需要跨
源关联和综合推理。同时,许多高级任务还需要结合外部工具(如计算器、API 服务等)
才能完整解答。这些挑战促使 RAG 技术向更智能、更自主的方向发展,从而催生了
Agentic RAG 这一新兴范式。
AI Agent 是具有环境感知、自主决策和行动执行能力的智能体,能够基于目标动态规划行
动步骤。将这种能力引入 RAG 系统后,系统能够自主决定是否需要检索、选择哪种检索
策略、评估检索结果质量、决定是否重新检索或改写查询,以及在必要时调用外部工具。
这种进化使 RAG 系统具备了感知,决策和行动能力。
从系统构成角度看,Agentic RAG 可被视为 RAG 工具化的 Agent 框架。在这种视角下,传
统的 RAG 管道(检索器+生成器)被降级为 Agent 可使用的一种工具,而 Agent 则负责更
高阶的任务规划与协调。这种架构转变带来了设计范式的根本变化:不再是“如何改进
RAG 管道”,而是“如何让 Agent 更有效地利用 RAG 工具”,从而打开了更广阔的设计空间
和优化可能性。
表:传统 RAG 与 Agentic RAG 的核心区别
640
3.6.2 技术架构与关键组件
Agentic RAG 系统的技术架构呈现出多样化的设计范式,从单 Agent 控制到多 Agent 协同
的不同实现方式。与传统的线性 RAG 流程不同,Agentic RAG 将检索与生成过程重构为基
于智能代理的动态可编排系统,通过引入规划、反思和工具使用等 Agent 核心能力,显著
提升了复杂信息处理任务的解决能力。
单 Agent 架构模式
单 Agent 架构是 Agentic RAG 的基础实现形式,其核心思想是构建一个具备规划能力的
Master 智能体,将各种 RAG 管道和外部工具作为该 Agent 可调用的“工具”。在这种架构
中,传统 RAG 的检索器、生成器等组件被工具化,成为 Agent 执行计划时可选择的资
源。当用户查询进入系统后,Master Agent 会首先分析查询意图和复杂度,然后动态规划
解决方案,可能包括:决定是否需要检索、选择哪种检索策略(如向量检索、关键词检索
或混合检索)、确定是否需要进行多步检索以及是否需要调用外部工具等。
单 Agent 架构中的关键组件包括:
• 查询分析器:负责深度理解用户查询,识别隐含意图和所需的信息类型。先进的实现
可能采用 few-shot 学习或思维链(Chain-of-Thought)技术提升意图识别准确率。
• 策略规划器:基于查询分析结果,制定检索与生成策略。例如,对于“比较 X 和 Y”类
的对比查询,规划器可能决定并行检索 X 和 Y 的相关信息,然后进行对比生成。
• 工具集:包括各种专业化 RAG 管道(如面向事实查询的向量检索、面向摘要任务的
文本压缩检索等)和外部工具(如计算器、API 接口等)。Agent 将这些工具视为可
插拔的模块。
• 反思模块:评估中间结果的质量,决定是否需要调整策略。例如,当首次检索结果不
理想时,反思模块可能触发查询改写或更换检索策略。
单 Agent 架构的优势在于设计相对简单和资源需求较低,适合中等复杂度的应用场景。但
当面对企业级复杂知识环境(如跨部门多源异构数据)时,单个 Agent 可能面临规划负担
过重、专业知识不足等挑战,这时就需要考虑更高级的多 Agent 架构。
多 Agent 分层架构
多 Agent 分层架构是应对企业级复杂场景的 Agentic RAG 解决方案,通过引入层级化的
Agent 组织,实现关注点分离和专业化分工。典型的双层架构包含一个顶层协调 Agent 和
多个专业领域 Agent,每个下层 Agent 负责特定类型的数据源或任务,而顶层 Agent 则负
责任务分解、协调和结果整合。
多 Agent 架构中的典型角色划分包括:
• 顶层协调 Agent:作为系统入口,接收用户查询并进行任务分析和规划。它了解整个
系统的能力分布,负责将复杂查询分解为子任务并分配给合适的专业 Agent。
• 领域 Agent:每个 Agent 专门负责某一类文档或特定领域的数据源。例如,企业环境
中可能有财务 Agent(处理财报数据)、产品 Agent(管理产品文档)和客户 Agent
(处理 CRM 数据)等。这些 Agent 内部可以集成多种 RAG 工具,如向量检索、SQL
查询等,根据子任务特点选择最佳工具。
• 工具 Agent:管理外部工具和 API 的访问,如网络搜索 Agent、计算工具 Agent 等。
当领域 Agent 需要额外能力时,可以通过顶层 Agent 协调调用这些工具 Agent。
多 Agent 架构的核心优势在于其卓越的可扩展性和专业分工。新增数据源或工具时,只需
添加相应的专业 Agent 而无需修改核心架构。同时,每个 Agent 可以专注于特定领域,通
过精细化优化提供更专业的服务。腾讯云开发者社区的一篇文章中提到,这种架构“既能
准确地解析不同类型的文件,还能利用 Agent 强大的规划和推理能力,面对用户 Query 选
择最合适的路由策略和处理方法,大幅提升系统面对海量文档、跨文档检索、全局提炼与
总结等问题时的处理能力”。
在通信机制的设计上,有中心化通信 VS 去中心化通信。
中心化通信(Centralized communication),在中心化通信中,存在一个中心节点,所有
智能体都直接与这个中心节点进行通信。中心节点负责协调和集成所有智能体的信息,然
后向各个智能体发出指令或反馈。中心节点可以全局地了解所有智能体的状态和信息,有
助于做出全局最优的决策。但是容易出现单点故障,中心节点的故障可能导致整个系统的
通信瘫痪。
去中心化通信(Decentralized communication),在去中心化通信中,智能体之间直接进
行通信,没有中心节点,每个智能体只与它的邻居或部分智能体交换信息。有单点故障的
风险,系统的鲁棒性更强,同时可扩展性极强。但是没有全局信息,难以做出全局最优的
决策。
关于 Multi Agent 系统的设计,又是另外一个复杂的 Topic 了,不做赘述。
四、Challenges and Future Directions in RAG
4.1 统一多模态大模型
通过直接多模态向量化,RAG 系统能更自然地处理复杂现实数据,而不仅限于文本世
界。实际选型时需权衡计算成本、领域适配性和实时性需求。如 GPT-4V、Gemini 1.5 的
端到端多模态理解。目前的 Multimodal 还是处于发展期,远没有成熟,问题包括但不限
于:
1.** 多模态表示与检索的挑战**
• 跨模态知识表示:不同模