Triton Model Navigator で PyTorch, TensorFlow, ONNX モデルを最適化¶
概要¶
Triton Model Navigator は、NVIDIA GPU を活用したディープラーニングモデルの最適化とデプロイメントを目的とした推論ツールキット。Triton Model Navigator は、PyTorch、TensorFlow、ONNX で実装されたモデルとパイプラインの TensorRT への移行を効率化する。
主な機能¶
- 最適化の自動化: モデルのエクスポート、変換、検証、プロファイリングなどの手順を自動化。
- フレームワーク間互換性: PyTorch、TensorFlow、ONNX など、さまざまな機械学習フレームワークをサポートし、各フレームワークの最適化機能を活用して、最適なデプロイメントオプションを効率的に探索。
- パフォーマンス向上: ResNet や BERT などのモデルのパフォーマンスを向上させ、効率的な推論を実現。
- パイプラインの合理化: Stable Diffusion や Whisper などのモデルの Python コードパイプラインを、PyTorch 専用の Inplace Optimization を活用して効率化。
- 変換の自動化: TensorRT と Torch-TensorRT に焦点を当て、さまざまなフォーマット間でのモデルのエクスポートと変換プロセスを自動化。
- 精度の検証: 変換後モデルが元モデルに対し正しい出力を生成することを確認。
- プロファイリング: レインテンシやスループットなどのパフォーマンス指標に基づいて最適なフォーマットを選択し、ハードウェアの使用率を最適化。
- デプロイメントの自動化: 専用 API を通じて、PyTriton と Triton Inference Server へのモデルとパイプラインのデプロイメントを自動化。
- QAT サポート: QAT に対応し INT8 の形式でモデルを最適化。
setup¶
torch の extra dependencies をインストールする場合は次のコマンドでインストールできる。他にも tensorflow や jax などの extra dependencies もあるので、必要に応じてインストールする。
Quick Start¶
公式ドキュメント を見るとパイプラインや個別モデルの最適化方法が紹介されている。 最適化したモデルを PyTriton と Triton Inference Server にデプロイする方法も紹介されている。
tips¶
- torch のモデルを実際に最適化してみたが model navigator 内部の ONNX に export する処理が失敗することがあった。その場合は、torch のモデルをあらかじめ ONNX に export してから model navigator を実行すると最適化が円滑に進む。
- v0.12.0 時点では Python 3.11 で実行するとエラーが発生ため、Python 3.10 で実行することで解消できる。
- v0.12.0 時点では、polygraphy のバージョンと相性が悪くアップデートする必要があった。次のコマンドを実行してバージョンをアップデートすることで解決できる。
類似のツール¶
speedsterやBigDL-Nanoが類似のツールとして挙げられるが、これらは開発が止まっているように見える。 実際にこれらの最新バージョンを使ってみると、エラーや依存関係の問題が発生する。 2024/10/28 時点で、Triton Model Navigator は更新が続いているため、Triton Model Navigator の利用をお勧めする。