资讯详情

AngelSlim mcore_qad进阶:基于Megatron-Core的分布式量化感知训练架构解析

📅 2026/10/10 22:41:03 | 华诺云谱 👁 阅读
AngelSlim mcore_qad进阶:基于Megatron-Core的分布式量化感知训练架构解析
人工智能大模型模型压缩模型量化模型蒸馏模型优化【免费下载链接】AngelSlimModel compression toolkit engineered for enhanced usability, comprehensiveness, and efficiency.项目地址https://gitcode.com/gh_mirrors/an/AngelSlim点击查看免费下载AngelSlim是一个面向大模型的开源压缩工具包覆盖量化、稀疏、投机采样等压缩算法。它的mcore_qad模块是一个独立的后端基于Megatron-Core实现分布式量化感知训练QAT与量化感知蒸馏QAD冻结原始 BF16 权重、注入伪量化、只训练量化器Quantizer中的 scale 参数从而以极小的参数开销让大模型适配 NVFP4、FP8、W4A16 等低比特部署格式。本文带你完整解析这套架构的设计思路与使用方法。一、为什么只训练 scale就够传统的量化感知训练QAT会微调模型的全部参数显存开销大、训练成本高。mcore_qad 的思路更极致权重完全冻结BF16 权重原封不动来自 Megatron 分布式 checkpoint伪量化Fake-Quant前向前向传播时权重和激活被量化-反量化模拟真实低比特部署的数值损失只优化 scale量化器的缩放因子scale是唯一可训练的参数数量比权重少几个数量级优化器状态极小训练收敛快。FP8 等低比特格式中scale 直接决定了量化精度下图直观展示了权重分布与 scale 的关系——这正是 mcore_qad 通过训练 scale 来修复量化损失的依据当开启蒸馏时distill_weight 0同一个冻结模型关闭量化后再前向一次即可得到教师teacherlogits无需额外加载一份教师模型——teacher 就是自己这是 scale-only 训练天然的福利。二、训练全流程架构解析mcore_qad 由 angelslim/compressor/mcore_qad/ 目录组织Trainer.setup()按以下管线装配见 train/trainer.py1. 自动转换 HF 权重为 Megatron 分布式 checkpoint这是新手最省心的一步。如果配置中的checkpoint_path不存在checkpoint/prepare.py 会协调所有 torchrun rank仅全局 rank 0 执行 tools/hf_to_megatron.py 转换其他 rank 等待并通过 NCCL 广播结果。多机训练需使用共享存储路径。2. 并行初始化与模型构建通过 mcore/dist.py 初始化 Megatron 并行拓扑支持TP张量并行、EP专家并行、CP上下文并行、SP序列并行与 DP数据并行当前要求pipeline_parallel1。世界规模必须能被TP×PP×CP和EP×PP同时整除启动时会做拓扑校验runner.py。3. 伪量化注入不改 forward透明替换权重mcore/quantize.py 是核心注入点权重利用 PyTorch 的parametrization机制注册WeightFakeQuant让module.weight透明返回伪量化后的权重Megatron 原生的 TP 感知 forward 无需任何改动梯度自然流向 scale激活用forward_pre_hook在矩阵乘法前对输入做伪量化router 与 output_layer 保持高精度不参与量化。4. 分组专家Grouped Experts加速 MoEMoE 模型逐专家执行量化会产生数千个碎 GEMM 调用是实测瓶颈。mcore/grouped_experts.py 把每个 MoE 层的专家替换为3D 堆叠权重整栈一次性向量化伪量化再用单个 grouped GEMM 完成所有专家计算。专家仅按 EP 切分ETP 固定为 1既省显存又快。5. 损失函数与分布式梯度同步损失设计在 train/loss.pytotal lm_weight × lm_loss distill_weight × distill_lossdistill_type支持kl前向 KL、rkl反向 KL和cakld按教师置信度自适应混合两者distill_topk 0时只在教师 top-k token 上计算 KL避免物化[tokens, vocab]大张量是大词表蒸馏能跑通的关键TP1 时自动切换为vocab-parallel losslogits 保持 TP 分片数值与稠密 loss 一致且显存友好。梯度同步分两层parallel/grad_sync.py 在 DPCP 组上平均 scale 梯度MoE 专家使用 expert-DP 组parallel/scale_parallel.py 处理 TP 副本间的一致性——被切分的 scale 打上 tensor-parallel 标记被复制的 scale 注册 backward hook 做 all-reduce防止副本静默漂移。6. 只保存 scale训练结束及可选的每 N 步快照只保存各 rank 的可训练 scale 张量scales_rankR.pt权重仍是那份冻结的 FP checkpoint见 checkpoint/scales.py。整个产物体积极小。三、支持的模型与量化格式速查项目内容支持模型Qwen3-MoEqwen3_moe、HunYuan-3hy_v3量化格式nvfp4W4A4、nvfp4a16、w4a16INT4、w8a8INT8、fp8W8A8、w4afp8参考环境PyTorch 2.10 Megatron-Core 0.18 Transformer Engine ≥2.16H100输出各 rank 的 scale 快照 angelslim_config.json所有格式定义集中在 quant/presets.py格式名与部署侧vLLM/compressed-tensors的布局 1:1 对应新增格式只需在此登记一处。四、快速上手一条命令启动 QAD 训练pip install -e .[mcore-qad] torchrun --nproc_per_node8 tools/run.py \ -c configs/qwen3/mcore_qad/qwen3_moe_nvfp4.yaml现成启动脚本可直接参考 scripts/mcore_qad/run_mcore_qad_for_hy3.sh。以 Qwen3-30B-A3B 的 configs/qwen3/mcore_qad/qwen3_moe_nvfp4.yaml 为例关键配置项如下配置项作用建议值format量化格式nvfp4checkpoint_pathMegatron checkpoint缺失时自动从 HF 转换本地路径lm_weight/distill_weightLM 损失与蒸馏损失权重1.0/0.0不蒸馏distill_type/distill_topk蒸馏类型 / top-k 裁剪kl、大词表设0experts_only只量化 MoE 路由专家骨干保持 BF16falseparallel.expert_parallel专家并行度MoE 常用8parallel.context_parallel长上下文并行需seq_len被2×CP整除1recompute全量激活重算大模型必开trueoptim.lrscale-only 训练通常可用更高学习率2.0e-4dataset.data_path省略时自动使用随机 token便于冒烟测试HunYuan-3 需提供带applied_message字段的 JSONLdataset/hy_applied.py。五、源码导读核心模块路径后端入口与生命周期runner.py训练配置与 Trainertrain/config.py、train/trainer.py伪量化注入mcore/quantize.py格式预设quant/presets.py、quant/spec.py分组专家mcore/grouped_experts.py、quant/grouped_quant.py蒸馏损失与 vocab-parallel losstrain/loss.py、train/loss_vp.pycheckpoint 自动转换与 scale 存取checkpoint/prepare.py、checkpoint/scales.py并行拓扑mcore/dist.py、parallel/grad_sync.py官方使用文档见 docs/source/features/qad/mcore_qad.md另有 Hy3 与 Qwen3-MoE 的多格式配置示例configs/Hy3/mcore_qad/hy_v3_nvfp4.yaml、configs/qwen3/mcore_qad/qwen3_moe_w4afp8.yaml。六、总结mcore_qad 用冻结权重 只训 scale的极简范式把量化感知训练搬上了 Megatron-Core 的分布式体系省心HF 权重自动转 Megatron checkpoint无需手工准备省资源可训练参数只有 scale优化器状态极小配合激活重算可训超大 MoE 模型高效grouped GEMM 消除 MoE 碎 GEMM 瓶颈CP 支持长上下文可插拔格式、scheme、量化源learnable/dynamic/calibrated均注册化扩展新格式只需改一处。它是 AngelSlim 中面向部署级低比特训练的进阶路径与 HF/DeepSpeed 路线的 QAD 模块 互补并存可按模型规模与并行需求自由选择。赞分享人工智能大模型模型压缩模型量化模型蒸馏模型优化【免费下载链接】AngelSlimModel compression toolkit engineered for enhanced usability, comprehensiveness, and efficiency.项目地址https://gitcode.com/gh_mirrors/an/AngelSlim点击查看免费下载相关推荐PyTorch分布式训练进阶FSDP与RPC框架PyTorch分布式训练进阶FSDP与RPC框架 本文深入探讨了PyTorch中两种关键的分布式训练技术完全分片数据并行 FSDP 和远程过程调用 RPC示例工程高效构建足球数据分析系统的终极完整指南SoccerData专业配置与实战应用高效构建足球数据分析系统的终极完整指南SoccerData专业配置与实战应用 SoccerData 是一个强大的Python足球数据抓取库能够从Club E网页爬虫数据分析GitHub_Trending/se/self-llm进阶模型量化感知训练技术实践GitHub_Trending/se/self llm进阶模型量化感知训练技术实践 量化训练技术概述 在大语言模型LLM应用中量化技术Quantiza教程大模型本地部署微调创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