一、RAG简介
为了引出什么是 RAG,先看一下 LLM 当前存在的问题:幻觉、过时的知识、不透明无法追踪的推理过程
RAG(Retrieval-Augmented Generation,检索增强生成),是指对大型语言模型输出进行优化,使其能够在生成响应之前引用训练数据来源之外的权威知识库。大型语言模型(LLM)用海量数据进行训练,使用数十亿个参数为回答问题、翻译语言和完成句子等任务生成原始输出。在 LLM 本就强大的功能基础上,RAG 将其扩展为能访问特定领域或组织的内部知识库,所有这些都无需重新训练模型。这是一种经济高效地改进 LLM 输出的方法,让它在各种情境下都能保持相关性、准确性和实用性。
即:RAG 就是可以开卷回复的 LLM。
举个🌰(网上用烂了,但是简洁明了),给 ChatGPT 抛出了一个关于最近被广泛讨论的新闻的问题。鉴于 ChatGPT 对培训前数据的依赖,它最初缺乏提供最新动态的能力。RAG 通过从外部数据库获取和整合知识来弥合这种信息差距。在这种情况下,它收集与用户查询相关的新闻文章。这些文章,结合最初的问题,形成了一个全面的提示,授权 LLMs 生成一个充分知情的答案。
RAG 主要由三个步骤组成:Indexing、Retrieval、Generation。
- 索引:文档被分割成块,编码成向量,存储在向量数据库中;
- 检索:基于语义相似度检索与问题最相关的 k 个块(top-k chunks);
- 生成:将原始问题和检索到的数据块一起输入 LLM,生成最终答案。RAG 发展经历了三个阶段:Naive RAG、 Advanced RAG 和 Modular RAG,下面对三种 RAG 详细阐述。
1.1 Naive RAG
Naive RAG 遵循传统过程 Indexing-Retrieval-Generation,也被称为 “Retrieve-Read” 框架。
- 索引(Indexing)
索引首先清理和提取各种格式的原始数据,如 PDF、 HTML、 Word 和 Markdown,然后将其转换为统一的纯文本格式。为了适应语言模型的上下文限制,文本被分割成更小的、可消化的块(chunk)。然后使用嵌入模型将块编码成向量表示,并存储在向量数据库中。这一步对于在随后的检索阶段实现高效的相似性搜索至关重要。知识库分割成 chunks,并将 chunks 向量化至向量库中。
- 检索(Retrieval)
在收到用户查询(Query)后,RAG 系统采用与索引阶段相同的编码模型将查询转换为向量表示,然后计算索引语料库中查询向量与块向量的相似性得分。该系统优先级和检索最高 k (Top-K)块,显示最大的相似性查询。这些块随后被用作 prompt 中的扩展上下文。Query 向量化,匹配向量空间中相近的 chunks。
- 生成(Generation)
提出的查询(Query)和选定的文档(Chunks)被合成为一个连贯的提示,大语言模型负责生成回复。该模型的答复方法可能因具体任务的标准而异,允许它或者利用其固有的参数知识,或者限制其对所提供文件中所包含的信息的答复。在正在进行的对话中,任何现有的对话历史都可以整合到提示中,使模型能够有效地进行多轮对话交互。
- Native RAG 存在的问题:
-
检索问题
:检索阶段经常存在准确率和召回率冲突的问题,最终导致召回不一致或不相关的 chunks,以及关键信息的缺失。 -
生成困难
:在产生响应时,模型可能面临幻觉的问题,即它产生的内容不被检索到的上下文所支持。这个阶段也可能受到输出不相关,毒性或偏倚的影响,从而影响响应的质量和可靠性。 -
增强障碍
:将检索到的信息与不同的任务整合在一起,有时会产生不连贯或不连贯的输出。当从多个来源检索相似的信息时,该过程也可能遇到冗余,导致重复响应。面对复杂的问题,基于原始查询的单一检索可能不足以获得足够的上下文信息。 -
过度依赖
:生成模型可能过度依赖增强的信息,导致输出只是回应检索到的内容,而不添加有见地或合成的信息。
1.2 Advanced RAG
Advanced RAG 提高检索质量,采用了检索前和检索后策略(pre-retrieval and post-retrieval strategies)。为了解决索引问题,Advanced RAG 通过使用滑动窗口方法、细粒度分段和元数据的合并来改进其索引技术。
-
预检索过程(Pre-retrieval process)
优化索引结构和原始查询优:
-
化索引的目标是提高被索引内容的质量。涉及到策略如: 增强数据粒度,优化索引结构,添加元数据,对齐优化,混合检索等。
-
查询优化的目标是使用户的原始问题更清晰,更适合于检索任务。常见的方法包括:查询重写查询转换,查询扩展等。
-
后检索过程(Post-Retrieval Process)
将检索到相关的上下文有效地集成到查询中是至关重要的。
检索后处理的主要方法包括重新排序块(rerank chunks)
和上下文压缩(context compressing)
。检索后的工作集中在选择关键信息、强调关键部分和缩短待处理的上下文。
1.3 Modular RAG
Modular RAG 引入多个特定功能模块和替换现有模块, 总体上展示了更大的灵活性。其过程并不局限于顺序检索和生成,包了括迭代和自适应检索等方法。
-
new Modules
模块化 RAG 框架引入了额外的专门组件,以增强检索和处理能力。
-
Search 模块适应特定的场景,使用 LLM 生成的代码和查询语言,可以直接搜索各种数据源,如搜索引擎、数据库和知识图表。
-
RAG-Fusion 通过采用多查询策略解决传统搜索的局限性,该策略将用户查询扩展到不同的视角,利用并行向量搜索和智能重新排序来发现显性和变革性的知识边缘。
-
Memory 模块利用 LLM 的内存来指导检索,创建一个无界内存池,通过迭代自我提升,使文本与数据分布更紧密地对齐。
-
Routing 模块通过不同的数据源,为查询选择最佳路径,无论是涉及摘要、特定的数据库搜索,还是合并不同的信息流。
-
Predict 模块旨在通过直接通过 LLM 生成上下文来减少冗余和噪声,确保相关性和准确性。
-
Task Adapter 模块将 RAG 适配到各种下游任务,为 zero-shot 输入自动提示进行检索,为 few-shot 查询生成创建特定于任务的检索器。
-
new Patterns
通过允许模块替换或重新配置来解决特定的问题,模块 RAG 提供了显著的适应能力。这超出了 Naive 和 Advanced RAG 的固定结构,其特点是拥有属性简单的 “Retrieve” 和“ Read”机制。此外,模块化 RAG 通过整合新的模块或调整现有模块之间的交互流来扩展这种灵活性,增强其在不同任务之间的适用性。
诸如 Rewrite-Retrieve-Read 模型之类的创新利用了 LLM 的能力,通过重写模块和 llm 反馈机制来更新重写模型来改进检索查询。类似地,Generate-Read 这样的方法用 llm 生成的内容取代了传统的检索,而 Recite-Read 强调从模型权重进行检索,增强了模型处理知识密集型任务的能力。混合检索策略整合了关键字,语义和向量搜索,以满足不同的查询。此外,利用子查询和假设文档嵌入 (HyDE) 试图通过在生成的答案和真实文档之间嵌入相似性来提高检索的相关性。
1.4 RAG、Fing-turning、提示词工程对比
上面象限图表来说明三者外部知识需求、模型适应需求两个维度上的差异:
Prompt 工程利用模型的内在能力,对外部知识和模型适应的必要性最小。RAG 可以类比为信息检索提供一个具有量身定制的教科书的模型,是精确信息检索任务的理想选择。相比之下,FT 相当于学生随着时间的推移内化知识,适用于需要复制特定结构、风格或格式的场景。
RAG 通过提供实时的知识更新和高可解释性的外部知识源的有效利用,在动态环境中表现出色。然而,它带来了更高的延迟和数据检索的道德考虑。另一方面,FT 更为静态,需要对更新后的数据进行再培训,但允许对模型的行为和风格进行深度定制。它需要大量的计算资源来准备和训练数据集,虽然它可以减少幻觉,但它可能面临不熟悉的数据的挑战。
FT 依赖 “再次学习” 形成自身 “内部专业知识” 进行回答,而 RAG 是已有基础知识后进行“开卷考试”。RAG 和 FT 之间的选择取决于应用环境中对数据动态、定制和计算能力的具体需求。RAG 和 FT 并不是相互排斥的,它们可以相互补充,在不同的层次上增强模型的能力。在某些情况下,它们的结合使用可能导致最佳性能。包含 RAG 和 FT 的优化过程可能需要多次迭代才能达到满意的结果。
最后分享
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
4. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
5. 大模型面试题
面试,不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费
】
如有侵权,请联系删除。