NVIDIA Model Optimizer:统一压缩模型并导出到 TensorRT-LLM
给 Hugging Face、PyTorch 和 ONNX 模型做量化压缩,并直接接入 TensorRT-LLM、vLLM 等推理后端。
GitHub NVIDIA/Model-Optimizer 更新 2026-09-25 分支 main 星标 4.1K 分叉 629
Python Cuda 模型量化 TensorRT-LLM vLLM SGLang PyTorch

🧭 决策指南

适合,如果你

  • 你有 Hugging Face、PyTorch 或 ONNX 模型,并要接入 TensorRT-LLM、vLLM 或 SGLang。
    README 的 Input 与 Export for deployment 章节明确列出这些输入类型和下游框架。
  • 你需要 PTQ 将模型压缩 2x-4x,或需要 QAT、剪枝、蒸馏、稀疏性等优化技术。
    README 的 Techniques 表格列出 Post Training Quantization、Quantization Aware Training、Pruning、Distillation 和 Sparsity。
  • 你希望直接使用 NVIDIA Model Optimizer Collection 中的 ready-to-deploy checkpoints。
    README 的 Pre-Quantized Checkpoints 章节提供 Hugging Face Nvidia Model Optimizer Collection 链接。

不适合,如果你

  • 你的模型输入不是 Hugging Face、PyTorch 或 ONNX,且不在 README 列出的输入范围内。
    README 的 Input 章节写明 Model Optimizer currently supports Hugging Face、PyTorch 或 ONNX model。
  • 你的项目要求稳定的 1.0 版本 API,而不能接受 ModelOpt 0.x 的兼容性变化。
    README 的 Deprecation Policy 说明 Model Optimizer 仍为 pre-1.0,移除弃用项可能在 0.x minor version 中带来 breaking changes。
  • 你不能接受安装 nvidia-modelopt[all] 时引入额外第三方开源软件。
    README Install 章节说明 Model Optimizer will download and install additional third-party open source software projects。

前置条件

  • 可从 PyPI 安装稳定包:`pip install -U nvidia-modelopt[all]`。
  • 需要审阅 Model Optimizer 及其额外第三方开源项目的许可证条款。
  • 如使用源码开发模式,需要执行 `git clone [email protected]:NVIDIA/Model-Optimizer.git`、`cd Model-Optimizer` 和 `pip install -e .[dev]`。
  • 可使用预装 Model Optimizer 的 NVIDIA 容器:`nvcr.io/nvidia/pytorch:-py3`、`nvcr.io/nvidia/nemo:` 或 `nvcr.io/nvidia/tensorrt-llm/release:`。
  • README 要求使用容器前审阅对应许可证,并将 Model Optimizer 升级到最新版本。

第一步命令(README 原文)

pip install -U nvidia-modelopt[all]

要注意

  • 不要把 0.x API 当作长期稳定接口;README 允许 minor version 中出现 breaking changes。
    Deprecation Policy 章节明确写出 Model Optimizer remains in 0.x,且可能在 minor version 中包含 breaking changes。
  • 使用 `nvidia-modelopt[all]` 或 NVIDIA 容器前,需处理额外开源项目和容器许可证。
    README Install 章节分别提示额外第三方软件的许可证和容器的 respective license terms。
  • 具体模型能否使用不能只看总览,README 为 LLM/VLM、Diffusers、ONNX 等类别提供 Support Matrix。
    README 的 Model Support Matrix 章节按 LLM/VLM Quantization、Diffusers Quantization、ONNX Quantization 等类别提供矩阵链接。

材料未说明

  • README 未给出 CUDA、GPU 型号、驱动版本或各部署后端的最低版本要求。
  • README 未提供具体模型在 TensorRT-LLM、vLLM 或 SGLang 上的兼容版本组合。
  • README 的总览未列出每个模型的完整 Support Matrix 内容,无法仅凭材料确认目标模型是否支持。
  • README 未给出 PTQ 之外各技术的统一压缩比例、吞吐提升或精度变化数字。
  • README 未说明 `nvidia-modelopt[all]` 会安装哪些具体第三方项目及其许可证清单。
  • README 未说明 5 个版本和最新 ModelOpt 0.47.0 Release 各自包含哪些兼容性变化。

💡 深度解析

6
适合 我现在维护 Hugging Face LLM/VLM,希望通过后训练量化降低模型大小,并把检查点直接部署到 vLLM;Model Optimizer 是否适合这条路径?
适合读者: 使用 Hugging Face LLM/VLM、准备部署到 vLLM 的 NVIDIA 推理工程师

适合,因为 README 明确覆盖 Hugging Face LLM/VLM 量化,并将量化检查点衔接到 vLLM。

  • 后训练量化宣称可将模型压缩 2x-4x,同时尽量保持模型质量。
  • 输入支持 Hugging Face 模型,README 还提供了 “HF LLMs / VLMs” 示例和独立支持矩阵。
  • 导出结果可用于 vLLM,但具体模型、量化格式和算子是否可用,仍受支持矩阵及下游运行时限制。
  • 不能仅凭压缩比例推断实际延迟收益,目标硬件、vLLM 版本和批处理配置会影响结果。

