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)是一个开源 Python 库,可帮助您让大型 AI 模型——尤其是大型语言模型(LLM)和视觉语言模型(VLM)——运行得更快,占用更少内存。它通过应用一系列模型优化技术来实现此目的,例如:

技术 功能 典型优势
训练后量化(PTQ) 训练后将权重和激活转换为低精度格式(例如,FP8、NVFP4、INT4)。 检查点缩小 2-4 倍,推理吞吐量最高提升约 2 倍。
量化感知训练/蒸馏(QAD) 在模型已量化的情况下进行微调,或让较小的模型模仿较大的模型。 在保持速度提升的同时,恢复因激进量化而损失的精度。
剪枝 移除对输出贡献较小的权重。 减少参数数量和内存,通常精度损失很小。
蒸馏 训练一个紧凑的“学生”模型来复现大型“教师”模型的行为。 生成更小、更快且保留教师模型大部分质量的模型。
投机性解码 训练一个草稿模型来预测多个后续 token,然后用完整模型进行校正。 降低逐 token 生成的延迟。
稀疏性 仅存储非零权重及其位置。 进一步节省内存和计算量。

如何融入 AI 工作流程

  1. 输入 – 从 Hugging Face、原生 PyTorch 检查点或 ONNX 文件开始使用模型。
  2. 优化 – 使用 ModelOpt 的 Python API(或提供的 CLI)组合上述任意技术。该库还与 NVIDIA 的 Megatron-Bridge、Megatron-LM 和 Hugging Face Accelerate 集成,使训练时优化更加容易。
  3. 导出 – 生成的优化检查点可以直接导出到下游推理引擎,例如 TensorRT-LLM、vLLM、SGLang 或 TensorRT。导出 API 适用于 Transformer 和扩散(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 容器镜像。

文档与资源

何时使用 Model Optimizer

  • 您有一个要在内存有限的 NVIDIA GPU 上运行的大型 Transformer 模型。
  • 您需要将模型部署到生产推理服务(TensorRT-LLM、vLLM、SGLang)并希望获得最佳的吞吐量与精度权衡。
  • 您正在尝试 NVFP4 或 FP8 等更新的低精度格式,并需要工具来搜索逐层精度分配。

限制与政策

  • 该项目仍处于预 1.0 版本(0.x 发布)。弃用功能会在变更日志中公布,并有约 1 个月的迁移窗口。
  • ModelOpt 引入了多个第三方 OSS 依赖项;您必须审查其许可证。

TL;DR: NVIDIA Model Optimizer 是一个真正、积极维护的开源库,允许您压缩、剪枝、量化并加速大型 AI 模型,并可无缝导出到 NVIDIA 的推理运行时。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目