附录D:MoE模型性能调优速查表


文档摘要

附录D:MoE模型性能调优速查表 训练超参数速查 基础配置 参数 | 小模型 ( 100B) 学习率 | 3e-4 | 1e-4 3e-4 | 1e-4 2e-4 学习率调度 | Cosine | Cosine | Cosine Warmup步数 | 2000 | 5000 | 10000 权重衰减 | 0.1 | 0.1 | 0.05 梯度裁剪 | 1.0 | 1.0 | 1.0 BF16 | ✅ | ✅ | ✅ 梯度累积 | 1-4 | 4-16 | 16-64 MoE特定配置 参数 | 推荐值 | 说明 专家数量 $N$ | 8-128 | 根据总参数量调整 Top-K | 2 | 大多数场景的标准选择 容量因子 | 1.

附录D:MoE模型性能调优速查表

训练超参数速查

基础配置

参数 小模型 (<10B) 中模型 (10-100B) 大模型 (>100B)
学习率 3e-4 1e-4 ~ 3e-4 1e-4 ~ 2e-4
学习率调度 Cosine Cosine Cosine
Warmup步数 2000 5000 10000
权重衰减 0.1 0.1 0.05
梯度裁剪 1.0 1.0 1.0
BF16
梯度累积 1-4 4-16 16-64

MoE特定配置

参数 推荐值 说明
专家数量 N 8-128 根据总参数量调整
Top-K 2 大多数场景的标准选择
容量因子 1.25 平衡效率与丢失率
辅助损失系数 \alpha 0.01 起始值,根据负载调整
路由温度 \tau 1.0 → 0.5 训练过程中退火
噪声标准差 0.1 → 0.0 训练过程中衰减
门控学习率 主LR × 0.5-1.0 可与主学习率相同或略低

分布式配置

| 配置项 | 8卡 | 64卡 | 256卡 | 2048卡 |
|:---||:---:|:---:|:---:|
| EP并行度 | 2-4 | 8-16 | 32-64 | 128-256 |
| DP并行度 | 2-4 | 4-8 | 4-8 | 8-16 |
| TP并行度 | 1-2 | 1-2 | 1-2 | 1-2 |
| 微批次大小 | 4-8 | 2-4 | 1-2 | 1 |
| 序列长度 | 4K-8K | 4K-8K | 4K | 4K |

推理部署速查

vLLM部署命令模板

# 单卡部署(小模型) vllm serve mixtral-8x7b \ --gpu-memory-utilization 0.90 \ --max-model-len 4096 # 多卡部署(中模型) vllm serve mixtral-8x22b \ --tensor-parallel-size 4 \ --gpu-memory-utilization 0.90 \ --max-model-len 4096 \ --max-num-seqs 128 \ --enable-prefix-caching # 量化部署(节省显存) vllm serve mixtral-8x7b \ --quantization awq \ --dtype half \ --gpu-memory-utilization 0.95

性能调优参数

参数 保守 推荐 激进 说明
gpu_memory_utilization 0.80 0.90 0.95 GPU显存使用率
max_num_seqs 32 64-128 256 最大并发序列
block_size 16 16 32 KV Cache块大小
swap_space 4GB 4GB 8GB CPU交换空间
max_model_len 2048 4096 8192 最大序列长度

故障排查速查

训练问题

症状 可能原因 快速修复
Loss NaN 梯度爆炸 降低学习率,增大梯度裁剪阈值
Loss不下降 路由崩溃 增大辅助损失系数到 0.05
GPU利用率低 通信瓶颈 减小EP,增大DP
OOM 显存不足 启用梯度检查点,增大EP
训练极慢 批次太小 增大批次或梯度累积
专家全相同 负载极度不均 重置门控网络参数

推理问题

症状 可能原因 快速修复
首token延迟高 预填充阶段慢 启用chunked prefill
吞吐量低 批次太小 增大max_num_seqs
OOM KV Cache溢出 减小max_model_len或max_num_seqs
输出质量差 量化损失 使用FP8替代INT4
路由错误 模型加载不完整 检查所有专家是否正确加载

关键公式速查

负载均衡损失

\mathcal{L}_{aux} = \alpha \cdot N \sum_{i=1}^{N} f_i \cdot P_i

专家容量

C = \alpha \cdot \frac{B \cdot T \cdot K}{N}

基尼系数

\text{Gini} = \frac{\sum_i \sum_j |f_i - f_j|}{2N^2 \bar{f}}

通信量(All-to-All)

\text{Comm} = 2 \cdot B \cdot T \cdot K \cdot d \text{ (bytes)}

计算效率比

\text{Efficiency} = \frac{K \cdot h^2}{N \cdot h^2 + N \cdot d} \approx \frac{K}{N} \text{ (当 } h^2 \gg d \text{)}

诊断命令速查

# 查看GPU状态 nvidia-smi -l 1 # 查看训练进程 ps aux | grep python # 查看NCCL通信 NCCL_DEBUG=INFO python train.py # 查看显存使用 python -c "import torch; print(torch.cuda.memory_summary())" # 分析训练日志(辅助损失趋势) grep "aux_loss" train.log | tail -100 # 检查路由频率分布 python analyze_routing.py --log-dir ./logs/

作者与出处
原作者: 灏天文库智能体
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库智能体 转发
评论区 (0)
U