Azure Machine Learning - Azure AI 搜索中的集成数据分块和嵌入

在基于索引器的索引编制中,Azure AI _集成矢量化_将数据分块和文本到矢量嵌入添加到技能中,它还为查询添加文本到矢量的转换。

关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。

file

一、组件图

下图显示了集成矢量化的组件。

file

下面是负责集成矢量化的组件清单:

  • 基于索引器的索引编制支持的数据源。
  • 一个用于指定矢量字段的索引,以及一个分配到矢量字段的矢量化器定义。
  • 一个用于为数据分块提供文本拆分技能的技能组,以及一个矢量化技能(AzureOpenAiEmbedding 技能,或指向外部嵌入模型的自定义技能)。
  • (可选)用于将分块数据推送到次要索引的索引投影(也在技能组中定义)
  • 一个嵌入模型,部署在 Azure OpenAI 上或通过 HTTP 终结点提供。
  • 一个用于端到端驱动流程的索引器。 索引器还指定用于进行更改检测的计划、字段映射和属性。

此清单主要与集成矢量化有关,但你的解决方案并不局限于此列表。 可以添加其他 AI 扩充技能、创建知识存储、添加语义排名、添加相关性优化和其他查询功能。

二、可用性和定价

集成矢量化可用性基于嵌入模型。 如果使用的是 Azure OpenAI,请查看区域可用性。

如果使用的是自定义技能和 Azure 托管机制(例如 Azure 函数应用、Azure Web 应用和 Azure Kubernetes),请查看各区域上市的产品页以了解功能可用性。

数据分块(文本拆分技能)是免费的,已在所有区域的所有 Azure AI 服务中提供。

三、集成矢量化支持哪些方案?

  • 将大型文档划分为块,这对于矢量和非矢量方案很有用。 对于矢量方案,块可帮助你满足嵌入模型的输入约束。 对于非矢量方案,你可能会使用一个聊天式搜索应用,其中的 GPT 从编制了索引的块中组合响应。 可以使用矢量化块或非矢量化块进行聊天式搜索。

  • 生成一个矢量存储,其中的所有字段都是矢量字段,只有文档 ID(搜索索引所需)是字符串字段。 查询矢量索引以检索文档 ID,然后将文档的矢量字段发送到另一个模型。

  • 组合矢量和文本字段来执行提供或不提供语义排名的混合搜索。 集成矢量化简化了[矢量搜索支持的所有方案]

四、何时使用集成矢量化

我们建议使用 Azure AI Studio 的内置矢量化支持。 如果此方法不能满足你的需求,你可以创建索引器和技能组,以便使用 Azure AI 搜索的编程接口调用集成矢量化。

五、如何使用集成矢量化

对于仅限查询的矢量化:

  1. 将一个[矢量化器添加]到索引。 它应该与用于在索引中生成矢量的嵌入模型相同。
  2. 将[矢量化器分配]到矢量字段。
  3. [构建矢量查询],用于指定要矢量化的文本字符串。

更常见的方案 - 在索引编制期间进行数据分块和矢量化:

  1. 与支持的数据源[建立数据源连接],以进行基于索引器的索引编制。
  2. [创建一个技能组],用于调用[文本拆分技能]进行分块,并调用 [AzureOpenAIEmbeddingModel]或自定义技能来将块矢量化。
  3. [创建一个索引]用于指定查询时间的[矢量化器],并将其分配到矢量字段。
  4. [创建一个索引器]以驱动从数据检索到技能组执行,再到索引编制的整个流程。

六、限制

确保了解[嵌入模型的 Azure OpenAI 配额和限制]。 Azure AI 搜索具有重试策略,但如果配额耗尽,重试会失败。

Azure OpenAI 每分钟令牌数限制是按模型、按订阅计算的。 如果对查询和索引编制工作负载使用嵌入模型,请记住这一点。 在可能的情况下[遵循最佳做法]。 为每个工作负载提供一个嵌入模型,并尝试将其部署在不同的订阅中。

请记住,在 Azure AI 搜索中,存在按层和按工作负载规定的[服务限制]。

最后,目前不支持以下功能:

  • [客户托管的加密密钥]
  • 与矢量化器的[共享专用链接连接]
  • 目前,不提供对集成数据分块和矢量化进行批处理的功能

