Azure Machine Learning - 搜索中的语义排名

目录

    • 什么是语义排名?
    • 语义排名的工作原理
      • 如何收集和总结输入
      • 语义排名的输出
      • 如何对摘要进行评分
    • 语义功能和限制

在 Azure AI 搜索中,“语义排名”通过使用语言理解对搜索结果重新排名来显著提高搜索相关性, 本文概括性地介绍了语义排名工作原理。

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

什么是语义排名?

语义排名是一组与查询相关的功能,可提高基于文本的查询的初始 [BM25 排名]搜索结果的质量。 针对搜索服务启用它时,语义排名通过两种方式来扩展查询执行管道:

  • 首先,它在使用 BM25 或 RRF 评分的初始结果集的基础上添加了二次排名。 此二次排名使用改写自 Microsoft 必应的多语言深度学习模型来提升在语义上最相关的结果的排名。

  • 其次,它会提取并返回响应中的描述和答案,你可以在搜索页面上呈现它们以改进用户的搜索体验。

下面是语义排名的功能。

功能说明
语义排名使用查询的上下文或语义含义基于预排名的结果计算新的相关性分数。
[语义标题和重点]从文档中提取最能总结内容的逐字句子和短语,并突出显示关键段落,以便于扫描。 当单个内容字段对“搜索结果”页来说过于密集时,用于总结结果的标题就非常有用了。 突出显示的文本会提升最相关的术语和短语,这样用户就能够快速确定匹配被视为相关的原因。
[语义答案]从语义查询返回的可选附加子结构。 它直接回答了类似问题的查询。 它要求文档包含带有答案特征的文本。

语义排名的工作原理

“语义排名”查找词语之间的上下文和相关性,从而提升对查询更有意义的匹配项。

下图说明了这一概念。 请考虑“capital”一词。 它具有不同的含义,具体取决于上下文是财务、法律、地理还是语法。 通过语言理解,语义排名程序可以检测上下文并提升符合查询意向的结果。
file

语义排名既耗费资源又耗费时间。 为了在查询操作的预期延迟内完成处理,向语义排名程序提供的输入将被整合并减少,以便可以尽快完成重新排名步骤。

语义排名有两个步骤:总结和评分。 输出包括重新评分的结果、标题和答案。

如何收集和总结输入

在语义排名中,查询子系统将搜索结果作为摘要和排名模型的输入传递。 由于排名模型具有输入大小约束并且是处理密集型的,因此必须将搜索结果进行结构化(总结)并调整其大小以便高效处理。

  1. 语义排名从文本查询的 [BM25 排名结果]或混合查询的 [RRF 排名结果]开始。 重新排名练习中仅使用文本字段,并且只有前 50 个结果才会进入语义排名,即使结果包含 50 个以上的结果也是如此。 通常,语义排名中使用的字段是信息性和描述性的。

  2. 对于搜索结果中的每个文档,摘要模型最多接受 2000 个标记,其中一个标记大约为 10 个字符。 输入由[语义配置]中列出的“标题”、“关键字”和“内容”字段组合而成。

  3. 过长的字符串会被剪裁,以确保总长度满足摘要步骤的输入要求。 此剪裁练习演示了为什么必须按优先级顺序向语义配置添加字段。 如果你的文档非常大,其中的字段包含大量文本,则会忽略超过最大限制的任何内容。

    语义字段标记限制
    “title”128 个标记
    "关键字128 个标记
    “内容”剩余标记
  4. 摘要输出是每个文档的摘要字符串,由每个字段中最相关的信息组成。 摘要字符串将发送到排名程序进行评分,并发送到计算机阅读理解模型以获取标题和答案。

    传递给语义排名程序的每个生成的摘要字符串的最大长度为 256 个标记。

语义排名的输出

从每个摘要字符串中,计算机阅读理解模型查找最有代表性的段落。

输出为:

  • 文档的[语义标题]。 每个标题都有普通文本版本和突出显示版本,在每个文档中通常少于 200 字。

  • 一个可选的[语义答案],假设你指定了 answers 参数,查询以问题的形式提出,并且在长字符串中找到了一个段落,该段落提供了此问题的可能答案。

标题和答案始终是索引中的逐字文本。 此工作流中没有可创建或撰写新内容的生成式 AI 模型。

如何对摘要进行评分

