StarlightSearch/EmbedAnything

Highly Performant, Modular, Memory Safe and Production-ready Inference, Ingestion and Indexing built in Rust 🦀

解決的問題

EmbedAnything 是一個高性能的本地嵌入流水線,旨在簡化將各種數據源轉換為向量嵌入的過程。它消除了對 PyTorch 的沉重依賴,降低了記憶體占用,並使雲端部署更加容易。它透過引入「向量流式傳輸」專門解決了順序處理的瓶頸,將文件預處理與模型推論分離,從而提高吞吐量並降低延遲。

工作原理

該專案使用 Rust 構建,具有高速與記憶體安全性,並透過 PyO3 提供 Python 綁定以方便使用。它支援包括 Candle、ONNX 與雲端模型在內的多種後端。該流水線處理從攝取(PDF、文本、圖像、音訊)到分塊(語義分塊或延遲分塊),最後透過模組化適配器將生成的嵌入直接流式傳輸到向量資料庫的整個流程。

適用對象

構建 RAG(檢索增強生成)應用的開發人員,他們需要一種輕量、快速且記憶體高效的方式,在沒有完整機器學習框架開銷的情況下,在本地或雲端生成嵌入。

亮點

  • 多模態支援:處理文本 (PDF, TXT, MD)、圖像 (JPG) 與音訊 (.WAV)。
  • 向量流式傳輸:在不同執行緒上分離檔案處理、索引與推論的並行工作流。
  • 模組化適配器:透過極少的程式碼即可輕鬆整合各種向量資料庫。
  • 多樣化的模型支援:相容於稠密 (dense)、稀疏 (SPLADE)、延遲交互 (ColBERT) 與重排序 (ReRanker) 模型。
  • 進階分塊:內建語義分塊與延遲分塊策略以保留上下文。
  • 硬體加速:支援 GPU 加速,並提供預建的 Docker 映像檔。

相關

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