七、集成矢量化的优势

下面是集成矢量化的一些重要优势:

  • 没有单独的数据分块和矢量化管道。 代码更易于编写和维护。

  • 自动进行端到端索引编制。 当源(例如 Azure 存储、Azure SQL 或 Cosmos DB)中的数据发生更改时,索引器可以在整个管道中传递这些更新(从检索到文档破解,再到可选的 AI 扩充、数据分块、矢量化和索引编制)。

  • 将分块的内容投影到次要索引。 次要索引的创建方式与创建任何搜索索引(包含字段和其他构造的架构)一样,但索引器会将它们与主要索引一起填充。 在同一索引编制运行期间,每个源文档的内容都会流向主要和次要索引中的字段。

    次要索引适用于数据分块和检索增强生成 (RAG) 应用。 假设将一个大型 PDF 文件用作源文档,主要索引可能包含基本信息(标题、日期、作者、描述),而次要索引则包含内容块。 借助数据块级别的矢量化,可以更轻松地查找相关信息(每个块均可搜索)并返回相关响应,尤其是在聊天式搜索应用中。

八、分块索引

分块是将内容划分为可独立处理的较小可管理部分(块)的过程。 如果源文档太大,以至超过了嵌入或大型语言模型的最大输入大小,那么就需要进行分块,但你可能发现,分块能够为 [RAG 模式]和聊天式搜索提供更好的索引结构。

下图显示了分块索引编制的组件。

file

关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/197731.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

webstorm/idea配置leetcode刷题

File -> settings -> Plugins -> 搜索leetcode 安装插件(截图显示我已经安装过了),安装完成后点击OK操作,在编辑器四个边角就会出现一个leetcode的插件 File -> settings -> Tools-> Leetcode plugin 点击…

[C/C++]数据结构 栈和队列()

一:栈 1.1 栈的概念及结构 栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作,进行数据插入和删除操作的一端称为栈顶,另一端称为栈底,栈中的数据元素遵守先进后出的原则. 压栈:栈的插入操作叫做进栈/压栈/入栈,将数据插入栈顶 出栈:栈的删除操作也叫出…

正版软件|Soundop 专业音频编辑器,实现无缝的音频制作工作流程

关于Soundop Soundop 音频编辑器 直观而专业的音频编辑软件,用于录制、编辑、混合和掌握音频内容。 Soundop 是一款适用于 Windows 的专业音频编辑器,可在具有高级功能的直观灵活的工作区中录制、编辑和掌握音频并混音轨道。音频文件编辑器支持波形和频谱…

Unity 场景烘培 ——unity Post-Processing后处理1(四)

提示:文章有错误的地方,还望诸位大神不吝指教! 文章目录 前言一、Post-Processing是什么?二、安装使用Post-Processing1.安装Post-Processing2.使用Post-Processing(1).添加Post-process Volume&#xff08…

车载通信架构 —— 新车载总线类型下(以太网)的通信架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不…

java拼图游戏(待优化)

