成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從基礎(chǔ)到實(shí)踐,回顧 Elasticsearch 向量檢索發(fā)展史

人工智能
Elasticsearch 的向量檢索從最初的簡(jiǎn)單實(shí)現(xiàn)發(fā)展到現(xiàn)在的高效、多功能解決方案,反映了現(xiàn)代搜索和推薦系統(tǒng)的需求和挑戰(zhàn)。隨著技術(shù)的不斷演進(jìn),我們可以期待 Elasticsearch 在向量檢索方面將繼續(xù)推動(dòng)創(chuàng)新和卓越。

1.引言

向量檢索已經(jīng)成為現(xiàn)代搜索和推薦系統(tǒng)的核心組件。

通過(guò)將復(fù)雜的對(duì)象(例如文本、圖像或聲音)轉(zhuǎn)換為數(shù)值向量,并在多維空間中進(jìn)行相似性搜索,它能夠?qū)崿F(xiàn)高效的查詢匹配和推薦。

Elasticsearch 作為一款流行的開源搜索引擎,其在向量檢索方面的發(fā)展也一直備受關(guān)注。本文將回顧 Elasticsearch 向量檢索的發(fā)展歷史,重點(diǎn)介紹各個(gè)階段的特點(diǎn)和進(jìn)展。以史為鑒,方便大家建立起 Elasticsearch 向量檢索的全量認(rèn)知。

2. 初步嘗試:簡(jiǎn)單向量檢索的引入

Elasticsearch 最初并未專門針對(duì)向量檢索進(jìn)行設(shè)計(jì)。然而,隨著機(jī)器學(xué)習(xí)和人工智能的興起,對(duì)于高維向量空間的查詢需求逐漸增長(zhǎng)。

在 Elasticsearch 的 5.x 版本中,Elastic 愛好者們開始嘗試通過(guò)插件和基本的數(shù)學(xué)運(yùn)算實(shí)現(xiàn)簡(jiǎn)單的向量檢索功能。如:一些早期的插件如 elasticsearch-vector-scoring、fast-elasticsearch-vector-scoring 就是為了滿足這樣的需求。

https://github.com/MLnick/elasticsearch-vector-scoring

https://github.com/lior-k/fast-elasticsearch-vector-scoring

這一階段的向量檢索主要用于基本的相似度查詢,例如文本相似度計(jì)算。雖然功能相對(duì)有限,但為后續(xù)的發(fā)展奠定了基礎(chǔ)。

擴(kuò)展說(shuō)明:關(guān)于機(jī)器學(xué)習(xí)功能,如果大家對(duì) Elasticsearch 版本更迭感興趣,印象中當(dāng)時(shí) 6.X 版本推出,非常振奮人心。不過(guò)受限于非開源功能,國(guó)內(nèi)的真實(shí)受眾還相對(duì)較少。

3. 官方支持:進(jìn)一步發(fā)展

到 Elasticsearch 7.0 版本,正式開始增加對(duì)向量字段的支持,例如通過(guò) dense_vector 類型。這標(biāo)志著 Elasticsearch 正式進(jìn)入向量檢索領(lǐng)域,不再只依賴于插件。

dense_vector 最早的發(fā)起時(shí)間:2018 年 12 月 13 日,7.6 版本標(biāo)記為 GA。

https://github.com/elastic/elasticsearch/pull/33022

https://github.com/elastic/elasticsearch-net/issues/3836

關(guān)于 dense_vector 類型的使用,推薦閱讀:高維向量搜索:在 Elasticsearch 8.X 中利用 dense_vector 的實(shí)戰(zhàn)探索。

這一階段的主要挑戰(zhàn)是如何有效地在傳統(tǒng)的倒排索引結(jié)構(gòu)中支持向量檢索。通過(guò)與現(xiàn)有的全文搜索功能相結(jié)合,Elasticsearch 能夠提供一種靈活而強(qiáng)大的解決方案。

從最初的插件和基本運(yùn)算,到后來(lái)的官方支持和集成,這一階段為 Elasticsearch 在向量檢索方面的進(jìn)一步創(chuàng)新和優(yōu)化奠定了堅(jiān)實(shí)的基礎(chǔ)。

4.專門優(yōu)化:增強(qiáng)的相似度計(jì)算