评分是针对标题以及用于填充长度为 256 个标记的摘要字符串中的任何其他内容执行的。

  1. 根据所提供的查询,对标题的概念和语义相关性进行评估。

  2. @search.rerankerScore 根据给定查询的文档的语义相关性分配给每个文档。 分数范围从 4 到 0(从高到低),分数越高表示相关性越高。

  3. 匹配项按分数降序列出,并且包含在查询响应有效负载中。 有效负载包括答案、普通文本标题和突出显示的标题,以及标记为可检索的任何字段或在 select 子句中指定的任何字段。

语义功能和限制

语义排名是一项较新的技术,因此,对它能够做什么和不能做什么设定期望非常重要。 它能够做什么:

  • 提升在语义上更接近原始查询意向的匹配项。

  • 查找要用作标题和答案的字符串。 标题和答案在响应中返回,并且可以在搜索结果页上呈现。

语义排名不能做的是,在整个语料库上重新运行查询来查找语义上相关的结果。 语义排名会对现有结果集重新排名,该结果集由按默认排名算法评分的前 50 个结果组成。 另外,语义排名无法创建新的信息或字符串。 标题和答案是从内容逐字提取的,因此,如果结果不包含与答案类似的文本,则语言模型不会生成它。

虽然语义排名并非在每种情况下都有益处,但某些内容可以显著受益于其功能。 语义排名中的语言模型最适用于信息丰富并且为散文结构的可搜索内容。 知识库、联机文档或包含描述性内容的文档可从语义排名功能获得最大收益。

基础技术来自必应和 Microsoft Research,并已作为附加产品功能集成到 Azure AI 搜索基础结构中。 有关用于支持语义排名的研究和 AI 投入的详细信息,请参阅必应的 AI 功能如何为 Azure AI 搜索提供支持(Microsoft Research 博客)。

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

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

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

相关文章

Arthas 监听 Docker 部署的java项目CPU占比高的信息

1、Linux上安装Arthas wget https://alibaba.github.io/arthas/arthas-boot.jar2、docker ps 查看目标项目的容器ID 3、copy Arthas 到目标容器中 (注意有 😕 ) docker cp arthas-boot.jar d97e8666666:/4、进入到目标容器目录中 docker exec -it d97e8666666 /b…

5-7求三种数的和

#include<stdio.h> int main(){double sum10;double sum20;double sum30;double sum;int i;for(i1;i<100;i){sum1sum1i;}printf("sum1结果是&#xff1a;%15.6f\n",sum1);for(i1;i<50;i){sum2sum2i*i;}printf("sum2结果是&#xff1a;%15.6f\n"…

Oracle:poor sql导致的latch: cache buffers chains案例

巡检时&#xff0c;执行如下sql发现长会话&#xff1a; SELECT SE.SID,SE.SERIAL#,TO_CHAR(LOGON_TIME,YYYY-MM-DD HH24:MI:SS),SE.STATUS,SE.OSUSER,SE.MACHINE,SE.PROGRAM,SE.BLOCKING_SESSION, SE.SQL_ID,SE.PREV_SQL_ID ,SE.EVENT,SE.P1TEXT,SE.P1,SE.P2TEXT,SE.P2,SE.P3…

visionOS空间计算实战开发教程Day 4 初识ImmersiveSpace

细心的读者会发现在在​​Day1​​​和​​Day2​​​的示例中我们使用的都是​​WindowGroup​​。 main struct visionOSDemoApp: App {var body: some Scene {WindowGroup {ContentView()}} } 本节我们来认识在visionOS开发中会经常用到的另一个概念​​ImmersiveSpace​​…

Spark---集群搭建

Standalone集群搭建与Spark on Yarn配置 1、Standalone Standalone集群是Spark自带的资源调度框架&#xff0c;支持分布式搭建&#xff0c;这里建议搭建Standalone节点数为3台&#xff0c;1台master节点&#xff0c;2台worker节点&#xff0c;这虚拟机中每台节点的内存至少给…

transformer之KV Cache

一、为什么要研究KV Cache 非常有效的加速推理速度&#xff0c;效果如下所示&#xff1a; import numpy as np import time import torch from transformers import AutoModelForCausalLM, AutoTokenizer NAME_OR_PATH r*************** device "cuda" if torch.cu…

中职组网络安全 Server-Hun-1.img Server-Hun-2.img

一串密码 smbuser用户和密码登录ssh还是失败提示需要密钥&#xff0c;尝试ftp登录成功 发现密钥存放在.ssh/下&#xff0c;在kali上生成一个密钥&#xff0c;通过上传到.ssh/下&#xff0c;将其替换掉 使用kali生成密钥 登录成功,但是无法拿到root目录下的flag 获取root用户权限…

