StarlightSearch/EmbedAnything

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

解決する課題

EmbedAnythingは、さまざまなデータソースをベクトル埋め込みに変換するプロセスを簡素化するために設計された、高性能なローカル埋め込みパイプラインです。PyTorchへの重い依存関係を排除することで、メモリ使用量を削減し、クラウドへのデプロイを容易にします。特に、「ベクトルストリーミング」を導入することで、ドキュメントの事前処理とモデルの推論を分離し、スループットの向上とレイテンシの低減を実現することで、逐次処理のボトルネックを解決します。

仕組み

速度とメモリ安全性のためにRustで構築されており、使いやすさを実現するためにPythonバインディング(PyO3経由)を提供しています。Candle、ONNX、クラウドベースのモデルを含む複数のバックエンドをサポートしています。このパイプラインは、取り込み(PDF、テキスト、画像、音声)からチャンク分割(セマンティックまたはレイトチャンキング)、そしてモジュール式アダプターを使用して結果の埋め込みをベクトルデータベースに直接ストリーミングするまでの全フローを処理します。

対象ユーザー

フル機能のMLフレームワークのオーバーヘッドなしに、ローカルまたはクラウドで埋め込みを生成するための軽量、高速、かつメモリ効率の高い方法を必要とする、RAG(検索拡張生成)アプリケーションを構築している開発者。

ハイライト

  • マルチモーダル対応: テキスト (PDF, TXT, MD)、画像 (JPG)、音声 (.WAV) を処理。
  • ベクトルストリーミング: ファイル処理、インデックス作成、推論を異なるスレッドで分離する並行ワークフロー。
  • モジュール式アダプター: 最小限のコードでさまざまなベクトルデータベースと簡単に統合。
  • 多様なモデルサポート: Dense、Sparse (SPLADE)、Late-interaction (ColBERT)、およびReRankerモデルに対応。
  • 高度なチャンク分割: コンテキストを保持するためのセマンティックおよびレイトチャンキング戦略を内蔵。
  • ハードウェアアクセラレーション: GPUアクセラレーションをサポートし、ビルド済みのDockerイメージとしても提供。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト