Vector Database簡介
申建忠 Frank Shen
- 精誠資訊/恆逸教育訓練中心-資深講師
- 技術分類:資料庫
隨著AI/ML技術的快速發展,生成式AI搭配RAG(檢索增強生成)成為提高GAI效果的重要技術。而Vector Database也隨之開始受到重視,什麼是Vector Database(向量資料庫)?簡而言之,是儲存資料的向量型態的資料庫。那向量又是什麼?向量是資料在高維空間(High Dimensional Space)的數學表示。在高維空間裡,每個維度對應資料的一個特徵(Feature)。根據資料的複雜程度,向量可由數百甚至數千個的維度組成。常見的資料向量:圖向量、文本向量、詞向量、語音向量等。
向量資料庫基本的操作原理:
-
使用Embedding(嵌入)技術將資料轉換為向量
- 使用bert-base-uncased模型將King轉換為768維的向量

-
將向量儲存在資料庫

-
使用向量索引進行相關性搜尋
- King之於Queen如同Man之於Women:
- King與Queen的距離與Man與Women的距離相似
- 表示King與Queen的語義相似度可能與Man與Woman的語義相似度有相同關係
- King-Man+Woman=Queen (King不是Man而是Women)
- King之於Queen如同Man之於Women:

向量資料庫的主要功能:
- 管理:將資料從原始格式嵌入為向量,並能夠有效率的組織與管理向量,方便AI模型使用。
- 儲存:以適合向量的資料模型儲存向量資料,常見資料模型:文件模型、圖模型、向量空間模型等。
- 檢索:可以建立向量索引,用以加速相似度搜尋(similarity search)的效率。常見索引型態:
- Tree based:KD Tree、Annoy
- Graph based:HNSW
- Product quantization:SQ、PQ
- Hash based:LSH
- Inverted file:IVMF
常見的向量資料庫分類:
- 原生的向量資料庫
- Faiss(Facebook AI Similarity Search)
- Pinecone
- Milvus
- Qdrant
- Weaviate
- Chroma
- 支援向量功能的全文檢索資料庫
- Elasticsearch
- Opensearch
- Solr
- 支援向量功能的NoSQL資料庫
- MongoDB
- Redis
- Cassandra
- Couchbase
- Neo4j
- 支援向量功能的SQL資料庫
- Oracle
- PostgreSQL
下圖來源為https://db-engines.com/en/ranking/document+store

向量資料庫是最符合目前AI需求的資料庫類型,想要提高AI使用效果的資料庫管理者,必須對向量資料庫有更深入的認識。