什么是 AI 中的检索增强生成 (RAG)?

检索增强生成 (RAG) 是一种向大型语言模型 (LLM) 添加新数据源的方法,无需重新训练。

学习目标

阅读本文后,您将能够:

  • 了解 AI 中的检索增强生成 (RAG)
  • 说明 RAG 如何增强 LLM
  • 了解 RAG 聊天机器人和 AutoRAG

复制文章链接

什么是 AI 中的检索增强生成 (RAG)?

检索增强生成 (RAG) 是一个优化大型语言模型 (LLM) 使其适用于特定上下文的流程,方法为 LLM 提供与特定上下文相关的知识库,无需完全重新训练。RAG 是一种快速调整 LLM 以适用特定用例的、经济高效的方法。这是开发人员可以用来微调人工智能 (AI)模型的方法之一。

LLM 经过了海量数据训练,但它们可能无法生成某些场景所需的特定信息。虽然它们大致了解了人类语言的工作原理,但并不总是具备特定主题领域的专业知识。RAG 是解决这个问题的一种方法。

想象一下,一名汽车机械师要修理一辆 1964 年的雪佛兰。尽管这名机械师在经过数千小时的实践后,可能掌握了大量的汽车保养专业知识,但他仍然需要车主的《用户手册》才能有效地进行保养。不过,这名机械师无需重新获得机械师认证,他只需要仔细查阅手册,然后运用已有的汽车常识即可。

RAG 与此类似。它为 LLM 提供一份手册或知识库,以便 LLM 可以将通用知识应用于特定用例。例如,通用 LLM 可能能够生成关于 API 查询工作原理的内容,但它不一定能够告诉用户如何查询某个特定应用的 API。而利用 RAG,LLM 可以通过链接到应用的技术文档来调整生成的具体内容,使其适用于该应用。

RAG 的工作原理是什么?

通常,LLM 收到查询后,它会根据预先存在的参数和训练来处理该查询。

RAG 让 LLM 能够参考“外部数据”,即:LLM 训练数据集中未包含的数据库。因此,与 LLM 的常规工作方式相比,采用 RAG 的 LLM 会使用外部数据来优化答案,因此,得名检索(首先检索外部数据)增强(利用此类数据改进回复)生成(创建答案)。

假设上述示例中的汽车机械师想要使用 LLM,而不是直接查阅车主手册。使用 RAG,LLM 可以将查阅车主手册直接纳入其流程。虽然该 LLM 可能没有接受过经典款汽车手册的训练(或者,如果此类信息包含在训练数据中,那可能也只占很小的比例),但它可以使用 RAG 生成相关且准确的查询。

为了让 LLM 能够使用和查询外部数据源(例如汽车手册),首先会将数据转换为向量,然后将其存储在向量数据库。此过程会使用机器学习模型,生成数据集中项目的数学表示。(每个“向量”都是一个数字数组,例如 [-0.41522345,0.97685323...]。)

用户发送一个提示后,LLM 会将该提示转换为一种向量,然后搜索从外部数据源创建的向量数据库,以查找相关信息。它会将这些信息添加为提示的附加上下文,然后通过典型模型来运行增强提示,以创建答案。

AI 中的 RAG 有哪些优缺点?

使用 RAG 微调 LLM 的优点包括:

  • 提高用例的准确性:如果 LLM 可以访问与提示相关的知识库,它更有可能提供正确答案,就像机械师如果拥有手册,便更有可能以适当方式保养汽车。
  • 调整模型的低成本方法:由于无需重新训练,因此,在新环境中开始使用 LLM 会降低计算成本和时间成本。
  • 灵活性:由于无需调整模型参数,因此,同一模型可以快速应用于各种用例。

一些潜在的缺点是:

  • 响应时间延长:虽然 RAG 无需重新训练,但可能需要花费更长时间进行推理(推理和回复提示的过程),因为 LLM 现在必须查询多个数据集才能生成答案。
  • 数据集之间不一致:外部知识库可能无法与模型的训练数据集无缝集成,就像两套百科全书对历史事件的描述可能略有不同一样。这可能会导致查询的答案不一致。
  • 手动维护:每次更新外部知识库时(例如,当新款车型上市时),开发人员都必须手动启动流程,将新数据转换为向量并更新向量数据库。(Cloudflare 开发的 AutoRAG 有助于开发人员避免这一手动操作流程,详见下文。)

什么是 RAG 聊天机器人?

RAG 聊天机器人是一种基于 LLM 的聊天机器人,通过 RAG 专门针对特定用例进行了优化。RAG 连接到一个或多个与聊天机器人运行环境相关的外部数据源。用于汽车修理厂的 RAG 聊天机器人可以访问汽车文档;对于修理厂的机械师来说,这比向通用 LLM 聊天机器人提问更有用。

RAG 与低秩自适应 (LoRA)

低秩自适应 (LoRA) 是另一种微调模型的方法,也就是说,无需完全重新训练模型即可适应特定上下文。但是,LoRA 确实需要调整模型参数,而 RAG 则完全不改变模型参数。单击此处,了解关于 LoRA 的更多信息

什么是 AutoRAG?

AutoRAG 为开发人员设置和管理 RAG 管道。它连接索引、检索和生成所需的工具,并通过定期步数据与索引来保持及时更新所有内容。设置完成后,AutoRAG 会在后台索引内容,并提供实时查询答案。了解 AutoRAG 的工作原理

常见问题解答

什么是检索增强生成(RAG)?

RAG 是一种技术,通过为大语言模型(LLM)提供相关知识库访问来针对特定上下文进行优化,而无需完整重新训练。RAG 是为专门任务定制 LLM 的高效方式。

RAG 如何增强 LLM 的能力?

RAG 允许 LLM 查询外部数据源,例如专用数据库,以丰富其响应。当用户提交查询时,LLM 会将其转换为向量,在外部数据源(也已向量化)中查找相关信息,然后利用增强的上下文生成更为明智和精确的答案。

将 RAG 与 AI 模型结合使用的主要优势是什么?

RAG 提高了特定应用中 AI 模型的准确性,因为 LLM 可以利用专门的知识库。RAG 也是一种经济高效的模型调整方法,因为它避免了完全重新训练所需的大量计算资源和时间。此外,RAG 提供了灵活性,允许将同一模型轻松应用于各种特定场景,而无需更改其核心参数。

在 AI 中实施 RAG 有哪些潜在缺点?

尽管有很多好处,但 RAG 会导致响应时间变慢,因为 LLM 必须从多个数据集中检索和处理信息。如果外部知识库与模型的原始训练数据不完全一致,也会存在不一致的风险。此外,维护 RAG 需要每当外部知识库发生变化时,人工将新数据转换并更新到数据库内的向量。

什么是 RAG 聊天机器人?

RAG 聊天机器人是一种基于 LLM 的聊天机器人,通过 RAG 过程专门针对特定用例进行了定制。这意味着它可以访问与其特定操作环境相关的外部数据源,从而能够提供比通用聊天机器人更有针对性和准确的回复。

RAG 与低秩自适应 (LoRA) 有何不同?

RAG 和低秩自适应 (LoRA) 都是无需完全重新训练即可微调 AI 模型的方法。然而,它们的方法不同:RAG 不会修改模型的参数,而 LoRA 则需要调整这些参数。

什么是 AutoRAG?

AutoRAG 是由 Cloudflare 开发的一款工具,旨在简化开发人员的 RAG 管道设置和管理。它自动化连接索引、检索和生成所需的工具,通过在后台持续更新内容,确保数据同步和实时查询响应。