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.pswp.cn/news/161480.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161480.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161480.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Nodejs JavaScript 字符串加密

情景 問題的場景是這樣的:我們需要在瀏覽器cookie中存儲用戶名,但又不想直接明文存儲,所以對它進行了簡單的加密存儲。 因為是簡單的加密,目的只是不希望明文存儲。我們使用了Base64 編碼,使得cookie里的存儲不可只讀…

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"…

TS是什么、為什么、怎么辦

TS是什么 javascript程序的靜態類型檢查器 為什么要用TS js編寫時在預期不同類型值的地方使用了某種類型的值&#xff0c;導致常見的類型錯誤 js只能提供動態類型&#xff0c;也就是運行一下代碼才能知道發生了什么&#xff0c;需要靜態類型的檢查 TS怎么用 1、安裝vscode…

連接服務器的腳本

對于記不住的服務器密碼且不愿用三方工具俺簡單寫了個腳本&#xff08;檢測下最近shell腳本的學習效果咋樣&#xff09; expect 是處理交互的一種腳本語言&#xff0c;spawn啟動指定進程 -> expect獲取指定關鍵字 -> send想指定進程發送指定指令 -> 執行完成后退出 sp…

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…

LeetCode1161. Maximum Level Sum of a Binary Tree

文章目錄 一、題目二、題解 一、題目 Given the root of a binary tree, the level of its root is 1, the level of its children is 2, and so on. Return the smallest level x such that the sum of all the values of nodes at level x is maximal. Example 1: Input:…

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…

opencv-常用代碼

以下是一些OpenCV中常用的代碼片段&#xff0c;涵蓋了一些基本的圖像處理和計算機視覺任務。 加載和顯示圖像: import cv2# 讀取圖像 img cv2.imread(image.jpg)# 顯示圖像 cv2.imshow(Image, img) cv2.waitKey(0) cv2.destroyAllWindows()調整圖像大小: resized_img cv2.res…

鴻蒙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…

【洛谷 B2008】計算 (a+b)×c 的值 題解(順序結構+四則運算)

計算 (ab)c 的值 題目描述 給定 3 3 3 個整數 a , b , c a,b,c a,b,c&#xff0c;計算表達式 ( a b ) c (ab) \times c (ab)c 的值。 輸入格式 輸入僅一行&#xff0c;包括三個整數 a , b , c a,b,c a,b,c&#xff0c;數與數之間以一個空格分開。 輸出格式 輸出一行…

如何訪問linux上的web服務

1.獲取服務運行端口 例如8080 2.如果時vmware 需要先配置轉發端口和主機ip 主機ip需要未使用的 例如&#xff1a; 3.查看虛擬機防火墻設置 centos8 為例 &#xff1a; firewall-cmd --zonepublic --list-ports 查看放通端口 如果沒有放通 firewall-cmd --zonepublic --add-p…

04 if進階

elif 否則如果 如果條件沒有滿足 會繼續進入“否則如果”里面判斷 只要滿足一個條件 條件判斷立即終止 chinese 100 if chinese 100:print("我們去迪士尼玩")elif chinese > 90:print("我們去朱雀森林公園")else:print("回家寫作業")if n…