Qdrant(讀作 quadrant)是一個(gè)向量相似度搜索引擎和向量數(shù)據(jù)庫(kù)。它提供了一個(gè)生產(chǎn)就緒的服務(wù),并具有便捷的 API,用于存儲(chǔ)、搜索和管理點(diǎn),具有附加負(fù)載的向量。
Qdrant 是專為擴(kuò)展過濾支持而設(shè)計(jì)的,這使得它適用于各種基于神經(jīng)網(wǎng)絡(luò)或語義匹配、分面搜索等應(yīng)用。
Qdrant 使用 Rust 編寫,即使在高負(fù)載下也能快速、可靠地工作。至于性能文章后面有基準(zhǔn)測(cè)試結(jié)果。
使用 Qdrant,embeddings
或神經(jīng)網(wǎng)絡(luò)編碼器可以直接轉(zhuǎn)化為完備的應(yīng)用程序,然后用于匹配、搜索、推薦等等!
github非常熱門,每天均以500star速度飆升。

什么是向量數(shù)據(jù)庫(kù)
再搞清楚這個(gè)問題之前,先需要知道什么是向量(vector)。
什么是向量
在AI領(lǐng)域中,向量是一個(gè)具有大小和方向的數(shù)學(xué)對(duì)象。它可以用來表示現(xiàn)實(shí)世界中的各種事物,例如圖像、語音、文本等。
在機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中,向量通常被用作表示數(shù)據(jù)的形式,其中每個(gè)向量的維度代表了不同的特征或?qū)傩浴@纾趫D像分類任務(wù)中,一個(gè)圖像可以被表示為像素值組成的向量;在自然語言處理任務(wù)中,一句話可以被表示為單詞嵌入(word embeddings)
組成的向量。通過對(duì)這些向量進(jìn)行計(jì)算和比較,機(jī)器可以從數(shù)據(jù)中提取出有用的信息,如相似性、聚類等。
拿比如人臉識(shí)別技術(shù)來說,計(jì)算機(jī)從照片或視頻中提取出人臉的圖像,然后將人臉圖像轉(zhuǎn)換為128維或者更高維度的向量。說到向量,就離不開embeddings
。下面說下embeddings
是什么。
什么是embeddings
embeddings是一個(gè)相對(duì)低維度的空間,可以將高維向量轉(zhuǎn)換為低維度。embeddings使得在大型輸入上搞機(jī)器學(xué)習(xí)更加容易,例如表示單詞的稀疏向量。最理想的情況是,embeddings能夠通過將語義上相似的輸入放置在embeddings空間中彼此靠近來捕獲輸入的某些語義。可以在不同的模型中學(xué)習(xí)和重復(fù)使用嵌入。
這里有一個(gè)之前學(xué)習(xí)過的Google
出品的機(jī)器學(xué)習(xí)
的課程可以參考:
官方網(wǎng)站:
https://developers.google.com/machine-learning/crash-course/embeddings/video-lecture?hl=en

什么是向量檢索
向量搜索是一種使用機(jī)器學(xué)習(xí)模型在索引中檢測(cè)對(duì)象間語義關(guān)系的方法,以找到具有相似特征的相關(guān)對(duì)象。
向量搜索和推薦的解決方案變得越來越常見。如果你想在你的網(wǎng)站上添加自然語言文本搜索、創(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ù),因此需要專門的向量數(shù)據(jù)庫(kù)來支持各種應(yīng)用場(chǎng)景,例如語義搜索、圖像檢索、推薦系統(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ù)的查詢速度。
向量數(shù)據(jù)庫(kù)還提供了方便的 API 接口和工具庫(kù),使得用戶可以輕松地將其集成到自己的應(yīng)用程序中,并進(jìn)行快速的向量搜索。因此,在許多需要處理大規(guī)模向量數(shù)據(jù)的 AI 應(yīng)用中,向量數(shù)據(jù)庫(kù)成為了不可或缺的組件。
qdrant如何使用
在Python中直接使用一個(gè)基于內(nèi)存的qdrant
pipinstallqdrant-client
python
客戶端提供了一種方便的方式在本地啟動(dòng)qrant
:
fromqdrant_clientimportQdrantClient
qdrant=QdrantClient("")#創(chuàng)建一個(gè)內(nèi)存Qdrant實(shí)例,可以用來測(cè)試CICD
#或者
client=QdrantClient(path="path/to/db")#持久化到磁盤
客戶端
這是推薦在生產(chǎn)中使用的方法。使用命令直接運(yùn)行容器:
dockerrun-p6333:6333qdrant/qdrant
現(xiàn)在,可以使用任何客戶(包括Python)
連接到服務(wù)端:
qdrant=QdrantClient("http://localhost:6333")
目前支持的客戶端有:
-
官方: 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),這種專門用于存儲(chǔ),索引和查詢向量的數(shù)據(jù)庫(kù)系統(tǒng),可以讓大模型更高效的存儲(chǔ)和讀取知識(shí)庫(kù),并且以更低成本的進(jìn)行模型微調(diào)。Rust作為新基建的首選語言,也會(huì)在Ai infra中被大量采用。
一文告訴你為什么Mojo比python快35000x
一個(gè)用Rust寫的Go編譯器
極簡(jiǎn)而強(qiáng)大: 一個(gè)用 Rust 編寫的 Shell 歷史記錄工具
審核編輯 :李倩
-
API
+關(guān)注
關(guān)注
2文章
1559瀏覽量
63460 -
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3893瀏覽量
65706 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8487瀏覽量
133985 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5554瀏覽量
122428
原文標(biāo)題:Qdrant不只是高性能向量數(shù)據(jù)庫(kù)
文章出處:【微信號(hào):Rust語言中文社區(qū),微信公眾號(hào):Rust語言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
莫名被戳中的“不只是”體
莫名被戳中的“不只是”體
為什么說藍(lán)牙技術(shù)不只是連接?
提高Oracle的數(shù)據(jù)庫(kù)性能
【數(shù)轉(zhuǎn)視野】不只是科技企業(yè) 傳統(tǒng)企業(yè)更需要數(shù)字化轉(zhuǎn)型
愛可生向量數(shù)據(jù)庫(kù)基于昇騰AI實(shí)現(xiàn)全面升級(jí)
北美有的,中國(guó)也有了!Zilliz Cloud向量數(shù)據(jù)庫(kù)云服務(wù)重磅登場(chǎng)

什么是向量數(shù)據(jù)庫(kù)?關(guān)系數(shù)據(jù)庫(kù)和向量數(shù)據(jù)庫(kù)之間的區(qū)別是什么?

探尋向量數(shù)據(jù)庫(kù)爆火的真相,Zilliz 技術(shù)合伙人帶你解惑

搭載英偉達(dá)GPU,全球領(lǐng)先的向量數(shù)據(jù)庫(kù)公司Zilliz發(fā)布Milvus2.4向量數(shù)據(jù)庫(kù)

評(píng)論