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

news2024/11/15 17:55:23

在基于索引器的索引编制中,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.coloradmin.cn/o/1227425.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

栈与队列:设计循环队列

目录 题目🔥: 数据模型: 本题大意: 思路分析: 代码分析: 一、定义队列 二、初始化、判断队列的空和满⭐ 初始化: 空满的判断: 三、入队和出队🎇 入队&…

LeetCode【32】最长的有效括号

题目: 思路: 括号字符串依次入栈,删除匹配的成对括号。最后栈中留下的都是无法匹配的断点。这些断点的差值减一就是断点间有效括号串的长度,取这些长度的最大值即可。 例如括号字符串 “)()((())(”,最后留在栈中的…

比Postman强在哪里

Postman的受众对象主要是广大开发人员,调测使用,它并不能完全满足专业测试人员需求,而自动化测试平台可以 1,Postman,Jmter是单机版软件,类似打游戏你和电脑PK,而很多时候是要联网和其他人团队作…

LeetCode【36】有效的数独

题目: 思路: https://blog.51cto.com/u_15072778/3788083 代码: public boolean isValidSudoku(char[][] board) {// 二维数组第一个标识 0-9行,第二个表示 0-9数字,存的内容boolean 表示第0-9行,0-9这些…

系列十二、强引用、软引用、弱引用、虚引用分别是什么?

一、整体架构 二、强引用(默认支持模式) 2.1、概述 当内存不足时,JVM开始垃圾回收,对于强引用的对象,就算是出现了OOM也不会对该对象进行回收,死都不收。 强引用是我们最常见的普通对象引用,只…

INFINI Labs 产品更新 | 发布 Easysearch Java 客户端,Console 支持 SQL 查询等功能

近年来,日志管理平台越来越流行。使用日志管理平台可以实时地、统一地、方便地管理和查看日志,挖掘日志数据价值,驱动运维、运营,提升服务管理效率。 方案架构 Beats 是轻量级采集器,包括 Filebeat、Metricbeat 等。E…

我叫:选择排序【JAVA】

1.我是个啥子?? 选择式排序:属于内部排序法,从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。 2.我的思想 基本思想:第一次从arr[0]~arr[n-1]中选取最小值,与arr[0]交换,第…

【Promise12数据集】Promise12数据集介绍和预处理

【Segment Anything Model】做分割的专栏链接,欢迎来学习。 【博主微信】cvxiayixiao 本专栏为公开数据集的介绍和预处理,持续更新中。 要是只想把Promise12数据集的raw形式分割为png形式,快速导航,直接看2,4标题即可 …

个人博客添加访问人数以及访问时间-githubpage

layout: post # 使用的布局(不需要改) title: 个人博客添加访问人数以及访问时间 # 标题 subtitle: 个人博客优化 #副标题 date: 2023-11-18 # 时间 author: BY ThreeStones1029 # 作者 header-img: img/about_bg.jpg #这篇文章标题背景图片 catalog: tr…

centos7 探测某个tcp端口是否在监听

脚本 nc -vz 192.168.3.128 60001 if [ $? -eq 0 ]; thenecho "tcp succeed" elseecho "tcp failed" fi nc -vz 192.168.3.128 60001 探测192.168.3.128服务器上60001 tcp端口, -vz说明是探测TCP的 端口开启的情况 执行脚本 端口禁用情况 执行脚本

054-第三代软件开发-信号槽

第三代软件开发-信号槽 文章目录 第三代软件开发-信号槽项目介绍信号槽实现原理与MFC消息映射机制区别Qt信号槽机制的优缺点 关键字: Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML&#x…

Vue中实现div的任意移动

前言 在系统应用中,像图片,流程预览及打印预览等情况,当前视窗无法全部显示要预览的全部内容,设置左右和上下滚动条后,如果用鼠标拖动滚动条,又不太便利,如何用鼠标随意的移动呢? …

Apache ECharts简介

二十九、Apache ECharts 29.1 介绍 Apache ECharts 是一款基于 JavaScript 的数据可视化图表库,提供直观、生动、可交互、可个性化定制的数据可视化图表。 官网地址:https://echarts.apache.org/zh/index.html 常见效果展示: 1). 柱形图 …

定点整数、小数

文章目录 一、定点整数二、定点小数三、定点小数的加/减运算 一、定点整数 二、定点小数 三、定点小数的加/减运算 对两个定点小数A、B进行加法/减法时,需要先转换为补码 计算机硬件如何做定点小数补码的加法:从最低位开始,按位相加&#x…

【评估分级方法】自然断点法(Python实现全代码)

自然断点法 自然断点法有两个称呼,一个就是直接英文名称,叫做“Natural Breaks”,这就不解释了,还有一个称呼就是ArcGIS里面用的,叫做“Jenks”,主要是来源于它的创造者:乔治弗雷德里克詹克斯&…

Vulhub靶场-KIOPTRIX: LEVEL 1.1

目录 环境配置 端口扫描 漏送发现 漏送利用 提权(内核漏洞提权) 环境配置 环境配置的过程同主页该专栏第一个靶场,不在赘述。 端口扫描 首先通过arp-scan并根据靶机的mac地址确定靶机的IP地址 然后对靶机进行一个扫描 首先扫描到OpenS…

自动驾驶学习笔记(九)——车辆控制

#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 控制器设计 比例积分微分控制 线性…

NI Package Manager创建程序包

NI Package Manager创建程序包 要使用PackageManager创建程序包,即把相关的组件都放在一个目录下,使用命令行创建程序包。 程序包是一个压缩文件,包含要安装到目标位置的所有文件。Package Manager创建的程序包扩展名为.nipkg。可以使用Pack…

QFile文件读写操作QFileInFo文件信息读取

点击按钮选择路径,路径显示在lineEdit中 将路径下的文件的内容放在textEdit中 最后显示出来 !file.atend()//没有读到文件尾就一直读 file.readline表示按行进行读 追加的方式进行写 要是重新写的话用file.open(QIODevice::write) 用QFileInFo来读取…

微服务实战系列之Gateway

前言 人类世界自工业革命以来,无论从金融、货币、制度,还是科技、资源、社会各个方面,都发生了翻天覆地的变化。物质极大丰富,从而也推动了科技的极速发展。当计算机问世也仅仅不到80年,而如今我们的生活处处有它的影子…