隨著需求的增長(zhǎng),Elasticsearch 團(tuán)隊(duì)開始深入研究并優(yōu)化向量檢索性能。這涉及了引入更復(fù)雜的相似度計(jì)算方法,例如余弦相似度、歐幾里得距離等,以及對(duì)查詢執(zhí)行的優(yōu)化。

從 Elasticsearch 7.3 版本開始,官方引入了更復(fù)雜的相似度計(jì)算方法。特別是 script_score 查詢的增強(qiáng),使用戶可以通過(guò) Painless 腳本自定義更豐富的相似度計(jì)算。

/guide/en/elasticsearch/reference/7.3/query-dsl-script-score-query.html#vector-functions

核心功能在于允許通過(guò)向量之間的夾角計(jì)算相似度,用 k 最近鄰 (k-NN) 的余弦相似度距離指標(biāo),從而為相似度搜索引擎提供支持。廣泛用于文本分析和推薦系統(tǒng)。

主要用于解決:復(fù)雜相似度需求,提供了更靈活和強(qiáng)大的相似度計(jì)算選項(xiàng),能夠滿足更多的業(yè)務(wù)需求。

應(yīng)用場(chǎng)景體現(xiàn)在:

個(gè)性化推薦:通過(guò)余弦相似度分析用戶的行為和興趣,提供更個(gè)性化的推薦內(nèi)容;
圖像識(shí)別和搜索:使用歐幾里得距離快速檢索與給定圖像相似的圖像;
聲音分析:在聲音文件之間尋找相似模式,用于語(yǔ)音識(shí)別和分析。

值得一提的是:初始的時(shí)候,向量檢索支持的維度為:1024,直到 Elasticsearch 8.8 版本,支持維度變更為:2048(這是呼聲很高的一個(gè)需求)。

https://github.com/elastic/elasticsearch/pull/95257

/t/vector-knn-search-with-more-than-1024-dimensions/332819

Elasticsearch 7.x 版本的增強(qiáng)相似度計(jì)算功能標(biāo)志著向量檢索能力的顯著進(jìn)展。通過(guò)引入更復(fù)雜的相似度計(jì)算方法和查詢優(yōu)化,Elasticsearch 不僅增強(qiáng)了其在傳統(tǒng)搜索場(chǎng)景中的功能,還為新興的機(jī)器學(xué)習(xí)和 AI 應(yīng)用打開了新的可能性。

但,這個(gè)時(shí)候你會(huì)發(fā)現(xiàn),如果要實(shí)現(xiàn)復(fù)雜的向量搜索功能,自己實(shí)現(xiàn)的還很多。如果把后面馬上提到的深度學(xué)習(xí)的集成和大模型的出現(xiàn)比作:飛行的汽車,當(dāng)前的階段還是 “拉驢車”,功能是有的,但用起來(lái)很費(fèi)勁。

5.深度學(xué)習(xí)集成與未來(lái)展望

大模型時(shí)代,向量檢索和多模態(tài)搜索成為 “兵家” 必爭(zhēng)之地。

多模態(tài)檢索是一種綜合各種數(shù)據(jù)模態(tài)(如文本、圖像、音頻、視頻等)的檢索技術(shù)。換句話說(shuō),它不僅僅是根據(jù)文字進(jìn)行搜索,還可以根據(jù)圖像、聲音或其他模態(tài)的輸入來(lái)搜索相關(guān)內(nèi)容。

為了更通俗地理解多模態(tài)檢索,我們可以通過(guò)以下比喻和示例來(lái)加深認(rèn)識(shí):想象你走進(jìn)一個(gè)巨大的圖書館,這里不僅有書籍,還有各種圖片、錄音和視頻。你可以向圖書館員展示一張照片,她會(huì)為你找到與這張照片相關(guān)的所有書籍、音頻和視頻。或者,你可以哼一段旋律,圖書館員能找到相關(guān)的資料,或者提供類似的歌曲或視頻。這就是多模態(tài)檢索的魔力!

隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展和應(yīng)用,Elasticsearch 已開始探索將深度學(xué)習(xí)模型直接集成到向量檢索過(guò)程中。這不僅允許更復(fù)雜、更準(zhǔn)確的相似度計(jì)算,還開辟了新的應(yīng)用領(lǐng)域,例如基于圖像或聲音的搜索。尤其在 Elasticsearch 的 8.x 版本,這一方向得到了顯著的推進(jìn)。

