RAG 基礎 - 常見向量資料庫整理
0 | 5,151 |
前幾天分享過向量資料庫概念科普,這篇也算豬走路系列,快速看一下 RAG 常用的向量資料庫選項,增廣見聞為主,點到為止。
而我出發的角度比較另類,預估未來主要會用 Semantic Kernel 框架開發 RAG 應用程式,所以會先從 SK 提到的向量資料庫看起。
早期 SK 提供一套名為 Semantic Memory 的 C#/Python/Java 程式庫以支援向量資料庫;後來 SK 重構調整後(重構是美事,但也代表早期入坑的先鋒們要流淚了 XD),將這塊獨立成 Kernel Memory 服務,接受的資料格式由純文字擴大到網頁、PDF、Word/PowerPoint/Excel、Markdown、JSON,支援 Filter/AND OR 條件複合式搜索,並支援各種語言、瀏覽器套件等。Kernel Memory 以後有機再深入,這裡只看它涵蓋的向量資料庫種類:Azure AI Search、Chroma、DuckDB、Kusto、Milvus、MongoDB Atlas、Pinecone、Postgres、Qdrant、Weaviate。
Azure AI Search 功能十分齊全,先前做 Lab 有體驗過,可接受文字、文件(PDF/Office/HTML/ePub/JSON/XML/CSV... 通吃)、圖片、影片、音訊,甚至內建 OCR,什麼文件資料無腦塞進去,就能用自然語言查詢(並支援向量跟全文搜索混合式搜尋,這段若自己實作得費點手腳),用起來超簡便,缺點是成本較高。
DuckDB 類似 OLAP 版的 SQLite,也支援 Embedding 查詢;Kusto 是 Azure Data Explorer 的別名,也可當成向量料庫使用。這兩套幾乎沒在其他地方看到討論,略過。
綜合了幾篇評比文章,下面是我整理常被提及的向量資料庫:
- Pinecone
Cloud Native 向量資料庫,透過 API 可方便呼叫使用,屬雲端服務無系統維運需求,也可輕易擴充,但無法部署在地端。 - MongoDB Atlas
MongoDB 的 Atlas Vector Search 概念是為核心資料產生自動同步的向量索引,並可配置在獨立的系統環境運行,方便擴充調整。 - Milvus
採 Apache 授權的開源向量資料庫,擅於 Embedding、向量相似搜尋及 AI 應用,能支援 TB 級資料量,非結構化資料處理方式簡便。 - Chroma
輕巧型設計,向量資料以自訂格式存在磁碟,另使用 SQLite 維護額外 Metadata。 - Weaviate
Cloud Native, 開源,可將文字、照片及其他資料轉為可搜尋向量,使用 10-NN Neighbor Search 可在 ms 內搜尋百萬筆資料,強調支援 AI 模型整合。 - Qdrant
開源向量相似性搜索引擎及資料庫,提供可用於生產環境的向量儲存、搜尋服務,可使用文字比對、數字區間、地理位置等額外查詢條件,主打查詢速度快。 - Elasticsearch
2022 Elasticsearch 8.0+ 提供向量搜索跟 NLP,使用 Apache Lucene HNSW 實現。 - Vespa AI
開源的分散式搜尋引擎和資料處理平台,最初由雅虎開發,現歸屬於Oath公司(Verizon旗下子公司),在社交網路、電子商務、新聞聚合、廣告等領域應用廣泛。 - Pgvector (PostgreSQL)
Pgvector 是 PostgreSQL 的擴充套件,在傳統 RDBMS 功能外擴充了向量搜索功能,特別適用原本已在使用 PostgreSQL 的系統。 - Faiss
Faiss 是 Facebook AI Search 釋出的開源程式庫,不算是資料庫,概念是針對向量建立索引並進行高效率搜索。
【參考資料】
- Best 16 Vector Databases for 2024 by Einat Orr, PhD
- An Honest Comparison of Open Source Vector Databases - KDnuggets
- Picking a vector database: a comparison and guide for 2023 by Emil Fröberg
- How to pick a Vector Database — Quantitative Analysis by Jiashen Cao
Comments
Be the first to post a comment