天天看點

3分鐘剖析萬字長文(向量資料庫-總結版)

作者:AI寶藏工具Fyou

[撒花]

本文是對:https://guangzhengli.com/blog/zh/vector-database/# 的總結。

有時間的可以去精讀一下原文!

目錄結構

3分鐘剖析萬字長文(向量資料庫-總結版)

引言

也許你最近可能聽過這樣的新聞,某向量資料庫的初創公司剛寫好 PPT,就獲得了幾千萬的投資,某公司的開源的向量資料庫因其代碼的簡陋而登上了 Hackernews 等等。在過去幾個月時間中, AI 應用的發展如火如荼,帶動了 AI 應用技術棧上下遊的火爆,而向量資料庫就是其中最熱門的之一。

一、GPT 的缺陷

核心要點:GPT存在哪些主要缺陷限制了其應用?

GPT 存在以下缺陷:

  • token 長度限制:輸入文本長度不可超過特定 token 數目,例如 GPT-3 為 4096 tokens
  • 無記憶能力:GPT 作為大型語言模型(LLM)沒有記憶能力
  • 使用成本高:GPT API 是按 token 計費,輸入文本越長費用越高

二、向量資料庫的崛起

核心問題:向量資料庫的應用前景有哪些?

  • 基于向量空間模型,可以存儲非結構化資料
  • 通過相似性搜尋而非精确比對檢索資訊
  • 可降低 GPT 使用成本,應用于問答系統等場景
3分鐘剖析萬字長文(向量資料庫-總結版)

三、Vector Embeddings

要點:Vector Embedding的作用是什麼?

  • 使用 AI 模型生成包含語義資訊的高維向量表示
  • 将非結構化資料轉換為語義向量,存儲在向量資料庫中
  • 文本用 text-embedding-ada-002 生成,圖像用 clip-vit-base-patch32 生成

四、特征和向量

問題:特征和向量的關系是什麼?

  • 提取資料的多種特征,在高維空間中表示為坐标
  • 計算不同向量間歐幾裡得距離判斷相似度
  • 次元越多可以更準确判别相似性
3分鐘剖析萬字長文(向量資料庫-總結版)

五、相似性搜尋 (Similarity Search)

要點:相似性搜尋的常用算法有哪些?

5. 1 K-Means 和 Faiss

  • 使用聚類算法将向量分組,限制搜尋範圍
  • Faiss 使用多探針搜尋調整搜尋範圍
  • 缺點:聚類效果依賴參數選擇,可能漏失邊界樣本
3分鐘剖析萬字長文(向量資料庫-總結版)

5.2 Product Quantization (PQ)

  • 将高維向量分解為多個子向量,獨立量化編碼
  • 大幅降低存儲開銷
  • 查詢時組合子向量得到原向量
  • 缺點:量化帶來資訊損失,降低搜尋品質
3分鐘剖析萬字長文(向量資料庫-總結版)

5.3 Hierarchical Navigable Small Worlds (HNSW)

  • 建構多層圖,從第一層搜尋逐層逼近目标
  • 保證搜尋速度和結果品質
  • 缺點:建構複雜,存儲開銷較大
3分鐘剖析萬字長文(向量資料庫-總結版)

5.4 Locality Sensitive Hashing (LSH)

  • 使用高碰撞機率的哈希函數
  • 将相似向量映射到同一存儲桶
  • 桶内向量數少,可快速搜尋
  • 缺點:hash結果依賴參數和資料分布
3分鐘剖析萬字長文(向量資料庫-總結版)

5.5 Annoy

  • 基于森林的向量搜尋實作算法
  • 支援餘弦相似度、歐式距離等測量
  • 缺點:隻支援餘弦相似度等較簡單測量

六、相似性測量 (Similarity Measurement)

問題:常見的相似性量化方法有哪些?

6.1 Euclidean Distance

  • 反映向量間直線距離
  • 考慮向量長度
  • 應用場景:使用者曆史行為數量推薦

6.2 Cosine Similarity

  • 反映向量間角度
  • 不考慮長度
  • 應用場景:語義搜尋、文檔分類

6.3 Dot product Similarity

  • 簡單快速
  • 考慮向量長度和方向
  • 應用場景:圖像識别、語義搜尋、文檔分類

七、過濾 (Filtering)

要點:過濾對向量搜尋有何作用?

  • 先後過濾中繼資料實作精确比對
  • 優化過濾流程提高性能
3分鐘剖析萬字長文(向量資料庫-總結版)

八、向量資料庫選型

問題:選擇向量資料庫需考慮的因素有哪些?

8.1 分布式

  • 需要高可用性、容錯性
  • 使用分片和複制提高穩定性

8.2 通路控制和備份

  • 支援細粒度權限控制、日志審計、資料備份

8.3 API & SDK

  • 簡單、完善的 API 設計提高開發效率

8.4 選型

  • 綜合考慮算法、性能、成本等因素

8.5 傳統資料庫擴充

要點:傳統資料庫也可以實作向量搜尋

  • 使用擴充實作向量搜尋功能
  • 如 PostgreSQL 的 pgvector, Redis 的 RediSearch

九、總結

要點:向量資料庫和傳統資料庫應用展望

  • 兩種資料庫各有優勢,可以同時使用實作互補

#頭條創作挑戰賽#