1 摘要
大型语言模型(LLMs)展现了显著的能力,但面临诸如幻觉、过时知识以及不透明、无法追踪的推理过程等挑战。检索增强生成(RAG)通过整合外部数据库的知识,已成为一个有前途的解决方案。
LLM RAG(Retrieval-Augmented Generation)结合了检索和AI生成两种方法,旨在提高生成式任务的性能。RAG模型成为了基于LLM的系统中最流行的体系结构之一,并在多个应用领域中得到了广泛应用。这提高了模型的准确性,增强了模型的信誉,特别是对于知识密集型任务,并允许持续的知识更新和特定领域的集成信息。RAG协同地融合了LLM的内在知识与外部数据库的广阔、动态的存储库。本文全面回顾了RAG范式的进展,包括朴素RAG、进阶RAG和模块RAG。仔细审查了RAG框架的三部分基础,包括检索、生成和增强技术。本文重点介绍了每个关键组件中的先进技术,为RAG系统的进步提供了深刻的理解。此外,本文还介绍了评估RAG模型的度量和基准,以及最新的评估框架。总之,本文指出了未来的研究方向,包括识别挑战、扩展多模态、以及RAG基础设施及其生态系统的进步。
图1 RAG技术发展科技树
2 定义
RAG是一种通过融入外部知识库来优化LLM性能的模式,采用协同方式,综合信息检索机制和上下文学习技术,增强LLM的性能。其工作流程包含三大核心步骤:对语料库进行离散化处理并生成向量索引,根据查询与索引块的向量相似性识别并检索相关块,以及基于检索到的块中的上下文信息生成响应。RAG无需针对特定任务重新训练LLM,开发者可通过增添外部知识库丰富输入内容,提升模型输出精度。其关键优势在于信息检索和上下文感知生成能力。
图 2 RAG 技术在 QA 问题中的案例
3 RAG框架
RAG研究范式经历了不断演变的过程,主要分为朴素RAG、进阶RAG和模块RAG三种类型。
3.1 朴素RAG
朴素RAG遵循传统流程,包括索引、检索和生成。索引为检索提供了便利,检索和生成是关键挑战领域。检索质量低,生成质量引发幻觉挑战,增强过程难以有效地结合上下文与当前生成任务。重复和冗余也是问题,需要确定重要性和相关性,协调不同的写作风格和语气。生成模型过度依赖增强信息存在风险。
3.2 进阶RAG
进阶RAG通过预检索和后检索策略,以及滑动窗口、细粒度分割和元数据等技术改进索引方法,以弥补Naive RAG的缺点。预检索过程包括增强数据粒度、优化索引结构、添加元数据、对齐优化和混合检索。检索阶段通过计算查询和块之间的相似性来确定适当的上下文,嵌入模型是核心。后检索过程需要对检索到的内容进行重新排名和提示压缩,以应对上下文窗口限制带来的挑战。
3.3 模块RAG
图3 RAG 范式对比图
RAG系统是一种新型的框架,具有更大的灵活性和适应性,可以整合各种方法来增强功能模块,并解决特定问题。模块RAG具有高度的适应性,允许在RAG过程中替换或重新排列模块以适应特定问题情境。优化RAG管道可以提高信息效率和信息质量,通过整合各种搜索技术、改进检索步骤、融入认知回溯、实施多功能的查询策略和利用嵌入相似性等方法实现。这种方法有助于生成对后退提示的响应和最终的答案生成过程。然而,这种方法可能不会始终产生令人满意的结果,特别是当语言模型对主题不熟悉时,可能会导致更多的错误实例。
4 检索
在RAG中,高效检索文档需解决三大问题:精确的语义表示、协调查询与文档语义空间,以及检索器输出与大型语言模型偏好的协调。
4.1 加强语义表示
为了构建精确的语义空间,可以采用块优化和微调嵌入模型两种方法。在实施块优化时,需要考虑索引内容的特性、所选嵌入模型的适用性、用户查询的预期长度和复杂性,以及应用程序的实际使用情况。在微调嵌入模型时,可以利用特定领域的数据集和下游任务的微调来提升模型的性能。目前,在RAG领域中,研究者们正在探索各种多元化的方法,以提高信息检索的效率和准确性。
4.2 对齐查询和文档
RAG应用中,检索器可以使用嵌入模型编码查询和文档,或为每个使用不同模型。查询重写和嵌入变换是两种基本技术实现查询和文档语义对齐。查询重写通过将原始查询与额外指导结合来创建伪文档,或使用文本线索构建查询向量以生成“假设”文档,或改变传统的检索和阅读顺序,专注于查询重写,或利用LLM进行高级概念抽象推理和检索。嵌入变换通过引入适配器模块,优化查询嵌入的表示,将其映射到与预期任务更紧密对齐的潜在空间中。SANTA通过两种预训练策略增强检索器对结构化信息的敏感性,提高检索器识别结构化信息的能力。
4.3 对齐检索器和LLM
微调和适配器是两种将检索器输出与LLMs偏好对齐的方法,微调检索器包括利用来自LLM的反馈信号来完善检索模型,如Yu等人使用编码器-解码器架构为检索器提供监督信号,通过FiD跨注意力分数识别LM的偏好文档,并使用难负采样和标准交叉熵损失对检索器进行微调。适配器方法包括采用外部适配器来帮助对齐,如PRCA通过上下文提取阶段和奖励驱动阶段来训练适配器,并使用基于令牌的自回归策略优化检索器的输出。
5 生成
RAG的核心构成部分之一是生成器模块,其职责在于将收集到的信息进行有机转化,输出为条理清晰、自然连贯的文本内容。生成器能够结合各类数据资源,提升信息的精确度和实用性,并在所获得文本的指导下,保证产出文本与原有信息的吻合度。这种深度的信息整合使得生成器能够精准洞察问题背景,提供更加详尽且具有情境感的回应。生成器的应用对于增强大型模型处理输入数据的能力起到了关键作用。
5.1 使用冷冻LLM进行后检索
在不可调用的LLM领域,研究依赖大型模型合成信息,但存在上下文长度限制和易受冗余信息影响的问题。为了解决这些问题,转向后检索处理,涉及处理、过滤或优化从大型文档数据库中检索的相关信息,以提高检索结果质量。信息压缩和重新排序是后检索处理中的常见操作。信息压缩通过减少噪音、增强生成效应和减少文档数量来提高准确性,而重新排序模型则优先考虑最相关的项目,提高检索效率和响应速度。
5.2 针对RAG的微调LLM
RAG模型中的生成器是关键,其角色是接收检索到的信息并生成相关文本。为了适应输入查询和检索到的文档,对模型进行微调变得至关重要。在RAG中,生成器的微调方法与LLM的一般微调方法一致。为了提高生成器的性能,需要后处理检索到的文档,并使用代表性工作进行数据和优化函数的探索。总体优化过程包括训练数据通常包括输入-输出对,旨在训练模型根据输入生成输出。在联合编码器和双编码器范式中,使用基于编码器-解码器的标准模型或两个独立的编码器对输入和文档进行编码,然后使用解码器进行双向跨注意力处理。这两种架构都使用Transformer作为基础块并进行优化。在训练语言模型时,传统的方法可能导致“曝光偏差”,为了解决这个问题,SURGE提出了使用图-文本对比学习的方法,可以促使模型产生一系列可能且连贯的响应,减少过拟合,加强模型泛化能力。
6 RAG的增强
RAG发展的三大关键技术:增强阶段、数据来源和过程。图4展示了RAG核心组件的分类体系。
图4 RAG的核心组件的分类体系
6.1 RAG的增强阶段
RAG是一个知识密集型工作,在语言模型训练的预训练、微调和推理阶段,融入了各种技术方法。在预训练阶段,研究人员通过基于检索的策略来加强开放域QA的PTMs。微调检索器能优化语义表示,协调检索与生成模型,提升通用性和适应性。在推理阶段,先进技术引入更丰富语境的信息,以改进RAG模型的生成结果。这些增强提供了轻量级、经济高效的替代方案,能利用预训练模型的能力而无需进一步训练。微调对RAG模型适应特定任务至关重要,能完善检索与生成器,增强模型多样性和适应性。
6.2 增强源
RAG模型需要增强数据源的选择,包括非结构化数据、结构化数据和LLM自身生成的内容。无结构数据提供细粒度精度,但增加检索复杂性。结构化数据提供高质量上下文信息,有助于缓解模型幻觉。利用LLM的内部知识,选择性地应用检索增强,或用LLM生成器取代检索器,通过迭代创建与检索增强生成器无界的内存池,使用内存选择器来选择作为原始问题的双重问题的输出,从而自我增强生成模型。这些方法旨在提高模型性能和任务有效性。
6.3 增强过程
在RAG领域,为解决检索效率低下和“迷失在中间”问题,提出了迭代检索、递归检索和自适应检索方法。迭代检索通过多次检索迭代提供额外的上下文参考,增强后续答案生成的鲁棒性。递归检索是一种优化搜索结果的反馈循环过程,通过反复改进搜索查询来提高搜索结果的深度和相关性。自适应检索方法通过使LLM主动确定检索的最佳时间和内容来改进RAG框架,提高检索信息的效率和相关性。这些方法包括使用强化学习框架、自我反思令牌和自动监测生成过程的置信度等手段。
图5 具有不同增强方面的代表性 RAG 研究的技术树图谱
图6 RAG与其他大模型微调技术的比较
表1 RAG与微调之间的比较
6.4 RAG与微调的比较
RAG与FT为信息检索模型训练领域的两种独特方法。RAG主要针对特定查询进行设计,而FT则更擅长于知识的内化。通过强化基础模型知识、优化输出机制以及教授复杂指令,FT能够显著提升模型的性能与效率。然而,FT在整合新知识或快速迭代新用途上表现不足。值得注意的是,RAG与FT并非相互排斥,而是可以相互补充,共同提升模型能力。在实际应用中,针对RAG与FT的优化过程往往需要多次迭代,方能获得满意的结果。
7 RAG评估
随着自然语言处理领域中RAG技术的迅猛发展与广泛应用,法律语言学社区迎来了前沿研究的新机遇。评估工作旨在深入理解和持续优化RAG模型在各类实际应用场景中的性能表现。评估方法不断进化,从原先特定任务的评估方法与指标,逐步转向对现有文献的综合考量,这些文献主要围绕RAG模型的独特属性展开。综合评估涵盖了RAG模型的目标设定、评估维度的选择、以及适用于此类评估的基准与工具等多个方面。本文力求提供一个全面而系统的RAG模型评估概述,为相关研究提供坚实的理论支撑和实践指导。
7.1 评估目标
RAG模型的评价主要关注检索和生成模块,以全面评估上下文质量和内容质量。检索质量评估使用搜索引擎、推荐系统和信息检索系统的标准指标,如命中率、MRR和NDCG等,以确定检索组件提供的上下文的有效性。生成质量评估包括真实性、相关性、非危害性和准确性,可以通过手动或自动评估方法进行。对于未标记的内容,评估还包括上下文相关的答案。对于标记的内容,重点是模型产生的信息的准确性。评估方法可以用于检索和生成的质量评估。
7.2 评估方面
RAG模型评价主要关注三个质量分数和四种能力。质量分数包括上下文相关性、答案准确性和答案相关性,评估RAG模型的检索和生成效率。所需能力包括噪声鲁棒性、负拒绝、信息整合和反事实鲁棒性,对于模型在各种挑战和复杂场景下的性能至关重要。上下文相关性和噪声鲁棒性对于评估检索质量很重要,而答案真实性、答案相关性、负拒绝、信息整合和反事实鲁棒性对于评估生成质量也很重要。
表2 适用于评价方面RAG的指标摘要表
7.3 评估基准和工具
RAG模型评估框架包括基准测试和自动化评估工具,这些工具提供了定量指标,可以衡量模型表现并增强对模型在各种评估方面的能力理解。基准测试侧重于评估模型的基本能力,而最先进的自动化工具使用LLM来裁决质量分数。这些工具和基准共同构成了系统评估RAG模型的强大框架,如表3.
表3 评价框架摘要
8 未来展望
8.1 RAG的未来挑战
-
上下文长度限制,需平衡信息不足与风险
-
提高对噪声或矛盾信息的鲁棒性,增强反事实输入的抵抗力
-
结合RAG与微调,探索最佳集成方式,利用参数化和非参数化优势。
-
研究如何进一步释放LLMs在RAG系统中的潜力。
-
探讨RAG模型是否违反规模定律,研究参数数量问题。
-
解决关键工程挑战,如提高检索效率、文档召回率及数据安全性。
8.2 模式扩展
随着技术的进步,RAG可以探索更多的应用模式,例如与其他技术的集成和扩展。这可能包括与其他自然语言处理技术的集成,例如语音识别和机器翻译,以及与其他领域的应用集成,例如医疗保健和金融。此外,RAG还可以探索更复杂的任务,例如解释性自然语言生成和对话系统。这些扩展将需要进一步的研究和开发。
8.3 RAG生态系统
为了实现RAG的广泛应用和持续发展,需要建立一个生态系统,包括硬件、软件、数据集、培训资源和社区支持。这需要与行业合作伙伴、研究机构和开源社区建立合作关系,共同推动RAG的发展。此外,还需要关注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 的正确特征了。