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