Model Optimizer Recipes配方系统入门YAML一键复现任何量化方案【免费下载链接】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 OptimizerModelOpt是 NVIDIA 推出的大模型优化统一框架内置量化、蒸馏、剪枝、神经架构搜索、投机解码等 SOTA 技术可将深度学习模型压缩并部署到 TensorRT-LLM、vLLM 等推理引擎。而其中的Recipes 配方系统让如何优化一个模型从散落在 Python 代码里的参数变成一个独立的 YAML 文件——改配置不再改代码一次量化方案可以复现、可分享、可进版本库。本文将带你从零看懂这套系统并用一条命令一键复现官方量化方案。为什么需要配方告别硬编码的量化参数量化一个 70B 模型你通常要决定哪些层用 FP8、哪些层用 NVFP4、KV Cache 用什么精度、校准算法选 max 还是 GPTQ……这些参数如果写死在脚本里会带来四个痛点痛点没有配方时有了 Recipes 后复现结果配置埋在命令行参数里难以追溯一个 YAML 文件完整描述团队协作口头传参版本不一致配方文件可直接 diff、review换模型重新翻代码找要改哪直接选一份现成配方记录实验笔记散落各处配置即文档天然可追溯正如官方文档 docs/source/guides/10_recipes.rst 所说配方是声明式规范declarative specification把优化设置与 Python 代码解耦。配方系统的三层架构整个配方系统由 modelopt/recipe/ 包实现分为三层配方源Recipe sources存放在 modelopt_recipes/ 目录下的 YAML 文件随包发布或你自己文件系统里的 YAML。配置加载器load_config负责读取 YAML、解析路径并自动完成e4m3这类浮点位宽简写转换。配方加载器load_recipe用 Pydantic 模型校验配置返回类型安全的配方对象可直接喂给量化工具。核心入口代码见 modelopt/recipe/loader.py数据模型见 modelopt/recipe/config.py。from modelopt.recipe import load_recipe import modelopt.torch.quantization as mtq # 内置配方库直接用相对路径引用无需前缀 recipe load_recipe(general/ptq/fp8_default-kv_fp8_cast) # 加载后直接用于量化 model mtq.quantize(model, recipe.quantize, forward_loop)解剖一份量化配方结构一目了然以最常用的 fp8_default-kv_fp8_cast.yaml 为例去掉版权头后只有 4 个部分imports: base_disable_all: configs/ptq/units/base_disable_all # 先禁用全部量化器 w8a8_fp8_fp8: configs/ptq/units/w8a8_fp8_fp8 # 线性层 W8A8 FP8 kv_fp8_cast: configs/ptq/units/kv_fp8_cast # KV Cache 用 FP8 default_disabled_quantizers: configs/ptq/units/default_disabled_quantizers metadata: description: W8A8 FP8 E4M3 量化 FP8 KV Cachemax 校准 quantize: algorithm: max # 校准算法 quant_cfg: - $import: base_disable_all - $import: w8a8_fp8_fp8 - $import: kv_fp8_cast - $import: default_disabled_quantizers可以看到它由四块积木拼成先全部禁用 → 打开需要的量化器 → 排除敏感层如 LM head、router→ 完成。这就是官方推荐的 deny-all-then-configure 模式既安全又简洁。上图展示了不同校准算法对量化精度的影响——这正是配方中algorithm字段的价值所在同样的 NVFP4 格式选对校准算法可让 Qwen3 27B 的平均精度损失从 2.31 分降到 0.77 分。内置配方库导航三级查找策略modelopt_recipes/ 是随包发布的配方库官方提供了29 份通用 PTQ 配方。查找配方时遵循由具体到通用的三级策略目录含义查找时机models/org/model_id/特定发布检查点按模型库路径索引你的模型恰好有官方发布配方时model_type/model_type/按架构索引一份覆盖同架构所有检查点你的模型架构有专属配方时general/ptq/模型无关任何模型可用默认起点万金油例如 Qwen3.5 架构的专属配方在 modelopt_recipes/model_type/qwen3_5/ptq/而 MoE 模型专家层专属压缩配方 nvfp4_experts_only-kv_fp8_cast.yaml 则放在通用层。配方文件名本身就是一份说明书命名规律为格式与作用域-KV缓存模式[-校准算法].yaml nvfp4_mlp_only-kv_fp8_cast.yaml └──┬──────────┘ └──┬─────┘ NVFP4 仅 MLP KV 用 FP8完整的选择指南请阅读 modelopt_recipes/ptq.md——它解释了每份配方量化了模型哪些部分全部线性层 / 仅 MLP / 仅 MoE 专家 / 仅权重以及为什么这样设计。一键复现用 --recipe 参数跑通完整流程配方系统打通了 Python API 与命令行两条路径。以 examples/hf_ptq/hf_ptq.py 为例整条命令如下python examples/hf_ptq/hf_ptq.py \ --model Qwen/Qwen3-8B \ --recipe general/ptq/fp8_default-kv_fp8_cast \ --calib_size 512 \ --export_path build/fp8 \ --export_fmt hf关键行为一旦指定--recipe脚本会直接加载配方配置并跳过所有格式相关的零散参数如--qformat、--kv_cache_qformat。也就是说配方是最高优先级的单一配置源——这正是一键复现的含义。图中展示了不同量化方案下有效位宽 vs MMLU 精度的权衡曲线——当你不确定该选哪份配方时这种精度-压缩比曲线就是最好的决策参考。两大省力设计$import 积木与 ExMy 简写1. $import 可组合导入。可复用的配置片段集中存放在 modelopt_recipes/configs/ 下configs/numerics/— 数值格式定义nvfp4.yaml、fp8、mxfp8 等 15 种configs/ptq/units/—quant_cfg构建块default_disabled_quantizers.yaml 等 18 个标准片段导入还支持覆盖先导入nvfp4片段再内联修改type: static即可在不动原片段的前提下微调一个字段。2. ExMy 浮点简写。位宽不用再写 Python 元组(4, 3)num_bits: e4m3 # 自动转为 (4, 3)FP8 标准格式 scale_bits: e8m0 # 自动转为 (8, 0)MX 块缩放大小写不敏感E4M3、e4m3均可。三步写出你自己的配方创建自定义配方只需找一份最接近目标配置的现成配方推荐从general/ptq/开始复制并修改quantize部分——敏感层排除清单和全禁用前缀直接$import内置片段只手写格式相关条目更新metadata.description说明你的改动保存后用--recipe 你的路径或load_recipe(你的路径)加载。路径解析规则很友好相对路径会先查内置配方库再查本地文件系统本地同名文件优先生效——这意味着你可以在不改库的前提下覆盖某份内置配方做实验。不止于 PTQ配方系统的未来版图PTQ 只是第一类配方。系统按metadata声明的配方类型自动匹配对应的 Pydantic 模型目前已支持PTQquantize段当前主力AutoQuantize自动量化搜索约束配置投机解码EAGLE3 / DFlash / Medusa 草稿头训练配方见 modelopt_recipes/general/speculative_decoding/蒸馏扩散模型 DMD2 蒸馏配置load_dmd_config同一份 YAML 同时驱动 Python API、CLI 参数和内置常量未来还将扩展到 QAT、剪枝与多阶段复合配方。对新手而言理解这套系统只需记住一句话配方是配置不是代码——选一份、跑一条命令即可复现。延伸阅读配方总目录 modelopt_recipes/README.md · PTQ 配方选型指南 modelopt_recipes/ptq.md · 完整 API 文档 docs/source/guides/10_recipes.rst【免费下载链接】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),仅供参考
企业数字化 ERP 产品动态
相关推荐
Unity 2D平台移动系统:分层状态机+组件化设计实战 1. 这不是“让角色动起来”的入门课,而是为中型2D项目打地基的移动系统设计你有没有写过这样的代码:PlayerController.cs里塞了300行,包含跳跃、滑铲、蹬墙、二段跳、空气加速、地面摩擦、斜坡判定、平台边缘检测……改一个参数要翻十页&… · 2026/9/26 7:49:07
AI Agent安全风险全景:OpenClaw Skills权限越界与防护实战 1. 从一次真实的翻车现场说起 去年秋天,我帮一个做跨境电商的朋友排查他们内部工具链的问题。他们团队用 OpenClaw 搭了一套自动化运营 Agent,负责抓取竞品价格、生成日报、自动回复客服工单。上线第三周,运营同学发现日报里混进了一段奇怪的… · 2026/9/26 7:49:07
不用 Unity,用 Prowl 继续 C# 游戏开发:架构解析与避坑指南 去年有段时间,我一直在琢磨“如果不用Unity,C#开发者还能用什么”这个问题。起因是手头有个做了大半年的独立项目,代码量和资产量上来之后,商业引擎的授权波动、闭源代码、黑盒问题越来越让人心里没底。这时我看到了 Prowl 这个名… · 2026/9/26 7:49:07
告别AI痕迹!TaoToken统一Key接入实测榜单与智能选型宝典 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 10:41:46
Manus 技术壁垒深度拆解:从 AI Agent 沙盒到多智能体协作的工程化落地 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 10:41:46
长期运行AI Agent的可靠性设计:状态、幂等与补偿 凌晨两点,监控屏上跳出一条告警,一条正在运行的 Agent 任务静默消失了。它没有报错,没有超时,就像被人从世界里抹掉了一样——实际上,只是它所在的节点因为内存压力被回收了。任务本身是一个需要连续执行三小时的数据治… · 2026/9/26 10:41:46
Linux中断子系统解析:从硬件触发到驱动回调的完整链路 1. 项目概述:中断子系统到底是什么,为什么驱动移植总会卡在这里做 Linux 驱动移植的人,十有八九都会在中断这里栽过跟头。不是request_irq返回-EINVAL,就是中断触发了但回调函数根本没执行,要么就是系统直接死锁卡死。… · 2026/9/26 10:41:46
用 UltraEdit 实现编码转换:TaoToken 统一 Key 通道下的配置文件骨架与验证动作 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 10:41:39
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46