這是我關(guān)于向量數(shù)據(jù)庫(kù)的系列文章的第三篇。第一部分比較了各種數(shù)據(jù)庫(kù)供應(yīng)商的產(chǎn)品以及它們?cè)诟邔用嫔系膮^(qū)別,而第二部分則著重介紹了向量數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí)和功能。您可能已經(jīng)閱讀過Dmitry Kan在2021年撰寫的優(yōu)秀文章《并非所有向量數(shù)據(jù)庫(kù)都是相同的》1,該文章涵蓋了市場(chǎng)上各種向量數(shù)據(jù)庫(kù)之間的差異。自那時(shí)以來,這個(gè)領(lǐng)域一直在不斷發(fā)展,因?yàn)槊總€(gè)數(shù)據(jù)庫(kù)在其內(nèi)部都與其他數(shù)據(jù)庫(kù)不同,所以我認(rèn)為深入探討索引是有意義的,因?yàn)樗饕窍蛄克阉鞯幕A(chǔ)。假設(shè)你已經(jīng)充分了解什么是向量數(shù)據(jù)庫(kù),那么值得回過頭來思考一下,它是如何如此出色地?cái)U(kuò)展到能夠搜索數(shù)百萬、數(shù)十億甚至數(shù)萬億個(gè)向量的呢?向量數(shù)據(jù)庫(kù)的主要目標(biāo)是提供一種快速高效的方式來存儲(chǔ)和語義查詢數(shù)據(jù),以使數(shù)據(jù)類型成為一等公民。兩個(gè)向量之間的相似度是通過余弦距離或點(diǎn)積等距離度量來衡量的。在使用向量數(shù)據(jù)庫(kù)時(shí),重要的是區(qū)分搜索算法和近似最近鄰(ANN)搜索算法所操作的底層索引。與大多數(shù)情況一樣,選擇向量索引涉及到準(zhǔn)確性(精確度/召回率)和速度/吞吐量之間的權(quán)衡。經(jīng)過查閱文獻(xiàn),我發(fā)現(xiàn)向量索引方法可以按照數(shù)據(jù)結(jié)構(gòu)和壓縮級(jí)別兩個(gè)層次進(jìn)行組織。這些分類并不是詳盡無遺的,許多來源對(duì)于如何正確組織各種索引存在分歧,所以這是我最好的嘗試來理解這一切。下面開始吧!
級(jí)別1:數(shù)據(jù)結(jié)構(gòu)
根據(jù)用于構(gòu)建索引的數(shù)據(jù)結(jié)構(gòu)對(duì)索引進(jìn)行組織有助于理解。最好通過可視化的方式進(jìn)行探索。根據(jù)數(shù)據(jù)結(jié)構(gòu)對(duì)索引進(jìn)行組織可以提供更直觀的理解。
哈希索引
哈希索引(Hash-based index)是一種基于哈希函數(shù)的索引方法,例如局部敏感哈希(Locally Sensitive Hashing,LSH)。哈希索引將高維數(shù)據(jù)轉(zhuǎn)換為低維哈希碼,旨在盡可能保持原始數(shù)據(jù)的相似性。在建立索引時(shí),數(shù)據(jù)集會(huì)被多次哈希,以確保相似的數(shù)據(jù)點(diǎn)更有可能發(fā)生碰撞(這與傳統(tǒng)的哈希技術(shù)相反,傳統(tǒng)哈希技術(shù)的目標(biāo)是盡量減少碰撞)。在查詢時(shí),查詢點(diǎn)也會(huì)使用與建立索引時(shí)相同的哈希函數(shù)進(jìn)行哈希,由于相似的數(shù)據(jù)點(diǎn)被分配到同一個(gè)哈希桶中,所以檢索非常快速。哈希索引的主要優(yōu)點(diǎn)是在處理大量數(shù)據(jù)時(shí)非??焖?,但缺點(diǎn)是準(zhǔn)確性較低。
基于樹的索引
基于樹的索引結(jié)構(gòu)(Tree-based index)通過二叉搜索樹實(shí)現(xiàn)在高維空間中的快速搜索。樹的構(gòu)建方式使得相似的數(shù)據(jù)點(diǎn)更有可能位于同一子樹中,從而更快地發(fā)現(xiàn)近似最近鄰。Annoy(Approximate Nearest Neighbors Oh Yeah)是一種使用二叉搜索樹森林的方法,由Spotify開發(fā)?;跇涞乃饕娜秉c(diǎn)是,它們只對(duì)低維數(shù)據(jù)表現(xiàn)較好,在高維數(shù)據(jù)中準(zhǔn)確性較低,因?yàn)樗鼈儫o法充分捕捉數(shù)據(jù)的復(fù)雜性。
基于圖的索引
基于圖的索引(Graph-based index)是基于數(shù)據(jù)點(diǎn)在向量空間中形成圖的思想構(gòu)建的索引。圖中的節(jié)點(diǎn)表示數(shù)據(jù)值,連接節(jié)點(diǎn)的邊表示數(shù)據(jù)點(diǎn)之間的相似性。圖的構(gòu)建方式使得相似的數(shù)據(jù)點(diǎn)更有可能通過邊連接在一起,而近似最近鄰(ANN)搜索算法被設(shè)計(jì)為以高效的方式遍歷圖。圖的索引主要優(yōu)勢(shì)在于能夠在高維數(shù)據(jù)中找到近似最近鄰,并且具有較高的內(nèi)存效率,提高性能。下面是圖的索引的兩個(gè)例子:HNSW和Vamana。?將圖的索引與樹的索引概念相結(jié)合的擴(kuò)展是NGT3(Neighbourhood Graphs and Trees)。由Yahoo! Japan Corporation開發(fā),它在索引過程中進(jìn)行了兩個(gè)構(gòu)建操作:一個(gè)將密集的kNN圖轉(zhuǎn)換為雙向圖,另一個(gè)逐步構(gòu)建可導(dǎo)航的小世界(NSW)圖。與純圖的索引不同之處在于它使用了類似樹狀結(jié)構(gòu)(Vantage-point,或稱為“VP”樹)的范圍搜索,這是在圖的構(gòu)建過程中的一種貪婪搜索的變體。由于這兩個(gè)構(gòu)建操作導(dǎo)致節(jié)點(diǎn)具有較高的出度,為了避免組合爆炸,搜索起點(diǎn)使用范圍搜索使遍歷更加高效。這使得NGT成為一種混合的圖和樹的索引。
倒排文件索引
倒排文件索引(Inverted file index,IVF)將向量空間劃分為多個(gè)細(xì)分的單元,稱為Voronoi圖,這些圖減少了搜索空間,類似于聚類的效果。為了找到最近鄰,ANN算法只需定位最近Voronoi圖單元的質(zhì)心,然后僅在該單元內(nèi)進(jìn)行搜索。IVF的好處在于它有助于設(shè)計(jì)快速縮小相似性感興趣區(qū)域的ANN算法,但其原始形式的缺點(diǎn)是在細(xì)分向量空間的量化步驟可能對(duì)于非常大量的數(shù)據(jù)而言速度較慢。因此,IVF通常與量化方法(如產(chǎn)品量化,PQ)結(jié)合使用以提高性能。
級(jí)別2:壓縮
索引可以組織的第二個(gè)級(jí)別是它們的壓縮級(jí)別:一個(gè)“平坦”或暴力索引是以未經(jīng)修改的形式存儲(chǔ)向量的索引。當(dāng)接收到查詢向量時(shí),它會(huì)與數(shù)據(jù)庫(kù)中的每個(gè)向量進(jìn)行詳盡的比較,如下面簡(jiǎn)化的三維空間示例所示。實(shí)質(zhì)上,使用這樣的索引就像進(jìn)行kNN搜索,返回的結(jié)果是與k個(gè)最近鄰向量完全匹配的結(jié)果??梢韵胂螅祷亟Y(jié)果所需的時(shí)間會(huì)隨著數(shù)據(jù)大小的增加而線性增加,這在應(yīng)用于包含數(shù)十萬個(gè)向量的數(shù)據(jù)集時(shí)是不實(shí)際的。
**
**
為了提高搜索效率,以犧牲一定的檢索準(zhǔn)確性為代價(jià),可以采用壓縮的解決方案。這個(gè)過程被稱為量化(quantization),其中索引中的底層向量被分解成由較少字節(jié)組成的塊(通常通過將浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù))以減少內(nèi)存消耗和搜索過程中的計(jì)算成本。
平坦索引
在使用ANN(非窮舉)搜索時(shí),當(dāng)現(xiàn)有的索引(如IVF或HNSW)直接計(jì)算查詢向量與數(shù)據(jù)庫(kù)向量之間的距離時(shí),它被稱為“平坦”索引。這與量化變體有所區(qū)別。在這種方式下使用時(shí),它們被稱為IVF-Flat、HNSW-Flat等。
量化索引
量化索引(Quantized indexes)是將現(xiàn)有的索引(如IVF、HNSW、Vamana)與量化等壓縮方法結(jié)合起來,以減少內(nèi)存占用并加快搜索速度。量化通常有兩種類型:標(biāo)量量化(Scalar Quantization,SQ)和產(chǎn)品量化(Product Quantization,PQ)。SQ將向量中的浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù)(在字節(jié)大小上要小得多),通過將向量對(duì)稱地分成考慮每個(gè)維度的最小值和最大值的區(qū)間。?PQ是一種更復(fù)雜的方法,它考慮了每個(gè)向量維度上的值分布,同時(shí)進(jìn)行壓縮和數(shù)據(jù)降維。PQ的思想是將較大維度的向量空間分解為較小維度子空間的笛卡爾積,通過將每個(gè)子空間量化為自己的聚類來表示向量,使得可以從它們的代碼(稱為重構(gòu)值)有效地估計(jì)它們之間的距離。與SQ不同,PQ使用了非對(duì)稱的分箱過程,增加了精度,因?yàn)樗鼘⒚總€(gè)子空間內(nèi)向量的分布納入了近似距離估計(jì)的一部分。然而,這也存在一個(gè)權(quán)衡,即它會(huì)顯著降低召回率。
流行的索引
在列出的所有索引方法中,大多數(shù)專門構(gòu)建的向量數(shù)據(jù)庫(kù)只實(shí)現(xiàn)其中的一小部分。這是一個(gè)非常快速發(fā)展的領(lǐng)域,因此在閱讀本文時(shí),很多信息可能已經(jīng)過時(shí)。強(qiáng)烈建議您查閱您感興趣的數(shù)據(jù)庫(kù)的最新文檔,了解它們支持哪些索引。在本節(jié)中,我將重點(diǎn)介紹一些受多個(gè)供應(yīng)商關(guān)注的熱門和即將推出的索引。
IVF-PQ
VF-PQ(向量倒排文件索引與產(chǎn)品量化)是在Milvus和LanceDB等數(shù)據(jù)庫(kù)中提供的復(fù)合索引。索引的IVF部分用于縮小搜索空間,而PQ部分用于加速查詢向量與數(shù)據(jù)庫(kù)向量之間的距離計(jì)算,并通過量化向量來減少內(nèi)存需求。將兩者結(jié)合的好處在于,由于PQ組件的存在,速度得到了大幅提升,并且IVF組件有助于提高(通常由于PQ組件而受到損害的)召回率。?PQ組件可以根據(jù)下面的圖表進(jìn)行分解。表示數(shù)據(jù)點(diǎn)的每個(gè)向量由固定數(shù)量的維度d組成(取決于上游使用的嵌入模型,通常為數(shù)百或數(shù)千)。由于在大型數(shù)據(jù)集上存儲(chǔ)這么多32位或64位浮點(diǎn)數(shù)可能非常昂貴,產(chǎn)品量化通過兩個(gè)階段來解決這個(gè)問題:第一階段是粗量化階段,將向量分成m個(gè)子向量,每個(gè)子向量的維度為d/m,并為每個(gè)子向量分配一個(gè)量化值(稱為“重構(gòu)值”),將原始向量映射到該子空間中點(diǎn)的質(zhì)心。?第二階段類似于k-means聚類,通過最小化原始向量與量化向量質(zhì)心之間的距離來學(xué)習(xí)一組“碼本”值。通過將大型高維向量映射為較小的低維子向量,只需存儲(chǔ)量化值的碼本,從而使內(nèi)存占用量大大減小。
然后,IVF被應(yīng)用于PQ向量空間 - 對(duì)于空間中的每個(gè)點(diǎn),都有一個(gè)相應(yīng)的區(qū)域,稱為Voronoi單元,其中包含所有距離源點(diǎn)(種子點(diǎn))比任何其他點(diǎn)更近的空間中的點(diǎn)。這些種子點(diǎn)用于創(chuàng)建一個(gè)倒排索引,將每個(gè)質(zhì)心與空間中的向量列表相關(guān)聯(lián)。
根據(jù)查詢向量所在的位置,它可能靠近多個(gè)Voronoi單元的邊界,使得從哪些單元返回最近鄰變得模糊不清,導(dǎo)致邊緣問題。因此,IVF-PQ索引涉及設(shè)置一個(gè)額外的參數(shù)n_probes,告訴搜索算法向外擴(kuò)展到參數(shù)指定的單元數(shù)。?為了有效地構(gòu)建IVF-PQ索引,需要做出兩個(gè)選擇:PQ步驟的子向量數(shù)量和IVF步驟的分區(qū)數(shù)量。子向量數(shù)量越大,每個(gè)子空間越小,減少了由于壓縮而導(dǎo)致的信息損失。然而,較大的子向量數(shù)量也會(huì)導(dǎo)致每個(gè)PQ步驟中的更多I/O和計(jì)算量,因此必須將此數(shù)量最小化,以保持計(jì)算成本低廉。類似地,IVF步驟中的分區(qū)數(shù)量必須選擇以在召回率和搜索速度之間取得平衡。當(dāng)分區(qū)數(shù)量等于數(shù)據(jù)集中的向量數(shù)量時(shí),極限情況下是暴力搜索,這是最準(zhǔn)確的(召回率為1),但實(shí)質(zhì)上將其變成了IVF-Flat索引。事實(shí)上,LanceDB的IVF-PQ索引文檔中確切描述了在創(chuàng)建索引時(shí)的這些權(quán)衡,因此值得深入了解這些概念,以了解如何在實(shí)際場(chǎng)景中應(yīng)用它們。
HNSW
分層可導(dǎo)航小世界(HNSW)圖是構(gòu)建向量索引中最受歡迎的算法之一 - 在撰寫本文時(shí),幾乎每個(gè)數(shù)據(jù)庫(kù)供應(yīng)商都將其作為首選選項(xiàng)。它也是最直觀的算法之一,強(qiáng)烈建議閱讀介紹它的原始論文。?在高層次上,HNSW基于小世界圖現(xiàn)象構(gòu)建,該現(xiàn)象表明盡管圖中的大多數(shù)節(jié)點(diǎn)不是彼此的鄰居,但給定節(jié)點(diǎn)的鄰居很可能是彼此的鄰居,無論圖的大小如何。基本上,圖中的任何節(jié)點(diǎn)都可以通過相對(duì)較少的步驟從其他節(jié)點(diǎn)到達(dá)。在下面的示例中,實(shí)心填充的藍(lán)色和紅色節(jié)點(diǎn)可以在僅經(jīng)過3個(gè)跳躍的情況下相互到達(dá),盡管它們?cè)趫D中可能被認(rèn)為是相距較遠(yuǎn)的。
您的數(shù)據(jù)所在的向量空間也可以被視為一個(gè)可導(dǎo)航的小世界(NSW)圖,其中節(jié)點(diǎn)表示數(shù)據(jù)點(diǎn),邊表示相似性,即描述兩個(gè)節(jié)點(diǎn)在向量空間中的接近程度的數(shù)值。NSW通過構(gòu)建一個(gè)無向圖來確保全局連通性,即給定任意入口點(diǎn),可以到達(dá)圖中的任何節(jié)點(diǎn)。首先形成遠(yuǎn)距離的邊(連接遠(yuǎn)離的節(jié)點(diǎn),需要多次遍歷),然后形成短距離的邊(連接附近的節(jié)點(diǎn))。長(zhǎng)邊提高了搜索效率,而短邊提高了搜索準(zhǔn)確性??梢酝ㄟ^遍歷這個(gè)圖來找到給定查詢向量的最近節(jié)點(diǎn)。
NSW圖的一個(gè)問題是它是平坦的 - 某些節(jié)點(diǎn)可能會(huì)創(chuàng)建密集的“交通樞紐”,降低遍歷的效率,并導(dǎo)致方法的搜索復(fù)雜度為多對(duì)數(shù)級(jí)別。HNSW通過分層圖結(jié)構(gòu)來解決這個(gè)問題,并修復(fù)了每個(gè)節(jié)點(diǎn)鄰居數(shù)量的上限,將搜索復(fù)雜度降低到對(duì)數(shù)級(jí)別?;舅枷胧歉鶕?jù)節(jié)點(diǎn)之間的距離尺度將最近鄰分層在圖中。圖中的長(zhǎng)邊保留在頂層(即最稀疏的層),每個(gè)較低的層包含的邊比上面的層更短。最低層形成完全圖,并且搜索是從上到下進(jìn)行的。如果所有層都“折疊”到彼此中,HNSW圖本質(zhì)上就是一個(gè)NSW圖。
上面的圖示展示了如何在頂層給定任意入口點(diǎn)的情況下,可以快速遍歷整個(gè)圖,逐層降低,直到找到與查詢向量最近的鄰居。HNSW相對(duì)于IVF的最大優(yōu)勢(shì)在于它能夠在復(fù)雜的高維向量空間中以高召回率找到近似最近鄰。事實(shí)上,在其發(fā)布時(shí)(大約2019年),它在基準(zhǔn)數(shù)據(jù)集上產(chǎn)生了最先進(jìn)的結(jié)果,特別是在提高召回率的同時(shí)速度也很快,這解釋了它的巨大流行。然而,它在內(nèi)存效率方面不如IVF,除非在搜索時(shí)與PQ等方法結(jié)合使用來壓縮向量。出于這些原因,像Qdrant和Weaviate這樣的數(shù)據(jù)庫(kù)通常實(shí)現(xiàn)了涉及量化的復(fù)合索引,例如HNSW-PQ10,同時(shí)還提供了調(diào)整召回率和查詢延遲之間權(quán)衡的調(diào)節(jié)參數(shù)。
Vamana
Vamana是最近開發(fā)的基于圖的索引算法之一,由Subramanya等人與微軟研究院印度合作,在2019年的NeurIPS會(huì)議上首次提出。Vamana的顯著特點(diǎn)包括:
-
它從頭開始設(shè)計(jì),既可以在內(nèi)存中工作(大多數(shù)索引都是為此設(shè)計(jì)的),也可以在磁盤上工作。微軟提出的磁盤實(shí)現(xiàn)被稱為DiskANN。對(duì)于向量數(shù)據(jù)庫(kù)供應(yīng)商來說,磁盤索引似乎是一個(gè)巨大的實(shí)現(xiàn)挑戰(zhàn),所以這是Vamana與其他算法的區(qū)別之一。
-
它允許對(duì)無法放入內(nèi)存的數(shù)據(jù)集進(jìn)行索引,通過構(gòu)建重疊分區(qū)的較小索引,可以輕松合并為一個(gè)單一索引,其查詢性能與為整個(gè)數(shù)據(jù)集構(gòu)建的單一索引相當(dāng)。
-
它還可以與PQ等現(xiàn)成的向量壓縮方法結(jié)合使用,構(gòu)建一個(gè)Vamana-PQ索引,用于支持DiskANN系統(tǒng) - 數(shù)據(jù)集的完整精度向量存儲(chǔ)在磁盤上,而壓縮向量則緩存在內(nèi)存中,實(shí)現(xiàn)了兩者的最佳結(jié)合。
Vamana通過迭代構(gòu)建一個(gè)有向圖,首先從一個(gè)隨機(jī)圖開始,其中每個(gè)節(jié)點(diǎn)表示向量空間中的一個(gè)數(shù)據(jù)點(diǎn)。在開始時(shí),圖是高度連接的,即幾乎所有節(jié)點(diǎn)都相互連接。然后,使用一個(gè)目標(biāo)函數(shù)對(duì)圖進(jìn)行優(yōu)化,該函數(shù)旨在最大化彼此最接近的節(jié)點(diǎn)之間的連接性。這是通過修剪大部分隨機(jī)的短程邊緣,并添加連接相距較遠(yuǎn)的節(jié)點(diǎn)的某些長(zhǎng)程邊緣(以加快圖中的遍歷)來實(shí)現(xiàn)的。
在查詢時(shí),選擇全局質(zhì)心作為入口點(diǎn)。通過長(zhǎng)程邊快速向右方向進(jìn)行搜索,這使得算法能夠快速跳轉(zhuǎn)到圖的端點(diǎn),并相對(duì)快速地縮小到查詢向量的最近鄰。在下面的示例中,只需要三次跳躍就可以從入口點(diǎn)(全局質(zhì)心)遍歷到圖的外邊緣,然后到達(dá)最近鄰。
正如您可能已經(jīng)注意到的那樣,Vamana提供的是一種更多的“內(nèi)部-外部”搜索方法,而不是HNSW的“外部-內(nèi)部”搜索方法,其中搜索從頂層的一個(gè)隨機(jī)節(jié)點(diǎn)(可能很遠(yuǎn))開始,并向內(nèi)部進(jìn)行。?目前(截至2023年),沒有多少數(shù)據(jù)庫(kù)實(shí)現(xiàn)了Vamana索引,這可能是由于在磁盤上實(shí)現(xiàn)的技術(shù)挑戰(zhàn)以及對(duì)延遲和搜索速度的影響。Milvus11目前是唯一具有可用的磁盤上Vamana索引的供應(yīng)商,而Weaviate12和LanceDB13目前只有實(shí)驗(yàn)性的實(shí)現(xiàn)。然而,這是一個(gè)快速發(fā)展的領(lǐng)域,因此強(qiáng)烈建議您關(guān)注關(guān)鍵的向量數(shù)據(jù)庫(kù)供應(yīng)商,以了解最新的發(fā)展情況!
流行的矢量數(shù)據(jù)庫(kù)中可用的索引
正如本系列的第一部分所示,大多數(shù)數(shù)據(jù)庫(kù)將HNSW索引作為默認(rèn)選項(xiàng)實(shí)現(xiàn)。
像Milvus、Weaviate、Qdrant和LanceDB這樣的數(shù)據(jù)庫(kù)提供了簡(jiǎn)單的調(diào)整參數(shù),用于控制其Product Quantization組件中的壓縮/量化級(jí)別。了解這些索引如何工作的基本原理非常重要,這樣您就可以為您的用例選擇正確的數(shù)據(jù)庫(kù)和索引參數(shù)。
結(jié)論
專門構(gòu)建的向量數(shù)據(jù)庫(kù)的制造商花費(fèi)了數(shù)千小時(shí)來對(duì)其索引和存儲(chǔ)層進(jìn)行微調(diào)和優(yōu)化,因此,如果您擁有大型數(shù)據(jù)集并且需要在向量搜索查詢上實(shí)現(xiàn)<100毫秒的延遲,那么借助像Weaviate、Qdrant和Milvus這樣的成熟、可擴(kuò)展的開源數(shù)據(jù)庫(kù)似乎是一個(gè)明智的選擇,無論是從開發(fā)者的角度還是從業(yè)務(wù)的角度來看。
-
Flat索引是以原始形式存儲(chǔ)向量的索引,用于精確的k最近鄰搜索。它是最準(zhǔn)確的,但也是最慢的。
-
IVF-Flat索引使用倒排文件索引來快速縮小搜索空間,比暴力搜索要快得多,但會(huì)在召回率方面犧牲一些準(zhǔn)確性。
-
IVF-PQ使用IVF與Product Quantization結(jié)合,對(duì)向量進(jìn)行壓縮,減少內(nèi)存占用并加快搜索速度,同時(shí)在召回率方面比純索引更好。
-
HNSW是目前最流行的索引類型,通常與Product Quantization結(jié)合使用,以提高搜索速度和內(nèi)存效率。
-
Vamana是一個(gè)相對(duì)較新的索引,專為磁盤性能設(shè)計(jì)和優(yōu)化-它承諾在存儲(chǔ)大于內(nèi)存的向量數(shù)據(jù)時(shí)能夠表現(xiàn)出與HNSW相當(dāng)?shù)男阅芎退俣?。然而,目前還沒有很多數(shù)據(jù)庫(kù)實(shí)現(xiàn)Vamana索引,這是由于磁盤性能方面的挑戰(zhàn)。
在我看來,LanceDB是未來幾個(gè)月中最令人興奮的數(shù)據(jù)庫(kù)之一。這是因?yàn)樗鞘袌?chǎng)上唯一一個(gè)所有向量索引都基于磁盤的向量數(shù)據(jù)庫(kù)。這是因?yàn)樗麄冊(cè)诙鄠€(gè)方面同時(shí)進(jìn)行創(chuàng)新:
-
LanceDB正在構(gòu)建一種新的高效列式數(shù)據(jù)格式Lance,旨在成為parquet的現(xiàn)代繼任者,并針對(duì)向量搜索進(jìn)行了優(yōu)化。
-
正是由于這種高效的存儲(chǔ)層,LanceDB能夠在基于磁盤的索引方面充滿信心,與其他供應(yīng)商不同。
-
LanceDB采用了嵌入式(無服務(wù)器)的專用架構(gòu),從頭開始構(gòu)建。零拷貝數(shù)據(jù)訪問是對(duì)基于磁盤的索引的巨大性能提升。
-
數(shù)據(jù)的自動(dòng)版本控制,無需額外的基礎(chǔ)設(shè)施。
-
與AWS S3和Azure Blob Storage等云存儲(chǔ)提供商直接集成,非常容易與現(xiàn)有的數(shù)據(jù)流水線集成。
無論您選擇哪個(gè)數(shù)據(jù)庫(kù)來滿足您的用例,我們都可以一致認(rèn)為,現(xiàn)在是一個(gè)非常好的時(shí)代,可以嘗試和實(shí)驗(yàn)這些工具。我知道這篇文章中有很多信息,但下面的參考資料確實(shí)幫助我理解了向量數(shù)據(jù)庫(kù)的內(nèi)部工作原理以及它們是如何從零開始構(gòu)建的。希望您覺得這篇文章有趣,讓我們繼續(xù)學(xué)習(xí)吧!??
作者:Prashanth Rao
更多技術(shù)干貨請(qǐng)關(guān)注公眾號(hào)“云原生數(shù)據(jù)庫(kù)”文章來源:http://www.zghlxwxcb.cn/news/detail-677902.html
squids.cn,目前可體驗(yàn)全網(wǎng)zui低價(jià)RDS,免費(fèi)的遷移工具DBMotion、SQL開發(fā)工具等。文章來源地址http://www.zghlxwxcb.cn/news/detail-677902.html
到了這里,關(guān)于向量數(shù)據(jù)庫(kù)(第 3 部分):并非所有索引都是一樣的的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!