
【免费下载链接】Model-OptimizerA 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.项目地址https://gitcode.com/GitHub_Trending/te/Model-Optimizer点击查看免费下载随着生成式 AI 模型在复杂度与规模上持续增长推理成本控制已成为生产部署的核心挑战。NVIDIA Model Optimizer下文简称 Model Optimizer 或 ModelOpt是 NVIDIA 推出的统一模型优化库将量化、蒸馏、剪枝、投机解码、稀疏化等前沿优化技术收敛到同一套 Python API 之下它以 PyTorch / ONNX / Hugging Face 模型为输入产出自带校准信息的量化 checkpoint并可直接部署到 TensorRT-LLM、TensorRT、vLLM、SGLang 等主流推理框架。读完本文你将掌握 ModelOpt 的端到端工作流、五大核心技术的 API 用法与底层实现证据、Linux/Windows 双平台的安装方式以及如何结合本仓库的源码与示例快速上手。一、Model Optimizer 是什么定位与设计理念从本仓库的 入门总览 可知Model Optimizer 是一个包含 SOTAstate-of-the-art模型优化技术的库核心目标只有一个最小化生成式 AI 模型的推理成本。其设计理念可以归纳为三个关键环节输入接受一个torch或ONNX模型作为输入当前亦支持 Hugging Face 生态的 transformers / diffusers 模型优化提供 Python API让用户能够像搭积木一样把不同的优化技术量化、蒸馏、剪枝、投机解码、稀疏化等叠加使用产出一个优化且量化的 checkpoint部署生成的量化 checkpoint 无缝接入 NVIDIA AI 软件生态可直接在 TensorRT-LLM、TensorRTLinux 平台、vLLM、SGLang 等下游推理框架中运行。这种统一 API 可组合优化技术 面向部署框架产出的设计使 ModelOpt 区别于单一的量化工具它既是技术集合也是通往推理框架的桥梁。在仓库根目录 README.md 中这一流程被明确表述为Input → Optimize → Export for deployment三段式。二、端到端工作流从优化到部署ModelOpt 的端到端流程在 README.md 中描述得非常清晰[Optimize]ModelOpt 提供 Python API用户可自由组合上述优化技术并导出优化后的量化 checkpoint[Export for deployment]量化 checkpoint 直接面向 SGLang、TensorRT-LLM、TensorRT、vLLM 等部署框架统一的 Hugging Face 导出 API 同时支持transformers与diffusers两类模型[训练侧集成]对于需要训练环节的优化技术如 QAT、蒸馏、稀疏化训练ModelOpt 与 NVIDIA NeMo、Megatron-LM 深度集成仓库中还进一步扩展了对 Megatron-Bridge 与 Hugging Face Accelerate 的支持见 README.md。值得一提的是modelopt/torch/export目录下实现了统一的导出体系其中unified_export_hf.py、unified_export_hf_streaming.py对应 Unified Hugging Face checkpoint 导出支持在 TensorRT-LLMPyTorch 与 C 后端、vLLM、SGLang 上直接部署examples/hf_ptq/README.md 中给出的导出调用方式为from modelopt.torch.export import export_hf_checkpoint with torch.inference_mode(): export_hf_checkpoint( model, # 已量化的模型 export_dir, # 导出文件存放目录 )三、核心优化技术一量化Quantization量化是大型模型最有效的优化手段之一。按 入门总览 的说明使用 ModelOpt 进行量化可将模型体积压缩2x–4x在加速推理的同时保持模型质量。3.1 支持的量化格式与硬件前提ModelOpt 支持多种高性能量化格式NVFP4、FP8、INT8、INT4等并覆盖 SmoothQuant、AWQ、SVDQuant、Double Quantization 等高级算法。结合 支持矩阵各格式的典型特征如下量化格式量化细节适用硬件部署框架FP4NVFP4Per-Block FP4 权重与激活量化Blackwell 及更新TensorRT、TensorRT-LLMFP8Per-Tensor FP8 权重与激活Ada 及更新TensorRT、TensorRT-LLMINT8Per-channel INT8 权重 Per-Tensor INT8 激活SmoothQuantAmpere 及更新TensorRT、TensorRT-LLMW4A16INT4 仅权重Block-wise INT4 权重 FP16 激活AWQAmpere 及更新TensorRT、TensorRT-LLMW4A8INT4 权重 FP8 激活Block-wise INT4 权重 Per-Tensor FP8 激活AWQAda 及更新TensorRT-LLM从源码结构看modelopt/torch/quantization 下为每种格式都提供了独立的张量量化实现nvfp4_tensor.pyNVFP4 按块量化与打包、fp8_tensor.py、int4_tensor.py、int8_tensor.py、mxfp8_tensor.py、mxfp4_tensor.py等并在gemm_registry.py中注册 fp8 / nvfp4 的真实量化 GEMM 内核fp8_per_tensor_gemm.py、nvfp4_gemm.py可在推理阶段把量化权重以低精度存储、以低精度矩阵乘执行进一步压缩显存占用。3.2 两大量化范式PTQ 与 QATPost-Training QuantizationPTQ训练后量化模型训练完成后直接降低精度无需重训是上手最快的方式Quantization-Aware TrainingQAT量化感知训练在训练过程中模拟量化误差通常能进一步恢复低精度带来的精度损失。ModelOpt 的量化 API 以mtq为命名空间import modelopt.torch.quantization as mtq核心入口mtq.quantize()在 model_quant.py 中定义其签名包含model、config与可选的forward_loop——forward_loop用于在 PTQ 阶段驱动校准数据前向传播从而确定每个量化器的 amax最大绝对值缩放因子。3.3 一份可直接运行的 PTQ 示例examples/hf_ptq/README.md 给出了完整的最小可运行流程安装nvidia-modelopt[hf]后用几十行代码即可完成量化与校准import modelopt.torch.quantization as mtq # 加载模型以 Hugging Face 模型为例 model AutoModelForCausalLM.from_pretrained(...) # 构建校准数据 loaderPTQ 通常只需要 128~512 个样本 calib_set get_dataloader(num_samplescalib_size) # 定义前向循环在校准数据上跑一遍模型采集激活统计 def forward_loop(model): for batch in calib_set: model(batch) # 就地替换为量化模块并完成校准 model mtq.quantize(model, mtq.NVFP4_DEFAULT_CFG, forward_loop)关于校准数据默认情况下 ModelOpt 混合使用cnn_dailymail与nemotron-post-training-dataset-v2两类数据集PTQ 精度通常对校准数据的选择较为稳健用户可以通过修改calib_set自由替换其他数据集。对于追求更高 NVFP4 精度场景examples/hf_ptq/README.md 还给出了一条重要的配置经验优先使用mtq.NVFP4_MLP_ONLY_CFG、mtq.NVFP4_EXPERTS_ONLY_CFG或mtq.NVFP4_OMLP_ONLY_CFG替代mtq.NVFP4_DEFAULT_CFG。其中NVFP4_MLP_ONLY_CFG只对 MLP及 MoE层做 NVFP4 量化而保持注意力层不量化NVFP4_EXPERTS_ONLY_CFG仅量化专家层匹配*mlp.experts*、*block_sparse_moe*适合 MoE 模型NVFP4_OMLP_ONLY_CFG在专家量化基础上额外量化o_proj层。这些配置在保留注意力 QKV 投影精度的同时仍能获得可观的压缩比。3.4 量化配置体系的源码支撑ModelOpt 的量化配置统一由 config.py 承载它定义了QuantizeConfig、逐层quant_cfg条目含num_bits、block_sizes、calibrator、axis、amax等字段以及校准器的规范化逻辑。与此同时conversion.py 负责在量化、反量化restore与导出之间完成模块替换mode.py 则通过 mode 机制注册各种量化算法如max、mse、awq、smoothquant、svdquant、gptq等。此外ModelOpt 还提供了AutoQuantize能力入口mtq.auto_quantize可在给定的模型大小 / 速度约束下自动搜索每层的最优量化格式与精度实现混合精度量化相关实现位于 model_quant.py 与 kv_cache_auto_quant.py。四、核心优化技术二蒸馏Distillation知识蒸馏Knowledge Distillation利用一个已训练好的教师teacher模型来训练一个更小、更高效的学生student模型。教师模型与学生的特征图feature maps和 logits 分别作为用户指定损失的目标与预测从而在传统训练基础上提升精度与/或收敛速度。ModelOpt 通过mtd.convert()API即modelopt.torch.distill.distillation.convert见 distillation.py实现最小侵入式的教师-学生知识蒸馏集成import modelopt.torch.distill as mtd # 将 student 模型转换为可训练的蒸馏元模型元模型内部同时封装 teacher 与 student student mtd.convert(student, modekd_loss)从源码看convert()的底层调用apply_mode(model, mode, registryDistillModeRegistry)其核心 mode 是kd_loss配置类为KDLossConfig定义于 config.py转换后的模型是 distillation_model.py 中定义的DistillationModel训练结束后可用mtd.export()把元模型还原为纯学生模型。仓库同时提供losses.py、loss_balancers.py用于定制蒸馏损失与各层损失的自动平衡以及layerwise_distillation_model.py支持逐层layerwise蒸馏。蒸馏通常与量化组合使用例如 README 中介绍的 QADQuantization-Aware Distillation流程即先用 NVFP4 W4A4 PTQ 大幅压缩再通过量化感知蒸馏恢复精度这正是 ModelOpt 支持多种技术叠加的典型场景。五、核心优化技术三剪枝Pruning剪枝通过移除不必要的权重来减小模型体积并加速推理。ModelOpt 提供mtp.prune()API即modelopt.torch.prune.pruning.prune能够剪除Linear 与 Conv 层的参数以及Transformer 的注意力头、MLP 与深度层数并支持多种前沿剪枝算法。仓库 examples/pruning 目录下的 Minitron 剪枝方案是这一能力的代表性落地其思路是先用剪枝得到结构紧凑的小模型如把大模型剪到指定目标形状再配合蒸馏恢复精度README 中展示了 Nemotron 系列从大模型瘦身为更小模型并获得显著吞吐提升的流程。实现上modelopt/torch/prune 目录承载了剪枝的算法与结构重写逻辑包括权重剪枝、注意力头/FFN 维度/深度剪枝等并与蒸馏、导出流程衔接支持剪枝 → 蒸馏 → 量化的完整生产链路。六、核心优化技术四投机解码Speculative Decoding投机解码通过在每一步生成中产生多个 token来降低推理延迟由草稿模型draft model预测若干候选 token再由原始模型在单次前向传播中统一验证这些 token。这相当于用一次验证成本换取多 token 的产出对延迟敏感的在线推理场景尤为有效。ModelOpt 提供mtsp.convert()API即modelopt.torch.speculative.speculative_decoding.convert用于给模型附加投机解码模块import modelopt.torch.speculative as mtsp model mtsp.convert(model, modeeagle) # 以 Eagle 等草稿头为例modelopt/torch/speculative 目录下实现了完整的投机解码训练与推理支持39 个 Python 文件涵盖 Eagle、Medusa 等草稿头结构的训练工具配套的 examples/speculative_decoding 提供从隐状态采集、草稿头训练、LoRA 合并到 checkpoint 导出的完整脚本如main.py、train_eagle3_and_export.sh、quantize_drafter.py等README 中提及基于该技术可实现最高 1.9x 的 Llama-3.1 推理性能提升对应研究博客非本仓库性能声明此处仅说明能力方向。七、核心优化技术五稀疏化Sparsity稀疏化通过只存储模型权重的非零值及其位置来进一步降低内存占用并加速推理。ModelOpt 提供mts.sparsify()API即modelopt.torch.sparsity.sparsification.sparsify可自动为给定模型应用权重稀疏化支持NVIDIA 2:4 稀疏模式每 4 个连续元素中保留 2 个非零值配合 Tensor Core 可带来确定性的加速支持多种稀疏化方法如 NVIDIA ASP 与 SparseGPT同时支持训练后稀疏化PTS与稀疏化感知训练SAT其中后者被明确推荐因为它能把精度下降控制在最小程度。仓库 examples/llm_sparsity 下分为weight_sparsity权重稀疏含finetune.py、eval.py、export_hf_ckpt.py等与attention_sparsity注意力稀疏两个子场景modelopt/torch/sparsity 目录则包含稀疏化算法的实现与内核支持。八、Windows 支持ModelOpt-Windows除 Linux 主线外Model Optimizer 还提供面向 Windows 的版本ModelOpt-Windows为 Windows RTX PC 系统带来包括量化在内的模型压缩能力见 入门总览 与 examples/windows。其特点包括面向高效量化的专门优化本地 GPU 校准、更低的系统与显存占用、更快的处理时间Windows 生态无缝集成以优化后的 ONNX 模型作为输出面向Microsoft DirectML与TensorRT-RTX后端SDK 支持支持 Microsoft Olive 与 ONNX Runtime可通过 DirectML 路径将量化模型部署到不同硬件厂商的平台上。Windows 场景下的量化格式与部署后端如 ORT-DML、ORT-CUDA、ORT-TRT-RTX 等同样记录在 支持矩阵 的 Windows 页签中。九、安装与系统要求Model Optimizer 面向 Linux 与 Windows 用户均可免费从 NVIDIA PyPInvidia-modelopt包获取。Linux 版的系统要求见 Linux 安装指南如下项目要求操作系统Linux架构x86_64、aarch64SBSAPython 3.10, 3.15CUDA12.x、13.xPyTorch 2.8TensorRT-LLM可选 1.0ONNX Runtime可选1.24TensorRT可选 10.09.1 方式一Docker 镜像推荐若需要使用 TensorRT / TensorRT-LLM 等完整部署依赖官方推荐使用 TensorRT-LLM 的 NGC 容器镜像nvcr.io/nvidia/tensorrt-llm/release:version其中已预装 Model Optimizer拉取后按下一节用pip升级到最新版本即可。必要时配置以下环境变量export PIP_CONSTRAINT export LD_LIBRARY_PATH${LD_LIBRARY_PATH}:/usr/include:/usr/lib/x86_64-linux-gnu此外还可选用 NGC PyTorch 容器nvcr.io/nvidia/pytorch:version-py3预装 ModelOpt、NeMo 容器nvcr.io/nvidia/nemo:version适用于 Megatron-Bridge / Megatron-LM 场景或 TensorRT 容器nvcr.io/nvidia/tensorrt:version-py3ONNX/TensorRT 场景下性能更优。使用前请阅读各镜像的许可条款。9.2 方式二本地环境PIP / Condaconda create -n modelopt python3.12 pip conda activate modelopt如需特定 PyTorch 版本请按官方指引先安装目标 PyTorch/CUDA 组合再执行pip install -U nvidia-modelopt[all]可选依赖不带任何可选依赖安装时仅覆盖modelopt.torch包的依赖其他模块需要按对应可选依赖补装模块可选依赖modelopt.onnx[onnx]modelopt.torch._deploy[onnx]Hugging Facetransformers、diffusers等[hf]CUDA 特有依赖默认安装cupy-cuda12x以支持 INT4 ONNX 量化若使用 CUDA 13请在安装nvidia-modelopt[onnx]后执行pip uninstall -y cupy-cuda12x并pip install cupy-cuda13x。9.3 用 Triton 内核加速量化ModelOpt 内置了基于 Triton 语言实现的优化量化内核相比默认实现可将量化操作提速约 40%对 AWQ 与 QAT 工作流尤其有益。目前 Triton 内核支持 NVFP4 量化格式更多格式将在后续版本加入使用前提为CUDA 设备计算能力 8.9如 RTX 40 系列、RTX 6000、NVIDIA L40 及更新安装 Tritonpip install triton。无需额外配置——当硬件与量化格式满足条件时优化内核会被自动启用。9.4 验证安装首次使用 ModelOpt 的 PyTorch 量化 API 时它会基于当前安装的 torch/CUDA 编译快速量化内核可能耗时数分钟后续调用会显著加快。可手动触发编译并验证是否成功也便于在构建 Docker 镜像时预编译python -c import modelopt.torch.quantization.extensions as ext; ext.precompile()该入口定义于 extensions.py是modelopt.torch.quantization包的 CUDA 扩展编译入口。十、开源生态与预量化模型免费开源Model Optimizer 遵循 Apache 2.0 许可见 LICENSE全部源码、示例与测试均在本仓库公开预量化 checkpointNVIDIA 在 Hugging Face 上以 Model Optimizer Collection 形式发布了多组可直接部署的预量化 checkpoint覆盖 NVFP4、FP8 等格式可在 TensorRT-LLM、vLLM、SGLang 上直接运行Agent 技能仓库 plugins/modelopt/skills 提供了面向 Claude Code、Codex 等 AI Agent 的 ModelOpt 技能包可在任意工作区中安装使用便于将优化工作流自动化。十一、进一步阅读技术指南量化指南、蒸馏指南、剪枝指南、投机解码指南、稀疏化指南支持矩阵docs/source/guides/0_support_matrix.rst动手示例HF PTQ 量化、QAT / 量化蒸馏、蒸馏、剪枝、投机解码、稀疏化、Windows部署指南TensorRT-LLM 部署、ONNX Runtime 部署、Unified HF 部署总体而言Model Optimizer 的核心价值在于一个入口、多种技术、直通部署无论你只做一次 PTQ 快速压缩还是要走完剪枝 → 蒸馏 → 量化的完整生产链路都可以在同一套 Python API 内完成并最终以统一的 checkpoint 格式交付给主流推理框架。结合本文给出的源码路径与示例建议直接在本仓库的examples目录中挑选与自身模型/场景最接近的脚本作为起点将上述 API 组合落地到自己的训练与部署流水线中。赞分享【免费下载链接】Model-OptimizerA 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.项目地址https://gitcode.com/GitHub_Trending/te/Model-Optimizer点击查看免费下载相关推荐3步跑通WSABuildsWindows安卓环境完整搭建方案3步跑通WSABuildsWindows安卓环境完整搭建方案 桌面上运行不了手机里的App官方Windows Subsystem for AndroidW开发工具TensorLayer模型优化技术剪枝、量化与知识蒸馏实践TensorLayer模型优化技术剪枝、量化与知识蒸馏实践 你是否还在为深度学习模型部署时的内存占用过高、推理速度缓慢而困扰是否想在嵌入式设备上流畅运行复杂人工智能深度学习机器学习强化学习NNI 3.0 模型压缩框架全面解析统一剪枝、量化与蒸馏的新架构NNI 3.0 模型压缩框架全面解析统一剪枝、量化与蒸馏的新架构 本文基于 NNI 开源仓库中的压缩模块文档 docs/source/compression人工智能AutoML机器学习深度学习模型压缩特征工程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考