「RAG 技术通过在 AI 生成过程中引入外部知识检索,从基础的文档查询发展到多模态、Multi-Agent 体协同的智能架构,让 AI 回答更准确、更全面」
「核心组件」
嵌入模型: 将文本转换为向量表示 生成模型: 负责最终的内容生成 重排序模型: 优化检索结果的相关性 向量数据库: 存储和检索向量化的内容 提示模板: 规范化的查询处理模板 AI Agent: 智能决策和任务协调
图例 1
Naive RAG
Naive RAG(Retrieval-Augmented Generation)是最基础的一种架构,用于结合检索和生成来处理复杂的任务,比如问答或内容生成。
其基本架构如下:
1.检索模块(Retriever)
负责从知识库(如文档集合或数据库)中找到与输入查询相关的上下文。 通常基于向量检索技术,使用嵌入模型(如 Sentence Transformers 或 OpenAI Embeddings)将查询和文档嵌入到向量空间中,计算相似性并返回最相关的文档。
2.生成模块(Generator)
接收用户输入和检索到的上下文,生成最终的回答或内容。 通常使用大型语言模型(如 GPT 或 T5)来生成自然语言输出。
3.流程
用户输入一个查询(如问题)。 检索模块从知识库中找出与查询相关的文档片段。 将检索结果连同查询一起传递给生成模块。 生成模块基于上下文生成回答或内容。
特点
简单高效:由于模块化设计,容易实现和调试。 可扩展性强:检索模块和生成模块可以独立优化或替换。 存在局限性:Naive RAG 通常假设检索的上下文是完备的,这在知识库更新不及时或检索效果不佳时可能导致生成结果不准确。
应用场景
文档问答:基于企业内部文档或外部知识库回答用户提问。 内容生成:辅助生成新闻、摘要等需要结合外部信息的内容。 技术支持:从常见问题解答(FAQ)库中检索答案并生成自然语言响应。
Naive RAG 是 RAG 系列架构的起点,更复杂的变种(如使用多轮交互或强化学习优化)通常在此基础上扩展。
Retrieve-and-Rerank 是在基础 RAG 架构上的增强版本,通过引入重排序(Reranking)步骤,进一步优化检索结果的相关性。这种方法非常适合在需要高精度答案的任务中使用。
架构增强点:重排序步骤
在基础 RAG 的检索阶段(Retriever)之后,加入一个额外的重排序模块,以更好地筛选检索结果,提高传递给生成模块(Generator)上下文的质量。
核心流程
初步检索(Initial Retrieval)
检索模块从知识库中找到一批初步相关的文档(例如,前 50 个文档)。 使用向量检索(如基于余弦相似度或欧几里得距离)快速生成候选文档集合。
重排序(Rerank)
传统方法:BM25、TF-IDF 等。 深度学习模型:基于 BERT 的交互式检索模型(如 Cross-Encoder)。 混合方法:将检索分数与语义模型得分结合。 将初步检索到的候选文档集合交给一个专门的重排序模型。 重排序模型可以是: 输出一个按相关性排序的高质量文档列表。 生成模块(Generator)
仅使用重排序后的前 N 个文档作为上下文,生成回答或内容。 高相关性的上下文能显著提升生成质量。 提升检索精度
初步检索模块通常快速但粗略,可能引入较多噪声;重排序能更精准地选择最相关的文档。 减少生成错误
提供高相关性上下文,避免生成模块在不相关或错误信息基础上生成答案。 模块灵活性
重排序模块可以独立优化,例如微调 BERT 模型,加入领域知识等。 适配长尾查询
对于少见或复杂的查询,重排序能进一步优化初步检索效果。 问答系统
在文档问答中,Retrieve-and-Rerank 常用于优化检索阶段,确保提供与问题高度相关的上下文。 推荐系统
在搜索和推荐场景中,重排序步骤可以显著提高最终推荐内容的相关性和用户满意度。 技术支持
从技术文档或 FAQ 中筛选最相关的答案,减少生成模块的错误回答率。 - 检索模块
:FAISS、ElasticSearch、BM25 等。 - 重排序模块
:BERT、MiniLM、ColBERT(使用 Cross-Encoder)等。 - 生成模块
:GPT、T5、LLaMA 等。 多模态检索模块
能处理和索引不同模态的数据,如图像、视频或音频的特征。 通常利用预训练模型将非文本模态(如图像)转换为嵌入向量,存储在统一的向量数据库中。 检索时,将用户输入(文本或其他模态)编码为嵌入向量,与数据库中的嵌入进行匹配。 多模态生成模块
接受多模态的上下文,例如文本和图像的组合。 利用专门设计的多模态生成模型(如 Flamingo、BLIP-2)生成回答或内容。 能够根据上下文模态灵活调整生成策略。 流程
用户输入可以是文本(如问题)或其他模态(如图像)。 多模态检索模块找到与输入相关的多模态上下文。 将检索结果传递给生成模块,结合上下文生成多模态回答或内容。 模态对齐
在多模态数据之间建立共同表示,例如将图像特征和文本特征映射到同一个向量空间。 常用技术:CLIP、Align-before-Fuse、BLIP 等。 模态融合
将检索到的不同模态的上下文信息进行有效融合,为生成模块提供统一的输入。 方式:早期融合(将模态特征直接拼接)、晚期融合(分别处理后再结合)。 生成模型支持
多模态生成需要具备同时处理文本和非文本模态的能力。 模型:Flamingo、BLIP-2、Visual ChatGPT 等。 支持多种输入类型
不仅可以回答文本问题,还能处理图像相关的查询,如“这张图片中的物体是什么?”。 丰富的信息来源
检索和利用跨模态的信息,比如从图片和相关描述中生成答案。 增强的上下文理解
将文本、图像等模态上下文结合起来,生成更精确、更有深度的内容。 广泛的应用场景
可用于医学影像分析、教育、内容创作等需要多模态数据结合的任务。 多模态问答
结合文本和图像回答问题,例如“这张 X 光片有什么异常?” 图像描述生成
为图像生成自然语言描述,适用于教育或辅助工具。 跨模态搜索
用户输入文本,系统从图像库中检索相关图像(或反之)。 医疗诊断
结合医学文本和影像数据,生成诊断报告或建议。 内容生成
从视频或音频中提取关键信息并生成摘要或分析报告。 检索模块
图像:使用 CLIP、DINO 等模型提取图像特征。 文本:使用 Sentence Transformers 或 OpenAI Embeddings。 生成模块
使用多模态生成模型,如 Flamingo、BLIP-2、Visual ChatGPT 等。 数据库
存储跨模态嵌入的向量数据库,如 FAISS、Weaviate。 图数据库(Graph Database)
图数据库存储文档及其结构化关系(节点和边),提供上下文的关系视图。 节点:可以表示实体(如人名、地名)、文档或知识片段。 边:表示节点之间的关系(如“引用”“从属”“因果”等)。 检索模块(Graph-based Retriever)
查询不仅基于文档内容,还利用图的结构进行关系推理。 可通过图查询语言(如 Cypher)实现复杂的知识检索。 生成模块(Generator)
将检索到的多层次上下文(文档和其相关节点)输入到生成模型。 生成模型结合图关系信息,生成更精准、更上下文相关的输出。 知识建模
文档:“爱因斯坦提出了相对论。” 节点: 爱因斯坦、相对论边: 提出从知识库或文档集合中提取实体、关系和文本内容,构建图数据库。 示例: 用户查询
用户输入问题,如“相对论的提出者是谁?”。 将查询转换为图查询(例如,搜索与“相对论”相关的节点和边)。 图查询
检索与用户问题相关的子图,例如“相对论”节点及其直接连接的节点和关系。 上下文扩展
将检索到的子图中的信息转化为文本上下文,并传递给生成模块。 内容生成
生成模块结合用户问题和扩展上下文,生成自然语言回答。 知识点间关系的深度挖掘
通过图结构,捕捉文档或知识点之间的复杂关系(如层次关系、因果关系等),提高检索结果的质量。 上下文的精准扩展
在检索阶段,图数据库可以帮助找到更相关的上下文,而不仅仅依赖向量相似性。 增强推理能力
利用图的结构化数据,可以进行关系推理,例如多跳检索(从一个节点找到间接相关的节点)。 动态更新与维护
图数据库支持动态更新,易于在知识库扩展时维护新数据的关系。 复杂问答
需要跨文档或跨实体推理的问答任务,如法律问答或科技文献分析。 知识管理
在企业或科研机构中,利用图数据库管理和查询大量关联文档或研究成果。 内容推荐
基于用户查询,利用图关系推荐相关内容或扩展知识。 因果推理
在科学或工程领域,回答因果关系复杂的问题(如“某实验的结果受到哪些因素的影响?”)。 图数据库
Neo4j、TigerGraph、ArangoDB 等。 关系提取
使用 NLP 模型提取实体和关系(如 spaCy、OpenIE、REBEL)。 生成模型
GPT 系列、T5、BART 等。 检索与查询
使用 Cypher 查询语言或专门的图查询 API。 图数据库(Graph Database)
图数据库存储文档及其结构化关系(节点和边),提供上下文的关系视图。 节点:可以表示实体(如人名、地名)、文档或知识片段。 边:表示节点之间的关系(如“引用”“从属”“因果”等)。 检索模块(Graph-based Retriever)
查询不仅基于文档内容,还利用图的结构进行关系推理。 可通过图查询语言(如 Cypher)实现复杂的知识检索。 生成模块(Generator)
将检索到的多层次上下文(文档和其相关节点)输入到生成模型。 生成模型结合图关系信息,生成更精准、更上下文相关的输出。 知识建模
文档:“爱因斯坦提出了相对论。” 节点: 爱因斯坦、相对论边: 提出从知识库或文档集合中提取实体、关系和文本内容,构建图数据库。 示例: 用户查询
用户输入问题,如“相对论的提出者是谁?”。 将查询转换为图查询(例如,搜索与“相对论”相关的节点和边)。 图查询
检索与用户问题相关的子图,例如“相对论”节点及其直接连接的节点和关系。 上下文扩展
将检索到的子图中的信息转化为文本上下文,并传递给生成模块。 内容生成
生成模块结合用户问题和扩展上下文,生成自然语言回答。 知识点间关系的深度挖掘
通过图结构,捕捉文档或知识点之间的复杂关系(如层次关系、因果关系等),提高检索结果的质量。 上下文的精准扩展
在检索阶段,图数据库可以帮助找到更相关的上下文,而不仅仅依赖向量相似性。 增强推理能力
利用图的结构化数据,可以进行关系推理,例如多跳检索(从一个节点找到间接相关的节点)。 动态更新与维护
图数据库支持动态更新,易于在知识库扩展时维护新数据的关系。 复杂问答
需要跨文档或跨实体推理的问答任务,如法律问答或科技文献分析。 知识管理
在企业或科研机构中,利用图数据库管理和查询大量关联文档或研究成果。 内容推荐
基于用户查询,利用图关系推荐相关内容或扩展知识。 因果推理
在科学或工程领域,回答因果关系复杂的问题(如“某实验的结果受到哪些因素的影响?”)。 图数据库
Neo4j、TigerGraph、ArangoDB 等。 关系提取
使用 NLP 模型提取实体和关系(如 spaCy、OpenIE、REBEL)。 生成模型
GPT 系列、T5、BART 等。 检索与查询
使用 Cypher 查询语言或专门的图查询 API。 AI Router (Agent)
使用大型语言模型(如 GPT 或其他 LLM)作为路由器,分析查询的意图和类型。 基于查询选择最合适的检索模块和生成模块。 可以动态配置执行逻辑,比如调用特定知识库或外部 API。 多检索模块
文本检索:文档、FAQ。 图像检索:视觉数据库。 图数据库:复杂关系推理。 不同的检索模块可以处理不同的数据源或模态: Router 决定调用哪种检索模块或多模块组合。 多生成模块
自然语言生成(文本)。 图像生成或描述(视觉)。 表格生成或数据分析(结构化数据)。 针对不同任务优化的生成模块: 执行路径
直接回答(无需检索)。 检索后回答(RAG 流程)。 调用外部工具或 API(如计算器或代码执行器)。 Router 分析用户查询,可能的处理路径包括: 用户查询
“这张图片中的内容是什么?” “帮我从文档中找出关于技术趋势的摘要。” 用户输入问题或任务描述,例如: 路由决策
任务分类:问答、生成、推理等。 数据模态识别:文本、图像、表格等。 优化目标:速度优先或准确性优先。 Router 分析查询的意图和模态,可能包含: 模块选择
文本问答:调用文本检索模块 + GPT 生成模块。 图像问答:调用图像嵌入模型(如 CLIP) + 图像描述生成模块。 多模态组合:同时调用文本和图像检索模块,结合生成。 根据分析结果,Router 调用最适合的检索模块和生成模块。 示例: 内容生成
通过生成模块输出结果,可能是单一模态的回答,也可能是多模态结合的内容。 动态任务适配
Router 能根据不同任务动态调整执行路径,无需固定流程,适合复杂场景。 多模态支持
通过灵活调用不同模态的模块(文本、图像、视频等),支持更广泛的应用场景。 智能资源管理
仅在需要时调用复杂模块,优化资源利用效率(如避免在简单问题上使用冗余计算)。 增强用户体验
通过选择最适合的路径,提供高质量、个性化的回答。 多任务问答系统
支持用户提出多模态、多领域问题,并动态调整处理逻辑。 企业知识管理
在大规模知识库中,针对不同问题选择最相关的数据源和处理方法。 医疗辅助
动态调用医学图像分析模块、文献检索模块或诊断生成模块。 教育与内容生成
根据学生的问题选择合适的资料来源并生成解释。 自动化工作流
处理复杂查询时,调用外部工具(如计算器、翻译器、编程执行器)完成多步骤任务。 Router
使用大型语言模型(如 OpenAI GPT 系列、Claude、LLaMA)微调,理解用户意图。 检索模块
文本:FAISS、ElasticSearch。 图像:CLIP、DINO。 图数据库:Neo4j。 生成模块
文本生成:T5、BART、GPT。 图像生成:DALLE-2、Stable Diffusion。 数据生成:Pandas、NumPy。 执行引擎
调用工具链(如 LangChain)动态组织不同模块的调用。 Central Orchestrator (主控 Agent)
作为中央调度器,负责解析用户意图、分派任务,并整合多个 Agent 的输出。 主控 Agent 可以使用 LLM(如 GPT-4)来执行复杂的任务规划和路由。 专用 AI Agent
向量搜索 Agent:从向量数据库中检索相关内容。 网页搜索 Agent:实时从互联网获取最新信息。 通信工具 Agent:与 Slack、Gmail 等进行交互。 数据处理 Agent:处理结构化数据(如表格或数据库查询)。 模态特定 Agent:如图像分析、语音识别等。 每个 Agent 负责特定类型的任务或工具,例如: 工具与数据接口
每个 Agent 可调用专用工具或 API,比如向量检索工具(FAISS)、Web 搜索引擎(如 Google API)、生产力工具(Slack、Notion)。 输出整合模块
主控 Agent 收集和整合来自各 Agent 的结果,将最终答案以自然语言或多模态形式输出给用户。 用户输入
“帮我分析这份文件的摘要,并用邮件发送给团队。” “找出过去一周相关的行业趋势,并通知 Slack 频道。” 用户提出一个复杂的请求,例如: 任务分解
提取摘要:调用向量检索 Agent 或文本处理工具。 搜索趋势:调用网页搜索 Agent。 发送通知:调用 Slack 或 Gmail Agent。 主控 Agent 将任务分解为子任务: 任务分配
主控 Agent 将子任务分派给相关专用 Agent,按优先级并行处理。 执行任务
专用 Agent 调用相应工具或接口完成任务,返回结果。 整合与反馈
主控 Agent 收集所有 Agent 的结果,整合为用户可以理解的最终输出。 模块化设计
各 Agent 独立工作,便于扩展和优化。例如,可新增图像处理 Agent 或语音处理 Agent。 多任务并行处理
多个 Agent 可并行运行,大幅提高复杂任务的处理效率。 工具支持广泛
能调用多种工具和 API,覆盖从数据检索到内容生成、任务执行等全流程。 动态任务适配
主控 Agent 可根据任务动态调整执行路径和 Agent 调用顺序。 复杂任务自动化
能自动化执行跨工具、跨数据源的多步骤任务,例如从检索数据到生成报告并发送通知。 企业知识管理
检索企业文档、结合网页搜索实时更新信息,并将结果发送至团队协作工具(如 Slack)。 内容创作与分发
从向量数据库中检索素材,生成文章或报告,并分发至邮箱或内容管理系统。 多模态问答
同时调用文本、图像和视频分析 Agent,生成多模态回答。 实时数据分析
从网页和内部数据库中收集实时数据,生成趋势分析报告。 个人助理
处理日常任务,如查看邮件、管理日程、设置提醒等。 复杂客户支持
检索 FAQ、结合网页搜索和实时工具调用,为用户提供高质量的支持。 主控 Agent
使用 GPT 系列或其他大型语言模型。 专用 Agent
向量检索:FAISS、Weaviate。 网页搜索:Google API、Bing Search API。 通信工具:Slack API、Gmail API。 数据分析:Pandas、NumPy。 协作框架
LangChain:支持 Agent 编排。 Tools SDK:实现与外部工具的接口。 主控 Agent 分解任务:
检索数据库:调用向量搜索 Agent。 搜索互联网:调用网页搜索 Agent。 生成摘要:调用文本生成 Agent。 发送邮件:调用 Gmail Agent。 各 Agent 独立工作并返回结果:
向量搜索 Agent:检索内部数据库的行业报告。 网页搜索 Agent:爬取过去一周的行业新闻。 文本生成 Agent:将数据整合为摘要。 Gmail Agent:将摘要发送给团队。 主控 Agent 整合结果并完成任务。
Retrieve-and-Rerank 优势
应用场景
示例技术栈
通过这种方式,Retrieve-and-Rerank 在原始 RAG 架构的基础上增强了检索的相关性,显著提升了最终生成的质量。
与基础 RAG 类似,Multimodal RAG 也由检索模块(Retriever)和生成模块(Generator)组成,但增强了对多模态数据的支持:
关键技术点
Multimodal RAG 的优势
应用场景
技术实现示例
通过 Multimodal RAG,可以实现复杂的跨模态任务,为各种应用提供更强大的解决方案。
Graph RAG 架构
Graph RAG 的核心思想是在知识检索过程中利用图数据库(如 Neo4j、TigerGraph)来存储和管理数据。通过将文档、实体和它们之间的关系建模为图结构,可以更高效地处理复杂的知识连接和语义关系。
核心模块
Graph RAG 工作流程
Graph RAG 的优势
Graph RAG 应用场景
示例技术栈
Graph RAG 将知识管理和自然语言生成相结合,利用图数据库强大的关系建模能力,大幅提升了文档间关系的理解和复杂问题的解决能力。
Hybrid RAG
Graph RAG 架构
Graph RAG 的核心思想是在知识检索过程中利用图数据库(如 Neo4j、TigerGraph)来存储和管理数据。通过将文档、实体和它们之间的关系建模为图结构,可以更高效地处理复杂的知识连接和语义关系。
核心模块
Graph RAG 工作流程
Graph RAG 的优势
Graph RAG 应用场景
示例技术栈
Graph RAG 将知识管理和自然语言生成相结合,利用图数据库强大的关系建模能力,大幅提升了文档间关系的理解和复杂问题的解决能力。
Agentic RAG Router 是一种更高级的 Retrieval-Augmented Generation (RAG) 架构,通过引入AI Agent 作为路由器,根据用户的查询动态选择最合适的处理路径或模块。它在复杂、多任务场景中具有明显优势,因为不同查询可能需要不同的数据源或处理逻辑。
Agentic RAG Router 架构
Agentic RAG 的核心是一个智能路由器(Agent),负责理解用户查询并决定如何处理。整个系统通常由以下模块组成:
工作流程
Agentic RAG 的优势
应用场景
技术实现示例
Agentic RAG Router 的灵活性使其成为解决复杂问题的强大工具。通过将智能路由与强大的检索和生成能力相结合,它可以显著提升处理多模态、多任务场景的效率和准确性。
Agentic RAG Multi-Agent
Agentic RAG Multi-Agent 是 Retrieval-Augmented Generation (RAG) 的进一步进化版本,它引入多个专门的 AI Agent,每个 Agent 负责不同的任务或工具调用。通过这些 Agent 的协同工作,系统能够在复杂、多源数据环境中灵活高效地处理任务,比如同时检索向量数据库、执行网页搜索、查询第三方 API,甚至与工具(如 Slack、Gmail)交互。
Agentic RAG Multi-Agent 架构
Agentic RAG Multi-Agent 的核心特性是多个专用 Agent 的协作,每个 Agent 可以完成特定任务或调用特定工具。整个系统由以下组件组成:
工作流程
Agentic RAG Multi-Agent 的优势
应用场景
示例技术栈
示例场景:行业趋势通知
用户输入: “帮我从数据库和互联网找出过去一周的行业趋势,并用摘要发邮件给团队。”
系统执行:
通过 Agentic RAG Multi-Agent,复杂任务可以自动化完成,显著提升效率和用户体验,尤其在需要跨模态、跨工具协作的场景中表现尤为出色。