第一步可以安装完整包:pip install -U nvidia-modelopt[all]。

  • Input:Model Optimizer currently supports inputs of a Hugging Face, PyTorch or ONNX model
  • Techniques:Post Training Quantization;Compress model size by 2x-4x
  • Export for deployment:ready for deployment in downstream inference frameworks like ... vLLM
  • Model Support Matrix:LLM / VLM Quantization
pip install -U nvidia-modelopt[all]
材料未说明:README 摘要未列出你的具体 LLM/VLM、目标 GPU、量化格式与 vLLM 版本是否在支持范围内。;README 未给出你的模型在目标负载下的实际吞吐、首 token 延迟和端到端延迟。
适合 我已经用 SGLang 提供模型服务,希望直接采用 NVIDIA 提供的预量化检查点来缩短上线路径;Model Optimizer 是否适合,而不是自己重新量化?
适合读者: 已经使用 SGLang 生产服务、希望直接采用 NVIDIA 预量化检查点的平台工程师

适合,因为 README 提供可直接获取的预量化检查点,并明确列出 SGLang 作为可部署的下游框架。

  • Pre-Quantized Checkpoints 章节称这些检查点是 “Ready-to-deploy”。
  • 同一章节明确写出可部署到 TensorRT-LLM、vLLM 和 SGLang,与你的服务框架直接匹配。
  • 预量化检查点来自 NVIDIA Model Optimizer Collection,可减少自行执行量化和导出流程的工作量。
  • 但“可部署”不等于与你的生产模型、量化配置、SGLang 版本和硬件必然一致;README 仍要求结合模型支持矩阵和实际运行时确认。

这条路径最适合优先验证仓库已发布、且与你目标环境匹配的检查点。

  • Pre-Quantized Checkpoints:Ready-to-deploy checkpoints
  • Pre-Quantized Checkpoints:Deployable on TensorRT-LLM, vLLM and SGLang
  • Pre-Quantized Checkpoints:Nvidia Model Optimizer Collection
  • Model Support Matrix:多个技术和模型类型均有独立支持矩阵
材料未说明:README 摘要未提供具体检查点名称、模型版本、量化配置、SGLang 版本和硬件要求。;未说明预量化检查点在你的并发量、上下文长度和服务配置下的吞吐与延迟。
适合 我使用 Megatron-Bridge 训练 LLM,只有少量训练步骤预算,希望通过量化感知训练或蒸馏恢复量化后的精度;Model Optimizer 是否适合?
适合读者: 使用 Megatron-Bridge 训练 LLM、需要量化感知训练恢复精度的模型工程师

适合,因为 README 明确把 Megatron-Bridge 集成到需要训练的推理优化流程,并提供 QAT 与蒸馏示例。

  • Optimize 部分写明支持 Megatron-Bridge、Megatron-LM 和 Hugging Face Accelerate,用于需要训练的优化技术。
  • QAT / Distillation 的描述是通过 “a few training steps” 进一步改善量化模型精度,符合你的训练预算约束。
  • README 同时提供 Hugging Face 和 Megatron-Bridge 的 QAT 示例,并为 QAT 列出支持矩阵。
  • 这不是零成本转换流程:QAT 和蒸馏仍需要训练数据、GPU 资源以及与模型结构匹配的训练配置。

如果你的 LLM 位于 Megatron-Bridge 支持矩阵内,这条路径比只做 PTQ 更有针对性。

  • Optimize:integrated with NVIDIA Megatron-Bridge, Megatron-LM and Hugging Face Accelerate
  • Techniques:Quantization Aware Training / Distillation;with a few training steps
  • Techniques 示例:Hugging Face、Megatron-Bridge
  • Model Support Matrix:Quantization Aware Training
pip install -U nvidia-modelopt[all]
材料未说明:README 摘要未给出你的 LLM、Megatron-Bridge 版本、训练数据规模或所需 GPU 数量的兼容要求。;未说明“少量训练步骤”在你的模型和目标精度下具体是多少。
视情况 我手里只有 ONNX 模型,目标运行时是 TensorRT;我能否用 Model Optimizer 完成量化并导出可部署检查点,而不先改成 Hugging Face 模型?
适合读者: 已有 ONNX 模型、想接入 TensorRT 的 NVIDIA 部署工程师

视情况,因为 README 接受 ONNX 输入并列出 ONNX 量化示例,但没有承诺所有 ONNX 图都能完成量化和 TensorRT 部署。

  • 输入层明确支持 Hugging Face、PyTorch 或 ONNX 模型。
  • Techniques 表中提供 “ONNX” 后训练量化示例,说明这条路径是项目支持的场景。
  • 部署层列出 TensorRT,表明优化检查点可以进入 NVIDIA 推理软件栈。
  • 但 README 通过 ONNX 支持矩阵进一步限定模型范围;算子、图结构、精度格式和 TensorRT 版本的兼容性未在摘要中展开。

