spotify/voyager

🛰️ An approximate nearest-neighbor search library for Python and Java with a focus on ease of use, simplicity, and deployability.

🎯 什麼是 Voyager

Voyager 是一個開源庫,讓您可以使用近似最近鄰 (ANN) 演算法快速搜尋大量向量集合(例如嵌入)。它實作了 HNSW (Hierarchical Navigable Small World) 圖方法,基於熱門的 hnswlib 專案構建,但增加了許多效能與易用性改進。該庫適用於 Python、Java 和 Scala,且這兩種語言綁定共享相同的索引格式,因此您可以建立一次索引,並從任何這些執行環境中進行查詢。


🚀 核心功能 (如 README 所述)

功能 詳細資訊
快速 ANN 搜尋 使用 HNSW,以高召回率和低查詢延遲著稱。
跨語言綁定 Python、Java 和 Scala 具有相同的索引格式和功能集。
生產級品質 在 Spotify 部署,每天處理數億次查詢。
僅限記憶體 索引存在於 RAM 中以實現超快速查找(無磁碟持久化)。
廣泛的平台支援 macOS、Linux、Windows;Python 支援 x86_64 和 ARM (Apple Silicon),Java 在 Linux/macOS 上支援 ARM。
輕鬆安裝 Python 使用 pip install voyager;Java/Scala 使用 Maven/Gradle 或 SBT 座標。
Apache 2.0 授權 免費供商業和非商業用途使用。

📦 入門指南

Python

pip install voyager
import voyager as vg
# 範例 (虛擬碼,請參閱文件以獲取確切 API)
index = vg.Index(dim=128)
index.add(vectors, ids)
neighbors = index.search(query_vector, k=10)

Java (Maven)

<dependency>
  <groupId>com.spotify</groupId>
  <artifactId>voyager</artifactId>
  <version>2.1.0</version>
</dependency>
import com.spotify.voyager.Index;
// 建立並查詢索引 – 請參閱 Java 文件以獲取確切呼叫

Scala (SBT)

libraryDependencies += "com.spotify" % "voyager" % "2.1.0"

🎯 典型使用案例

  • 語意搜尋:針對文字嵌入(例如尋找相似文件、常見問題或產品描述)。
  • 推薦系統:需要在嵌入空間中檢索最近項目的系統。
  • 叢集 / 去重:需要快速相似度查找的管線。
  • 任何 AI/ML 應用:產生高維向量並需要即時最近鄰查詢的應用。

📚 文件與資源


🛡️ 授權

Voyager 採用 Apache 2.0 License (一種寬鬆的開源授權) 發布。這允許免費使用、修改和分發,即使在商業產品中也是如此。


🙋‍♀️ 貢獻

歡迎貢獻。請參閱儲存庫中的 CONTRIBUTING.md 檔案,了解如何回報錯誤、提出增強功能或提交合併請求的準則。

相關

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