启动类 package com.yx.ui;public class App { //启动入口public static void main(String[] args) {//如果想要开启一个界面,就创建谁的对象 // new DengJFrame(); // new ZCJFrame();new GameJFrame();}}游戏类 package com.yx.ui;import java.awt.event.KeyEv…

嵌入式 Linux 移植与系统启动方法

1、Linux系统启动与U-Boot 所谓移植就是把程序代码从一种运行环境转移到另一种运行环境。对于内核移植来说,主要是从一种硬件平台转移到另一种硬件平台上运行。 体系结构级别的移植是指在不同体系结构平台上Linux内核的移植,例如,在ARM、MI…

Evil靶场

Evil 1.主机发现 使用命令探测存活主机,80.139是kali的地址,所以靶机地址就是80.134 fping -gaq 192.168.80.0/242.端口扫描 开放80,22端口 nmap -Pn -sV -p- -A 192.168.80.1343.信息收集 访问web界面 路径扫描 gobuster dir -u http…

ForkLift:macOS文件管理器/FTP客户端

ForkLift 是一款macOS下双窗口的文件管理器,可以代替本地的访达。ForkLift同时具备连接Ftp、SFtp、WebDav以及云服务器。 ForkLift还具备访达不具备的小功能,比如从文件夹位置打开终端,显示隐藏文件,制作替换等功能。ForkLift 是一…

解决k8s node节点报错: Failed to watch *v1.Secret: unknown

现象: 这个现象是发生在k8s集群证书过期,重新续签证书以后。 记得master节点的/etc/kubernetes/kubelet.conf文件已经复制到node节点了。 但是为什么还是报这个错,然后运行证书检查命令看一下: 看样子是差/etc/kubernetes/pki/…

八股文-TCP的四次挥手

TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,它的连接的建立和关闭过程都是经过精心设计的。在TCP连接关闭时,使用四次挥手来保证数据的完整传输和连接的正常终止。 漫画TCP的四次挥手 第一次挥手&#…

redis安装(Windows和linux)

如何实现Redis安装与使用的详细教程 Redis 简介 Redis是一个使用C语言编写的开源、高性能、非关系型的键值对存储数据库。它支持多种数据结构,包括字符串、列表、集合、有序集合、哈希表等。Redis的内存操作能力极强,其读写性能非常优秀,且…

PyCharm:PyCharm新建.py文件时自动带出指定内容

在pycharm中加上指定内容,每次新建.py文件都会自动带出指定内容 操作: File—Setting—Editor----File and Code Templates--Python Script 在右侧窗口中加上如下信息 # encoding: utf-8 # author: Jeffrey # file: ${NAME}.py # time: ${DATE} ${TI…

ControlNet原理及应用

《Adding Conditional Control to Text-to-Image Diffusion Models》 目录 1.背景介绍 2.原理详解 2.1 Controlnet 2.2 用于Stable Diffusion的ControlNet 2.3 训练 2.4 推理 3.实验结果 3.1 定性结果 3.2 消融实验 3.3 和之前结果比较 3.4 数据集大小的影响 4.结…

聚观早报 |联想集团Q2财季业绩;小鹏汽车Q3营收

【聚观365】11月17日消息 联想集团Q2财季业绩 小鹏汽车Q3营收 微软发布两款自研AI芯片 FAA批准SpaceX再次发射星际飞船 2023 OPPO开发者大会 联想集团Q2财季业绩 全球数字经济领导企业联想集团公布截至2023年9月30日的2023/24财年第二财季业绩:整体营收达到10…

【ARM Trace32(劳特巴赫) 使用介绍 2.2 -- TRACE32 进阶命令之 DIAG 弹框命令】

请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 上篇文章:【ARM Trace32(劳特巴赫) 使用介绍 2.1 – TRACE32 Practice 脚本 cmm 脚本学习】 下篇文章:【ARM Trace32(劳特巴赫) 使用介绍 3 - trace32 访问运行时的内存】 文章目录 DIALOG.OK 命令DIA…

react之基于@reduxjs/toolkit使用react-redux

react之基于reduxjs/toolkit使用react-redux 一、配置基础环境二、使用React Toolkit 创建 counterStore三、为React注入store四、React组件使用store中的数据五、实现效果六、提交action传递参数七、异步状态操作 一、配置基础环境 1.使用cra快速创建一个react项目 npx crea…

持续集成交付CICD:Jenkins Sharedlibrary 共享库

目录 一、理论 1.共享库 2.共享库配置 3.使用共享库 4.共享库扩展 二、实验 1.连接共享库 2.使用共享库 三、问题 1.路径报错 2.readJSON 报错 一、理论 1.共享库 (1)概念 1)共享库这并不是一个全新的概念,其实在编…

K-Means算法进行分类

已知数据集D中有9个数据点,分别是(1,2),(2,3), (2,1), (3,1),(2,4),(3,5),(4,3),(1,5),(4,2)。采用K-Means算法进行聚类,k2,设初始中心点为(1.1,2.2),(2.3,3.…

【Web】PHP反序列化的一些trick

目录 ①__wakeup绕过 ②加号绕过正则匹配 ③引用绕过相等 ④16进制绕过关键词过滤 ⑤Exception绕过 ⑥字符串逃逸 要中期考试乐(悲) ①__wakeup绕过 反序列化字符串中表示属性数量的值 大于 大括号内实际属性的数量时,wakeup方法会被绕过 (php5-p…