AI 技能人工智能大模型深度学习【免费下载链接】AI-Research-SKILLsComprehensive open-source library of AI research and engineering skills for any AI model. Package the skills and your claude code/codex/gemini agent will be an AI research agent with full horsepower. Maintained by Orchestra Research.项目地址https://gitcode.com/gh_mirrors/ai/AI-Research-SKILLs点击查看免费下载本篇技术指南以仓库中 moe-training 技能 的 training.md 训练文档 为核心骨架系统讲解基于 DeepSpeed 的 Mixture of ExpertsMoE模型训练全流程。你将掌握标准 MoE 的配置与启动、核心训练参数的语义与调优区间、金字塔残差结构 PR-MoE、基于知识蒸馏的 Mixture-of-StudentsMoS以及生产环境下的规模配置、监控指标与故障排查方案可据此在自有集群上从零开始训练并调试大规模稀疏模型。一、前置准备与环境搭建1.1 安装依赖MoE 训练基于 DeepSpeed 与 Megatron-DeepSpeed 代码库实现最低要求 DeepSpeed v0.6.0 及以上版本MoE 功能从该版本起可用参见 DeepSpeed 参考文档 中 Mixture of Experts for NLG models 一节# 安装 DeepSpeed v0.6.0 或更高版本 pip install deepspeed0.6.0 # 克隆 Megatron-DeepSpeed包含 MoE 训练入口与示例脚本 git clone https://github.com/microsoft/Megatron-DeepSpeed cd Megatron-DeepSpeed pip install -r requirements.txt克隆后MoE 训练入口脚本pretrain_gpt_moe.py与示例脚本位于该仓库的examples_deepspeed/MoE/目录下原文档即以此为基准给出全部命令行示例。仓库侧与之配套的 DeepSpeed 资料可继续参考 DeepSpeed MoE 相关记录 与 DeepSpeed 教程索引。1.2 前置知识MoE 模型在 Transformer 的 FFN 位置替换为稀疏专家层每个 token 经 Router门控网络计算得分后只激活 Top-k 个专家完成前向计算。仓库 SKILL.md 给出了最小可运行的MoELayer实现hidden_size, num_experts8, top_k2其核心调用链为展平 token →gate(x)产生 logits → softmax torch.topk选出 Top-k → 按得分加权累加各专家输出。理解这条链路是理解后续所有容量因子、负载均衡参数的前提。二、标准 MoE 训练基础配置原文档给出了 DeepSpeed 的 MoE 基础 JSON 配置这是所有后续实验的起点逐字段完整继承如下{ train_batch_size: 256, gradient_accumulation_steps: 1, fp16: { enabled: true, loss_scale: 0, initial_scale_power: 16 }, moe: { enabled: true, num_experts: 128, expert_parallel_size: 8, moe_loss_coeff: 0.01, train_capacity_factor: 1.25, eval_capacity_factor: 2.0, min_capacity: 4, drop_tokens: true }, zero_optimization: { stage: 1 } }要点说明moe.expert_parallel_size: 8意味着 128 个专家被切分到 8 个 GPU 上每个 GPU 持有 16 个专家非专家参数仍按数据并行方式复制train_capacity_factor: 1.25与eval_capacity_factor: 2.0分别控制训练/评估阶段每个专家可处理的 token 上限容量公式见下文参数详解zero_optimization.stage: 1配合专家并行使用用于削减优化器状态内存。关于expert_parallel_size的约束DeepSpeed 教程 明确说明--moe-expert-parallel-size不得大于 GPU 总数也不得大于--num-experts因为其含义就是每个 GPU 上放置num_experts / moe-expert-parallel-size个专家。三、MoE 核心训练参数详解原文档列出 7 个核心 MoE 命令行参数结合 DeepSpeed 官方教程原文 的语义说明汇总如下参数含义推荐值/取值范围底层说明--num-experts每个 MoE 层的专家数量推荐 128范围 8–256专家数越多收敛越好但收益递减diminishing return--moe-expert-parallel-size专家并行度示例 128 专家 / 8 GPU 每卡 16 专家必须同时 ≤ GPU 数与专家数--moe-loss-coeffMoE 辅助损失负载均衡系数推荐 0.01越大负载均衡约束越强--moe-train-capacity-factor训练阶段专家容量乘数默认 1.25容量 (token 数 / 专家数) × 容量因子--moe-eval-capacity-factor评估阶段专家容量乘数默认 2.0评估不丢 token同容量公式--moe-min-capacity每个专家的最小容量默认 4保证每个专家至少处理一定数量的 token--disable-moe-token-dropping移除专家容量上限仅推荐推理/评估使用所有 token 都会被处理但内存开销上升对容量相关的三个参数DeepSpeed 教程给出了一致的因果说明容量因子越大单个专家可处理的 token 越多、收敛越好但由于各专家负载更不均衡训练速度会下降--disable-moe-token-dropping彻底移除单专家容量限制因此只建议在推理/评估阶段开启。四、端到端训练脚本原文档提供了一份完整的 GPT-MoE 预训练脚本使用 Megatron-DeepSpeed 的pretrain_gpt_moe.py完整保留并补充注释如下#!/bin/bash deepspeed --num_gpus 8 pretrain_gpt_moe.py \ --tensor-model-parallel-size 1 \ --pipeline-model-parallel-size 1 \ --num-layers 24 \ --hidden-size 1024 \ --num-attention-heads 16 \ --seq-length 2048 \ --max-position-embeddings 2048 \ --micro-batch-size 4 \ --global-batch-size 256 \ --train-iters 500000 \ --lr 0.0001 \ --min-lr 0.00001 \ --lr-decay-style cosine \ --lr-warmup-iters 2000 \ --clip-grad 1.0 \ --weight-decay 0.1 \ --num-experts 128 \ --moe-expert-parallel-size 8 \ --moe-loss-coeff 0.01 \ --moe-train-capacity-factor 1.25 \ --moe-eval-capacity-factor 2.0 \ --moe-min-capacity 4 \ --fp16 \ --deepspeed \ --deepspeed_config ds_config_moe.json \ --data-path /path/to/data \ --vocab-file /path/to/vocab.json \ --merge-file /path/to/merges.txt \ --save-interval 5000 \ --eval-interval 1000 \ --eval-iters 100脚本特征与依据8 卡、24 层、hidden 1024、序列长度 2048 的 GPT 骨干叠加 128 专家DeepSpeed 官方 NLG 实验即采用在每隔一个 FFN 层插入 MoE 层的方式如 24 层骨干对应 12 个 MoE 层且每 token 只激活 Top-1 专家使单 token 计算量与同尺寸 dense 模型相当参见 DeepSpeed-MoE NLG 记录学习率 1e-4 相比同规模 dense 模型的 6e-4 显著下调decay 周期拉长至 500K iter这正是原文档Hyperparameter Tuning一节的核心经验详见第六节命令行参数与ds_config_moe.json中moe字段一一对应二者需保持一致。五、PR-MoE金字塔残差混合专家5.1 架构原理PR-MoEPyramid-Residual-MoE是对标准 MoE 的两种结构改进的组合金字塔结构Pyramid不同层使用不同数量的专家--num-experts传入一个列表长度等于 MoE 层数而非单一数值。DeepSpeed 建议在靠近输出端的后段层使用更多专家残差结构Residual通过--mlp-type residual开启为 MoE 层引入残差连接改善梯度流动。原文档与 DeepSpeed 教程 一致指出PR-MoE 相比标准 MoE 可将参数效率提升最高 3 倍。5.2 配置示例# PR-MoE 专用参数 --num-experts [128, 64, 32, 16] \ # 金字塔各层专家数不同 --mlp-type residual \ # 开启残差连接 --moe-expert-parallel-size 4 \ --moe-loss-coeff 0.015.3 完整 PR-MoE 训练命令deepspeed --num_gpus 8 pretrain_gpt_moe.py \ --num-layers 24 \ --hidden-size 1024 \ --num-attention-heads 16 \ --seq-length 2048 \ --max-position-embeddings 2048 \ --micro-batch-size 4 \ --global-batch-size 256 \ --num-experts [128, 64, 32, 16] \ # 金字塔结构 --mlp-type residual \ # 残差 MoE --moe-expert-parallel-size 4 \ --moe-loss-coeff 0.01 \ --moe-train-capacity-factor 1.25 \ --fp16 \ --deepspeed \ --deepspeed_config ds_config_moe.json \ --data-path /path/to/data \ --save-interval 50005.4 收益据 DeepSpeed 官方文档相比标准 MoE 参数效率提升约 3 倍达到同等性能所需总参数量更少残差连接改善梯度流动训练更稳定。从源码层面看这一能力在 DeepSpeed 侧由deepspeed.moe.layer.MoEAPI 承载该 API 以num_experts与ep_size专家并行度为参数允许每个 MoE 层拥有不同的专家数与专家并行度并支持use_residualTrue开启残差模式见 DeepSpeed 教程 中 Mixture of Experts 一节的 API 说明这正是金字塔结构能在层级别落地的基础。六、Mixture-of-StudentsMoSMoE 知识蒸馏6.1 原理概述MoS MoE 知识蒸馏用于压缩大 MoE 模型、降低推理延迟与成本Student学生正在训练的 MoE 模型Teacher教师预训练好的 dense 或 MoE 模型可为标准 MoE 或 PR-MoE 检查点训练过程中将 dense/MoE 教师的知识迁移到稀疏学生模型。DeepSpeed 官方数据显示MoS 可进一步将模型体积缩小 12.5%与 PR-MoE 结合时相对标准 MoE 的总体积缩减最高可达 3.7 倍参见 DeepSpeed 教程。6.2 配置参数# MoS 参数 --mos \ # 开启 MoS 蒸馏 --load-teacher /path/to/teacher \ # 教师模型检查点路径必填 --teacher-forward \ # 开启教师前向传播 --teacher-model-parallel-size 1需要注意除检查点路径外MoS 还要求显式声明教师模型的架构信息层数--num-layers-teacher、隐藏维度--hidden-size-teacher、专家数--num-experts-teacher等PR-MoE 教师还需提供专家列表因为仅凭检查点无法推断架构。6.3 完整 MoS 训练命令deepspeed --num_gpus 8 pretrain_gpt_moe.py \ --num-layers 24 \ --hidden-size 1024 \ --num-attention-heads 16 \ --num-experts 128 \ --moe-expert-parallel-size 8 \ --moe-loss-coeff 0.01 \ --mos \ # 开启 MoS --load-teacher /path/to/dense/teacher \ # 教师检查点 --teacher-forward \ --teacher-model-parallel-size 1 \ --fp16 \ --deepspeed \ --deepspeed_config ds_config_moe.json \ --data-path /path/to/data6.4 分段蒸馏Staged DistillationDeepSpeed 实验发现整个训练过程始终叠加教师蒸馏损失反而会损害学生最终精度因此推荐分段蒸馏——训练早期叠加蒸馏损失后期只优化标准语言建模损失。原文档以 400K iter 为分界给出示例# 训练循环内 if iteration 400000: # 使用 MoS蒸馏阶段 loss moe_loss distillation_loss else: # 停止蒸馏仅训练 MoE loss moe_loss6.5 收益据 DeepSpeed 官方文档收敛更快最终性能更好在保留教师知识的同时允许学生 MoE 各专家继续特化。七、超参数调优7.1 学习率MoE 需要更低的 LR原文档的关键结论是MoE 模型所需学习率比 dense 模型低 3–6 倍。# Dense 模型 --lr 0.0006 \ --min-lr 0.00006 # MoE 模型3–6 倍更低 --lr 0.0001 \ # 更低 --min-lr 0.00001这一经验在仓库其他模块中也有印证Megatron-Core 的 训练配方 中Mixtral 8x7B 规模配置的 MoE 模型学习率即为lr: 1e-4 / min-lr: 1e-5与本节推荐一致。7.2 学习率衰减延长衰减周期# Dense 模型 --lr-decay-iters 300000 \ --lr-warmup-iters 2000 # MoE 模型延长 1.5–2 倍 --lr-decay-iters 500000 \ # 延长 --lr-warmup-iters 20007.3 容量因子内存与速度的权衡{ moe: { train_capacity_factor: 1.0, // 激进更快但会丢更多 token train_capacity_factor: 1.25, // 均衡推荐 train_capacity_factor: 1.5, // 保守更稳但更慢 eval_capacity_factor: 2.0 // 评估标准值不丢 token } }容量计算式为expert_capacity (tokens_per_batch / num_experts) × capacity_factor对应命令行为--moe-train-capacity-factor/--moe-eval-capacity-factor。调低训练容量因子会强制 token 重新分配这也是第 9 节负载不均衡的一种解法。7.4 负载均衡系数{ moe: { moe_loss_coeff: 0.001, // 弱均衡 moe_loss_coeff: 0.01, // 标准推荐 moe_loss_coeff: 0.1 // 强均衡 } }经验规则若负载不均衡持续存在则增大该系数。其底层机制可参考 SKILL.md 中给出的辅助损失实现——load_balancing_loss用num_experts × (expert_fraction × gate_probs).sum()衡量实际被路由的 token 比例与门控概率均值的对齐程度系数越大对均匀化的约束越强此外还可叠加router_z_loss logsumexp(logits).pow(2).mean()提升路由稳定性典型组合为total_loss lm_loss 0.01 × aux_loss 0.001 × router_z_loss。八、生产级训练8.1 性能基准据 DeepSpeed 官方文档标准 MoE相比 dense 模型训练成本降低约 5 倍PR-MoE 使模型体积缩减约 3 倍。原文档给出的一组对照示例Dense 13B 模型成本为 100%MoE 13B128 专家成本约 20%快 5 倍PR-MoE 13B成本约 15%且参数量减少 3 倍。其官方依据来自 DeepSpeed 的 NLG 实验1.3B 骨干 128 专家的 MoE 模型其验证损失与多项 Zero-shot 任务指标均达到 6.7B dense 模型水平而训练计算量与 1.3B dense 相当即以 1.3B 的训练成本获得 6.7B 的质量详见 DeepSpeed-MoE NLG 记录。8.2 推荐数据集The Pile约 800GB 多样化文本MoE 训练的常用公开基准被 DeepSpeed 官方示例用于 dense 与 MoE 模型的对照评估原文档明确说明任何公开的 Megatron-LM 预训练数据均可直接用于 MoE 训练The Pile 在官方评估中取得了与内部数据相近的结果。8.3 按规模划分的示例配置小型 MoE8 专家deepspeed --num_gpus 4 pretrain_gpt_moe.py \ --num-layers 12 \ --hidden-size 768 \ --num-attention-heads 12 \ --num-experts 8 \ --moe-expert-parallel-size 2 \ --global-batch-size 128 \ --fp16中型 MoE64 专家deepspeed --num_gpus 16 pretrain_gpt_moe.py \ --num-layers 24 \ --hidden-size 1024 \ --num-attention-heads 16 \ --num-experts 64 \ --moe-expert-parallel-size 8 \ --global-batch-size 256 \ --fp16大型 MoE128 专家deepspeed --num_gpus 32 pretrain_gpt_moe.py \ --num-layers 32 \ --hidden-size 2048 \ --num-attention-heads 32 \ --num-experts 128 \ --moe-expert-parallel-size 16 \ --global-batch-size 512 \ --fp16可以看出专家并行度的设置遵循每个 GPU 上放置少量专家、其余维度数据/张量/流水线并行分担剩余规模的模式仓库 Megatron-Core 训练配方 中 Mixtral 8x7Bnum-experts: 8, moe-router-topk: 2, moe-aux-loss-coeff: 0.01, expert-model-parallel-size: 864 GPU 上数据并行度 64/(1×4×8) 2与 DeepSeek-V3256 专家、Top-8、共享专家等更大规模配置可作为向上扩展的对照参考。8.4 训练监控指标原文档给出三组核心监控指标可在训练循环内采样打印# 1. 专家负载均衡度 expert_counts [expert.token_count for expert in experts] load_imbalance max(expert_counts) / min(expert_counts) # 应接近 1.0完全均衡 # 若 2.0增大 moe_loss_coeff # 2. 专家利用率 utilized_experts sum(count 0 for count in expert_counts) utilization_rate utilized_experts / num_experts # 应接近 1.0所有专家都被使用 # 3. Token 丢弃率 dropped_tokens total_tokens - processed_tokens drop_rate dropped_tokens / total_tokens # 训练期间应保持低位 5%九、故障排查9.1 问题一负载不均衡症状少数专家承接了绝大部分 token。解决方案增大moe_loss_coeff0.01 → 0.1降低train_capacity_factor强制 token 重新分配向路由 logits 添加噪声门控网络扰动Switch Transformer 即采用此策略见 architectures.md 中router_jitter_noise的用法。9.2 问题二内存占用过高解决方案开启 ZeRO Stage 1 或 Stage 2降低train_capacity_factor开启drop_tokens增大moe_expert_parallel_size让每个 GPU 持有更少专家。9.3 问题三训练不稳定解决方案降低学习率增加 warmup 步数使用梯度裁剪--clip-grad 1.0降低 router z-loss 系数。十、延伸阅读与仓库资源本文聚焦训练环节同技能内还有两个互补文档可继续深入architectures.mdMixtral 8x7B、DeepSeek-V3、Switch Transformers、GLaM 等模型架构细节、路由机制与架构对比表inference.mdMoE 推理优化、量化、专家并行与生产部署。底层实现与更大规模案例可对照DeepSpeed 教程索引--num-experts、--moe-expert-parallel-size、--moe-loss-coeff、容量因子等参数的官方原文解释以及deepspeed.moe.layer.MoEAPIep_size、use_residual参数DeepSpeed-MoE NLG 记录5 倍训练成本降低实验的完整背景、模型结构与评估方法Megatron-Core 训练配方Mixtral 8x7B、8x22B、DeepSeek-V3 的完整 YAML 配置与多卡并行方案。结合本指南的配置模板与调优规则即可在 Megatron-DeepSpeed 框架下复现标准 MoE → PR-MoE → MoS的完整训练与压缩链路。赞分享AI 技能人工智能大模型深度学习【免费下载链接】AI-Research-SKILLsComprehensive open-source library of AI research and engineering skills for any AI model. Package the skills and your claude code/codex/gemini agent will be an AI research agent with full horsepower. Maintained by Orchestra Research.项目地址https://gitcode.com/gh_mirrors/ai/AI-Research-SKILLs点击查看免费下载相关推荐DeepSpeed MoE 大规模稀疏模型推理实战指南并行切分、PR-MoE 优化与 init_inference 全解析DeepSpeed MoE 大规模稀疏模型推理实战指南并行切分、PR MoE 优化与 init_inference 全解析 在 DeepSpeed 中基于人工智能大模型深度学习分布式训练预训练强化学习模型优化3步突破图文模型训练瓶颈DeepSpeed VL-MoE实战指南3步突破图文模型训练瓶颈DeepSpeed VL MoE实战指南 在人工智能内容生成AIGC飞速发展的今天大型多模态模型如Flamingo、BLIP和G人工智能大模型深度学习分布式训练预训练强化学习模型优化DeepSpeed 分布式训练技能全解从 ZeRO 内存优化到 DeepNVMe 与 MoE 实战指南DeepSpeed 分布式训练技能全解从 ZeRO 内存优化到 DeepNVMe 与 MoE 实战指南 本文是 AI Research SKILLs 仓库中AI 技能人工智能大模型深度学习创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
