timescale/pgvectorscale

Postgres extension for vector search (DiskANN), complements pgvector for performance and scale. Postgres OSS licensed.

解決的問題

pgvectorscale 是一個 PostgreSQL 擴充功能,旨在提高向量嵌入搜尋的效能與儲存效率。它透過為大規模 AI 應用提供更高的查詢吞吐量、更低的延遲以及更具成本效益的儲存,來補充 pgvector

工作原理

它為 PostgreSQL 引入了三項主要的技術創新:

  1. StreamingDiskANN Index:一種受 DiskANN 演算法啟發的全新索引類型,可實現高效的近似最近鄰 (ANN) 搜尋。
  2. Statistical Binary Quantization (SBQ):由 Timescale 開發的一種壓縮方法,與標準二值量化相比,減少了向量數據的儲存佔用。
  3. 基於標籤的過濾搜尋:基於 Filtered DiskANN 研究的實作,允許使用者將向量相似性搜尋與元數據標籤過濾(使用 smallint[] 陣列)相結合,從而獲得高效能、精確的結果。

該擴充功能使用 PGRX 框架透過 Rust 編寫,為基於 C 的 pgvector 提供了一個現代化的替代方案。

適用對象

  • 應用開發人員:需要在 PostgreSQL 資料庫中實作高效能向量搜尋的人員。
  • 資料庫管理員 (DBA):希望優化現有 PostgreSQL 環境中向量工作負載成本與效能的人員。
  • 貢獻者:有興趣使用 Rust 為 PostgreSQL 的向量支援做出貢獻的開發人員。

亮點

  • 高效能:基準測試顯示,在大型資料集上,與 Pinecone 的儲存優化索引相比,p95 延遲降低了高達 28 倍,查詢吞吐量提高了 16 倍。
  • 成本效益:在 AWS EC2 上自行託管時,可降低高達 75% 的成本。
  • 靈活的過濾:支援高效能的基於標籤的過濾以及任意 SQL WHERE 子句的後過濾。
  • 調優能力:提供建置時參數(例如 num_neighborsstorage_layout)與查詢時參數(例如 query_rescore),以平衡準確性與速度。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案