使用 Azure 机器学习提示流的检索增强生成(预览版)

重要

此功能目前处于公开预览状态。 此预览版在提供时没有附带服务级别协议,我们不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。

有关详细信息,请参阅适用于 Azure 预览版的补充使用条款

检索增强生成 (RAG) 是一种模式,它与预训练的大型语言模型 (LLM) 和 你自己的数据 配合使用以生成响应。 在 Azure 机器学习中,现在可以在提示流中实现 RAG。 对 RAG 的支持目前以公共预览版提供。

本文列出了 RAG 的一些优势,提供了技术概述,并介绍了 Azure 机器学习中的 RAG 支持。

为何使用 RAG?

传统上,基本模型使用时间点数据进行训练,以确保其在执行特定任务和适应所需域方面的有效性。 然而,有时需要处理更新或更多现有数据。 有两种方法可以补充基本模型:使用新数据对基本模型进行微调或进一步训练,或者使用即时工程实时补充或指导模型的 RAG。

微调适用于连续域适配,可显著提高模型质量,但通常会产生更高的成本。 相反,RAG 提供了一种替代方法,允许对提示中提供的新数据使用与推理引擎相同的模型。 此方法支持上下文中学习,而无需进行昂贵的微调,使企业能够更高效地使用 LLM。

利用 RAG,企业可以实现自定义解决方案,同时保持数据相关性并优化成本。 通过采用 RAG,公司可以使用 LLM 的推理功能,利用其现有模型来处理和生成基于新数据的响应。 RAG 有助于定期更新数据,而无需进行微调,从而简化了 LLM 与业务的集成。

  • 向 LLM 提供补充数据作为指令或提示
  • 在现有模型上添加事实检查组件
  • 根据最新数据训练模型,且不会产生与微调相关的额外时间和成本
  • 根据业务特定数据进行训练

在大型语言模型 (LLM)上使用 RAG 的技术概述

在信息检索中,RAG 是一种方法,让你能够将 LLM 的强大功能与你的数据配合使用。 启用 LLM 以访问自定义数据涉及以下步骤。 首先,应将大型数据分块成可管理的部分。 其次,需要将区块转换为可搜索格式。 再次,转换后的数据应存储在允许高效访问的位置。 此外,当 LLM 提供响应时,存储引文或引用的相关元数据也很重要。

完成 RAG 步骤的 LLM 的技术概述的示意图屏幕截图。

让我们更详细地看一下示意图。

  • 源数据:这是数据所在的位置。 它可以是计算机上的文件/文件夹、云存储中的文件、Azure 机器学习数据资产、Git 存储库或 SQL 数据库。

  • 数据分块:源中的数据需要转换为纯文本。 例如,Word 文档或 PDF 需要破解并转换为文本。 然后,文本被分块成较小的部分。

  • 将文本转换为矢量:称为嵌入。 矢量是转换为数字序列的概念的数值表示形式,通过它,计算机可以轻松了解这些概念之间的关系。

  • 源数据和嵌入之间的链接:此信息作为元数据存储在创建的区块上,这些区块然后用于帮助 LLM 在生成响应时生成引文。

RAG 与 Azure 机器学习(预览版)

Azure 机器学习中的 RAG 是通过与适用于大语言模型和矢量化的 Azure OpenAI 服务集成来实现的,它支持将 Faiss 和 Azure AI 搜索(以前称为认知搜索)作为向量存储,并支持开放源代码产品/服务工具和框架(例如用于数据分块的 LangChain)。

若要实现 RAG,必须满足一些关键要求。 首先,在将数据发送到 LLM 之前,应以允许高效搜索的方式设置数据的格式,从而最终减少令牌消耗。 为了确保 RAG 的有效性,定期更新数据也很重要。 此外,使用数据评估 LLM 输出的功能使你能够衡量技术的效果。 Azure 机器学习不仅使你能够在这些方面轻松入门,还使你能够改进和生产 RAG。 Azure 机器学习提供:

  • 用于启动基于 RAG 的问答方案的示例。
  • 基于向导的 UI 体验,用于创建和管理数据并将其合并到提示流中。
  • 衡量和增强 RAG 工作流的功能,包括测试数据生成、自动提示创建和可视化提示评估指标。
  • 高级方案,对使用新的内置 RAG 组件在笔记本中创建自定义管道有更多的控制权。
  • 代码体验,允许利用使用 LangChain 等开源产品/服务创建的数据。
  • RAG 工作流与 MLOps 工作流的无缝集成(使用管道和作业进行集成)。

结论

利用 Azure 机器学习,可以通过使用 Azure 机器学习工作室或将代码与 Azure 机器学习管道配合使用来将 RAG 整合到 AI 中。 它提供多个增值功能,例如衡量和增强 RAG 工作流、测试数据生成、自动提示创建以及可视化提示评估指标的功能。 通过它,可以使用管道和作业将 RAG 工作流集成到 MLOps 工作流中。 此外,还可以将数据与 LangChain 等开源产品/服务配合使用。

后续步骤

通过 Azure 机器学习使用矢量存储(预览版)

在 Azure 机器学习提示流中如何创建矢量索引(预览版)