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

检索增强生成 (RAG) 定义

检索增强生成 (RAG) 是一种使用私有或专有数据源中的信息来补充文本生成的技术。它将检索模型(旨在搜索大型数据集或知识库)与生成模型(例如大型语言模型 (LLM))相结合,后者接收该信息并生成可读的文本响应。

检索增强生成可以通过添加来自其他数据源的上下文并补充 LLM 来自训练的原始知识库来提高搜索体验的相关性。这增强了大型语言模型的输出,而无需重新训练模型。其他信息源的范围可以从 LLM 未训练的互联网上的新信息到专有的业务上下文或属于企业的机密内部文档。

RAG 对于问答和内容生成等任务非常有用,因为它使生成式 AI系统能够使用外部信息源来生成更准确和上下文感知的响应。它实现搜索检索方法(通常是语义搜索或混合搜索)来响应用户意图并提供更相关的结果。

深入了解检索增强生成 (RAG),以及这种方法如何将您的专有实时数据链接到生成式 AI 模型,从而获得更好的最终用户体验和准确性。

那么,什么是信息检索?

信息检索 (IR)是指从知识源或数据集中搜索和提取相关信息的过程。它很像使用搜索引擎在互联网上查找信息。您输入查询,系统会检索并向您呈现最有可能包含您正在查找的信息的文档或网页。

信息检索涉及高效索引和搜索大型数据集的技术;这使得人们更容易从大量可用数据中访问他们需要的特定信息。除了网络搜索引擎之外,IR 系统还经常用于数字图书馆、文档管理系统和各种信息访问应用程序中。

AI 语言模型的演变

AI language model evolution diagram

多年来,AI 语言模型已经发生了显著的演变

  • 在 20 世纪 50 年代和 60 年代,该领域尚处于起步阶段,基本基于规则的系统对语言的理解有限。
  • 20 世纪 70 年代和 80 年代引入了专家系统:这些系统编码人类知识以用于解决问题,但语言能力非常有限。
  • 20 世纪 90 年代见证了统计方法的兴起,该方法使用数据驱动的方法来处理语言任务。
  • 到 21 世纪 20 年代,像支持向量机这样的机器学习技术(在高维空间中对不同类型的文本数据进行分类)已经出现,但深度学习仍处于早期阶段。
  • 21 世纪 10 年代标志着深度学习的重大转变。Transformer 架构通过使用注意力机制改变了自然语言处理,这使得模型在处理输入序列时能够关注输入序列的不同部分。

如今,Transformer 模型通过预测单词序列中的下一个单词,以模拟人类语音的方式处理数据。这些模型彻底改变了该领域,并导致了 LLM 的兴起,例如谷歌的 BERT(来自 Transformer 的双向编码器表示)。

我们看到大规模预训练模型和为特定任务设计的专用模型相结合的趋势。诸如 RAG 之类的模型持续受到关注,将生成式 AI 语言模型的范围扩展到标准训练的限制之外。2022 年,OpenAI 推出了 ChatGPT,这可以说是基于 Transformer 架构的最知名的 LLM。其竞争对手包括基于聊天的基础模型,如 Google Bard 和微软的 Bing Chat。Meta 的 LLaMa 2 虽然不是消费者聊天机器人,但它是一个开源的 LLM,可供熟悉 LLM 工作原理的研究人员免费使用。

AI supply chain connecting pre-trained models and open-source LLMs

相关链接:选择 LLM:2024 年开源 LLM 入门指南

RAG 是如何工作的?

检索增强生成是一个多步骤过程,首先进行检索,然后进行生成。以下是其工作原理:

检索

  • RAG 从输入查询开始。这可以是用户的问题,也可以是需要详细回答的任何文本。
  • 检索模型从知识库、数据库或外部来源(或同时从多个来源)获取相关信息。模型的搜索位置取决于输入查询的内容。此检索到的信息现在充当模型所需的任何事实和上下文的参考来源。
  • 检索到的信息被转换为高维空间中的向量。这些知识向量存储在向量数据库中。
  • 检索模型根据与输入查询的相关性对检索到的信息进行排序。得分最高的文档或段落将被选中以进行进一步处理。

生成

  • 接下来,诸如 LLM 之类的生成模型会使用检索到的信息来生成文本响应。
  • 生成的文本可能会经过额外的后处理步骤,以确保其语法正确且连贯。
  • 总的来说,这些响应更准确,并且在上下文中更有意义,因为它们受到了检索模型提供的补充信息的影响。这种能力在公共互联网数据不足的专业领域中尤为重要。

