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