因此,项目适合验证已在矩阵中的 ONNX 模型,不适合把“任意 ONNX 模型可直接部署”当作保证。

  • Input:Model Optimizer currently supports inputs of a Hugging Face, PyTorch or ONNX model
  • Techniques:Post Training Quantization 示例包含 ONNX
  • Export for deployment:downstream inference frameworks like ... TensorRT
  • Model Support Matrix:ONNX Quantization
pip install -U nvidia-modelopt[all]
材料未说明:README 摘要未说明你的 ONNX 模型具体算子、opset、量化格式及 TensorRT 版本是否兼容。;未说明 ONNX 量化后的检查点到 TensorRT engine 的完整转换命令。
视情况 我使用 Diffusers 模型,希望沿用统一的 Hugging Face 导出 API 做量化并连接 NVIDIA 推理生态;Model Optimizer 是否覆盖我的工作流?
适合读者: 使用 Diffusers 视觉生成模型、需要统一 Hugging Face 导出接口的模型开发者

视情况,因为 README 明确支持 Diffusers 的统一导出和量化示例,但具体模型与下游框架仍须查支持矩阵。

  • Export for deployment 明确说明统一 Hugging Face export API 同时支持 transformers 和 diffusers 模型。
  • 后训练量化示例单独列出 Diffusers,说明视觉生成模型不是仅停留在概念支持。
  • 项目目标是生成可供 TensorRT、TensorRT-LLM、vLLM 或 SGLang 使用的量化检查点,但这些框架对 Diffusers 的实际覆盖未在 README 摘要中逐项说明。
  • 量化后的生成质量、显存占用与速度之间仍可能存在取舍,README 没有为你的具体 pipeline 提供结果。

因此,接口层面匹配,但是否能直接进入目标部署框架取决于模型和运行时支持。

  • Export for deployment:The unified Hugging Face export API now supports both transformers and diffusers models
  • Techniques:Post Training Quantization 示例包含 Diffusers
  • Pre-Quantized Checkpoints:Deployable on TensorRT-LLM, vLLM and SGLang
  • Model Support Matrix:Diffusers Quantization
pip install -U nvidia-modelopt[all]
材料未说明:README 摘要未列出你的具体 Diffusers pipeline、采样器、量化格式和目标硬件是否支持。;未说明 Diffusers 量化检查点能否直接被你选择的 TensorRT、vLLM 或 SGLang 流程加载。
视情况 我在 Windows 上使用 PyTorch 模型,希望先验证后训练量化;README 有 Windows 示例,Model Optimizer 是否适合我的环境?
适合读者: 在 Windows 环境验证量化流程、使用 PyTorch 模型的开发者

视情况,因为 README 确实列出 Windows 量化示例,但 Windows 支持是单独限定的场景,不能从通用 PyTorch 输入支持推导出完整兼容性。

  • 输入层支持 PyTorch 模型,后训练量化表中也明确包含 “Windows” 示例。
  • README 为 Windows Quantization 单独设置支持矩阵,说明模型、算子或环境覆盖存在边界。
  • 项目同时依赖 NVIDIA AI 软件生态,并提供 NVIDIA PyTorch、NeMo 和 TensorRT-LLM 容器;这些容器并不等于 Windows 原生部署方案。
  • 因此它适合验证支持矩阵内的 Windows 量化路径,不适合默认假设所有 PyTorch 模型和所有下游部署框架都能在 Windows 上工作。
  • Input:Model Optimizer currently supports inputs of a Hugging Face, PyTorch or ONNX model
  • Techniques:Post Training Quantization 示例包含 Windows
  • Model Support Matrix:Windows Quantization
  • Install:NVIDIA PyTorch、NeMo 和 TensorRT-LLM container images
pip install -U nvidia-modelopt[all]
材料未说明:README 摘要未说明 Windows 版本、CUDA/PyTorch 组合、GPU 型号及具体 PyTorch 模型的兼容性。;未说明 Windows 量化结果是否能直接进入你的目标 TensorRT、vLLM 或 SGLang 部署环境。

✨ 核心亮点

  • PTQ 可将模型压缩 2x-4x
  • 支持 Hugging Face、PyTorch、ONNX 输入
  • 可部署到 TensorRT-LLM、vLLM、SGLang
  • 覆盖量化、剪枝、蒸馏和稀疏性
  • ModelOpt 0.47.0 仍处于 pre-1.0

🔧 工程化

  • Python API 可组合量化、剪枝与蒸馏
  • 支持 transformers 与 diffusers 的统一导出
  • 量化检查点可导出到 TensorRT 和 vLLM

⚠️ 风险

  • pre-1.0 版本仅提供约 1 个月迁移期
  • 安装 nvidia-modelopt[all] 会附带第三方软件
  • 0.x 小版本可能包含 breaking changes

👥 适合谁?

  • 使用 Hugging Face、PyTorch 或 ONNX 模型的团队
  • 目标后端是 TensorRT-LLM、vLLM 或 SGLang 的部署工程师
  • 需要 PTQ、QAT、NAS 或 speculative decoding 的 NVIDIA 用户