rag-in-action.jpeg

RAG 的优势

与独立工作的语言模型相比,检索增强生成具有多项优势。以下是一些它改进文本生成和响应的方式:

  • RAG 确保您的模型可以访问最新的事实和相关信息,因为它能够定期更新其外部参考。这确保了其生成的响应包含了可能与用户查询相关的最新信息。您还可以实施文档级安全来控制对数据流中数据的访问,并将安全权限限制于特定文档。
  • RAG 是一种更具成本效益的选择,因为它需要的计算和存储更少,这意味着您不必拥有自己的 LLM,也不必花费时间和金钱来微调您的模型。
  • 声称准确是一回事,实际证明准确又是另一回事。RAG 可以引用其外部来源并将其提供给用户,以支持其响应。如果用户选择这样做,他们可以评估这些来源,以确认他们收到的响应是准确的。
  • 虽然由 LLM 提供支持的聊天机器人可以生成比早期脚本化响应更个性化的答案,但 RAG 可以更进一步地定制答案。这是因为它能够使用搜索检索方法(通常是语义搜索)在综合其答案时通过衡量意图来参考一系列与上下文相关的信息点。
  • 当面对它没有接受过训练的复杂查询时,LLM 有时可能会“产生幻觉”并提供不准确的响应。通过从相关数据源中添加其他参考来支持其响应,RAG 可以更准确地响应模糊的查询。
  • RAG 模型用途广泛,可以应用于各种自然语言处理任务,包括对话系统、内容生成和信息检索。
  • 偏见可能是任何人为 AI 中存在的问题。通过依赖经过审查的外部来源,RAG 可以帮助减少其响应中的偏见。

检索增强生成与微调

检索增强生成和微调是训练 AI 语言模型的两种不同方法。虽然 RAG 将对广泛外部知识的检索与文本生成相结合,但微调侧重于一小范围用于不同目的的数据。

在微调中,预训练模型会根据专门数据进一步训练,使其适应一部分任务。它涉及根据新数据集修改模型的权重和参数,使其能够学习特定于任务的模式,同时保留其初始预训练的知识。

微调可用于各种 AI。一个基本的例子是学习在识别互联网上的猫照片的上下文中识别小猫。在基于语言的模型中,微调可以辅助诸如文本分类、情感分析和命名实体识别等内容,以及文本生成。但是,此过程可能非常耗时且成本高昂。RAG 加快了该过程,并通过更少的计算和存储需求降低了这些成本。

由于 RAG 可以访问外部资源,因此当任务需要结合来自 Web 或企业知识库的实时或动态信息以生成知情响应时,它特别有用。微调具有不同的优势:如果手头的任务定义明确,并且目标是仅优化该任务的性能,则微调可能非常有效。这两种技术都具有不必为每个任务从头训练 LLM 的优势。

检索增强生成的挑战和局限性

虽然 RAG 提供了显著的优势,但它也面临着一些挑战和局限性:

  • RAG 依赖于外部知识。如果检索到的信息不正确,它可能会产生不准确的结果。
  • RAG 的检索组件涉及搜索大型知识库或网络,这在计算上可能很昂贵且缓慢 - 尽管仍然比微调更快且成本更低。
  • 无缝集成检索和生成组件需要仔细的设计和优化,这可能会导致训练和部署中的潜在困难。
  • 从外部来源检索信息在处理敏感数据时可能会引起隐私问题。遵守隐私和合规要求也可能限制 RAG 可以访问的来源。但是,这可以通过文档级访问来解决,您可以在其中向特定角色授予访问权限和安全权限。
  • RAG 基于事实准确性。它可能难以生成富有想象力或虚构的内容,这限制了其在创意内容生成中的使用。

使用 Elasticsearch 进行检索增强生成

借助Elasticsearch,您可以为您的生成式 AI 应用程序、网站、客户或员工体验构建启用 RAG 的搜索。Elasticsearch 提供了一个全面的工具包,使您能够:

  • 存储和搜索专有数据和其他外部知识库,从中提取上下文
  • 使用各种方法从您的数据生成高度相关的搜索结果:文本、向量、混合或语义搜索
  • 为您的用户创建更准确的响应和更具吸引力的体验

了解 Elasticsearch 如何改进您业务的生成式 AI