5.1 向量化是前提

如下圖所示,先從左往右看是寫入,圖像、文檔、音頻轉(zhuǎn)化為向量特征表示,在 Elasticsearch 中通過(guò) dense_vector 類型存儲(chǔ)。

從右往左看是檢索,先將檢索語(yǔ)句轉(zhuǎn)化為向量特征表示,然后借助 K 近鄰檢索算法(在 Elasticsearch 中借助 Knn search 實(shí)現(xiàn)),獲取相似的結(jié)果。

看中間,Results 部分就是向量檢索的結(jié)果。

綜上,向量檢索打破了傳統(tǒng)倒排索引僅支持文本檢索的缺陷,可以擴(kuò)展支持文本、語(yǔ)音、圖像、視頻多種模態(tài)。

圖片來(lái)自:Elasticsearch 官方文檔圖片來(lái)自:Elasticsearch 官方文檔

相信你到這里,應(yīng)該理解了向量檢索和多模態(tài)。沒(méi)有向量化的這個(gè)過(guò)程,多模態(tài)檢索無(wú)從談起。

5.2 模型是核心

深度學(xué)習(xí)模型集成總共可分為三步:

第一步:模型導(dǎo)入和管理:Elasticsearch 8.x 支持導(dǎo)入預(yù)訓(xùn)練的深度學(xué)習(xí)模型,并提供相應(yīng)的模型管理工具,方便模型的部署和更新。
第二步:向量表示與轉(zhuǎn)換:通過(guò)深度學(xué)習(xí)模型,可以將非結(jié)構(gòu)化數(shù)據(jù)如圖像和聲音轉(zhuǎn)換為向量表示,從而進(jìn)行有效的檢索。
第三步:自定義相似度計(jì)算:8.x 版本提供了基于深度學(xué)習(xí)模型的自定義相似度計(jì)算接口,允許用戶根據(jù)實(shí)際需求開發(fā)和部署專門的相似度計(jì)算方法。

關(guān)于深度學(xué)習(xí),可以是自訓(xùn)練模型,也可以是第三方模型庫(kù)中的模型,舉例:咱們圖搜圖案例中就是用的 HuggingFace 里的:clip-ViT-B-32-multilingual-v1 模型。

從基礎(chǔ)到實(shí)踐,回顧Elasticsearch 向量檢索發(fā)展史_Elastic_04從基礎(chǔ)到實(shí)踐,回顧Elasticsearch 向量檢索發(fā)展史_Elastic_04

Elasticsearch 支持的第三方模型列表:

包括如下的 Hugging Face 模型庫(kù)也都是支持的。

從基礎(chǔ)到實(shí)踐,回顧Elasticsearch 向量檢索發(fā)展史_elasticsearch_05從基礎(chǔ)到實(shí)踐,回顧Elasticsearch 向量檢索發(fā)展史_elasticsearch_05

模型是 Elasticsearch 與深度學(xué)習(xí)集成的核心,它能將復(fù)雜的數(shù)據(jù)轉(zhuǎn)化為 “指紋” 向量,使搜索更高效和智能。借助模型,Elasticsearch 可以理解和匹配各種非結(jié)構(gòu)化數(shù)據(jù),如圖像和聲音,提供更為準(zhǔn)確和個(gè)性化的搜索結(jié)果,同時(shí)適應(yīng)不斷變化的數(shù)據(jù)和需求?!皼](méi)有了模型,我們還需要黑暗中摸索很久”。

第三方模型官網(wǎng)介紹:/guide/en/machine-learning/8.9/ml-nlp-model-ref.html#ml-nlp-model-ref-text-embedding

值得一提的是:Elasticsearch 導(dǎo)入大模型需要專屬 Python 客戶端工具 Eland。

Eland 是一個(gè) Python Elasticsearch 客戶端,讓用戶能用類似 Pandas 的 API 來(lái)探索和分析 Elasticsearch 中的數(shù)據(jù),還支持從常見機(jī)器學(xué)習(xí)庫(kù)上傳訓(xùn)練好的模型到 Elasticsearch。

