引言
检索增强生成(RAG)可以让基础大模型从其知识截止日期之后的外部信息源中获取知识,减少模型幻觉,并在回答时引用特定的信息来源。
但RAG并非一个单一的技术。它是一系列持续发展的创新,每一项都在解决信息获取、思考行动和信息综合生成等方面的不同挑战。「本文将为大家介绍RAG技术的演变,从最早的查询转换,到图结构知识检索,再到Agent检索」;所有这些都是为了应对更难的信息查找和推理任务。文章结构安排如下:
RAG大模型应用演变
请求改写
早期的RAG实现是直接的:用户询问问题,系统通过嵌入向量相似性找到最相关的信息。然而,这种简单方法的局限性很快变得明显。
为了解决这个问题,RAG系统开始使用大型语言模型(LLMs)来"改写"原始查询。这样做可以生成更多样化的搜索词,帮助系统更好地匹配潜在的相关信息。
「例如:」
- 用户查询:“DeepSeek团队的DeepSeek-R1有多厉害?”
- 生成的查询:
- “DeepSeek的DeepSeek-R1模型与GPT-4相比如何?”
- “DeepSeek最新的DeepSeek-R1模模型基准表现”
- “Gemini的多模态能力”
查询改写使RAG系统能够捕获更多相关上下文,「但在处理复杂的多部分查询时仍然存在不足」。
串行RAG
为了应对更复杂的问题,串行RAG应运而生。这种方法将**「大型查询分解为更小的子查询,依次检索每部分的相关信息,并最终将这些信息整合起来回答原始问题」**。
「示例:」 用户询问"特斯拉和SpaceX的共同点是什么?"
- 首先,检索关于特斯拉的信息
- 然后,检索关于SpaceX的信息
- 最后,分析两者之间的共同点
这种串行获取增加了复杂推理的能力,但当需要在不同信息来源之间建立联系或进行推理时仍然不够。
递归RAG
递归RAG通过**「迭代信息搜索过程,深入探索某个领域」**。系统通过一个初始检索获取基本上下文,然后基于这些信息形成更多具体查询,重复这个过程直到获得足够的信息来回答原始问题。
「示例:」
- 初始查询:“量子计算的优势是什么?”
- 初步检索提到"量子纠缠"和"量子叠加"
- 系统生成新查询:"量子纠缠如何用于量子计算?“和"量子叠加状态在算法中的应用”
- 继续递归检索,直到收集足够深入的理解
ReAct(结合推理和行动)
ReAct框架(推理+行动)允许模型在回答问题的同时执行行动,如搜索。模型会思考接下来需要什么信息,执行搜索,然后继续推理。
「示例:」 用户询问:“谁赢得了2023年温布尔登男单冠军,他在决赛中击败了谁?”
思考:我需要找出2023年温布尔登男单冠军是谁。然后我需要确定决赛中的对手。
行动:搜索"2023年温布尔登男单冠军"
观察:卡洛斯·阿尔卡拉斯赢得了2023年温布尔登男单冠军。
思考:现在我需要找出他在决赛中击败了谁。
行动:搜索"2023年温布尔登男单决赛 阿尔卡拉斯 对手"
观察:卡洛斯·阿尔卡拉斯在2023年温布尔登男单决赛中击败了诺瓦克·德约科维奇。
推理大模型
在DeepSeek-R1推理大模型出现之前,使用大模型的方式基本上都是通过提示词来引导大模型生成,看不到大模型实际思考过程。目前随着推理大模型的爆发,我们可以看到模型思考过程,其思考过程和ReAct框架类似。后续随着模型技术发展,大模型本身的思考过程将会替代ReAct框架。
「示例:」 用户向DeepSeek询问:“谁赢得了2023年温布尔登男单冠军,他在决赛中击败了谁?”
思考过程:好的,我需要确定2023年温布尔登男单冠军是谁,以及他在决赛中击败了谁。首先,我看看搜索结果中的各个网页。网页1、5、7、9都提到了阿尔卡拉斯战胜德约科维奇夺冠。比如网页1的标题就是“新王登基,阿尔卡拉斯战胜德约科维奇夺冠”,内容里详细描述了比赛过程,五盘大战的结果。网页3的维基百科条目也确认了这一点,决赛比分是1-6, 7-6(8-6), 6–1, 3-6, 6-4,阿尔卡拉斯获胜。其他像网页5和7同样报道了同样的结果,德约科维奇无缘第八冠,而阿尔卡拉斯首次夺得温网冠军。
问题回答:2023年温布尔登网球锦标赛男单冠军由西班牙新星卡洛斯·阿尔卡拉斯(Carlos Alcaraz)夺得,他在决赛中以五盘大战击败了塞尔维亚名将诺瓦克·德约科维奇(Novak Djokovic)。具体比分如下:1-6、7-6(8-6)、6-1、3-6、6-4,比赛耗时4小时42分钟
GraphRAG
什么是GraphRAG
GraphRAG利用一个名为知识图谱的数据库来提高响应的准确性、可靠性和可追溯性。它通过将不同信息片段(如名称、地点、日期,通常称为实体)之间的关系通过明确的路径连接起来实现这一功能。
传统的RAG利用语义相似性来进行数据文本的检索。以单词“bank
”为例,它有多种含义:金融机构、河岸/堤坝、倾斜转弯等。如果一个RAG系统被问到“How does a bank prevent flooding?
”,系统需要像人一样来理解这个问题,即通过注意到“bank
”与“flooding
”来理解这句话的意思主要是和洪水泛滥相关,而不是金融机构,然后通过向量检索与洪水泛滥相关的文本和数据。
RAG尽管是一种非常有效且可靠的信息检索方式,但它可能会产生歧义。例如,如果我们把原始问题从“How does a bank prevent flooding?
”改为“How does a bank help with flooding?
?”,那么问题意思将会变得模糊起来。而GraphRAG就可以消除这种歧义。除了使用嵌入向量来组织数据外,它还利用知识图谱通过明确定义的路径来组织数据。
在知识图谱中,“bank”的不同含义将被表示为数据库中的节点,有些节点代表河岸/堤坝,有些节点代表金融机构,还有其他含义。这些节点直接与其他代表“flood”或“insurance”等单词的节点相连。“bank”和“flood”之间,或者“bank”和“insurance”之间的节点路径是明确定义的,这就减少了误解或错误的空间。
「同时考虑这个查询:」 “爱因斯坦和波尔之间的量子力学辩论是什么,他们各自的观点是什么?”
GraphRAG将:
- 识别关键实体:爱因斯坦、波尔、量子力学
- 找到描述它们之间关系的文本
- 构建一个临时图,连接实体和关系
- 使用这个图来比传统RAG更全面地回答问题
GraphRAG的优势:
- 更好地处理复杂的事实性问题
- 提高答案的一致性
- 减少幻觉
- 可以处理需要多种信息源的问题
GraphRAG挑战
虽然GraphRAG可以提高准确性和可追溯性,但其构建和维护成本也可能更高。这是因为数据和文本之间的明确节点和路径需要花费时间和金钱来构建。这也使得其更难扩展。GraphRAG的这一特性使其更适合于数据源相对稳定而不是经常更新的用例。
GraphRAG的实际应用
需要极高准确性和可追溯性的组织,特别是与标准RAG解决方案相比,将特别受益于GraphRAG。
以一家需要管理复杂国际供应链的汽车制造商为例。它可能会整合一个知识图谱来定义每个供应商及其提供的零部件,从而提供对其供应商网络的清晰画面,并能够追溯有缺陷的零部件的来源。
与传统RAG相比,GraphRAG可以更好地使公司追溯复杂的供应链关系,在产品召回或合规审计时以及整体风险管理方面具有优势。
GraphRAG还可以帮助制药公司,提供用于创建新药物的蛋白质、酶和其他成分的详细地图。如果在药物开发过程中后期出现副作用,公司可以追溯导致副作用的事件链。
由于它基于明确定义的科学关系,GraphRAG在这种情况下可以增强输出的可解释性和因果关系——这对于受监管行业的公司来说是一个关键优势。
Agent搜索
什么是Agent搜索
Agent搜索使组织能够更深入地挖掘数据,从而提供更具理解和上下文的响应。虽然知识图谱就像预先构建的地图,但Agent搜索更像是一个智能研究助手,即使需要的信息分散或模糊,它也能找出答案。
它不会对查询立即给出简单响应,而是部署一个AI代理进行搜索,通过一个响应来生成越来越有信息量的响应,直到找到答案的所有尝试都耗尽为止。
「例如这个查询:」 “塞缪尔·贝克特的《等待戈多》中有哪些存在主义主题?”
在Agent搜索过程中模型可能会:
- 搜索《等待戈多》的基本信息
- 提出问题:“存在主义的核心概念是什么?”
- 搜索存在主义在20世纪中期文学中的表现
- 提出更具体的问题:“《等待戈多》中的荒谬性如何体现存在主义?”
- 综合信息提供深入回答
这种方法在复杂的研究任务中特别有效,不仅能找到直接相关的文档,还能通过主动探索建立更丰富的上下文。
Agent搜索的优势
这种类似人类研究人员使用的迭代方法,可以带来更丰富的检索结果。「与可能产生简单但不令人满意的响应的单次搜索相比,它不断深入挖掘模式和理解,直到能够提供更完整的信息」。Agent搜索还可以将这种穷尽的搜索结果以表格、CSV或文档等详细格式呈现,增强用户分析答案的能力。
从技术上讲,这也可能通过GraphRAG实现,但Agent搜索的生成通常会比前者更全面。除此之外,它能够比GraphRAG更动态地解释和连接信息,而不需要预先构建的明确关系数据库来生成响应,这使其更具灵活性,减少了初始设置时间和成本。
当请求的问题存在语义模糊亦或者是开放性问题时,它同样也表现出色,因为用户不确定他们到底在寻找什么。通过一个响应去构建一个更好的响应,这一交互过程可以明确用户真正需要的东西。
Agent搜索的挑战
Agent搜索系统需要深入的挖掘数据,在此过程中会产生很高的计算成本。更多的计算也可能增加延迟,这可能会将一到两秒的响应时间延长到一分钟或更长。并且**「由于Agent搜索在更广泛的范围内寻找更多含义,答案可能会偏离原始问题太远的风险增加」**。
代理搜索的实际应用
如果一家外贸公司正在构建一个电子商务平台,他们可能希望以非常明确的关系来组织商品。这意味着顾客可以使用“坚果”“黑巧克力”或“含糖”等标签来搜索巧克力棒。
它在准确性方面得分很高,但**「如果顾客使用非传统的搜索术语,或者根据公司数据库尚未纳入的最新趋势来询问产品,就不太有帮助了」**。
在不同的情况下,假设一个用户有以下问题:“哪些游戏系统可以运行《飞行模拟》?”如果知识图谱没有编码特定的连接来告诉它《飞行模拟》是一款可以在微软XBox上运行的游戏,它就很难正确回答。它缺乏“想出办法”的灵活性。
相比之下,一个Agent系统会将问题分解成部分,思考《飞行模拟》是什么以及“游戏系统”是什么。然后,它会在可信的来源中搜索哪些系统支持该游戏,甚至会回过头来双重检查,以确保它给出了最准确的答案。
总结
本文从最基础的RAG技术应用讲起,可以看到RAG技术的演进正在不断的发展,AI检索经历了从基本的匹配搜索到复杂的Agent搜索系统的演变。这一进展使AI能够处理越来越复杂的问题,并为用户提供更丰富、更准确的回答。后续将继续分享具体实现的细节,涉及:向量化、检索优化、内容生成、text2sql等相关内容。
如何学习大模型 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 的正确特征了。