Model Optimizer 支持矩阵完全解读:哪些模型能量化、能剪枝、能蒸馏?
【免费下载链接】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
Model Optimizer(ModelOpt)是 NVIDIA 开源的统一模型优化库,把量化(Quantization)、剪枝(Pruning)、蒸馏(Distillation)、神经网络架构搜索(NAS)、推测解码(Speculative Decoding)和稀疏化六大技术整合到一个库里,把 Hugging Face / PyTorch / ONNX 模型压缩后部署到 TensorRT-LLM、TensorRT、vLLM 等推理框架。很多新手最关心的问题就是:"我的模型到底支不支持这些优化?"本文带你一次看懂官方的 7 张支持矩阵。🗺️
📊 一分钟总览:七大技术各自支持什么
先给结论,官方把支持矩阵分散在各示例目录的 README 中,入口汇总在 README.md 的 "Model Support Matrix" 章节:
| 技术 | 一句话说明 | 典型支持范围 | 矩阵文档 |
|---|---|---|---|
| LLM/VLM 量化 | PTQ 压缩 2x~4x,提速推理 | Llama、Qwen、DeepSeek、Kimi、GLM、Nemotron 等 | examples/hf_ptq/README.md |
| 扩散模型量化 | 图像/视频生成加速 | FLUX、SDXL、SD3 等 | examples/diffusers/README.md |
| 剪枝 | 移除冗余权重,缩小参数量 | Minitron(Megatron)、Puzzletron(HF)、FastNAS(CV) | examples/pruning/README.md |
| 蒸馏 | 小模型模仿大模型行为 | Nemotron、Llama 3/4、Gemma 2/3、Phi 3、Qwen2 等 | examples/llm_distill/README.md |
| 推测解码 | 训练草稿模块减少解码延迟 | Medusa / EAGLE1/2/3:Llama 2/3、Mistral、Phi 3、Qwen 等 | examples/speculative_decoding/README.md |
| 量化感知训练(QAT/QAD) | 几步训练找回量化损失的精度 | Qwen、Nemotron ChatML 等,FSDP2/DDP/DeepSpeed | examples/llm_qat/README.md |
| ONNX / Windows 量化 | 传统模型与 Windows 平台 | 见下表 | docs/source/guides/0_support_matrix.rst |
💡 总原则:格式越新(NVFP4/FP8),要求的 GPU 越新;剪枝/蒸馏不挑格式,挑框架(Minitron 走 Megatron,Puzzletron 走 Hugging Face)。
📉 量化支持矩阵:LLM/VLM 哪些模型能打
这是用户量最大的一张表(摘自 examples/hf_ptq/README.md),✅ 表示官方已验证:
| 模型 | FP8 | INT8 SmoothQuant | INT4 AWQ | W4A8 | NVFP4 |
|---|---|---|---|---|---|
| Llama 3.x | ✅ | ❌ | ✅ | ✅ | ✅ |
| Llama 4 | ✅ | ❌ | ❌ | ❌ | ✅ |
| Mixtral | ✅ | ❌ | ✅ | ❌ | ✅ |
| Qwen 2 / 2.5 | ✅ | ✅ | ✅ | ✅ | ✅ |
| Qwen 3 / 3.5 MOE / Next | ✅ | - | - | - | ✅ |
| DeepSeek V3、R1、V3.1 | - | - | - | - | ✅ |
| Kimi K2 / K3 | - | - | - | - | ✅ |
| GLM-4.7 | ✅ | - | - | - | ✅ |
| Nemotron-3 | ✅ | ❌ | ❌ | ❌ | ✅ |
| Qwen-VL 系列(VLM) | ✅ | - | - | - | ✅ |
几个新手容易踩的坑:
- NVFP4 需要 Blackwell GPU + TensorRT-LLM ≥ 1.2,且官方推荐用
nvfp4_mlp_only/nvfp4_experts_only等"部分量化"配置保精度——只量化 MLP/专家层,保留敏感注意力层的高精度。 - VLM 默认只量化语言侧,视觉编码器保持高精度(Qwen3-VL 等可选配 FP8 视觉编码器 recipe)。
- 量化精度算法(Max / MSE / Local Hessian)的选择会直接影响权重量化后的分布,下面这张图直观展示了三种算法下缩放权重的差异:
扩散模型量化:SDXL、FLUX 全格式覆盖
图像生成模型的支持矩阵同样齐全,examples/diffusers/README.md 显示 FLUX、SD3、SDXL、SDXL-Turbo、SD2.1全部支持 FP8、INT8 SmoothQuant、INT4 AWQ、W4A8、NVFP4(含 SVDQuant),其中 SD3/SDXL 还支持 Cache Diffusion 加速。下面的对比图就是 SDXL 量化后生成质量的参考样例:
格式 × GPU 硬性要求(Linux)
来自 docs/source/guides/0_support_matrix.rst 的 Feature Support Matrix:
| 量化格式 | 量化粒度 | 最低 GPU 代际 | 可部署到 |
|---|---|---|---|
| NVFP4 (W4A4) | Per-Block 权重+激活 | Blackwell 及以后 | TensorRT、TensorRT-LLM |
| FP8 (W8A8) | Per-Tensor 权重+激活 | Ada 及以后 | TensorRT*、TensorRT-LLM |
| INT8 SmoothQuant | Per-channel 权重 / Per-Tensor 激活 | Ampere 及以后 | TensorRT*、TensorRT-LLM |
| INT4 AWQ (W4A16) | 块状 INT4 权重 | Ampere 及以后 | TensorRT、TensorRT-LLM |
| W4A8(实验性) | INT4 权重 + FP8 激活 | Ada 及以后 | TensorRT-LLM |
*Windows 平台的矩阵与 Linux 略有差异(如 ONNX FP8/INT8 用 Max 校准、部署到 ORT-CUDA/ORT-DML),同样在该文档的 Windows 标签页中。
✂️ 剪枝支持矩阵:三个算法,三种玩法
剪枝矩阵按算法而非按模型列出(examples/pruning/README.md),这点和量化矩阵完全不同:
| 算法 | 适用模型 | 剪枝约束方式 |
|---|---|---|
| Minitron | Megatron-core(M-Bridge / M-LM)上的稠密 / MoE / Mamba 混合 LLM,含 VLM 语言侧 | 自动:指定params、active_params、memory_mb目标;手动:hidden_size、ffn_hidden_size、num_layers、MoE 专家数等 |
| Puzzletron | Hugging Face 稠密 / MoE / 混合模型与 VLM | 指定target_memory/num_params/target_latency_seconds,按层搜索 FFN 宽度、KV 头数、MoE 专家数等(异构剪枝) |
| FastNAS | 计算机视觉模型 | flops、params |
两个实用提示:
- 想用Minitron但模型只在 HF 上?只要 Megatron-Bridge 支持该架构,就可以导入后再剪。
- 剪枝后精度掉太多?官方标准动作是剪枝 + 蒸馏两阶段,把精度找回来。下面是 Qwen3-8B 上 Minitron vs Puzzletron 剪枝+蒸馏后的 MMLU 结果对比(绿色为蒸馏后,虚线为教师模型):
Puzzletron 还能画出"压缩率-精度"权衡曲线,帮你决定该剪到多狠:
🎓 蒸馏支持矩阵:谁可以当"学生"
蒸馏矩阵(examples/llm_distill/README.md)列出的是已验证可跑通的模型,但不受限于此:Nemotron(Mamba 混合)、Llama 3/4、Gemma 2/3、Phi 3、Qwen 2 均 ✅。内置损失函数包括:
mtd.LogitsDistillationLoss():标准 KL 散度mtd.MGDLoss():面向 2D 卷积输出的掩码生成蒸馏mtd.MFTLoss():带 MiniFineTuning 阈值修正的 KL 损失
蒸馏效果如何?下面这张图展示了剪枝后的 Nemotron-3-Nano-30B 模型在知识蒸馏过程中,MMLU、GPQA、LiveCodeBench 等 9 项基准随训练 token 数逐步逼近教师模型的过程:
⚡ 推测解码与 QAT 支持矩阵
推测解码(examples/speculative_decoding/README.md)按草稿算法支持:
| 模型 | Medusa | EAGLE1/2 | EAGLE3 |
|---|---|---|---|
| Llama 2 / 3 / 3.1 | ✅ | ✅ | ✅ |
| Mistral、Phi 3 | ✅ | ✅ | ✅ |
| Qwen 1.5 / 2 / 2.5 / 3 | ✅ | ✅ | ✅ |
| Kimi K2.5 / K2.6 | - | - | ✅ |
量化感知训练 QAT/QAD(examples/llm_qat/README.md)支持 Qwen 2/2.5/3/3.5 稠密模型与 Nemotron ChatML 模型,内置 recipe 覆盖 NVFP4(W4A4+FP8 KV)、FP8(W8A8)、INT4 权重-only 及混合精度,训练后端推荐 FSDP2(examples/llm_qat/configs/accelerate/ 下有现成配置)。量化后精度不理想时,QAD(量化感知蒸馏)几轮训练即可拉回,下图是 Qwen3.6-35B-A3B 的 W4A4 NVFP4 QAD 六个基准的恢复过程:
🧭 新手决策清单:我的模型该怎么优化
- 只是想缩小、加速、不想训练→ 查 LLM 量化矩阵,Llama/Qwen/DeepSeek 首选 NVFP4(新卡)或 FP8(Hopper),老卡用 INT4 AWQ。
- 要大幅缩参数→ 模型在 Megatron 生态走 Minitron,纯 HF 模型走 Puzzletron;剪完接一轮蒸馏。
- 量化掉点→ 开 QAT/QAD 训练几轮,或用 AutoQuantize 自动分配混合精度。
- 延迟敏感(长文本生成)→ Llama/Qwen 系列训练 EAGLE3 推测解码模块。
- 做图像生成→ SDXL/FLUX 直接 FP8 或 NVFP4,还能叠加 Cache Diffusion。
想深入看 YAML 配方(recipes)体系,可以浏览 modelopt_recipes/general/ptq/ 与 modelopt_recipes/model_type/;量化核心 API 在 modelopt/torch/quantization/,剪枝核心 API 在 modelopt/torch/prune/。
⚠️ 注意:带 * 号的功能为实验性支持;✅ 仅代表"官方已验证",不代表其他模型不能跑——社区实践中很多未列出的模型也能成功量化。具体行为以 docs/source/guides/0_support_matrix.rst 和各示例 README 的最新版本为准。
【免费下载链接】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辅助生成(AIGC),仅供参考