NVIDIA Triton Inference Server は、HTTP と gRPC で機械学習モデルを提供します。TensorRT、 PyTorch、ONNX Runtime、TensorFlow、Python、アンサンブルなど複数のバックエンドをサポート し、バッチ処理、メトリクス、モデルのバージョン管理、同時実行制御を提供します。
コンテナーから開始する #
サポートされている Triton コンテナーは NVIDIA NGC で公開されています。
docker pull nvcr.io/nvidia/tritonserver:<tag>
docker run --gpus all --rm -p 8000:8000 -p 8001:8001 \
-v "$PWD/models:/models" \
nvcr.io/nvidia/tritonserver:<tag> tritonserver \
--model-repository=/modelsモデルに適したバックエンドサポートを持つタグを選択してください。最小イメージには サーバーのみが含まれますが、その他のイメージには選択したフレームワークや SDK の コンポーネントが追加されます。サーバー、CUDA ドライバー、モデルランタイム間の互換性 については、リリースノートを確認してください。
モデルリポジトリのレイアウト #
Triton は、モデルごとに 1 つのディレクトリと、1 つ以上の数値バージョンディレクトリを 持つリポジトリからモデルを検出します。
models/
classifier/
config.pbtxt
1/
model.onnxconfig.pbtxt は、モデルの入力、出力、バッチ処理の動作、バックエンド固有の設定を宣言
します。Triton はサポートされている形式の一部の構成を推論できますが、明示的な構成の
ほうが明確で、多くの機能で必要です。Python バックエンドモデルは通常、バージョン
ディレクトリに model.py を配置し、Triton のバックエンドインターフェイスを実装します。
リクエストと運用 #
クライアントは推論リクエストで名前付きテンソルを送信し、レスポンスで名前付き出力 テンソルを受信します。動的バッチ処理は互換性のあるリクエストをまとめてスループットを 向上できますが、キュー遅延とバッチサイズはレイテンシー目標に対して調整する必要が あります。
環境に適したエンドポイントとモデルリポジトリへのアクセスだけを公開してください。 Prometheus メトリクスエンドポイントを監視し、代表的な入力形状でテストし、ロールバックを 運用上簡単にできるようモデルをバージョン管理します。
コメント
GitHub で閲覧・コメントする(投稿にはログインが必要です)