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、蒸餾、推測解碼、稀疏性),並提供統一的 API,可應用於 Hugging Face、PyTorch 或 ONNX 模型。輸出為可直接用於 NVIDIA 部署堆疊(TensorRT‑LLM、TensorRT、vLLM、SGLang 等)進行快速推論的優化檢查點。
主要功能
| 技術 | 作用 | 常見效益 |
|---|---|---|
| 訓練後量化(PTQ) | 模型大小縮小 2–4 倍,降低記憶體頻寬與延遲 | 幾乎無精度損失下的更快推論 |
| 量化感知訓練/蒸餾(QAT) | 微調量化模型以恢復精度 | 在保持品質的同時支援激進的低精度格式(FP8、NVFP4) |
| 剪枝 | 移除不重要的權重或整個通道 | 更小的記憶體佔用與更高的吞吐量 |
| 蒸餾 | 訓練一個較小的「學生」模型以模仿較大的「教師」模型 | 保留教師模型大部分效能的可部署模型 |
| 推測解碼 | 訓練一個草稿模型以提前預測額外的 token | 降低 LLM 的 token 生成延遲 |
| 稀疏性 | 僅儲存非零參數及其位置 | 進一步節省記憶體與運算 |
典型工作流程
- 輸入 – 提供 Hugging Face、PyTorch 或 ONNX 格式的模型。
- 組合 – 使用 Python API(或提供的範例)串接技術,例如:剪枝 → 蒸餾 → QAT → PTQ。
- 匯出 – 產生可直接由下游執行時(如 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]
nvcr.io 上也提供預安裝 ModelOpt 的容器映像。
文件與資源
- 完整文件: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