深入解析 MiniMax01 405B MoE
社区文章 发布于 2025 年 1 月 15 日
本文将深入探讨 MiniMax-Text-01 模型 的技术细节,让我们来分解一下
总结:
- 非常(非常)好的论文/模型,包含大量细节和实验见解。
- 混合注意力:7/8 Lightning Attention(线性)+ 1/8 softmax。
- 独特的 MoE 策略,不同于 DeepSeek。
- 集成了 deepnorm 和 WSD 调度。
- 训练细节:约 2000 块 H800 GPU,约 12T tokens。
MoE 规格 (对比 DeepSeek v3):
- Token 丢弃策略: 使用辅助损失进行负载均衡,而非无丢弃辅助损失的平衡策略。
- 全局路由器: 优化以平衡每个 EP 组的 tokens 数量。
- Top k: 2 (对比 DeepSeek 的 8 + 1 共享专家)。
- MoE 层大小: 9216 vs 2048 (DeepSeek)。
- 每层激活的 MLP 参数总量相同。 9 * 2048 = 2 * 9216 = 18432.
- 专家数量: 32 vs 256 (+1 共享专家)。
- 层数: 80 vs 61。线性注意力从深度而非宽度中获益更多。
- 隐藏层大小: 6144 vs 7168。
- 无共享专家: 独特的设计选择。
混合建模:
7/8 线性注意力 (Lightning Attention-2)
- 与 NormAttention 的“flash attention”类似。
- 巨大优势:复杂度为 O(d^2n) 而非 O(n^2d),使得非常长的上下文成为可能。
- 机制
- 输入 X
- Q, K, V = SiLU(X)
- Y = Q * (K^T * V) (复杂度: O(d^2))
- RMSNorm(Y) * sigmoid(X)
1/8 Softmax 注意力
- 仅对一半维度大小应用旋转位置编码 (Rope) (据称可在不降低性能的情况下实现长度外推)。
- Rope 10k base 与其他模型相比似乎不寻常。
比较
- cosformer2: 在 NIAH 上表现非常差,整体更慢且性能更低。
- hgrn2: 略好但更慢(+ NIAH 上有小差距)。
- SWA softmax: 相似的 TGS(每 GPU/秒 tokens),但整体性能更低,NIAH 上有较大差距。
- 局限性: 除了 NIAH 之外,没有针对长上下文的复杂基准测试。
模型设计思路:
目标:构建最适合 ~H100 节点(8x80G)的模型,具备以下特点:
- 1M 序列长度。
- 8 位量化。
- softmax 和线性注意力的良好平衡。
- 最佳的深度/宽度比(更深的模型需要更多的 softmax 层)。
- 合适的内存大小与隐藏层大小比。
- 有效的 FFN 大小与模型维度。
- softmax 注意力中 rope 使用的维度考量。
扩展定律与实验:
- MoE vs 密集模型: 在 1T tokens 下,MoE(2B 激活参数,24B 总参数)显著优于相同 FLOPs 的密集模型(7B)。
(请注意 Fig4 的轴;所有基准测试的分数相似。) - 线性注意力 vs Softmax 注意力 vs 混合注意力
- 范围:在 300B tokens 上,参数从 70M 到 7B。
- Softmax 优于线性注意力在 NIAH 上(差距大)。
- 混合注意力整体表现优于 Softmax。
- 注意事项: 用于扩展定律的固定学习率,且没有快速衰减,可能会使混合注意力的比较结果出现偏差。
训练数据:
- 使用先前的 MoE 模型(5B 激活参数,60B 总参数)进行数据标注。可能在此之后训练了一个分类器(细节不详)。
- 指标:知识、实用性、分类分布。
- 数据格式平衡了问答格式和自然分布(可能提高 MMLU 性能)。
- 去重: 高质量数据去重 4 倍,低质量数据去重 2 倍。
- 使用 acc_norm^2(字节归一化)跟踪指标。
训练超参数:
- 约 12T tokens。
- WSD 类似调度: 将学习率降低到峰值的 10%;没有最终衰减。
- 初始化: Xavier,带有 deepnorm 修改。
- 优化器: AdamW (0.9, 0.95)。
- 关键批次大小预热解释(16M → 128M):独特且富有洞察力。
长文本训练:
三个阶段
- 主训练(8k tokens,rope 10k)。
- 128k tokens,总计 300B tokens,rope base 5M,混合短(<32k)和中等(<128k)上下文。
- 512k → 1M tokens,rope base 10M,在短、中、长上下文中平衡。
关键技术: 线性插值以减轻分布偏移
W_t = alpha * W_prev + (1-alpha) * W_current。
后训练与基础设施:
后训练步骤: 迭代 SFT → RL(离线:DPO,在线:GRPO)。
- 短上下文 SFT → 长上下文 SFT → 短上下文 RL → 长上下文 RL。
(对于实现出色的长上下文性能至关重要。)
- 短上下文 SFT → 长上下文 SFT → 短上下文 RL → 长上下文 RL。
基础设施
- 约 1500-2500 块 GPU。
- 高效的 MoE 张量/并行化与优化的环形注意力。
- 线性注意力序列并行化和填充优化方面的改进。