Repolode
michaelfeil

michaelfeil/infinity

REST API経由で埋め込み、リランキング、分類、型付き判定を提供するRust/LibTorch製のサービングエンジン。

スター
2,984
フォーク
220
未解決の Issue
153
最終コミット
13 時間前

これは何?

Infinityは、テキスト埋め込み、リランキング、分類などのモデルを提供するサービングエンジンです。v3のサーバーはRustで実装され、PyTorchのC++インターフェースであるLibTorchを使って推論を実行します。クライアントはHTTP経由で利用でき、密ベクトル向けの/v1/embeddings、リランキング向けの/rerank、系列分類と報酬スコアリング向けの/v1/classify、SPLADEのスパース埋め込み向けの/embed_sparseなどのエンドポイントが用意されています。

サーバーはDockerイメージから起動します。実行には、計算能力がSM80(Ampere)以上のNVIDIA GPUとNVIDIA Container Toolkitが必要です。デフォルトでは、認識可能なすべてのCUDA GPUを使用し、それぞれにモデル全体のレプリカを保持します。また、チェックポイントのメタデータに基づいてプーリング方式を選択します。/healthエンドポイントは、モデルのロードとウォームアップ後に準備完了を報告し、起動中のサーバーでは/docsからインタラクティブなAPIページを利用できます。

このプロジェクトがサポートするモデルカタログには、密埋め込みとマルチモーダル埋め込み、後段相互作用検索向けのトークンベクトル埋め込み、トークン分類と固有表現認識、型付き判定が含まれます。以前のPythonベースのリリース(v2、infinity-embとしてインストール)は、引き続き同じリポジトリにあります。

主な機能

  • 01REST API経由で埋め込み、リランキング、分類、型付き判定を提供します。
  • 02Rustサーバー上でLibTorchを使って推論を実行します。
  • 03デフォルトですべての認識可能なCUDA GPUを使用し、それぞれにモデル全体のレプリカを配置します。
  • 04SPLADEのスパース埋め込みと、後段相互作用検索向けのトークンベクトル埋め込みを提供します。
  • 05モデルのロードとウォームアップ後、/health経由で準備完了を報告します。

ユースケース

  • NVIDIA GPU上で、セマンティック検索や検索拡張生成向けの埋め込みエンドポイントをホストする。
  • HTTP APIの背後にある検索パイプラインへ、リランキング処理を追加する。
  • 固有表現認識や系列分類モデルをサービスとして実行する。
  • 再現性の高いGPU推論のために、バージョンを固定したコンテナイメージをデプロイする。

クイックスタート

  1. 1

    DockerでInfinity v3サーバーを起動します(NVIDIA GPU、SM80以降、NVIDIA Container Toolkitが必要です)

    docker run --rm --gpus all -p 8000:8000 -v infinity-cache:/data ghcr.io/michaelfeil/infinity_v3:nvidia-3.0.0 --model-id sentence-transformers/all-MiniLM-L6-v2 --torch-device cuda --dtype bfloat16 --hostname 0.0.0.0 --port 8000
  2. 2

    稼働中のサーバーに埋め込みリクエストを送信します

    curl http://localhost:8000/v1/embeddings -H 'Content-Type: application/json' -d '{"model":"sentence-transformers/all-MiniLM-L6-v2","input":["A document about semantic search."]}'

使う前に知っておきたいこと

  • v3サーバーは、標準的なオープンソースライセンスではなく、独自のソース公開ライセンス(Infinity Restricted MIT License 1.0)を使用しています。
  • ドキュメントに記載されたDockerクイックスタートには、コンピュート能力がSM80以降のNVIDIA GPUが必要です。
  • MoEチェックポイントの場合、各GPUにはすべてのエキスパートを含むモデル全体を収容できる必要があります。

収録されている特集

トピック

よくある質問

infinity とは?
REST API経由で埋め込み、リランキング、分類、型付き判定を提供するRust/LibTorch製のサービングエンジン。 Infinityは、テキスト埋め込み、リランキング、分類などのモデルを提供するサービングエンジンです。v3のサーバーはRustで実装され、PyTorchのC++インターフェースであるLibTorchを使って推論を実行します。クライアントはHTTP経由で利用でき、密ベクトル向けの/v1/embeddings、リランキング向けの/rerank、系列分類と報酬スコアリング向けの/v1/classify、SPLADEのスパース埋め込み向けの/embed_sparseなどのエンドポイントが用意されています。
infinity は無料で使えますか?ライセンスは?
infinity は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
infinity は今もメンテナンスされていますか?
活発にメンテナンス中。infinity の最終コミットは 2026年11月7日 です。
infinity は何に使えますか?
NVIDIA GPU上で、セマンティック検索や検索拡張生成向けの埋め込みエンドポイントをホストする。 HTTP APIの背後にある検索パイプラインへ、リランキング処理を追加する。 固有表現認識や系列分類モデルをサービスとして実行する。 再現性の高いGPU推論のために、バージョンを固定したコンテナイメージをデプロイする。
infinity のインストール方法は?
DockerでInfinity v3サーバーを起動します(NVIDIA GPU、SM80以降、NVIDIA Container Toolkitが必要です): docker run --rm --gpus all -p 8000:8000 -v infinity-cache:/data ghcr.io/michaelfeil/infinity_v3:nvidia-3.0.0 --model-id sentence-transformers/all-MiniLM-L6-v2 --torch-device cuda --dtype bfloat16 --hostname 0.0.0.0 --port 8000 稼働中のサーバーに埋め込みリクエストを送信します: curl http://localhost:8000/v1/embeddings -H 'Content-Type: application/json' -d '{"model":"sentence-transformers/all-MiniLM-L6-v2","input":["A document about semantic search."]}'
infinity はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/michaelfeil/infinity

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト