關于對向量檢索研究的一些學習資料整理

官方學習資料

????????主要是的學習資料是,?官方文檔 和官方博客。相關文章還是挺多 挺不錯的 他們更新也比較及時。有最新的東西 都會更新出來。
es scdn官方博客

這里簡單列一些,還有一些其他的,大家自己感興趣去看。

什么是向量數據庫

Elasticsearch:向量數據庫的真相-CSDN博客

什么是向量嵌入

什么是大語言模型(LLM)

什么是語義搜索

向量搜索的優勢

什么是機器學習

關于多模態


????????這個是多模態檢索。目前es只能做文本類轉向量的模型導入。不支持圖片轉向量的模型導入。(clip是雙塔模型,一個負責文本轉向量,一個負責圖片轉向量。我測過了,圖片轉向量模型不支持導入)如果用es做多模態。還是要在外邊部署模型。 整體體驗不好。而且模型導入es,是收費的白金版。 最佳實踐(不付費玩法)應該是完全在外邊做轉向量。 考慮付費,可以用es

學術界前沿的研究對比


????????這個是學術稍微前沿一點的研究。里邊包含的論文,感興趣可以看看。里邊探討對比了關于BM25和向量檢索的效果。還包含稀疏向量相關的知識。

關于稀疏向量

??????? 稠密向量有一個致命問題。 檢索速度,以及做嵌入的速度。太慢,現在最先進的方向是稀疏向量

這里邊有對比 語義檢索 和 BM25的效果對比。(最佳實踐是兩者結合,做內容召回。兩者可以互補)根據官方提供的稀疏向量的模型測試結果如下圖所示,據說20個場景有19個都優遇BM25.

?

這是稀疏向量模型的轉換效果,應該不會多花費空間。它的維度相對低。?

?

這里有我的一篇文章,國內生產實踐經驗帖。ES-ELSER 如何在內網中離線導入ES官方的稀疏向量模型(國內網絡環境下操作方法)-CSDN博客

如何做向量嵌入

????????模型轉向量,簡單來講,是利用機器學習模型把一塊文本(數據),映射到網絡空間內,同樣問題(query)也是用同一個模型,映射到網絡空間內。然后計算cosin值,也就是夾角越小,就越相近。

? ? ? ? 我在生產實踐中,是選擇使用es來的機器學習模塊倒入hugging face上的NLP模型,來做文本嵌入。

? ? ? ? 這里有一篇我自己寫的國內環境下。如何在es中導入NLP模型。elasticsearch 內網下如何以離線的方式上傳任意的huggingFace上的NLP模型(國內避坑指南)-CSDN博客

? ? ? ? 這里還有一個例子,是在es中使用 E5 嵌入模型進行多語言向量搜索

向量檢索簡單舉個例子

????????data 是一篇文章的內容。這個內容最終可能是切分成N個片段。?然后通過模型把每個片段都轉成向量,然后再把向量存到向量庫。

例如,第一個段落 片段轉完是?[1.0000009,0.11111111,0.899998]

然后問題,也轉成向量可能是 [1.0044449,0.55551111,0.449998]

然后通過計算這兩個數組,的cosin值,然后再比較 其它片段和問題的cosin值(當然還可以用其它計算方式),然后做個排序,然后把topN小的返回。這就是KNN最鄰近搜索。

關于相關性或者說相似性

????????相似不相似,其實更多是依賴模型效果好不好。向量庫都只是起計算作用。關于向量庫的選擇,只需要看該向量數據庫的穩定性,數據承載能力(也就是能存多少數據,是否滿足業務需求。)已經向量數據庫實現的向量檢索算法都有哪些(實際上目前學術界也就那么多)。還有就是該庫的檢索性能如何,穩定性如何,能夠滿足業務需求。但是不要想著在向量數據庫上去提升搜索相關性的事情,因為相關性和庫沒有太大關系。如何要研究提升召回效果。應該去考慮選擇什么樣的機器學習模型效果更好,還要考慮模型的語言能力,是否支持多語種。例如你在英文模型下做中文數據的embedding,效果肯定會很差。此外不同的業務應該選擇自己的模型,加上微調。而不是一個大一統的模型。另外一個提升相關性的方向是探索數據切割的規則,針對不同類型的數據做不同的切分。

????????實際上利用向量檢索的相關性效果,還確實是比BM25好的。但是它不是絕對的,在關鍵詞精準匹配場景下,BM25算法更好一些。

如何選擇模型

語義檢索系統如何選擇合適的embedding模型-CSDN博客

使用模型做文本陷入,如何做數據切分,不丟失語義

