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