你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
重要说明
此功能目前处于公开预览状态。 此预览版在提供时没有附带服务级别协议,我们不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。
有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。
检索增强生成 (RAG) 是一种模式,它与预训练的大型语言模型 (LLM) 和你自己的数据配合使用以生成响应。 在 Azure 机器学习中,现在可以在提示流中实现 RAG。 对 RAG 的支持目前以公共预览版提供。
本文列出了 RAG 的一些优势,提供了技术概述,并介绍了 Azure 机器学习中的 RAG 支持。
注意
不熟悉 LLM 和 RAG 的概念? Microsoft 演示文稿中的此 视频剪辑 提供了一个简单的说明。
为何使用 RAG?
传统上,使用时间点数据训练基本模型,以确保其执行特定任务并适应所需域的有效性。 然而,有时需要处理更新或更多现有数据。 有两种方法可以补充基本模型:使用新数据对基本模型进行微调或进一步训练,或者使用即时工程实时补充或指导模型的 RAG。
微调适用于连续领域适应,可显著提高模型质量,但通常会产生更高的成本。 相反,RAG 提供了一种替代方法,允许对提示中提供的新数据使用与推理引擎相同的模型。 此方法支持上下文中学习,而无需进行昂贵的微调,使企业能够更高效地使用 LLM。
通过 RAG,企业可实现自定义解决方案,同时保持数据相关性并优化成本。 通过采用 RAG,公司可以使用 LLM 的推理功能,利用其现有模型处理和生成基于新数据的响应。 RAG 有助于定期更新数据,而无需进行微调,从而简化了 LLM 与业务的集成。
- 向 LLM 提供补充数据作为指令或提示
- 在现有模型上添加事实检查组件
- 使用最新数据训练模型,且不会产生与微调相关的额外时间和成本
- 使用业务特定数据进行训练
大型语言模型(LLM)上使用RAG的技术概述
在信息检索中,RAG 是一种方法,让你能够将 LLM 的强大功能与你的数据配合使用。 要启用 LLM 以访问自定义数据,请执行以下步骤。 首先,将大数据分块成可管理的部分。 其次,将区块转换为可搜索格式。 第三,将转换后的数据存储在允许高效访问的位置。 此外,在 LLM 提供响应时保存相关的引文或引用元数据。
让我们更详细地查看关系图。
源数据:此数据存在于计算机上的文件或文件夹中、云存储中的文件、Azure 机器学习数据资产、Git 存储库或 SQL 数据库。
数据分块:将源中的数据转换为纯文本。 例如,需要打开单词文档或 PDF 并将其转换为文本。 然后,将文本分块成较小的部分。
将文本转换为向量:称为嵌入。 矢量是转换为数字序列的概念的数值表示形式,它使计算机能够轻松理解这些概念之间的关系。
源数据和嵌入之间的链接:将此信息存储为所创建的区块上的元数据。 使用它来协助 LLM 在生成响应的同时生成引用。
RAG 与 Azure 机器学习(预览版)
Azure 机器学习通过在 Microsoft Foundry 模型中与 Azure OpenAI 集成实现 RAG,实现大型语言模型和矢量化。 它支持 Faiss 和 Azure AI 搜索(前称为认知搜索)作为矢量存储。 它还支持开放源代码产品/服务、工具和框架,例如用于数据分块的 LangChain。
若要实现 RAG,必须满足一些关键要求。 首先,以一种允许高效搜索的方式设置数据的格式,然后再将其发送到 LLM,从而最终减少令牌消耗。 若要确保 RAG 的有效性,请定期更新数据。 此外,使用数据评估 LLM 输出的功能使你能够衡量技术的有效性。 Azure 机器学习不仅使你能够轻松地在这些方面上手,还使你能够改进和生产化 RAG。 Azure 机器学习提供:
- 启动基于 RAG 的 Q&A 场景的示例。
- 基于向导的 UI 体验,用于创建和管理数据并将其融入到提示流中。
- 能够度量和增强 RAG 工作流,包括测试数据生成、自动提示创建和可视化提示评估指标。
- 使用新的内置 RAG 组件在笔记本中创建自定义管道,实现具有更多控制的高级场景。
- 代码体验,允许利用使用 LangChain 等开源产品/服务创建的数据。
- 使用管道和作业将 RAG 工作流无缝集成到 MLOps 工作流中。
结束语
借助 Azure 机器学习,可以使用 Azure 机器学习工作室或使用 Azure 机器学习管道编写代码,将 RAG 合并到 AI 解决方案中。 它提供多个价值增值功能,例如测量和增强 RAG 工作流、生成测试数据、自动创建提示,以及提示评估指标的可视化。 它允许使用管道将 RAG 工作流集成到 MLOps 工作流。 此外,还可以将数据与 LangChain 等开源产品/服务配合使用。
后续步骤
将向量存储与 Azure 机器学习一起使用(预览版)