Qdrant(讀作 quadrant)是一個(gè)向量相似度搜索引擎和向量數(shù)據(jù)庫(kù)。它提供了一個(gè)生產(chǎn)就緒的服務(wù),并具有便捷的 API,用于存儲(chǔ)、搜索和管理點(diǎn),具有附加負(fù)載的向量。
Qdrant 是專(zhuān)為擴(kuò)展過(guò)濾支持而設(shè)計(jì)的,這使得它適用于各種基于神經(jīng)網(wǎng)絡(luò)或語(yǔ)義匹配、分面搜索等應(yīng)用。
Qdrant 使用 Rust 編寫(xiě),即使在高負(fù)載下也能快速、可靠地工作。至于性能文章后面有基準(zhǔn)測(cè)試結(jié)果。
使用 Qdrant,embeddings
或神經(jīng)網(wǎng)絡(luò)編碼器可以直接轉(zhuǎn)化為完備的應(yīng)用程序,然后用于匹配、搜索、推薦等等!
github非常熱門(mén),每天均以500star速度飆升。
什么是向量數(shù)據(jù)庫(kù)
再搞清楚這個(gè)問(wèn)題之前,先需要知道什么是向量(vector)。
什么是向量
在AI領(lǐng)域中,向量是一個(gè)具有大小和方向的數(shù)學(xué)對(duì)象。它可以用來(lái)表示現(xiàn)實(shí)世界中的各種事物,例如圖像、語(yǔ)音、文本等。
在機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中,向量通常被用作表示數(shù)據(jù)的形式,其中每個(gè)向量的維度代表了不同的特征或?qū)傩?。例如,在圖像分類(lèi)任務(wù)中,一個(gè)圖像可以被表示為像素值組成的向量;在自然語(yǔ)言處理任務(wù)中,一句話(huà)可以被表示為單詞嵌入(word embeddings)
組成的向量。通過(guò)對(duì)這些向量進(jìn)行計(jì)算和比較,機(jī)器可以從數(shù)據(jù)中提取出有用的信息,如相似性、聚類(lèi)等。
拿比如人臉識(shí)別技術(shù)來(lái)說(shuō),計(jì)算機(jī)從照片或視頻中提取出人臉的圖像,然后將人臉圖像轉(zhuǎn)換為128維或者更高維度的向量。說(shuō)到向量,就離不開(kāi)embeddings
。下面說(shuō)下embeddings
是什么。
什么是embeddings
embeddings是一個(gè)相對(duì)低維度的空間,可以將高維向量轉(zhuǎn)換為低維度。embeddings使得在大型輸入上搞機(jī)器學(xué)習(xí)更加容易,例如表示單詞的稀疏向量。最理想的情況是,embeddings能夠通過(guò)將語(yǔ)義上相似的輸入放置在embeddings空間中彼此靠近來(lái)捕獲輸入的某些語(yǔ)義??梢栽诓煌哪P椭袑W(xué)習(xí)和重復(fù)使用嵌入。
這里有一個(gè)之前學(xué)習(xí)過(guò)的Google
出品的機(jī)器學(xué)習(xí)
的課程可以參考:
官方網(wǎng)站:
https://developers.google.com/machine-learning/crash-course/embeddings/video-lecture?hl=en
什么是向量檢索
向量搜索是一種使用機(jī)器學(xué)習(xí)模型在索引中檢測(cè)對(duì)象間語(yǔ)義關(guān)系的方法,以找到具有相似特征的相關(guān)對(duì)象。
向量搜索和推薦的解決方案變得越來(lái)越常見(jiàn)。如果你想在你的網(wǎng)站上添加自然語(yǔ)言文本搜索、創(chuàng)建圖像搜索或構(gòu)建強(qiáng)大的推薦系統(tǒng),那么你就需要考慮使用向量技術(shù)。
為什么需要向量數(shù)據(jù)庫(kù)
上面的一些概念解釋了之后,其實(shí)在 AI 領(lǐng)域中,向量數(shù)據(jù)庫(kù)是為了更高效地存儲(chǔ)和檢索大規(guī)模高維度的向量數(shù)據(jù)而設(shè)計(jì)的。由于傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)并不擅長(zhǎng)處理向量數(shù)據(jù),因此需要專(zhuān)門(mén)的向量數(shù)據(jù)庫(kù)來(lái)支持各種應(yīng)用場(chǎng)景,例如語(yǔ)義搜索、圖像檢索、推薦系統(tǒng)等。
與傳統(tǒng)數(shù)據(jù)庫(kù)不同,向量數(shù)據(jù)庫(kù)可以使用特殊的索引結(jié)構(gòu)和相似度度量方法,在高維度向量空間中快速查找相似的向量。例如,一些流行的向量數(shù)據(jù)庫(kù)如 Faiss 和 Annoy 使用基于倒排索引和近似最近鄰搜索(Approximate Nearest Neighbor Search)的技術(shù),極大地加快了向量數(shù)據(jù)的查詢(xún)速度。
向量數(shù)據(jù)庫(kù)還提供了方便的 API 接口和工具庫(kù),使得用戶(hù)可以輕松地將其集成到自己的應(yīng)用程序中,并進(jìn)行快速的向量搜索。因此,在許多需要處理大規(guī)模向量數(shù)據(jù)的 AI 應(yīng)用中,向量數(shù)據(jù)庫(kù)成為了不可或缺的組件。
qdrant如何使用
在Python中直接使用一個(gè)基于內(nèi)存的qdrant
pipinstallqdrant-client
python
客戶(hù)端提供了一種方便的方式在本地啟動(dòng)qrant
:
fromqdrant_clientimportQdrantClient
qdrant=QdrantClient("")#創(chuàng)建一個(gè)內(nèi)存Qdrant實(shí)例,可以用來(lái)測(cè)試CICD
#或者
client=QdrantClient(path="path/to/db")#持久化到磁盤(pán)
客戶(hù)端
這是推薦在生產(chǎn)中使用的方法。使用命令直接運(yùn)行容器:
dockerrun-p6333:6333qdrant/qdrant
現(xiàn)在,可以使用任何客戶(hù)(包括Python)
連接到服務(wù)端:
qdrant=QdrantClient("http://localhost:6333")
目前支持的客戶(hù)端有:
-
官方: Go client
-
官方: Rust client
-
官方: JavaScript/TypeScript client
-
官方: Python client
-
社區(qū): Elixir
-
社區(qū): PHP
-
社區(qū): Ruby
-
社區(qū): Java
Demo示例工程
總結(jié)
如今大模型浪潮浩浩蕩蕩,紅紅火火。向量數(shù)據(jù)庫(kù)被看做是Ai Infra中最關(guān)鍵的一環(huán),這種專(zhuān)門(mén)用于存儲(chǔ),索引和查詢(xún)向量的數(shù)據(jù)庫(kù)系統(tǒng),可以讓大模型更高效的存儲(chǔ)和讀取知識(shí)庫(kù),并且以更低成本的進(jìn)行模型微調(diào)。Rust作為新基建的首選語(yǔ)言,也會(huì)在Ai infra中被大量采用。
一文告訴你為什么Mojo比python快35000x
一個(gè)用Rust寫(xiě)的Go編譯器
極簡(jiǎn)而強(qiáng)大: 一個(gè)用 Rust 編寫(xiě)的 Shell 歷史記錄工具
審核編輯 :李倩
-
API
+關(guān)注
關(guān)注
2文章
1507瀏覽量
62222 -
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3841瀏覽量
64545 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8428瀏覽量
132845 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5510瀏覽量
121347
原文標(biāo)題:Qdrant不只是高性能向量數(shù)據(jù)庫(kù)
文章出處:【微信號(hào):Rust語(yǔ)言中文社區(qū),微信公眾號(hào):Rust語(yǔ)言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論