什么是 RAG?
RAG(Retrieval Augmented Generation,检索增强生成)这一概念首次出现在 2020 年 Meta 发布的一项学术研究中。通过将大量外部数据与基础模型相结合,RAG 增强了 LLM 的能力,使 AI 的回应更加真实、个性化和可靠。
可以说 RAG 是一个旨在提高 LLM 性能的框架。短短三年内,RAG 在企业领域的 LLM 应用中取得了显著的增长。本文将深入探讨 RAG 技术,并介绍几种更进阶的 RAG 架构。
RAG 的工作原理
查询
通过虚拟助手或者界面(即日常与 AI 对话的界面),将文本格式的问题发送到 RAG 流程中。
文档搜索 (Retrieval)
LLM 开始从外部资源中搜集相关信息。这些资源可能包括数据库、文档,甚至是搜索引擎结果。搜索过程是为了找到与输入相关的文本片段或文档。
增强 (Augmentation)
在搜索阶段获取到的信息会与原始的输入或者提示语结合,并通过提示工程技术将其转换为 LLM 可以理解和处理的格式,这样 LLM 可以生成更好的回答。
生成 (Generation)
LLM 会将接收到的信息和原始的输入(即提示语)一起评估来生成准确的输出文本。具体来说就是,RAG 系统会结合用户的问题初始形式、从向量数据库获取的文档以及其他相关参数,确保 LLM 能够生成最准确和相关的答案。
回答
LLM 将生成的最终回答发送给用户。
RAG 在各种自然语言处理任务中都很有用,比如问答、对话生成、总结摘要等。通过整合外部信息,RAG 可以提供比传统的模型更准确和信息丰富的回答,而传统模型仅依赖于其预训练数据。
RAG 与传统方法的区别
基于分类的传统模型
传统的自然语言模型通过输入查询,从预定义的响应集中选择一个适当的响应。这些模型通过将输入文本(比如问题)与一组预定义的答案进行比较然后返回最合适的答案。系统通过使用监督学习算法或其他语义匹配方法,测量输入和标记响应之间的相似性来确定最适合的响应。
对于问答这样的任务,使用这样的模型是没问题的,因为答案通常基于固定的回答类型,并且可以轻松地以结构化形式找到。
基于 RAG 的模型
与传统的模型不同,生成式 AI 是从头开始创建答案或内容,而不是匹配现有内容。这些模型使用更复杂的算法,通常基于神经网络,来生成更接近真人表达的文本或响应。与我们习惯的方法不同,它们不需要将其与任何现有类关联,因为它们创建了新的内容。
这带来了无监督学习的所有优势和强项。
这些模型可以预测下一个单词或一系列单词来学习并生成新的并且是上下文相关的回答。
无监督学习是一种机器学习方法,与监督学习不同,它不依赖于标注数据(即带有明确标签的数据)。相反,无监督学习算法通过分析和寻找数据中的模式、结构或关系,自动从未标注的数据中学习。
RAG 的优势
RAG 在许多需要访问外部信息和当前数据的场景中具有显著优势。
上下文相关性
RAG 系统能够生成更具有上下文相关性和信息更加丰富的回答。通过结合外部来源的信息创建的文本更能反映当前的实际情况,从而提供更准确的回答。
事实核查与验证
由于 RAG 系统从可靠的外部来源获取信息,它们可以在生成过程中进行事实核查与验证。这有助于减少错误或误导性信息的产生,并确保内容的准确性。
优化知识整合
RAG 系统能够有效利用外部知识库或文档来优化其回答。这在问答任务中特别有用,模型可以从广泛的资源中搜索相关信息,从而提供见多识广且准确的回答。
灵活性和适应性
通过从各种资源获取信息,RAG 系统更具灵活性和适应性。只要搜索机制设计得当,它们无需针对每个特定场景进行明确的微调,就能处理广泛的主题和任务。
处理分布外输入
分布外输入(Out-of-Distribution Input, OOD Input)通常是指在训练过程中未见过的、与训练数据分布不一致的数据。
传统文本生成模型在面对训练数据中不存在的分布外或不常见输入时可能会遇到困难。RAG 系统则可以利用向量数据库中的文档堆栈,即使对于未见过或不常见的输入,也能找到相关信息。
控制内容生成
RAG 系统还可以用于控制内容的生成。通过引导文档搜索过程并指定来源,开发人员可以控制模型用来生成响应的信息类型和质量。


