NVIDIA/Model-Optimizer
A unified library of SOTA model optimization techniques like quantization, distillation, pruning, neural architecture search, speculative decoding, etc. It compresses deep learning models for downstream deployment frameworks like TensorRT-LLM, TensorRT, vLLM, etc. to optimize inference speed.
NVIDIA Model Optimizer – 概要
NVIDIA Model Optimizer(ModelOpt)は、大規模AIモデル(特に大規模言語モデル(LLM)や視覚言語モデル(VLM))の実行を高速化し、メモリ使用量を削減するためのオープンソースのPythonライブラリです。これは、以下のような一連のモデル最適化技術を適用することで実現します。
| 技術 | 機能 | 典型的な利点 |
|---|---|---|
| 学習後量子化(PTQ) | トレーニング後に重みとアクティベーションを低精度フォーマット(例:FP8、NVFP4、INT4)に変換します。 | チェックポイントが2〜4倍小さくなり、推論スループットが最大約2倍向上します。 |
| 量子化対応トレーニング/蒸留(QAD) | モデルが量子化された状態でファインチューニングを行うか、より小さなモデルに大きなモデルを模倣させます。 | 速度向上を維持しながら、過度な量子化による精度低下を回復します。 |
| プルーニング(枝刈り) | 出力への寄与が少ない重みを削除します。 | パラメータ数とメモリを削減し、多くの場合、精度の低下を最小限に抑えます。 |
| 蒸留 | コンパクトな「生徒」モデルをトレーニングして、大きな「教師」モデルの動作を再現させます。 | 教師モデルの品質をほとんど維持した、より小型で高速なモデルを実現します。 |
| 投機的デコード | 数トークン先を予測するドラフトモデルをトレーニングし、完全なモデルで修正します。 | トークン単位の生成のレイテンシを低減します。 |
| スパーシティ(疎性) | 非ゼロの重みとその位置のみを格納します。 | さらなるメモリ節約と計算削減を実現します。 |
AIワークフローへの統合方法
- 入力 – Hugging Face、ネイティブのPyTorchチェックポイント、またはONNXファイルからモデルを用意します。
- 最適化 – ModelOptのPython API(または提供されているCLI)を使用して、上記の技術を任意に組み合わせます。また、このライブラリはNVIDIAのMegatron-Bridge、Megatron-LM、Hugging Face Accelerateと統合されており、トレーニング時の最適化を容易にします。
- エクスポート – 最適化されたチェックポイントは、TensorRT-LLM、vLLM、SGLang、TensorRTなどの下流の推論エンジンに直接エクスポートできます。エクスポートAPIは、トランスフォーマーおよび拡散(diffusers)モデルの両方で機能します。
誰が使っているか?
- NVIDIAのチーム(例:Nemotron-3、DeepSeek-R1)は、Hugging Faceで公開されている量子化チェックポイントを生成しています。
- DomynやBielik.AIなどの企業は、30〜50%の高速化と大幅なモデルサイズ削減を示すケーススタディを公開しています。
- 本番GPU(新しいBlackwell RTX 50シリーズを含む)向けにモデルを準備するための、再現可能でオープンソースの方法を必要とする研究者や開発者。
はじめに
# PyPIから安定版をインストール(すべてのオプション依存関係を含む)
pip install -U nvidia-modelopt[all]
リポジトリをクローンして編集可能モードでインストールして最新機能を利用したり、ModelOptがすでに含まれているNVIDIAコンテナイメージを取得することもできます。
ドキュメントとリソース
- 完全なドキュメント: https://nvidia.github.io/Model-Optimizer
- ロードマップ/問題: https://github.com/NVIDIA/Model-Optimizer/issues/1699
- ベンチマークと例:
examples/フォルダ(PTQ、QAD、プルーニングなど)とベンチマークのマークダウンファイルを参照してください。 - 事前量子化チェックポイント: Hugging Faceのコレクションで、すぐにデプロイ可能です。
Model Optimizerを使用するタイミング
- メモリが限られているNVIDIA GPUで実行したい大規模なトランスフォーマーモデルがある場合。
- 本番の推論サービス(TensorRT-LLM、vLLM、SGLang)にモデルを出荷する必要があり、スループットと精度の最良のトレードオフを求めている場合。
- NVFP4やFP8などの新しい低精度フォーマットを実験しており、レイヤーごとの精度割り当てを検索するツールが必要な場合。
制限とポリシー
- このプロジェクトはまだプレ1.0(0.xリリース)です。非推奨はチェンジログで発表され、約1か月の移行期間があります。
- ModelOptはいくつかのサードパーティのOSS依存関係を引き込みます。それらのライセンスを確認する必要があります。
TL;DR: NVIDIA Model Optimizerは、大規模なAIモデルを圧縮、プルーニング、量子化し、NVIDIAの推論ランタイムへのシームレスなエクスポートを可能にする、実際に積極的にメンテナンスされているオープンソースライブラリです。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト