
Minitron剪枝工作流Model Optimizer把LLM参数量砍掉40%的全流程【免费下载链接】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-OptimizerModel OptimizerModel-Optimizer是 NVIDIA 开源的统一模型优化工具库把量化、蒸馏、剪枝、神经架构搜索、投机解码等 SOTA 压缩技术集于一身用于压缩深度学习模型并加速在 TensorRT-LLM、vLLM 等推理框架上的部署。其中Minitron 剪枝是压缩 LLM 的杀手锏它按激活重要性把 LLM 的层数、隐层宽度、FFN 宽度、注意力头、MoE 专家数逐维度砍掉默认搜索空间允许每个宽度维度最多削减 40%再用知识蒸馏把损失的能力找回来。本文将带你完整走一遍「剪枝 → 蒸馏 → 量化 → 部署」的全流程并附官方复现数据。Minitron 剪枝是什么一分钟看懂原理剪枝Pruning是移除神经网络中冗余参数以减小模型体积的结构性压缩技术。Minitron 的核心思路只有四步重要性打分在校准数据约 512–1024 条样本上跑前向统计每个神经元/注意力头/层的激活幅值8B 模型约 5 分钟排序在每个剪枝维度内所有隐层维度、所有注意力头等按重要性排序剪枝移除最不重要的参数直到满足目标尺寸权重切片所有层统一剪到相同结构同质剪枝得到可直接用标准方式保存/加载的小模型。Minitron 支持两种模式详见 examples/pruning/README.md模式你指定什么适合场景手动剪枝各维度目标尺寸如hidden_size3584明确知道要压到多大、或导出 Top-K 架构做候选NAS 自动剪枝目标参数量如params6e9不知道具体尺寸让算法在搜索空间里自动找最优架构自动模式下算法会在「宽度最多剪 40%、深度最多剪 20%」的约束内生成上万种候选架构用打分函数如 MMLU评估 Top-K 个候选选出得分最高的子网再切权重——这就是标题里砍掉 40%的由来。全流程一览数据准备 → 剪枝 → 蒸馏 → 评估 → 量化 → 部署官方示例以Nemotron-Nano-9B-v2 从 9B 剪到 7B为最小示例examples/pruning/minitron/NVIDIA-Nemotron-Nano-9B-v2/README.md以Nemotron-3-Nano-30B-A3B 从 31.6B 剪到 22B/A3.0B为进阶示例examples/megatron_bridge/tutorials/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16/README.md。两条路径的步骤完全一致第 1 步准备蒸馏数据蒸馏质量决定剪枝后的恢复上限。官方推荐的数据配方是30% 预训练数据 70% 后训练数据数学、代码、科学、指令跟随各占一定权重。数据集先按官方流程做 tokenize 与配比混合完整命令见 examples/dataset/MEGATRON_DATA_PREP.md。新手没有自己的语料时可直接使用官方推荐的 Nemotron 系列数据集。第 2 步一条命令完成 Minitron 剪枝剪枝脚本是 examples/megatron_bridge/prune_minitron.py在 8×H100 单节点上约 1 小时跑完 9B 模型torchrun --nproc_per_node 8 prune_minitron.py \ --hf_model_name_or_path nvidia/NVIDIA-Nemotron-Nano-9B-v2 \ --prune_target_params 7e9 \ --hparams_to_skip num_attention_heads \ --seq_length 8192 \ --output_hf_path /path/to/Pruned-7B常用参数速查--prune_target_params目标总参数量如7e9 压到 7B--prune_target_active_paramsMoE 模型专用按激活参数约束MoE 推理成本取决于激活参数--prune_score_func候选架构打分函数默认用 10% 采样的 MMLU--hparams_to_skip跳过难恢复的维度官方实践中普遍跳过num_attention_heads--max_width_pruning / --max_depth_pruning宽度/深度剪枝上限默认 0.40 / 0.20。运行日志会打印 Top-10 候选架构及得分例如 9B→7B 实验中最终胜出的是num_layers48, hidden_size4352, mamba_num_heads120, mamba_head_dim80, ffn_hidden_size13824。输出的就是一个标准 HuggingFace 检查点可以直接进入下一步。Qwen3-8B 上 Minitron 与异构剪枝 Puzzletron 的「剪枝 蒸馏」MMLU 对比结果如下剪枝前模型几乎不可用蒸馏后大幅恢复第 3 步知识蒸馏找回精度关键一步剪完即用的模型基本失忆9B 剪到 7B 后未经蒸馏的平均基准分只有 18.4。必须用原始模型当教师做知识蒸馏脚本是 examples/megatron_bridge/distill.pytorchrun --nproc_per_node 8 distill.py \ --teacher_hf_path nvidia/NVIDIA-Nemotron-Nano-9B-v2 \ --student_hf_path /path/to/Pruned-7B \ --seq_length 8192 --gbs 768 --train_iters 16000 \ --lr 1e-4 --min_lr 1e-5官方推荐的蒸馏超参数来自 examples/pruning/README.md 的 Pruning Guidelines超参数建议值序列长度8192数据集序列短则用 4096全局 Batch Size与原训练一致或 768学习率1e-4 → 1e-5 线性衰减压缩率越高起点越高训练量80–100B tokens 效果最佳数据配比标准模型 100% 预训练推理模型 70% 推理数据 30% 预训练 经验法则若知道原训练的最大学习率压缩约 50% 时用它的1/5作为蒸馏起点。蒸馏过程中各基准分数的恢复曲线9B→7B横轴为训练 token 数可以看到 2.5B tokens 时大部分能力已恢复80B tokens 后 7B 模型在 GPQA、IFEval 上甚至反超官方 9B 模型——这得益于 12B→9B→7B 的迭代剪枝策略每次压 25% 左右。蒸馏损失曲线同样平稳下降Minitron 子网与 Puzzletron 子网都能稳定收敛第 4 步评估 FP8 量化叠加恢复精度后用 NeMo Evaluator 跑 MMLU、MMLU Pro、GPQA、LiveCodeBench、AIME 等基准配置文件见 nemo_evaluator.yaml。Model Optimizer 的一大亮点是技术可叠加剪枝蒸馏完成后再用 examples/hf_ptq/hf_ptq.py 做 FP8 量化一行命令完成校准与导出python hf_ptq.py --pyt_ckpt_path 蒸馏后检查点 \ --export_path 输出路径 --qformat fp8 --trust_remote_code第 5 步部署到 vLLM / TensorRT-LLM量化后的检查点可直接被 vLLM、TensorRT-LLM、SGLang 加载。在单张 H100 上输入 32K/输出 1K的实测吞吐检查点显存占用输出 tokens/s相对原版加速Nemotron-3-Nano-30B-A3B-BF16官方58.9 GiB5981.0×剪枝后 22B/A3.0B-BF1641.5 GiB1,1902.0×剪枝 22B FP822.8 GiB1,5762.6×剪枝-30% 参数与 FP8 量化叠加后30B MoE 模型实现2.6× 吞吐加速 2.6× 显存下降且基准分仅比官方 30B 低 1.6 分70.5 vs 72.1新手实践清单剪枝比例与常见坑官方 Pruning Guidelinesexamples/pruning/README.md总结的核心经验深度 vs 宽度深度剪枝减层数配置最简单、固定参数下推理更快宽度剪枝减 hidden/FFN同参数下精度更好。追求最优效果时两者结合但调参成本更高超过 1/3 的压缩是安全区剪掉 1/3 以内 高质量数据80–100B tokens蒸馏通常能得到延迟-精度帕累托前沿上的模型压缩 50% 请迭代剪枝先压 30% → 蒸馏 → 再压 30% → 再蒸馏一次压太多很难恢复FFN 比 hidden 更好剪MLP 维度ffn_hidden_size可以比嵌入维度和注意力维度剪得更激进注意力头跳过剪官方复现中普遍--hparams_to_skip num_attention_heads因为注意力头剪枝最难恢复蒸馏后还要后训练若需要推理能力蒸馏后追加指令微调/偏好对齐如 Nemotron-Post-Training-Dataset-v2。完整资料索引想动手复现建议按以下顺序阅读仓库中的文件examples/pruning/README.md — 剪枝总览Minitron / Puzzletron / FastNAS 三种算法、支持矩阵与调参指南examples/pruning/minitron/NVIDIA-Nemotron-Nano-9B-v2/README.md — 9B→7B 完整端到端教程数据、剪枝、蒸馏、评估、量化、vLLM 压测examples/megatron_bridge/README.md — Megatron-Bridge 框架下的剪枝与蒸馏操作手册含多机 Slurm 用法examples/pruning/minitron_vs_puzzletron/README.md — Minitron 与 Puzzletron 的场景选型与对比实验examples/dataset/MEGATRON_DATA_PREP.md — 蒸馏数据 tokenize 与配比准备modelopt/torch/prune/ — 剪枝算法源码实现docs/source/guides/3_pruning.rst — 官方剪枝 API 文档。环境方面剪枝 LLM 建议直接使用 NeMo 容器nvcr.io/nvidia/nemo:26.08并挂载 Model-Optimizer 仓库运行避免手工安装 Megatron 全家桶依赖。剪枝后如果还想进一步压显存记得 Model Optimizer 的量化、QAT量化感知蒸馏、稀疏化都能在同一套工作流里无缝叠加——这就是统一压缩库的价值所在。【免费下载链接】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),仅供参考