Eland 是為了與 Elasticsearch 協(xié)同工作而開發(fā)的庫(kù)。它不是 Elasticsearch 的一個(gè)特定版本產(chǎn)物,而是作為一個(gè)獨(dú)立的項(xiàng)目來(lái)幫助 Python 開發(fā)者更方便地在 Elasticsearch 中進(jìn)行數(shù)據(jù)探索和機(jī)器學(xué)習(xí)任務(wù)。

Eland 更多參見:

/guide/en/elasticsearch/client/eland/current/index.html

https://github.com/elastic/eland

5.3 ESRE 是 Elastic 的未來(lái)

前一段時(shí)間在分別給兩位阿里云、騰訊云大佬聊天的時(shí)候,都提到了 Elasticsearch Relevance Engine (ESRE) 才是 Elastic 未來(lái)。

ESRE 官方介紹如下:——Elasticsearch Relevance Engine 將 AI 的最佳實(shí)踐與 Elastic 的文本搜索進(jìn)行了結(jié)合。ESRE 為開發(fā)人員提供了一整套成熟的檢索算法,并能夠與大型語(yǔ)言模型 (LLM) 集成。借助 ESRE,我們可以應(yīng)用具有卓越相關(guān)性的開箱即用型語(yǔ)義搜索,與外部大型語(yǔ)言模型集成,實(shí)現(xiàn)混合搜索,并使用第三方或我們自己的模型。

ESRE 集成了高級(jí)相關(guān)性排序如 BM25f、強(qiáng)大的矢量數(shù)據(jù)庫(kù)、自然語(yǔ)言處理技術(shù)、與第三方模型如 GPT-3 和 GPT-4 的集成,并支持開發(fā)者自定義模型與應(yīng)用。其特點(diǎn)在于提供深度的語(yǔ)義搜索,與專業(yè)領(lǐng)域的數(shù)據(jù)整合,以及無(wú)縫的生成式 AI 整合,讓開發(fā)者能夠構(gòu)建更吸引人、更準(zhǔn)確的搜索體驗(yàn)。

在 Elasticsearch 8.9 版本上新了:Semantic search 語(yǔ)義檢索功能,對(duì)官方文檔熟悉的同學(xué),你會(huì)發(fā)現(xiàn)如下截圖內(nèi)容,早期版本是沒(méi)有的。

語(yǔ)義搜索不是根據(jù)搜索詞進(jìn)行字面匹配,而是根據(jù)搜索查詢的意圖和上下文含義來(lái)檢索結(jié)果。

更進(jìn)一步講:語(yǔ)義搜索不僅僅是匹配你輸入的關(guān)鍵字,而是試圖理解你的真正意圖,給你帶來(lái)更準(zhǔn)確、更有上下文的搜索結(jié)果。簡(jiǎn)單來(lái)說(shuō),如果你在英國(guó)搜索 “football”,系統(tǒng)知道你可能想要搜橄欖球,而不是足球(在美國(guó) football 是足球)。

這種智能搜索方式,得益于強(qiáng)大的文本向量化等技術(shù)背景,使我們的在線搜索體驗(yàn)更加直觀、方便和滿意。

在文本里檢索 connection speed requirement, 這點(diǎn)屬于早期的倒排索引檢索方式,或者叫全文檢索中的短語(yǔ) match_phrase 檢索匹配 或者分詞 match 檢索匹配。這種可以得到結(jié)果。
但是,中后半段視頻顯示,要是咱們要檢索:“How fast should my internet be” 怎么辦?

其實(shí)這里轉(zhuǎn)換為向量檢索,fast 和 speed 語(yǔ)義相近,should be 和 required、needs 語(yǔ)義相近,internet 和 connection、wifi 語(yǔ)義相近。所以依然能召回結(jié)果。

這突破了傳統(tǒng)同義詞的限制,體現(xiàn)了語(yǔ)義檢索的妙處!

更進(jìn)一步,我們給出語(yǔ)義檢索和傳統(tǒng)分詞檢索的區(qū)別,以期望大家更好的理解語(yǔ)義搜索。

總體而言,深度學(xué)習(xí)集成已經(jīng)成為 Elasticsearch 向量檢索能力的有力補(bǔ)充,促使它在搜索和分析領(lǐng)域的地位更加牢固,同時(shí)也為未來(lái)的發(fā)展提供了廣闊的空間。

6.小結(jié)

