集成向量化是Azure AI 搜索中的索引和查询管道的扩展。 它添加了以下功能:
- 索引器驱动索引编制期间的矢量编码
- 查询期间的矢量编码
数据分块 不是硬性要求,但除非原始文档较小,否则需要分块以满足嵌入模型的令牌输入要求。
矢量转换是单向的:非向量到向量。 例如,查询或结果没有向量到文本转换,例如将向量结果转换为人工可读字符串,这就是为什么索引包含向量字段和非函数字段的原因。
集成向量化可加快开发速度,并在数据引入和查询时间期间最大程度地减少维护任务,因为必须手动实现的作更少。
在索引编制期间使用集成矢量化
对于集成的数据分块和矢量转换,你依赖于以下组件:
用于接收分块和矢量化内容的搜索索引。
技能组,配置用于:
分块策略:文本分割技能、文档布局技能、Azure内容理解技能或者其中一种文档解析模式。
一种嵌入技能,用于生成矢量数组,可以是以下任何一种:
自定义技能指向在 Azure 或其他站点上的另一嵌入模型。
Azure视觉多模式嵌入技能(预览),该技能指向用于Azure视觉的多模式 API。
在查询中使用集成矢量化
在查询期间进行文本到矢量的转换时,需要依赖以下组件:
一个指定一个或多个矢量字段的查询。
在查询时转换为矢量的文本字符串。
矢量化器,在索引架构中定义,已分配到矢量字段,在查询时自动用来将文本查询转换为矢量。 设置的矢量化器必须与用于对内容进行编码的嵌入模型匹配。
嵌入技能 矢量化器 自定义技能 自定义 Web API 矢量器 Azure视觉多模式嵌入技能(预览版) Azure 视觉向量器
组件图
下图显示了集成矢量化的组件。
工作流是索引器管道。 索引器从支持的数据源检索数据,并通过调用 Azure AI 服务或自定义代码进行文本到矢量转换或其他处理,以此启动数据扩展(或应用 AI)。
此图重点介绍集成矢量化,但你的解决方案并不局限于此列表。 可以添加其他 AI 扩充技能、创建知识存储、添加语义排名、添加相关性优化和其他查询功能。
可用性和定价
集成矢量化在所有区域和层中都可用。 但是,如果使用技能和向量器进行 AI 扩充,则区域要求可能适用。 有关详细信息,请参阅 将 AI 服务资源附加到技能集。
如果使用自定义技能和 Azure 托管机制(例如 Azure 函数应用、Azure Web 应用 和 Azure Kubernetes),请检查 Azure 产品按区域页面 以获取功能的可用性信息。
数据分块(文本拆分技能)是免费的,在所有区域的所有Azure AI 服务都可用。
注意
在 2019 年 1 月 1 日之前创建的一些较旧搜索服务部署在不支持矢量工作负载的基础结构上。 如果你在尝试将矢量字段添加到架构时收到错误,则原因是服务已过时。 在这种情况下,您必须创建新的搜索服务以试用向量特征。
集成矢量化支持哪些场景?
将大型文档划分为区块,这对于矢量和非矢量方案很有用。 对于矢量方案,块可帮助你满足嵌入模型的输入约束。 对于非向量场景,可以使用一个聊天式搜索应用,其中的 GPT 从已索引的片段中组合响应。 可以使用矢量化区块或非矢量化区块进行聊天式搜索。
生成一个矢量存储,其中的所有字段都是矢量字段,只有文档 ID(搜索索引所需)是字符串字段。 查询矢量存储以检索文档 ID,然后将文档的向量字段发送到另一个模型。
组合矢量和文本字段来执行提供或不提供语义排名的混合搜索。 集成矢量化简化了矢量搜索支持的所有方案。
如何使用集成矢量化
对于仅限查询的矢量化:
更常见的方案 - 在索引编制期间进行数据分块和矢量化:
- 与支持的数据源建立数据源连接,以进行基于索引器的索引编制。
- 创建一个技能集 ,用于调用文本拆分技能进行分块,并创建另一个嵌入技能来向量化区块。
- 创建一个索引,用于在查询时指定一个矢量化器,并将其分配到矢量字段。
- 创建一个索引器以驱动从数据检索到技能组执行,再到索引编制的整个流程。 我们建议按计划运行索引器,以选取已更改的文档或由于限制而遗漏的任何文档。
(可选)对于分块内容位于一个索引中但非分块内容位于另一个索引中的高级方案,请创建辅助索引。 分块索引(或次要索引)对于 RAG 应用非常有用。
提示
请在 Azure 门户中尝试使用< Import 数据 向导>,以便在编写任何代码之前探索集成向量化。
与向量器和模型的安全连接
如果您的架构需要绕过互联网的专用连接,那么可以创建一个技能在索引和查询时用于向量化器的共享专用链接连接到嵌入模型。
共享专用链接仅适用于Azure到Azure连接。 对于矢量化方案,可以使用:
优点
下面是集成矢量化的一些重要优势:
没有单独的数据分块和矢量化管道。 代码更易于编写和维护。
实现端到端自动索引。 当源中的数据发生更改(例如在 Azure 存储、Azure SQL 或 Cosmos DB 中),索引器可以将这些更新通过整个管道传递,包括从数据检索到文档解析,并通过可选的 AI 增强、数据分块、向量化,到最终的索引。
批处理和重试逻辑是内置的(不可配置的)。 Azure AI 搜索具有内部重试策略,用于处理由于Azure AI服务终结点的嵌入模型令牌配额已达上限而引发的限制错误。 建议将索引器放在时间表上(例如每 5 分钟),这样索引器可以处理被 Azure AI 服务终结点限制的任何调用,无论重试策略如何。
将分块的内容投影到次要索引。 次要索引的创建方式与创建任何搜索索引(包含字段和其他构造的架构)一样,但索引器会将它们与主要索引一起填充。 在同一索引编制运行期间,每个源文档的内容都会流向主要和次要索引中的字段。
辅助索引旨在用于问答或聊天样式应用。 辅助索引包含更具体的匹配项的精细信息,但父索引包含更多信息,并且通常可以生成更完整的答案。 在辅助索引中找到匹配项后,查询会从主索引返回父文档。 例如,假设将一个大型 PDF 文件用作源文档,则主索引可能包含基本信息(标题、日期、作者、描述),而辅助索引则包含可搜索的内容块。
限制
在 Azure AI 搜索 上,请记住,不同的层级和工作负荷都有相应的 服务限制。