Azure 机器学习中的矢量存储(预览版)

重要

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

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

本文介绍 Azure 机器学习中可用于执行检索增强生成 (RAG) 的矢量索引。 矢量索引存储的嵌入是将概念(数据)的数字表示形式转换为数字序列。 嵌入使大型语言模型 (LLM) 能够理解概念之间的关系。 可以创建矢量存储以将数据与 GPT-4 等 LLM 连接起来,并有效地检索数据。

Azure 机器学习支持两种矢量存储,它们包含 RAG 工作流中使用的补充数据:

矢量存储 说明 功能和用法
Faiss 开源库 - 使用基于本地文件的存储
- 成本极低
- 支持仅矢量数据
- 支持开发和测试
Azure AI 搜索 Azure PaaS 资源 - 将文本数据存储在搜索索引中
- 使用单一服务托管大量索引
- 支持企业级业务要求
- 访问混合信息检索

以下部分介绍使用这些矢量存储时的注意事项。

Faiss 库

Faiss 是一个开源代码库,提供基于本地文件的存储。 矢量索引存储在 Azure 机器学习工作区的 Azure 存储帐户中。 若要使用 Faiss,需要下载该库并将其用作解决方案的组件。 由于索引存储在本地,因此成本极低。

可以使用 Faiss 库作为矢量存储并执行以下操作:

  • 将矢量数据存储在本地,无需创建索引的成本(仅产生存储成本)

  • 在内存中生成和查询索引

  • 共享副本供个人使用,并配置应用程序索引的托管

  • 使用基础计算加载索引进行缩放

Azure AI 搜索(以前称为认知搜索)是在 Azure 订阅中创建的专用 Azure PaaS 资源。 该资源支持对存储在搜索索引中的矢量和文本数据进行信息检索。 提示流可以创建、填充和查询存储在 Azure AI 搜索中的矢量数据。 单个搜索服务可以托管大量索引,可在 RAG 模式中查询和使用它们。

下面是有关将 Azure AI 搜索用于矢量存储的一些要点:

  • 支持企业级业务对规模、安全性和可用性的要求。

  • 访问混合信息检索。 矢量数据可以与非矢量数据共存,这意味着可以使用任何 Azure AI 搜索功能进行索引和查询,包括混合搜索语义重排

  • 请记住,矢量支持目前以预览版提供。 目前,必须在外部生成矢量,然后传递给 Azure AI 搜索进行索引和查询编码。 该提示流会为你处理这些转换。

若要将 AI 搜索用作 Azure 机器学习的矢量存储,你必须具有搜索服务。 服务存在且你被授予开发人员访问权限后,可以选择“Azure AI 搜索”作为提示流中的矢量索引。 该提示流会在 Azure AI 搜索上创建索引,从源数据生成矢量,将矢量发送到索引,在 Azure AI 搜索中调用相似性搜索,并返回响应。