近年来,人工智能技术突飞猛进,尤其是生成式AI,简直像是开了挂一样,各种惊艳的表现让人直呼“未来已来”。根据IDC的研究,生成式AI的市场规模在2022年已经达到了107亿美元,而到2026年,这个数字预计会飙升至326亿美元!不过,尽管生成式AI很强大,但它也并非完美无缺——比如生成内容的质量、准确性和可靠性,依然有提升的空间。
这时候,检索增强生成(RAG) 技术登场了!RAG的核心思路很简单:既然生成式AI有时候会“瞎编”,那我们就给它配一个“外挂知识库”,让它随时检索外部信息,生成更靠谱的内容。听起来是不是很酷?
在今天的文章里,我们就来聊聊RAG技术的最新玩法,以及它的优点和缺点。准备好了吗?让我们一起揭开RAG的神秘面纱!
1 什么是RAG?其目的和基本机制
如果你对RAG的相关概念很熟悉,可以直接跳过这节
检索增强生成(RAG)是一种自然语言处理(NLP)技术,它巧妙地把“搜索”和“生成”两大AI技能结合在一起。简单来说,RAG让生成式AI不仅能靠自己的“脑内知识”回答问题,还能随时“上网查资料”——从外部知识库里抓取最新、最相关的信息,生成更准确、更靠谱的答案。
传统的生成式AI有个小毛病:它只能依赖训练时学到的知识,一旦遇到训练数据之外的问题,就容易“翻车”。特别是面对特定领域的最新信息或专业知识时,它往往显得力不从心。RAG的出现就是为了解决这个问题!它让生成式AI能够动态整合外部信息,比如最新的研究成果、统计数据或新闻,生成更专业、更与时俱进的回答。对企业来说,RAG还能让大语言模型(LLM)更灵活,适应不同领域的需求。
RAG的基本机制
RAG的工作流程可以分成两步:
-
搜索和预处理
当你提出一个问题时,RAG会先用你的问题作为“关键词”,从外部数据源(比如网页、知识库、数据库)中搜索相关信息。这些信息会被预处理,比如去掉无关词汇、提取关键内容,确保它们干净整洁,方便AI理解。 -
基于证据的生成
接下来,RAG会把检索到的信息“喂”给预训练的大语言模型(LLM)。这样一来,LLM不仅有自己的知识储备,还能结合外部信息,生成更准确、更丰富的答案。
为了让搜索结果更精准,RAG通常会用语义搜索引擎,它不仅能理解字面意思,还能捕捉问题的深层含义。比如,你问“AI的未来趋势是什么?”,它不会只搜“AI”“未来”“趋势”这几个词,而是会找到与AI发展相关的深度内容。
RAG的杀手锏:防止AI“幻觉”
RAG最厉害的地方在于,它能有效防止AI“瞎编”。通过给LLM提供真实的外部信息作为“事实依据”,RAG确保生成的答案有据可查,而不是凭空捏造。这样一来,AI的回答不仅更靠谱,还能满足用户的需求,同时遵守系统的安全规则。
RAG的起源
RAG技术的诞生可以追溯到2020年,由Patrick Lewis和他的团队在一篇论文中提出。他们开发RAG的初衷,就是让生成式AI能够动态连接外部资源,尤其是那些包含最新技术细节的知识库。正因为如此,RAG被称为“通用微调配方”——几乎任何大语言模型都可以用它来连接几乎任何外部资源。
总之,RAG就像给生成式AI装了一个“外挂知识库”,让它不仅能靠自己的“脑力”回答问题,还能随时“查资料”,生成更准确、更专业的答案。是不是很酷?
2 最新的RAG算法
RAG(Retrieval-Augmented Generation)近年来发展迅速,各种新方法不断被提出。以下是一些代表性的最新方法及其特点:
算法 | 特点 |
---|---|
Simple RAG | 基于用户查询检索相关文档,并使用LLM生成响应的基本方法。 |
Active RAG | 根据用户反馈迭代改进查询,以提高相关性的方法。 |
Corrective RAG | 对生成的输出进行修正或交叉检查,以确保事实准确性的方法。 |
Self RAG | 通过自我反省或自我批评来提高RAG结果质量的方法。LLM会对每个回答进行批评,判断其是否与查询相关。如果无关,则使用外部资源;如果相关,则检查幻觉和准确性。 |
Speculative RAG | 针对特定查询生成多个响应,并利用检索模型提供相关信息的方法。这些响应通过评分系统进行评估,选择最准确且上下文合适的响应。 |
Multimodal RAG | 结合文本、图像、视频等多种数据类型,生成更丰富响应的方法。 |
Advanced RAG | 使用高密度检索或Transformer等先进检索技术,实现高性能检索的方法。 |
Knowledge-intensive RAG | 专注于专业或领域特定信息的方法。 |
Memory RAG | 通过记忆过去的交互,提高未来响应的质量、连续性和个性化的方法。 |
Meta-learning RAG | 通过少样本学习或零样本学习功能,快速适应新任务的方法。 |
HtmlRAG | 直接使用HTML,保留标题、表格等有价值的信息结构,而不是使用纯文本。通过清理和修剪技术处理HTML中的额外噪音和大小。 |
FastRAG | 使用模式和脚本学习高效处理数据,不完全依赖AI模型的方法。结合文本检索和知识图谱查询,提高精度,减少90%的处理时间和85%的成本。 |
Auto-RAG | 使用LLM细化查询,通过多轮对话规划检索,直到收集到足够信息的自主方法。该系统会根据问题难度自适应调整,并用自然语言解释其过程。 |
CORAG | 考虑块间相关性,使用蒙特卡洛树搜索(MCTS)框架处理添加块的单调效用问题。还使用设置代理适应各种查询类型。 |
MemoRAG | 采用具有长期记忆的双系统方法。轻量级LLM创建数据库的“全局记忆”并生成回答草稿以指导检索工具,而更强大的LLM使用检索到的数据生成最终回答。 |
RAG-Thief | 旨在揭示RAG系统中私有知识库与LLM集成的隐私风险。通过从对抗性查询开始,从响应中学习并生成更有效的查询,自动提取私有数据(成功率超过70%)。 |
AssistRAG | 在LLM中嵌入智能助手以管理工具、记忆和计划的方法。通过两阶段训练过程(课程助手学习和增强偏好优化)增强信息检索和决策能力。 |
LaB-RAG | 结合图像标签、RAG和LLM生成图像描述的方法。使用简单分类器将X射线图像转换为文本标签,这些标签帮助预训练LLM生成详细的放射报告,而无需直接使用图像数据。 |
Video-RAG | 无需大量微调即可增强模型对长视频的理解,是一种轻量且经济高效的解决方案。采用即插即用方式,使用开源工具从视频中提取对齐信息,并将此数据作为辅助文本与LVLM集成。 |
Retrieval-Augmented Forecasting (RAF) | 增强Chronos等时间序列基础模型(TSFM),通过动态检索相关时间序列示例来改进预测的方法。应对时间序列数据的事件驱动和进化特性。 |
RuAG | 使用LLM的常识定义谓词,并通过蒙特卡洛树搜索(MCTS)高效探索数据,将大规模数据集转换为可解释的逻辑规则。这些逻辑规则随后转换为自然语言并集成到LLM提示中,增强推理能力。 |
MMed-RAG | 旨在提高医疗视觉语言模型在诊断和报告生成等任务中的事实准确性。通过自适应上下文选择和偏好微调,解决幻觉和错位等问题。 |
Path-RAG | 通过改进PathVQA-Open任务中的病理图像分析,增强癌症诊断的框架。使用HistoCartography从图像中提取知识,选择关键补丁以整合专家见解,将准确率从38%提高到47%,并改善长文本问答。 |
3 各个RAG算法的优缺点
各个RAG算法具有不同的特点,因此其优点和缺点也各不相同。以下从性能提升、效率、适用范围、实现难易度等角度进行比较。
RAG Technique | Advantages | Disadvantages |
---|---|---|
Simple RAG | - 适用于广泛的任务和数据 | |
- 计算成本低,处理速度快 | ||
- 所需数据量少 | ||
- 实现相对容易 | - 不适用于复杂查询或高级推理 | |
Active RAG | - 通过用户反馈提高输出的质量、准确性和可靠性 | - 需要收集和处理用户反馈 |
- 计算成本高于Simple RAG | ||
Corrective RAG | - 保证事实的准确性 | |
- 获得可靠的输出 | - 计算成本高于Simple RAG | |
- 修正处理的实现复杂 | ||
Self RAG | - 通过自我反思提高输出质量 | |
- 抑制幻觉的产生 | - 计算成本高于Simple RAG和Corrective RAG | |
- 实现复杂 | ||
Speculative RAG | - 能够处理模糊查询或具有多种解释的查询 | - 计算成本高于Self RAG |
- 实现复杂 | ||
Multimodal RAG | - 结合多种数据类型,生成基于更全面理解的输出 | - 需要处理多种数据类型的前处理 |
- 计算成本高 | ||
Advanced RAG | - 通过高级搜索技术提高输出质量 | - 计算成本高 |
- 高级搜索技术的实现复杂 | ||
Knowledge-intensive RAG | - 提高特定领域输出的质量和准确性 | - 需要构建专业知识库 |
- 适用范围有限 | ||
Memory RAG | - 记忆过去的交互,生成个性化的输出 | - 需要内存管理机制 |
- 需要考虑隐私问题 | ||
Meta-learning RAG | - 快速适应新任务和数据 | - 学习数据的选择至关重要 |
- 计算成本高 | ||
HtmlRAG | - 保留标题和表格等信息结构 | - 需要处理HTML中的噪声 |
FastRAG | - 大幅减少处理时间和成本 | - 模式和脚本学习的适用范围有限 |
Auto-RAG | - 对问题难度的适应性高 | - 需要多轮对话处理 |
- 实现复杂 | ||
CORAG | - 考虑块之间的相关性 | - 蒙特卡洛树搜索的实现复杂 |
MemoRAG | - 通过轻量级LLM和强大LLM的组合实现高效处理 | - 需要构建双系统 |
RAG-Thief | - 有效分析隐私风险 | - 实现需要专业知识 |
AssistRAG | - 能够管理工具、内存和计划 | - 实现复杂 |
LaB-RAG | - 专注于图像字幕生成 | |
- 轻量且具有高性价比 | - 依赖于图像分类器的精度 | |
Video-RAG | - 深入理解长视频内容 | |
- 轻量且具有高性价比 | - 需要视频数据的前处理 | |
Retrieval-Augmented Forecasting (RAF) | - 提高时间序列数据的预测精度 | - 专注于时间序列数据 |
RuAG | - 将数据转换为可解释的逻辑规则 | - 蒙特卡洛树搜索的实现复杂 |
MMed-RAG | - 专注于医疗领域的图像和语言处理 | - 专注于医疗数据 |
Path-RAG | - 专注于癌症诊断等病理图像分析 | - 专注于病理图像分析 |
从上表可以看出,各RAG算法具有不同的优点和缺点。
例如,Simple RAG适用于广泛的任务,实现也相对容易,但不适用于复杂查询或高级推理。另一方面,Active RAG通过用户反馈可以提高输出质量,但反馈的收集和处理成本较高。
因此,在选择RAG算法时,需要根据任务要求、数据类型、可用资源等因素,选择最合适的算法。
4 基准工具和数据集
这节内容我们来聊聊LLM(大语言模型)在RAG(检索增强生成)场景下的那些“考试题”——也就是各种基准测试工具和数据集。这些工具和数据集就像是给模型出的“考卷”,用来检验它们在实际应用中的表现。下面我们就来看看这些“考卷”都有哪些吧!
Natural Questions (NQ) 数据集:这个数据集有点像是“百科知识问答大赛”,里面的问题都是从Wikipedia里挖出来的,既有需要长篇大论回答的,也有简短精悍的。NQ主要考验模型在问答任务中的表现,尤其是它能不能从一堆文档中找到相关信息,然后生成准确、靠谱的答案。如果你想测试RAG在问答任务中的实力,NQ绝对是个不错的选择。
**MS MARCO (Microsoft Machine Reading Comprehension)**:MS MARCO就像是Bing搜索引擎的“实战记录”,里面包含了真实的搜索查询和对应的文档、答案。这个数据集主要用来测试RAG在文档检索和段落排序上的能力,看看它能不能找到最相关的信息,并生成高质量、连贯的回答。简单来说,就是看模型能不能像“搜索引擎”一样聪明。
TriviaQA:这个数据集简直就是“百科知识竞赛”的升级版,里面包含了各种问题和对应的正确答案。TriviaQA主要用来测试RAG在获取事实信息方面的能力,看看它能不能从海量文档中找到相关的知识点,并生成准确的回答。尤其是那些“冷知识”或者“常识性”的问题,TriviaQA特别适合用来考验模型。
**FEVER (Fact Extraction and Verification)**:FEVER这个数据集有点像是“事实核查员”的工作手册,里面提供了一些主张,要求模型去找到相关的证据来验证这些主张的真实性。它主要用来测试RAG在事实检索和验证方面的能力,看看它能不能找到靠谱的证据,并生成有根有据的回答。如果你想让模型变得更“严谨”,FEVER绝对是个好帮手。
好了,今天的RAG“考卷”就介绍到这里啦!这些数据集不仅是RAG模型们的“考试题”,也是我们了解RAG能力的好工具。
5 特定场景下RAG的能力
RAG(Retrieval-Augmented Generation)在各种实际应用中都能大显身手。下面,咱们就通过几个具体的例子来看看它到底有多牛!
1. 问答系统
在问答系统里,RAG能从外部知识库中抓取相关信息,生成更准确、更详细的回答。比如,遇到法律问题,RAG可以快速检索相关法律条文或判例,然后基于这些信息给出靠谱的答案。举个例子,Cohesity Gaia这个平台就用上了RAG AI,它能用自然语言搜索和总结内容,还能生成对话式查询。简单来说,它能把企业备份数据中的海量信息快速过滤成一小撮相关数据,然后把这些数据和问题一起打包给GPT-4这样的LLM(大语言模型),最后生成一个既懂上下文又像人话的回答。
2. 文章摘要
在长文摘要任务中,RAG能从外部知识源抓取关键信息,生成更精炼的摘要。比如,在总结新闻文章时,RAG不仅能提炼文章核心,还能顺便把相关的背景信息或补充资料也塞进去,让摘要更丰富。
3. 翻译
翻译任务中,RAG也能派上大用场。它能从外部知识源抓取与翻译内容相关的信息,生成更自然、更准确的翻译。特别是遇到专业术语时,RAG会去查专业词典或技术文档,确保选词精准。
4. 聊天机器人
RAG在聊天机器人这类实时应用中特别有用。它能帮聊天机器人提供最新信息。比如,航空公司的聊天机器人用上RAG后,乘客不仅能查到最新的航班信息,还能找到替代航班或座位,简直贴心到家了。
5. 电商推荐
在电商领域,RAG能通过抓取用户偏好和产品细节,提升用户体验,提供更个性化、更精准的产品推荐。说白了,它能让你的购物体验更“懂你”。
6. 制造业
在制造业,RAG能快速获取工厂运营等关键信息,帮助决策、排查故障,甚至推动创新。对于在严格法规框架下运作的制造商,RAG还能从内部和外部资源(比如行业标准或监管机构)中快速抓取最新的法规和合规要求,确保企业不掉队。
7. 医疗
在医疗行业,RAG的潜力也不容小觑。它能从外部资源抓取相关医学知识,帮助医疗应用提供更准确、更贴合上下文的回答。虽然最终决策还是由人类医生来做,但RAG能大大增强医生可获取的信息量,相当于给医生配了个超级助手。
6 RAG的未来发展方向、挑战与可能性
RAG(Retrieval-Augmented Generation)作为提升生成AI性能的关键技术,未来的发展潜力巨大。接下来,咱们聊聊它可能的发展方向、面临的挑战以及未来的可能性。
未来的发展方向
-
更高级的检索技术:通过引入Transformer等最新技术,RAG可以更高效地检索到相关性更高的信息,让生成的内容更精准。
-
多模态RAG的崛起:不仅仅是文本,未来RAG可能会整合图像、音频、视频等多种数据类型,生成更丰富、更具表现力的内容。
-
个性化定制:根据用户的偏好和情境,提供更个性化的信息,提升用户体验,让AI更懂你。
-
自我提问型RAG:系统可以自动分解复杂问题,实现更深层次的学习和理解,让AI变得更“聪明”。
-
自适应检索:根据查询类型的不同,调整检索策略。比如,事实类问题和创造性任务可以采用不同的检索方式。
-
混合检索:结合关键词匹配和语义搜索等多种检索方法,避免单一检索方式可能遗漏的相关信息。
面临的挑战
-
数据偏见问题:如果外部知识源存在偏见,生成AI的输出也可能带有偏见。我们需要开发算法来识别和修正这些偏见,同时构建更多样化的数据集。
-
安全与隐私:外部知识源可能包含敏感信息,如何保护这些信息的安全和隐私是一个重要课题。组织需要采取严格的加密和访问控制措施,确保数据安全。
-
计算成本:使用大规模的外部知识源可能会导致计算成本飙升,如何在性能和成本之间找到平衡是个难题。
-
文档质量与相关性的依赖:RAG系统的效果很大程度上取决于检索组件能否从海量数据中找到准确、相关的信息。如果检索失败,可能会导致生成的内容不准确甚至误导用户。
-
资源消耗大:RAG的实现需要强大的基础设施来管理多源数据的检索和内容生成,这对资源的需求非常高。
未来的可能性
尽管RAG面临诸多挑战,但一旦这些难题被攻克,它将成为一种更可靠、安全且高效的技术,广泛应用于各个领域。无论是提升生成AI的精准度,还是让AI更好地理解多模态数据,RAG都有望在未来大放异彩。
7 结论
RAG(检索增强生成)是提高生成式 AI 输出的质量、准确性和可靠性的关键技术。已经提出了各种方法,每种方法都有优点和缺点。根据您的用例选择适当的技术非常重要。RAG 预计未来将继续进一步发展,并有潜力通过在各个领域的应用对社会产生重大影响。RAG 使人工智能能够始终使用最新的相关信息,使其成为信息快速变化的动态环境中的宝贵工具,例如新闻、金融和医学研究。RAG 对 AI 技术的发展抱有很高的期望。通过促进快速访问相关数据,RAG 可以显着缩短研究时间,并通过准确及时的信息支持研发计划。
如何学习大模型 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 的正确特征了。