Anush008/fastembed-rs

Rust library for generating vector embeddings, reranking locally!

What it solves

FastEmbed-rs 是專為本地生成向量嵌入和重排序而設計的 Rust 函式庫。它透過允許開發者直接在自己的硬體上執行高效能嵌入模型,支援文本、圖像和稀疏嵌入,從而消除了對外部 API 呼叫的需求。

How it works

該函式庫利用 ONNX Runtime (透過 ort crate) 進行高效能推理,並利用 Hugging Face tokenizers 函式庫進行快速文本編碼。它支援來自 Hugging Face 的多種預訓練模型,這些模型會自動下載並快取到本地。對於特定的進階模型如 Qwen3 和 Nomic v2 MoE,它使用 candle 後端。

Who it’s for

需要將嵌入生成或重排序整合到應用程式中,且不希望依賴雲端服務的 Rust 開發者,特別是正在構建 RAG (Retrieval-Augmented Generation) 流水線或相似度搜尋工具的人。

Highlights

  • Multimodal Support: 生成文本、圖像和稀疏文本表示的嵌入。
  • Local Reranking: 內建支援重排序候選對象以提高搜尋精確度。
  • BGE-M3 Integration: 可以在單次前向傳播中產生密集、稀疏和 ColBERT 嵌入。
  • Hardware Acceleration: 支援 CPU 推理和透過 Windows 上的 DirectML 進行 GPU 加速。
  • Zero-Dependency Async: 支援同步使用,且不依賴 Tokio。
  • Built-in Similarity Tools: 提供餘弦相似度 (cosine similarity) 和 top-k 排名 (top-k ranking) 的輔助函式,無需額外 crate。