? ? ? ? 目前這一塊探索還比較少。根據看過的一些案例,基本上推薦在500個token,300-400個字。再多了就會丟失語義。這里還需要摸索和測試一下。

ES支持混合檢索嗎? 向量檢索+倒排索引?

es ANN搜索

?

這樣可以先篩選數據。然后剩下的在做 knn搜索。這個邏輯會先走倒排搜索。

提供一個向量檢索的案例

騰訊es云,最近寫的最佳實踐
?

關于請求改寫經驗


美團的查詢改寫

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/213249.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213249.shtml
英文地址,請注明出處:http://en.pswp.cn/news/213249.shtml

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

相關文章

文件加密軟件哪個最好用 好用的文件加密軟件推薦

一說到文件加密軟件,可能大家都會去搜一些不知名的軟件來,但是選擇這種加密軟件,最好還是要看一些資質的。 資質不好的,可能加密過后你自己也打不開文件,(ps:我自己就遇到過這種情況&#xff09…

【華為OD機試python】分蘋果【2023 B卷|100分】

【華為OD機試】-真題 !!點這里!! 【華為OD機試】真題考點分類 !!點這里 !! 題目描述 A、B兩個人把蘋果分為兩堆,A希望按照他的計算規則等分蘋果, 他的計算規則是按照二進制加法計算,并且不計算進位 12+5=9(1100 + 0101 = 9), B的計算規則是十進制加法,包括正常進位,…

基于Java SSM框架高校校園點餐訂餐系統項目【項目源碼+論文說明】計算機畢業設計

基于java的SSM框架高校校園點餐訂餐系統演示 摘要 21世紀的今天,隨著社會的不斷發展與進步,人們對于信息科學化的認識,已由低層次向高層次發展,由原來的感性認識向理性認識提高,管理工作的重要性已逐漸被人們所認識&a…

(一)Java 基礎語法

目錄 一. 前言 二. Hello World 三. Java 語法 3.1. 基本語法 3.2. Java 標識符 3.3. Java 修飾符 3.4. Java 變量 3.5. Java 數組 3.6. Java 枚舉 3.7. Java 關鍵字 3.8. Java 注釋 3.9. Java 空行 3.10. Java 繼承 3.11. Java 接口(interface&#…

Oracle(2-14)User-Managed Incomplete Recovery

文章目錄 一、基礎知識1、Incomplete Recovery Overview 不完全恢復概述2、Situations Requiring IR 需要不完全恢復的情況3、Types of IR 不完全恢復的類型4、IR Guidelines 不完全恢復指南5、User-Managed Procedures 用戶管理程序6、RECOVER Command Overview 恢復命令概述7…

算法訓練營Day8(字符串)

344.反轉字符串 344. 反轉字符串 - 力扣&#xff08;LeetCode&#xff09; class Solution {public void reverseString(char[] s) {for(int i 0,j s.length-1;i< s.length/2 ; i,j--){swap(s,i,j);}}public void swap(char[] s,int i,int j ){char temp s[i];s[i] s[j]…

Python數據科學視頻講解:Python注釋

2.3 Python注釋 視頻為《Python數據科學應用從入門到精通》張甜 楊維忠 清華大學出版社一書的隨書贈送視頻講解2.3節內容。本書已正式出版上市&#xff0c;當當、京東、淘寶等平臺熱銷中&#xff0c;搜索書名即可。內容涵蓋數據科學應用的全流程&#xff0c;包括數據科學應用和…

20231210原始編譯NanoPC-T4(RK3399)開發板的Android10的SDK

20231210原始編譯NanoPC-T4(RK3399)開發板的Android10的SDK 2023/12/10 17:27 rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ mkdir nanopc-t4 rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ cd nanopc-t4/ …

python4E 之 Dict 找到兩個不同索引但都需要對應的值。

找到兩個不同索引但都需要&#xff0c;對應的值。 df pd.DataFrame(np.random.randint(1, 10, [3,3]), columns list(ABC)) 通過 dict 制造key index_htable{} for _,row in idc.iterrows(): #按行循環 key str(row[u股票代碼]) | str(row[u日期]) #根據不同 的索引…

45.0/HTML 簡介(詳細版)

目錄 45.1 互聯網簡介 45.2 網頁技術與分類 45.3 HTML 簡介 45.3.1 什么是 HTML?(面試題) 45.3.2 HTML 文件結構 45.3.3 HTML 語法 45.3.4 實例演練步驟(面試題) 45.4 head 中的常用標簽 45.4.1 title 標記 45.4.2 meta 標記 45.4.3 45.4.4 45.4.4(面試題)總結: 45…

【AIE】AIE微信合集

AIE微信合集 AIE(1) 對于Versal&#xff0c;我們從系統角度看&#xff0c;可將其分為3個Domain&#xff1a;AIE、PS和PL&#xff0c;如下圖所示。如果要運行一個AIE的應用&#xff0c;絕大多數情況下&#xff0c;這3個Domain我們都會用到&#xff0c;使其協同工作。這里我們僅…

linux less命令(less指令)(查看開頭、從開頭查看、從起始查看、反向導航、反向查找)

文章目錄 Linux Less 命令1. Less 命令簡介2. 基礎用法less filename<command> | less 3. 常用命令行選項4. 高級技巧和用法4.1 搜索內容4.2 標記和跳轉4.3 查看多個文件 5. less命令使用文檔6. 總結 Linux Less 命令 less 是一種在Linux環境中查看文件內容的工具&#…

《絕地求生》新手怎么玩 游戲基本介紹

隨著電競熱潮的興起&#xff0c;《絕地求生》已經成為了一款備受玩家熱愛的游戲。這款游戲在全球范圍內擁有龐大的玩家群體&#xff0c;它將你置身于一個荒無人煙的島嶼上&#xff0c;與其他99名玩家展開生死競爭。作為一個新手&#xff0c;下面閑游盒小盒子就為大家詳細介紹一…

Ubuntu20.04創建并掛在zfs池

Ubuntu 下使用 ZFS [適用于中高級用戶] 主磁盤上清潔安裝帶有ZFS的Ubuntu后&#xff0c;可以開始體驗其特性。 所有ZFS配置過程都需要命令行。 我不知道有GUI工具。 創建一個 ZFS 池 本節僅適用于具有多個磁盤的系統。 如果只有一個磁盤&#xff0c;Ubuntu會在安裝時自動創建…

寫實3D游戲模型紋理貼圖設置

在線工具推薦&#xff1a; 3D數字孿生場景編輯器 - GLTF/GLB材質紋理 - 3D模型在線轉換 - Three.js AI自動紋理開發包 - YOLO 虛幻合成數據生成器 - 三維模型預覽圖生成器 - 3D模型語義搜索引擎 當談到游戲角色的3D模型風格時&#xff0c;有幾種不同的風格&#xff1a; …

Mybatis源碼解析5:Mapper執行流程1

Mybatis源碼解析5&#xff1a;Mapper執行流程1 1.項目結構2. 源碼分析2.1 Mapper代理 MapperProxy#invoke2.2 創建MapperMethod2.2.1 方法名稱解析器ParamNameResolve2.2.2 MapperMethod#execute 2.3 DefaultSqlSession2.4 CachingExecutor2.5 SimpleExecutor#doQuery獲取連接對…

Nacos源碼解讀09——配置中心配置信息創建修改怎么處理的

存儲配置 從整體上Nacos服務端的配置存儲分為三層&#xff1a; 內存&#xff1a;Nacos每個節點都在內存里緩存了配置&#xff0c;但是只包含配置的md5&#xff08;緩存配置文件太多了&#xff09;&#xff0c;所以內存級別的配置只能用于比較配置是否發生了變更&#xff0c;只用…

進行生成簡單數字圖片

1.之前只能做一些圖像預測,我有個大膽的想法,如果神經網絡正向就是預測圖片的類別,如果我只有一個類別那就可以進行生成圖片,專業術語叫做gan對抗網絡 2.訓練代碼 import torch import torch.nn as nn import torch.optim as optim import torchvision.transforms as transfo…

飛天使-rsync大文件斷點續傳與vim批量刪除

文章目錄 rsync 斷點續傳&#xff0c;親測有效vim 批量刪除消息 rsync 斷點續傳&#xff0c;親測有效 rsync -vzrtp -P --append -e "/usr/bin/ssh -p 22 -o StrictHostKeyCheckingno" m.tar.gz root10.0.0.1:/tmp后臺運行 screem 既可 或者 nohup rsync -vzrt…

【華為od】存在一個m*n的二維數組,其成員取值范圍為0,1。其中值為1的元素具備擴散性,每經過1S,將上下左右值為0的元素同化為1。

存在一個m*n的二維數組,其成員取值范圍為0,1。其中值為1的元素具備擴散性,每經過1S,將上下左右值為0的元素同化為1。將數組所有成員初始化為0,將矩陣的[i, j]和[m,n]位置上元素修改成1后,在經過多長時間所有元素變為1。 輸入描述 輸入的前兩個數字是矩陣大小。后面是數字…