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 (ModelOpt)

何であるか – NVIDIAが提供するオープンソースのPythonライブラリで、最新のモデル最適化技術(量子化、プルーニング、NAS、蒸留、予測デコード、スパース性)を統合し、Hugging Face、PyTorch、ONNXモデルに適用できる一貫したAPIを提供します。出力は、NVIDIAのデプロイスタック(TensorRT‑LLM、TensorRT、vLLM、SGLangなど)で高速推論可能な最適化されたチェックポイントです。

主な機能

技術 機能 一般的な利点
トレーニング後量子化(PTQ) モデルサイズを2〜4倍に削減、メモリ帯域幅とレイテンシを低減 誤差損失が小さいながら高速推論
量子化対応トレーニング/蒸留(QAT) 量子化されたモデルを微調整して精度を回復 FP8、NVFP4などの極めて低精度フォーマットを活用しながら品質を維持
プルーニング 不要な重みや完全なチャネルを削除 より小さなメモリ使用量と高いスループット
蒸留 大きな「教師」モデルを模倣する小さな「生徒」モデルを訓練 教師モデルの大部分の性能を維持したデプロイ可能なモデル
予測デコード 事前に追加トークンを予測するドラフトモデルを訓練 LLMのトークン生成レイテンシを低減
スパース性 非ゼロパラメータとその位置のみを保存 より大きなメモリ/計算の節約

一般的なワークフロー

  1. 入力 – Hugging Face、PyTorch、またはONNX形式のモデルを提供。
  2. 組み合わせ – Python API(または提供された例)を使用して技術を連結(例:プルーニング → 蒸留 → QAT → PTQ)。
  3. エクスポート – TensorRT‑LLM、vLLM、SGLang、またはNVIDIAのMegatron‑Bridgeなど、下流のランタイムで直接ロード可能な量子化チェックポイントを生成。

インストール

# PyPIからの安定版(すべてのオプション依存を含む)
pip install -U nvidia-modelopt[all]

開発用または最新機能を使用する場合:

git clone https://github.com/NVIDIA/Model-Optimizer.git
cd Model-Optimizer
pip install -e .[dev]

ModelOptが事前にインストールされたコンテナイメージも nvcr.io で利用可能です。

ドキュメントとリソース

  • 完全なドキュメント: https://nvidia.github.io/Model-Optimizer
  • 各技術のクイックスタートチュートリアルは examples/ 内にあります(例:hf_ptq, pruning, speculative_decoding)。
  • 人気のあるLLM/VLMの事前量子化チェックポイントはHugging Faceにホストされています(README内のコレクションリンクを参照)。
  • ロードマップ、ベンチマーク、変更履歴はリポジトリからリンクされています。

誰が使うべきか

  • NVIDIA GPU上で大規模言語・視覚モデルをデプロイするエンジニアで、スループットをさらに向上させたり、メモリ使用量を削減したい人。
  • 低精度フォーマット(FP8、NVFP4)やモデル圧縮パイプラインを実験している研究者。
  • すでにNVIDIAの推論スタック(TensorRT、TensorRT‑LLM、Megatron‑Bridge)を使用しているチームで、モデル準備用の単一ライブラリを求める人。

ライセンス – Apache 2.0(LICENSE を参照)。

引用 – 学術利用向けにコピー可能なBibTeXエントリが提供されています。


上記のすべての情報はリポジトリのREADMEから直接取得しており、外部の仮定は一切加えていません。

関連

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