Azure 机器学习中的矢量存储(预览版)
重要
此功能目前处于公开预览状态。 此预览版在提供时没有附带服务级别协议,我们不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。
有关详细信息,请参阅适用于 Azure 预览版的补充使用条款。
本文介绍 Azure 机器学习中可用于执行检索增强生成 (RAG) 的矢量索引。 矢量索引存储的嵌入是将概念(数据)的数字表示形式转换为数字序列。 嵌入使大型语言模型 (LLM) 能够理解概念之间的关系。 可以创建矢量存储以将数据与 GPT-4 等 LLM 连接起来,并有效地检索数据。
Azure 机器学习支持两种矢量存储,它们包含 RAG 工作流中使用的补充数据:
矢量存储 | 说明 | 功能和用法 |
---|---|---|
Faiss | 开源库 | - 使用基于本地文件的存储 - 成本极低 - 支持仅矢量数据 - 支持开发和测试 |
Azure AI 搜索 | Azure PaaS 资源 | - 将文本数据存储在搜索索引中 - 使用单一服务托管大量索引 - 支持企业级业务要求 - 访问混合信息检索 |
以下部分介绍使用这些矢量存储时的注意事项。
Faiss 库
Faiss 是一个开源代码库,提供基于本地文件的存储。 矢量索引存储在 Azure 机器学习工作区的 Azure 存储帐户中。 若要使用 Faiss,需要下载该库并将其用作解决方案的组件。 由于索引存储在本地,因此成本极低。
可以使用 Faiss 库作为矢量存储并执行以下操作:
将矢量数据存储在本地,无需创建索引的成本(仅产生存储成本)
在内存中生成和查询索引
共享副本供个人使用,并配置应用程序索引的托管
使用基础计算加载索引进行缩放
Azure AI 搜索
Azure AI 搜索(以前称为认知搜索)是在 Azure 订阅中创建的专用 Azure PaaS 资源。 该资源支持对存储在搜索索引中的矢量和文本数据进行信息检索。 提示流可以创建、填充和查询存储在 Azure AI 搜索中的矢量数据。 单个搜索服务可以托管大量索引,可在 RAG 模式中查询和使用它们。
下面是有关将 Azure AI 搜索用于矢量存储的一些要点:
支持企业级业务对规模、安全性和可用性的要求。
访问混合信息检索。 矢量数据可以与非矢量数据共存,这意味着可以使用任何 Azure AI 搜索功能进行索引和查询,包括混合搜索和语义重排。
请记住,矢量支持目前以预览版提供。 目前,必须在外部生成矢量,然后传递给 Azure AI 搜索进行索引和查询编码。 该提示流会为你处理这些转换。
若要将 AI 搜索用作 Azure 机器学习的矢量存储,你必须具有搜索服务。 服务存在且你被授予开发人员访问权限后,可以选择“Azure AI 搜索”作为提示流中的矢量索引。 该提示流会在 Azure AI 搜索上创建索引,从源数据生成矢量,将矢量发送到索引,在 Azure AI 搜索中调用相似性搜索,并返回响应。