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)

向量資料庫的主要功能:

  • 管理:將資料從原始格式嵌入為向量,並能夠有效率的組織與管理向量,方便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使用效果的資料庫管理者,必須對向量資料庫有更深入的認識。


您可在下列課程中了解更多技巧喔!