Elasticsearch 的向量檢索從最初的簡(jiǎn)單實(shí)現(xiàn)發(fā)展到現(xiàn)在的高效、多功能解決方案,反映了現(xiàn)代搜索和推薦系統(tǒng)的需求和挑戰(zhàn)。隨著技術(shù)的不斷演進(jìn),我們可以期待 Elasticsearch 在向量檢索方面將繼續(xù)推動(dòng)創(chuàng)新和卓越。

說(shuō)一下最近的感觸,向量檢索、大模型等新技術(shù)的出現(xiàn)有種感覺 “學(xué)不完,根本學(xué)不完”,并且很容易限于 “皮毛論”(我自創(chuàng)的詞)——所有技術(shù)都了解一點(diǎn)點(diǎn),但經(jīng)不起提問(wèn);淺了說(shuō),貌似啥都懂,深了說(shuō),一問(wèn)三不知。

這種情況怎么辦?我目前的方法是:以實(shí)踐為目的去深入理解理論,必要時(shí)理解算法,然后不定期將所看、所思、所想梳理成文,以備忘和知識(shí)體系化。這個(gè)過(guò)程很慢、很累,但我相信時(shí)間越長(zhǎng)、價(jià)值越大。

歡迎大家就向量檢索等問(wèn)題進(jìn)行留言討論交流,你的問(wèn)題很可能就是下一次文章的主題哦!

7.參考

/cn/blog/text-similarity-search-with-vectors-in-elasticsearch

/guide/en/elasticsearch/reference/7.3/query-dsl-script-score-query.html#vector-functions-cosine

https://zhuanlan.zhihu.com/p/552249981

責(zé)任編輯:龐桂玉 來(lái)源: 51CTO博客
相關(guān)推薦

2010-05-26 09:15:39

HTML

2012-02-21 22:10:23

2017-06-22 13:26:37

人工智能發(fā)展歷史大數(shù)據(jù)

2017-06-30 15:37:05

互聯(lián)網(wǎng)架構(gòu)金融

2017-01-12 16:25:41

互聯(lián)網(wǎng)金融架構(gòu)

2016-10-10 22:11:02

2010-11-01 00:40:39

Unix發(fā)展史

2023-09-27 10:11:40

人工智能AI

2010-02-05 15:46:41

IBM Power

2009-11-10 13:38:12

Visual Stud

2009-03-10 16:46:56

2012-08-14 09:22:33

域名發(fā)展史

2011-12-05 09:46:38

操作系統(tǒng)發(fā)展史

2010-08-31 15:44:17

CSS

2011-12-28 09:56:49

開源軟件發(fā)展

2021-03-10 18:46:26

HTTPHTTP 協(xié)議網(wǎng)絡(luò)技術(shù)

2018-11-06 12:58:43

大數(shù)據(jù)人工智能搜索引擎

2012-10-18 14:51:10

數(shù)據(jù)中心發(fā)展

2010-06-09 08:05:29

機(jī)房空調(diào)基礎(chǔ)知識(shí)制冷發(fā)展

2013-07-30 14:45:36

Linux超級(jí)計(jì)算機(jī)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久久www成人免费无遮挡大片 | 国产精品国产馆在线真实露脸 | 九热在线| 成人国产精品久久久 | 午夜色播| 91中文| 亚洲日产精品 | 国产亚洲精品一区二区三区 | 91n成人| 欧美888 | 国产午夜在线观看 | 一区二区三区四区不卡视频 | 成人福利电影 | 狠狠狠| 亚洲欧美在线观看 | 一级h片| 亚洲在线一区 | 天堂在线免费视频 | 久综合| 欧美日韩视频在线第一区 | 999久久久 | 久久久久亚洲精品国产 | 日韩免费1区二区电影 | 99国产精品久久久久久久 | 国产人成精品一区二区三 | 欧美一区二区三区在线播放 | 中文字幕av一区 | 韩国成人在线视频 | 日韩国产中文字幕 | 久久影音先锋 | 色噜噜色综合 | 中文字幕一二三区 | 国产乱码精品一区二区三区五月婷 | 成人免费视频在线观看 | 中文在线观看视频 | 羞羞午夜 | 干出白浆视频 | 精品国产欧美一区二区 | 国产一区影院 | 欧美一区二区三区,视频 | 免费观看成人性生生活片 |