电子学会C/C++编程等级考试2022年12月(一级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:加一 输入一个整数x,输出这个整数加1后的值,即x+1的值。 时间限制:1000 内存限制:65536输入 一个整数x(0 ≤ x ≤ 1000)。输出 按题目要求输出一个整数。样例输入 9样例输出 10 答案: //参考答案: #include<bits/st…

鸿蒙4.0开发笔记之DevEco Studio页面操作router的pushUrl页面跳转与back返回上一页(五)

一、认识组件 关于HarmonyOS中ArkTS的基础组件请参见文章鸿蒙4.0开发笔记之ArkTs语言基础与基本组件结构&#xff08;四&#xff09; 二、实现页面跳转pushUrl 1、操作说明 实现页面跳转的核心便是router.pushUrl的调用&#xff0c;操作起来也很简单&#xff0c;总共就四步…

Laravel 安装(笔记一)

目录 第一步、Laravel 一般使用 composer安装 第二步、使用composer安装项目 第三步、配置环境 第四步、访问域名&#xff0c;安装完成 Laravel 官网 l​​​​​​​Installation - Laravel 中文网 为 Web 工匠创造的 PHP 框架 第一步、Laravel 一般使用 composer安装 如…

13.求面积[有问题]

#include<stdio.h> #include<math.h> #include<bits/stdc.h> using namespace std;void fun(double a,b,c) {double p,c;p (abc)/2;c sqrt(p*(p-a)*(p-b)*(p-c));printf("面积是&#xff1a;%lf",c); }int main(){double a,b,c;scanf("%lf,%…

《golang设计模式》第三部分·行为型模式-06-备忘录模式(Memento)

文章目录 1. 概述1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 备忘录&#xff08;Memento&#xff09;用于在不破坏目标对象封装特性的基础上&#xff0c;将目标对象内部的状态存储到外部对象中&#xff0c;以备之后恢复状态时使用。 1.1 角色 Originato…

如何访问linux上的web服务

1.获取服务运行端口 例如8080 2.如果时vmware 需要先配置转发端口和主机ip 主机ip需要未使用的 例如&#xff1a; 3.查看虚拟机防火墙设置 centos8 为例 &#xff1a; firewall-cmd --zonepublic --list-ports 查看放通端口 如果没有放通 firewall-cmd --zonepublic --add-p…

微信小程序蓝牙连接 uniApp蓝牙连接设备

蓝牙列表期待效果 代码 <template><view class"bluetooth-list"><view class"align-items option" style"justify-content: space-between;" v-for"item in bluetoothList" :key"item.deviceId"><vie…

游戏开发团队配置与协作流程

游戏开发技术图谱 - 知乎 游戏制作的流程是什么啊&#xff1f; - 知乎 系统策划&#xff1a;一张图梳理游戏系统的生产流程 - 知乎 游戏开发入门&#xff08;十一&#xff09;游戏引擎架构-CSDN博客

全局定制序列化

作用:将返回实体类中的属性如果为null 变成"" package com.example.micrweb.config;import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.ObjectMapper; import com.f…

Kubernetes(k8s)之Pod详解

文章目录 Kubernetes之Pod详解一、Pod介绍pod结构pod定义 二、Pod配置pod基本配置镜像拉取策略启动命令环境变量端口设置资源配额 三、Pod生命周期创建和终止初始化容器钩子函数容器探测重启策略 四、Pod调度定向调度NodeNameNodeSelector 亲和性调度NodeAffinityPodAffinityPo…

风电场叶片运输车模型-FBX格式-带动画-数字孪生场景搭建

FBX格式的风电场中叶片运输车辆模型&#xff0c;按照真实尺寸建模&#xff0c;车辆多个部位带动画效果&#xff0c;适用于风电场三维数字化场景和风电场数字孪生使用&#xff0c;也可以用来作为各种三维平台的测试模型。 模型效果图 下载地址 叶片运输车模型下载地址

php生成xml数据

在PHP中&#xff0c;你可以使用以下几种方法生成XML数据&#xff1a; 使用DOM扩展&#xff1a; $xml new DOMDocument(1.0, UTF-8); $root $xml->createElement(root); $xml->appendChild($root); $child $xml->createElement(child); $root->appendChild($ch…

stm32定时器输入捕获模式

频率测量 频率测量有两种方法 测频法&#xff1a;在闸门时间T内&#xff0c;对上升沿或下降沿计次&#xff0c;得到N&#xff0c;则评率fxN/T测周法&#xff1a;两个上升沿内&#xff0c;以标准频率fc计次得到N&#xff0c;则频率fx fc/N中界频率&#xff1a;测频法和测周法误…