偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Elasticsearch雖好,但矢量數(shù)據(jù)庫才是未來

譯文 精選
數(shù)據(jù)庫
專門構(gòu)建的矢量數(shù)據(jù)庫將Sparse-BM25算法和語義搜索整合到單一的高效操作中,因而優(yōu)于雙系統(tǒng)環(huán)境。

譯者 | 布加迪

審校 | 重樓

幾十年來,以Elasticsearch代表的關(guān)鍵詞匹配(又稱為全文搜索一直是企業(yè)搜索和推薦引擎等信息檢索系統(tǒng)的默認(rèn)選擇。

隨著基于人工智能的搜索技術(shù)不斷進(jìn)步,如今企業(yè)組織在向語義搜索轉(zhuǎn)變,從而使系統(tǒng)能夠理解用戶查詢背后的含義和意圖。嵌入模型和矢量數(shù)據(jù)庫已成為這一轉(zhuǎn)變的核心。

語義搜索將數(shù)據(jù)表示為矢量嵌入,從而比關(guān)鍵字匹配更勝一籌,提供了對(duì)搜索意圖更深入細(xì)致的理解,并徹底改變從檢索增強(qiáng)生成(RAG多模態(tài)搜索的各種應(yīng)用場(chǎng)景。

在實(shí)踐中,有效的信息檢索系統(tǒng)既需要語義理解,又需要精確的關(guān)鍵詞匹配。比如說,用戶希望搜索結(jié)果顯示與其搜索查詢相關(guān)的概念,同時(shí)尊重查詢中使用的字面文本,比如特殊術(shù)語和名稱,并返回精確匹配的結(jié)果。

基于密集矢量的語義搜索有助于理解含義(比如知道carautomobile”是同一個(gè)意思),而傳統(tǒng)的全文搜索提供用戶期望的精確結(jié)果(比如找到Python 3.9”的精確匹配)。因此,許多組織正在采用混合搜索方法,結(jié)合兩種方法的優(yōu)勢(shì),以兼顧靈活的語義相關(guān)性和可預(yù)測(cè)的精確關(guān)鍵字匹配。

混合搜索面臨的挑戰(zhàn)

實(shí)現(xiàn)混合搜索的一種常見方法是使用專門構(gòu)建的矢量數(shù)據(jù)庫(比如開源Milvus進(jìn)行高效、可擴(kuò)展的語義搜索,同時(shí)使用傳統(tǒng)的搜索引擎(比如ElasticsearchOpenSearch)進(jìn)行全文搜索。

雖然這種方法可以獲得良好的效果,但也帶來了新的復(fù)雜。管理兩個(gè)不同的搜索系統(tǒng)意味著要處理不同的基礎(chǔ)設(shè)施、配置和維護(hù)任務(wù),這會(huì)造成更沉重的操作負(fù)擔(dān),并加大潛在集成問題的可能性。

混合搜索的統(tǒng)一解決方案帶來了許多好處

  • 減少基礎(chǔ)設(shè)施維護(hù):管理一個(gè)系統(tǒng)而不是兩個(gè)系統(tǒng)大大降低了操作復(fù)雜性,節(jié)省了時(shí)間和資源。這也意味著可以減少上下文切換和掌握兩組不同API麻煩
  • 統(tǒng)一的數(shù)據(jù)管理:統(tǒng)一的表結(jié)構(gòu)允許存儲(chǔ)密集數(shù)據(jù)(基于矢量)和稀疏數(shù)據(jù)(基于關(guān)鍵字)以及共享元數(shù)據(jù)標(biāo)簽。使用兩個(gè)獨(dú)立的系統(tǒng)需要元數(shù)據(jù)標(biāo)簽存儲(chǔ)兩次,以便雙方能夠進(jìn)行元數(shù)據(jù)過濾。
  • 簡(jiǎn)化查詢:單一個(gè)請(qǐng)求可以執(zhí)行語義搜索任務(wù)和全文搜索任務(wù),因而不需要對(duì)不同的系統(tǒng)進(jìn)行兩次API調(diào)用。
  • 增強(qiáng)的安全性和訪問控制:統(tǒng)一的方法可以實(shí)現(xiàn)更直接、穩(wěn)健的安全管理,因?yàn)樗性L問控制都可以在矢量數(shù)據(jù)庫中加以集中管理,從而增強(qiáng)了安全合規(guī)和一致性。

統(tǒng)一矢量方法如何簡(jiǎn)化混合搜索

在語義搜索中,機(jī)器學(xué)習(xí)模型基于文本的含義,將文本作為點(diǎn)(即密集矢量)嵌入”到高維空間中。語義相似的文本在這個(gè)空間中彼此挨得更近。比如說“apple”(蘋果)和“fruit”(水果)在這個(gè)空間中可能比“apple”(蘋果)“car”(汽車)挨得更近。這便于我們只需使用近似最近鄰(ANN)算法計(jì)算每個(gè)點(diǎn)之間的距離,就可以快速找到語義相關(guān)的文本。

通過將文檔和查詢編碼為稀疏矢量,該方法可以應(yīng)用于全文搜索。在稀疏矢量中,每個(gè)維表示一個(gè)術(shù)語,其值表示每個(gè)術(shù)語在文檔中的重要程度。

文檔中沒有出現(xiàn)的術(shù)語的值為零。由于任何給定的文檔通常只使用詞匯表中所有可能術(shù)語的一小部分,因此大多數(shù)術(shù)語不會(huì)出現(xiàn)在文檔中。這意味著得到的矢量是稀疏矢量——它們的大部分是0。比如說,在通常用于評(píng)估信息檢索任務(wù)的MS-MARCO數(shù)據(jù)集中,雖然有大約900萬個(gè)文檔和100萬個(gè)獨(dú)特的術(shù)語,但搜索系統(tǒng)通常將這個(gè)龐大集合分成比較小的部分,以便于管理。

即使在段級(jí)別,詞匯表中有數(shù)十萬個(gè)術(shù)語,每個(gè)文檔通常包含少于100個(gè)術(shù)語,這意味著每個(gè)矢量的值超過99%0。這種極端稀疏性對(duì)我們有效地存儲(chǔ)和處理這些矢量的方式有著重要的意義。

可以利用這種稀疏模式來優(yōu)化搜索性能,同時(shí)保持準(zhǔn)確性。最初為密集矢量設(shè)計(jì)的矢量數(shù)據(jù)庫可加以改動(dòng),以便有效地處理這些稀疏矢量。比如說,開源矢量數(shù)據(jù)庫Milvus剛剛發(fā)布了原生全文搜索支持,使用Sparse-BM25,這是Elasticsearch其他全文搜索系統(tǒng)使用的BM25算法的稀疏矢量實(shí)現(xiàn)。Sparse-BM25借助以下機(jī)制,充分發(fā)揮了基于近似的全文搜索優(yōu)化:

  • 基于數(shù)據(jù)修剪的高效檢索算法:通過運(yùn)用基于啟發(fā)式方法的修剪,丟棄片段索引中稀疏矢量值最低的文檔,忽略搜索查詢中的低值稀疏矢量,矢量數(shù)據(jù)庫可以顯著減少索引大小,優(yōu)化性能,同時(shí)確保質(zhì)量損耗最小。
  • 充分利用進(jìn)一步的性能優(yōu)化:將術(shù)語頻率表示為稀疏矢量而不是反向索引,可以實(shí)現(xiàn)額外的基于矢量的優(yōu)化。這些包括
  1. 圖索引用于比蠻力掃描更有效的搜索。
  2. 產(chǎn)品量化PQ/標(biāo)量量化SQ進(jìn)一步減少內(nèi)存占用。

除了這些優(yōu)化外,Sparse-BM5實(shí)現(xiàn)還繼承了高性能矢量數(shù)據(jù)庫Milvus的幾個(gè)系統(tǒng)級(jí)優(yōu)勢(shì):

  • 高效的低級(jí)實(shí)現(xiàn)和內(nèi)存管理:Milvus的核心矢量索引引擎是用C++實(shí)現(xiàn)的,提供了比Elasticsearch等基于Java的系統(tǒng)更高效的內(nèi)存管理。與基于JVM的方法相比,僅這一點(diǎn)就可以節(jié)省數(shù)GB,從而減少內(nèi)存占用。
  • 支持MMapElasticsearch在內(nèi)存和磁盤中使用頁面緩存用于存儲(chǔ)索引似,Milvus支持內(nèi)存映射(MMap),以便在索引超過可用內(nèi)存時(shí)擴(kuò)展內(nèi)存容量。

為什么傳統(tǒng)的搜索堆棧面對(duì)矢量搜索表現(xiàn)不佳

Elasticsearch是為傳統(tǒng)的反向索引構(gòu)建的,這使得它從根本上難以密集矢量搜索進(jìn)行優(yōu)化。其影響顯而易見:即使只有100萬個(gè)矢量,Elasticsearch也需要3770毫秒(ms)來返回搜索結(jié)果,而Milvus僅需6毫秒,足足相差600倍。這種性能差距隨著規(guī)模的擴(kuò)大而拉大,ElasticsearchJava/JVM實(shí)現(xiàn)很難與基于C++ /Go的矢量數(shù)據(jù)庫的可擴(kuò)展性相匹配。此外,Elasticsearch缺乏關(guān)鍵的矢量搜索功能,比如基于磁盤的索引(DiskAnnMMap)、經(jīng)過優(yōu)化的元數(shù)據(jù)過濾以及范圍搜索。

VectorDBBench基準(zhǔn)測(cè)試結(jié)果VectorDBBench基準(zhǔn)測(cè)試結(jié)果

結(jié)

Milvus代表的矢量數(shù)據(jù)庫有望超越Elasticsearch,成為混合搜索的統(tǒng)一解決方案。通過將密集矢量搜索與經(jīng)過優(yōu)化的稀疏矢量技術(shù)相結(jié)合,矢量數(shù)據(jù)庫提供了卓越的性能、可擴(kuò)展性和效率。

這種統(tǒng)一的方法簡(jiǎn)化了基礎(chǔ)設(shè)施,減少了內(nèi)存占用,并增強(qiáng)了搜索功能,使其可以滿足未來的高級(jí)搜索需求。因此,矢量數(shù)據(jù)庫提供了一全面的解決方案,可以無縫結(jié)合語義搜索和全文搜索,性能比Elasticsearch傳統(tǒng)的搜索系統(tǒng)更勝一籌。

原文標(biāo)題:Elasticsearch Was Great, But Vector Databases Are the Future,作者:Jiang Chen

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2024-03-22 16:13:42

LLMRAGXGBoost

2022-12-12 08:23:34

Java 5ordrialname

2019-09-27 12:14:15

低代碼程序平衡

2019-02-11 09:04:24

MySQL主從復(fù)制數(shù)據(jù)庫

2017-12-22 09:58:32

MySQLGPU機(jī)器學(xué)習(xí)

2020-09-03 07:21:15

數(shù)據(jù)庫數(shù)據(jù)SQL

2023-07-06 15:05:34

矢量數(shù)據(jù)庫數(shù)據(jù)庫

2016-03-24 10:25:25

敏捷開發(fā)競(jìng)爭(zhēng)

2023-12-28 08:00:00

數(shù)據(jù)庫人工智能

2020-11-23 16:42:38

數(shù)據(jù)庫MySQL技術(shù)

2020-07-09 07:00:00

Python編程語言

2012-07-13 17:39:53

大數(shù)據(jù)BigData社交媒體

2022-01-22 00:14:05

Windows 11微軟修復(fù)

2022-10-24 14:21:09

數(shù)據(jù)庫應(yīng)用數(shù)據(jù)庫數(shù)據(jù)管理

2017-06-13 16:09:49

2011-03-17 17:06:38

數(shù)據(jù)庫發(fā)展方向

2014-02-27 10:08:33

NoSQL

2020-05-21 09:33:06

Reactive編程模型

2021-12-13 16:19:36

人工智能機(jī)器學(xué)習(xí)技術(shù)

2010-09-09 09:25:59

點(diǎn)贊
收藏

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