1098 lines
37 KiB
Markdown
1098 lines
37 KiB
Markdown
# 数值精度、优化器与训练稳定性研究账本
|
||
|
||
> 状态:第一轮证据框架
|
||
> 研究截止:2026-07-29
|
||
> 课程位置:专题 09「数值精度、优化器与训练稳定性」
|
||
> 锚点:Kimi K2 §2.1 / Appendix D–E、Kimi K3 §2.3 / §2.5 / §3.3 / §4.1.4 / §5.2.2、DeepSeek LLM §2.4、DeepSeek-V3 §3.3 / Appendix B、DeepSeek-V4 §2.4 / §3.4.1 / §4.2.3 / §5.2.1
|
||
> 目标:让读者理解“一个数怎样表示、一次乘法怎样累加、一个梯度怎样变成矩阵更新、一次训练为什么突然崩掉”,并能准确阅读 FP8、MXFP4、Muon、QK-Clip 与 QAT 报告。
|
||
> 原则:P0 原论文 / 正式技术报告 / 开放标准优先;P1 作者实现与技术博文用于定义原始 Muon;Grok 只提供 discovery leads;所有性能数字保留作者报告边界。
|
||
|
||
---
|
||
|
||
## 0. 本章先拆掉五个误区
|
||
|
||
### 误区一:模型用 FP8 训练,就是所有东西都变成 FP8
|
||
|
||
不是。一个训练 step 至少包含:
|
||
|
||
```text
|
||
参数存储
|
||
→ 前向输入
|
||
→ 乘法
|
||
→ 部分和累加
|
||
→ 激活输出
|
||
→ 反向激活梯度
|
||
→ 权重梯度
|
||
→ 跨卡通信
|
||
→ optimizer moments
|
||
→ master weights
|
||
→ checkpoint
|
||
```
|
||
|
||
每个角色可以用不同格式。DeepSeek-V3 的核心 GEMM 输入用 FP8,但 embedding、output head、
|
||
attention、normalization、router 等保留 BF16 / FP32;master weights、累计梯度保留 FP32,
|
||
optimizer moments 可用 BF16。把这套“混合角色”写成“全 FP8”会直接误导。
|
||
|
||
### 误区二:位数减半,速度必然翻倍
|
||
|
||
位数变少可以降低:
|
||
|
||
- 每个值的存储字节;
|
||
- HBM 与互连搬运的字节;
|
||
- 某些硬件矩阵单元的面积和能耗;
|
||
- 特定芯片上的矩阵乘峰值成本。
|
||
|
||
但端到端速度还取决于:
|
||
|
||
- 芯片是否有原生指令;
|
||
- shape 是否匹配 Tensor Core;
|
||
- quantize / dequantize / scale 的开销;
|
||
- 累加是否要频繁 promotion;
|
||
- kernel 是否融合;
|
||
- 工作负载是 compute-bound 还是 memory / communication-bound;
|
||
- 未量化算子占比。
|
||
|
||
因此页面只展示“理论数据量 / 指定硬件能力”,不把它冒充真实训练 speedup。
|
||
|
||
### 误区三:低精度只是“小数不够准”
|
||
|
||
低精度至少有三种不同失败:
|
||
|
||
1. **Overflow**:绝对值超过最大可表示范围,变成饱和、Inf 或 NaN;
|
||
2. **Underflow**:太小的值变成 subnormal 或 0;
|
||
3. **Rounding noise**:仍在范围内,但落到相邻格点,细小更新被吞掉。
|
||
|
||
Exponent 位主要决定“能装多大 / 多小”,mantissa 位主要决定“同一数量级内能分多细”。
|
||
scale 可以移动可表示窗口,却不能凭空增加格点数量。
|
||
|
||
### 误区四:优化器稳定,模型就稳定
|
||
|
||
一次 loss spike 可能来自:
|
||
|
||
- attention logits;
|
||
- residual / layer depth;
|
||
- SwiGLU 乘法 outlier;
|
||
- Adam 二阶矩滞后;
|
||
- Muon update spectrum;
|
||
- MoE router 与 expert outlier 的反馈;
|
||
- 低精度 scale / accumulator;
|
||
- 数据异常;
|
||
- kernel / collective / hardware 错误。
|
||
|
||
优化器只是一层。K3 同时用 Per-Head Muon、weight clipping、RMSNorm、SiTU-GLU;
|
||
DeepSeek-V4 同时用 hybrid Muon、QK RMSNorm、SwiGLU clamping、Anticipatory Routing 和确定性 kernel。
|
||
|
||
### 误区五:PTQ、QAT、低精度微调、低精度预训练是一回事
|
||
|
||
| 范畴 | 什么时候量化 | 参数是否继续学 | 主要目标 |
|
||
|---|---|---|---|
|
||
| PTQ | 完成训练后 | 通常不做全模型训练 | 快速压缩部署 |
|
||
| QAT | 训练 / 微调时模拟或执行量化 | 是 | 让模型适应量化误差 |
|
||
| QLoRA 类 | 基座 4-bit 存储,adapter 训练 | 基座通常冻结 | 降低微调显存 |
|
||
| 低精度预训练 | 从头或长程训练中低精度计算 | 是 | 降低训练计算 / 通信 / 激活成本 |
|
||
| Fully quantized training | W/A/G 等广泛低精度 | 是 | 把训练本身推进到极低位 |
|
||
|
||
一句话总纲:
|
||
|
||
> 数值工程不是选一个 dtype;它是在一条完整训练与部署数据流里,为每种 tensor 角色分配范围、精度、存储、计算与恢复防线。
|
||
|
||
---
|
||
|
||
## 1. 十张不能混在一起的账
|
||
|
||
| 账本 | 核心问题 | 最小字段 | 常见误读 |
|
||
|---|---|---|---|
|
||
| N1 表示 | 一个 bit pattern 代表什么值 | sign / exponent / mantissa、subnormal、NaN/Inf | 只比较 bit 数 |
|
||
| N2 缩放 | 可表示窗口怎样移动 | per-tensor / channel / token / tile / block、scale dtype、axis | 把 block scale 当无成本 |
|
||
| N3 计算 | 哪些算子真正用低精度乘法 | operator、input dtype、hardware instruction | “模型 FP8”=所有算子 FP8 |
|
||
| N4 累加 | 小乘积在哪里、以多少位求和 | accumulator、promotion interval、reduction tree | 只看输入 dtype |
|
||
| N5 存储与通信 | 哪些 tensor 以低精度缓存 / 发送 | activation、gradient、optimizer state、KV、checkpoint | 计算快=显存也同比下降 |
|
||
| N6 更新 | 梯度如何变成参数更新 | momentum、preconditioner、update RMS、weight decay | AdamW 与 Muon 只是不同公式名 |
|
||
| N7 参数化 | 宽度、深度、head 如何改变更新尺度 | init、μP、logical matrix、head partition | 小模型超参直接复制 |
|
||
| N8 稳定性 | 哪个可观测量先异常 | max / percentile / norm / spectrum / saturation | 只看 loss |
|
||
| N9 恢复 | 异常时怎样止损和复现 | detect、skip、clip、rollback、determinism、checkpoint | rollback 等于解决根因 |
|
||
| N10 证据与经济 | 增益对什么基线、硬件与预算成立 | model、Token、hardware、quality、wall-clock、energy | 作者峰值吞吐外推到所有系统 |
|
||
|
||
---
|
||
|
||
## 2. 浮点数显微镜
|
||
|
||
### 2.1 三个字段
|
||
|
||
典型二进制浮点数可写成:
|
||
|
||
```text
|
||
(-1)^sign × significand × 2^exponent
|
||
```
|
||
|
||
- sign:正负;
|
||
- exponent:数量级;
|
||
- mantissa / fraction:同一数量级中的细分;
|
||
- normal 数通常有隐含 leading 1;
|
||
- subnormal 用更少有效位换取逐渐下溢;
|
||
- 特殊编码可用于 ±0、Inf、NaN。
|
||
|
||
### 2.2 常见格式对照
|
||
|
||
| 格式 | 位布局 | 约最大有限值 | 最小 normal | 单位附近间距 | 直觉 |
|
||
|---|---:|---:|---:|---:|---|
|
||
| FP32 | 1 / 8 / 23 | 3.4e38 | 1.18e-38 | 1.19e-7 | 范围和精度都宽,成本高 |
|
||
| FP16 | 1 / 5 / 10 | 65,504 | 6.10e-5 | 9.77e-4 | 尾数较细,范围明显窄 |
|
||
| BF16 | 1 / 8 / 7 | 3.4e38 | 1.18e-38 | 7.81e-3 | 保留 FP32 范围,牺牲细度 |
|
||
| FP8 E4M3 | 1 / 4 / 3 | 448 | 1.56e-2 | 1.25e-1 | 更精细,范围较窄 |
|
||
| FP8 E5M2 | 1 / 5 / 2 | 57,344 | 6.10e-5 | 2.5e-1 | 范围更宽,格点更粗 |
|
||
| MXFP4 | block scale + E2M1 element | 取决于共享 scale | 取决于共享 scale | 极粗 | 用局部共享尺度补偿 4-bit 元素 |
|
||
|
||
注意:
|
||
|
||
- “单位附近间距”是教学用 machine epsilon 直觉,不等于全数轴统一误差;
|
||
- E4M3 / E5M2 数字按 FP8 Formats 论文定义;
|
||
- MXFP4 必须连同 block size、scale dtype 与 axis 一起描述。
|
||
|
||
### 2.3 为什么 BF16 比 FP16 更适合大模型训练
|
||
|
||
Kalamkar et al. 2019:
|
||
|
||
- BF16 与 FP32 都用 8-bit exponent,因此动态范围相近;
|
||
- BF16 尾数只有 7 bits,因此细节精度低于 FP16;
|
||
- 论文在多种工作负载上报告无需 FP16 那样的 loss-scaling 调参即可匹配 FP32。
|
||
|
||
不能外推成:
|
||
|
||
- BF16 永不 overflow;
|
||
- BF16 所有算子都足够准确;
|
||
- optimizer state / gradient accumulation 可随意降到 BF16。
|
||
|
||
DeepSeek LLM 的公开做法正体现边界:主训练 BF16,但梯度在 FP32 累加;
|
||
cross entropy kernel 按需把 BF16 logits 转 FP32。
|
||
|
||
### 2.4 Rounding 不是无害格式转换
|
||
|
||
确定性 round-to-nearest:
|
||
|
||
- 可重复;
|
||
- 很小的同方向更新可能反复变 0。
|
||
|
||
stochastic rounding:
|
||
|
||
- 按相邻格点距离随机选择;
|
||
- 期望上可以保持无偏;
|
||
- 会引入随机性与实现成本;
|
||
- 对低精度梯度同步 / update 尤其重要。
|
||
|
||
Gupta et al. 2015 在 16-bit fixed-point 训练中展示 stochastic rounding 的关键作用;
|
||
DeepSeek-V4 在把 MoE gradient 通信量化到 BF16 时明确使用 stochastic rounding,
|
||
再在本地 FP32 求和,避免低精度 collective 累加误差。
|
||
|
||
---
|
||
|
||
## 3. 从 FP16 mixed precision 到 FP8 / MXFP4
|
||
|
||
### 3.1 2017:mixed precision 三件套
|
||
|
||
Micikevicius et al. 2017/2018 §3:
|
||
|
||
1. **FP32 master weights**
|
||
forward / backward 使用 FP16 copy;真正累积小 update 的 master copy 保留 FP32。
|
||
|
||
2. **Loss scaling**
|
||
放大 loss,使反向小梯度进入 FP16 可表示范围;更新前再 unscale。
|
||
|
||
3. **FP32 accumulation**
|
||
FP16 乘积在 FP32 输出中累加,再按需要写回较低精度。
|
||
|
||
关键边界:
|
||
|
||
- FP16 小于 `2^-24` 的值会变 0;
|
||
- scale 太大又会 overflow;
|
||
- overflow 后更新权重会产生不可逆 NaN,因此动态 loss scaling 会检测并跳过 step;
|
||
- “乘法输入低精度、累加高精度”从一开始就是核心,而不是后来补丁。
|
||
|
||
### 3.2 2022:FP8 是两个格式,不是一个
|
||
|
||
FP8 Formats for Deep Learning:
|
||
|
||
- E4M3:4 exponent + 3 mantissa,推荐 weight / activation;
|
||
- E5M2:5 exponent + 2 mantissa,推荐 gradient;
|
||
- 输入需通过 scale 移入可表示区间;
|
||
- 输出通常以更高精度产生;
|
||
- nonlinear、normalization、optimizer update 等可保留高精度;
|
||
- 是否使用 per-tensor scale 由网络决定。
|
||
|
||
论文自己的限制:
|
||
|
||
- 格式论文不规定 scale heuristic;
|
||
- 许多训练实验是模拟格式,而不是同一硬件上的端到端系统结果;
|
||
- FP8 并不取消混合精度,只把角色划分做得更细。
|
||
|
||
### 3.3 2023:Microscaling 的关键不是 FP4,而是“局部共享范围”
|
||
|
||
Rouhani et al. 2023 §2:
|
||
|
||
```text
|
||
MX block = one shared scale X + k scalar elements P1…Pk
|
||
real value vi = X × Pi
|
||
```
|
||
|
||
公开 concrete formats:
|
||
|
||
- block size `k = 32`;
|
||
- scale format `E8M0`;
|
||
- MXFP8 element:E4M3 / E5M2;
|
||
- MXFP6 element:E2M3 / E3M2;
|
||
- MXFP4 element:E2M1;
|
||
- MXINT8 element:INT8。
|
||
|
||
粒度变小的收益:
|
||
|
||
- 一个极端 outlier 只压缩同 block 的有效精度;
|
||
- sub-8-bit 才有机会覆盖复杂 tensor 分布。
|
||
|
||
代价:
|
||
|
||
- 每 32 个值多一个 scale;
|
||
- scale axis 是语义的一部分;
|
||
- transpose 可能改变 scale axis,量化与 transpose 不可交换;
|
||
- conversion recipe 与 clipping 会影响结果;
|
||
- vector op 仍常用 BF16 / FP32。
|
||
|
||
### 3.4 DeepSeek-V3:FP8 成功靠的是一整套角色分配
|
||
|
||
DeepSeek-V3 §3.3:
|
||
|
||
#### GEMM
|
||
|
||
- Fprop、Dgrad、Wgrad 的核心 GEMM 输入使用 FP8;
|
||
- 输出为 BF16 或 FP32;
|
||
- embedding、output head、MoE gate、normalization、attention 保留原精度;
|
||
- master weights、weight gradients、optimizer states 保留更高精度。
|
||
|
||
#### Fine-grained scale
|
||
|
||
- activation:`1 × 128` tile,即 per token / 128 channels;
|
||
- weight:`128 × 128` block;
|
||
- 在线按当前 tile / block 计算 scale;
|
||
- 全部 tensor 使用 E4M3,依靠细粒度 scale 弥补 E5M2 范围。
|
||
|
||
#### Accumulation
|
||
|
||
- H800 Tensor Core FP8 accumulation 作者测得约 14-bit;
|
||
- 每 `Nc = 128` 个元素将 partial result promotion 到 CUDA Core FP32 register;
|
||
- scale 乘法与 promotion 一起完成;
|
||
- 这是精度—吞吐折中,不是免费 FP32 accumulate。
|
||
|
||
#### Storage / communication
|
||
|
||
- AdamW first / second moments 用 BF16;
|
||
- master weights 与 gradient accumulation 用 FP32;
|
||
- backward cached activations 可用 FP8;
|
||
- 对 attention backward 敏感激活使用自定义 E5M6;
|
||
- MoE dispatch 可 FP8,combine 保留 BF16。
|
||
|
||
#### 证据边界
|
||
|
||
- 两个约 16B / 230B baseline、约 1T / 0.9T Token 对照中,相对 BF16 loss error < 0.25%;
|
||
- Appendix B.2 报告:把 Dgrad activation gradient 改成 `128 × 128` block quantization,
|
||
16B MoE 在约 300B Token 发散;
|
||
- 因此“更规整 block 更好实现”并不等于数值上可接受。
|
||
|
||
### 3.5 2024:长程训练暴露短实验看不到的 SwiGLU 问题
|
||
|
||
Fishman et al. 2024:
|
||
|
||
- 短程 FP8 实验可能看不见后期 outlier;
|
||
- 其 Llama2-7B 实验在约 200B Token 后出现 activation outlier 和 FP8 loss divergence;
|
||
- 论文把它连接到 SwiGLU 两支 weight 向量的长期对齐;
|
||
- SwiGLU 在大正输入时近似两个线性项相乘,可呈二次增长;
|
||
- Smooth-SwiGLU 通过 per-channel scale 抑制进入量化层的 outlier,再在后续权重中吸收逆 scale。
|
||
|
||
边界:
|
||
|
||
- 这是指定 Llama2 / FP8 delayed-scaling 配方上的作者结果;
|
||
- 不能证明所有 SwiGLU 模型都会在同 Token 发生同样失稳;
|
||
- 但它解释了为什么完整训练时长是低精度验证的一部分。
|
||
|
||
### 3.6 2025–2026:FP4 的三种完全不同路径
|
||
|
||
1. **FP4 All the Way**
|
||
研究从头 fully quantized training;W/A/G 广泛 FP4,探索 NVFP4、rounding 和 quantization-noise threshold。
|
||
|
||
2. **DeepSeek-V4 FP4 QAT**
|
||
post-training 阶段把 MoE expert weights 与 CSA indexer QK path 纳入 MXFP4 QAT;
|
||
FP32 master → FP4 → lossless dequant to FP8(在其 scale 条件下)→ compute;
|
||
backward 用 STE 传回 FP32 master。
|
||
|
||
3. **Kimi K3 deployment-aware QAT**
|
||
从 SFT 开始贯穿 RL;MoE expert weights 用 MXFP4,activation compute 用 MXFP8;
|
||
attention projection、latent MoE projection、shared expert、router 保留更高精度;
|
||
rollout 与 training 使用相同量化方案以减少 train–inference mismatch。
|
||
|
||
不能把三者混成“2026 模型都用 FP4 预训练”。
|
||
|
||
---
|
||
|
||
## 4. 量化:对象、粒度、时机
|
||
|
||
### 4.1 仿射量化的最小模型
|
||
|
||
常见 uniform affine quantization:
|
||
|
||
```text
|
||
q = clamp(round(x / scale) + zero_point)
|
||
x_hat = scale × (q - zero_point)
|
||
```
|
||
|
||
- symmetric:zero point 通常为 0;
|
||
- asymmetric:允许区间中心偏移;
|
||
- per-tensor:整 tensor 一个 scale;
|
||
- per-channel:每输出 / 输入 channel 一个 scale;
|
||
- per-token:每 Token 一个 activation / KV scale;
|
||
- group / block:一小组共享 scale。
|
||
|
||
### 4.2 PTQ
|
||
|
||
GPTQ:
|
||
|
||
- one-shot weight-only PTQ;
|
||
- 用 calibration activation 和近似二阶信息补偿量化误差;
|
||
- 作者报告可在约 4 GPU-hours 内量化 OPT-175B 到 3/4 bit;
|
||
- 不代表 activation、KV、训练梯度都已量化。
|
||
|
||
SmoothQuant:
|
||
|
||
- 对数学等价的 channel rescaling,把 activation outlier 难度迁移到 weight;
|
||
- 主要服务 W8A8 inference;
|
||
- 仍需校准 scale,且低到 4-bit 时问题不同。
|
||
|
||
### 4.3 QAT
|
||
|
||
Jacob et al. 2018 §3:
|
||
|
||
- 变量与主计算仍以 floating point 保存;
|
||
- forward 插入 fake quantization,模拟 inference rounding / clamp;
|
||
- backward 继续传梯度;
|
||
- fake-quant 节点位置必须匹配真实部署图。
|
||
|
||
LLM-QAT:
|
||
|
||
- 用模型自身生成数据做 data-free distillation;
|
||
- 同时研究 weight、activation、KV cache;
|
||
- 作者在 LLaMA 7B/13B/30B 上报告低于 8 bit 时优于其 PTQ baseline;
|
||
- 论文也明确 4-bit activation 在其设置中仍不理想。
|
||
|
||
### 4.4 QLoRA 的精确边界
|
||
|
||
QLoRA:
|
||
|
||
- frozen pretrained base 用 4-bit NF4 storage;
|
||
- 计算时 dequant 到 BF16;
|
||
- 训练 LoRA adapter,而不是完整 4-bit base update;
|
||
- double quant 减少 scale 元数据;
|
||
- paged optimizer 处理长序列显存峰值。
|
||
|
||
所以 QLoRA 证明“低显存微调可行”,不证明“从头 4-bit 预训练等价”。
|
||
|
||
---
|
||
|
||
## 5. 优化器:从逐坐标到矩阵几何
|
||
|
||
### 5.1 SGD / Momentum
|
||
|
||
```text
|
||
m_t = μ m_(t-1) + g_t
|
||
θ_t = θ_(t-1) - η m_t
|
||
```
|
||
|
||
优点:
|
||
|
||
- 状态少;
|
||
- 更新含义直接;
|
||
- 通信 / sharding 容易。
|
||
|
||
LLM 常见困难:
|
||
|
||
- 不同参数坐标 / layer 的梯度尺度差异大;
|
||
- 高 LR 可用区间窄;
|
||
- 要靠参数化、归一化和精细 schedule 补偿。
|
||
|
||
### 5.2 Adam
|
||
|
||
```text
|
||
m_t = β1 m_(t-1) + (1-β1) g_t
|
||
v_t = β2 v_(t-1) + (1-β2) g_t²
|
||
m_hat, v_hat = bias correction
|
||
θ_t = θ_(t-1) - η m_hat / (sqrt(v_hat) + ε)
|
||
```
|
||
|
||
直觉:
|
||
|
||
- momentum 平滑方向;
|
||
- second moment 给每个坐标不同步长;
|
||
- 小梯度坐标不必永远被大尺度坐标淹没。
|
||
|
||
代价:
|
||
|
||
- 两份状态;
|
||
- 逐元素 preconditioning 丢掉矩阵结构;
|
||
- `ε`、β2 与长程非平稳梯度会影响实际更新;
|
||
- optimizer state 常成为显存主项。
|
||
|
||
### 5.3 AdamW:weight decay 不是 L2 penalty 的别名
|
||
|
||
在 SGD 中,L2 gradient 与 weight decay 可在适当缩放下等价;
|
||
在 Adam 中,若把 `λθ` 混入 gradient,它也会被 `v_t` 的自适应分母改变。
|
||
|
||
AdamW:
|
||
|
||
```text
|
||
θ_t = (1 - ηλ) θ_(t-1) - AdamUpdate(g_t)
|
||
```
|
||
|
||
把“根据 loss 更新”与“直接收缩权重”分开。
|
||
|
||
### 5.4 Adafactor:省的是 second moment,不是免费 Adam
|
||
|
||
对矩阵 `V ∈ R^(n×m)`,不保存每元素 second moment,
|
||
而保存 row / column statistics,用 `O(n+m)` 近似 `O(nm)`。
|
||
|
||
论文还强调:
|
||
|
||
- 去掉 momentum 可再省一份状态;
|
||
- stale second-moment estimator 可造成过大 update;
|
||
- update clipping 应裁真正的 adaptive update,而不仅是原始 gradient;
|
||
- relative step size 把参数 RMS 纳入步长。
|
||
|
||
### 5.5 Shampoo:保留矩阵 / tensor 结构
|
||
|
||
Shampoo 为张量每个 mode 维护预条件统计,并对 gradient 做 Kronecker 型变换。
|
||
|
||
收益:
|
||
|
||
- 比逐坐标 Adam 更尊重矩阵结构;
|
||
- 为后来的矩阵级 optimizer 提供对照。
|
||
|
||
代价:
|
||
|
||
- 预条件矩阵与矩阵根昂贵;
|
||
- 大模型需要 blocking、低频更新和分布式实现;
|
||
- 首版课程只作为“结构化 preconditioner”桥梁,不给出生产优胜排名。
|
||
|
||
### 5.6 μP:不是 optimizer,而是让 scale-up 的更新语义一致
|
||
|
||
Tensor Programs V:
|
||
|
||
- standard parametrization 下,宽度变化会改变 activation / update 尺度;
|
||
- Maximal Update Parametrization 设计不同 parameter group 的 init / LR scaling;
|
||
- 在作者实验中,小代理模型调出的超参数可零样本迁移到更宽模型。
|
||
|
||
边界:
|
||
|
||
- 主要解决宽度,不自动覆盖深度、数据、batch、optimizer 切换;
|
||
- 实现需要正确区分 matrix-like 与 vector-like 参数;
|
||
- 它与 optimizer 可以组合,不是 Adam / Muon 的直接替代。
|
||
|
||
### 5.7 Muon:对 momentum matrix 做 approximate orthogonalization
|
||
|
||
原始 Muon / Moonlight 公式:
|
||
|
||
```text
|
||
M_t = μ M_(t-1) + G_t
|
||
O_t = NewtonSchulz(M_t) ≈ U V^T
|
||
W_t = W_(t-1) - η O_t
|
||
```
|
||
|
||
若 `M = UΣVᵀ`,`UVᵀ` 可视作把非零 singular values 拉近 1,
|
||
从而避免 update 只沿少数 dominant direction。
|
||
|
||
重要澄清:
|
||
|
||
- 生产实现不做完整 SVD;
|
||
- Newton–Schulz 用矩阵乘迭代近似;
|
||
- 只适合 logically independent 2D matrix parameter;
|
||
- embedding、norm、bias、head 等常由 AdamW 处理;
|
||
- 矩阵 shape 与 partition 会改变 update RMS。
|
||
|
||
### 5.8 “Muon is Scalable” 的两个关键补丁
|
||
|
||
Moonlight / Liu et al. 2025:
|
||
|
||
1. **Weight decay**
|
||
vanilla Muon 长训时 weight / layer output RMS 增长,甚至越过 BF16 高精度范围;
|
||
加 AdamW-style decay 改善作者 over-train 实验。
|
||
|
||
2. **Consistent update RMS**
|
||
full-rank `A×B` matrix 的理论 Muon update RMS 约 `1/sqrt(max(A,B))`;
|
||
论文乘 `sqrt(max(A,B)) × 0.2`,让矩阵间尺度一致并复用 AdamW LR。
|
||
|
||
作者报告:
|
||
|
||
- compute-optimal scaling 实验约 2× compute efficiency;
|
||
- 相同 loss 约需 AdamW 52% FLOPs;
|
||
- Moonlight 3B / 16B MoE 训练 5.7T Token。
|
||
|
||
这些是指定模型族与调参协议的作者结果,不是 Muon 普遍定理。
|
||
|
||
### 5.9 Kimi K2:MuonClip
|
||
|
||
K2 观察:
|
||
|
||
- Muon 在大尺度更容易出现 attention logit explosion;
|
||
- 9B-active / 53B-total 中间实验 vanilla Muon max logits 很快超过 1000;
|
||
- attention logit 由 `QKᵀ / sqrt(d)` 决定,Q / K weight spectral norm 增长会被乘积放大。
|
||
|
||
QK-Clip:
|
||
|
||
```text
|
||
Smax_h = per-head max pre-softmax logit
|
||
γ_h = min(1, τ / Smax_h)
|
||
rescale head-specific Q / K weights after optimizer step
|
||
```
|
||
|
||
MLA 细节:
|
||
|
||
- `qC`、`kC` 各乘 `sqrt(γ_h)`;
|
||
- `qR` 乘 `γ_h`;
|
||
- shared `kR` 不动,避免影响其他 heads。
|
||
|
||
K2 设置:
|
||
|
||
- `τ = 100`;
|
||
- 前 70k steps 有 12.7% heads 至少触发一次;
|
||
- 后期自行降到阈值下,clip 不再触发;
|
||
- 报告 15.5T Token 训练未观察 loss spike。
|
||
|
||
作者假说而非定理:
|
||
|
||
- Muon update spectrum 更高 rank;
|
||
- weight 与 update singular direction 更可能对齐;
|
||
- `Wq Wkᵀ` 再放大 spectral norm。
|
||
|
||
### 5.10 Kimi K3:Per-Head Muon
|
||
|
||
K3 不对完整 Q / K / V projection momentum 统一正交化,而按 head block 分开:
|
||
|
||
- 避免大 scale head 主导共享矩阵 update;
|
||
- 让不同 head update scale 更均衡;
|
||
- tall per-head block 的 Newton–Schulz 更便宜;
|
||
- 报告称提升大尺度训练稳定性。
|
||
|
||
训练 recipe 同时保留 K2 weight clipping,因此:
|
||
|
||
```text
|
||
Per-Head Muon = 更新几何
|
||
QK-Clip = 越界保护
|
||
```
|
||
|
||
不能把两者合成一个算法名,也不能说 Per-Head Muon 已取代 QK-Clip。
|
||
|
||
### 5.11 DeepSeek-V4:Hybrid Muon–AdamW
|
||
|
||
DeepSeek-V4:
|
||
|
||
- majority modules:Muon;
|
||
- embedding、prediction head、mHC static bias / gate、RMSNorm weights:AdamW;
|
||
- Muon momentum `0.95`、weight decay `0.1`、update RMS scale `0.18`;
|
||
- hybrid Newton–Schulz:前 8 次快速系数,后 2 次稳定到 singular value 1;
|
||
- Q / KV 可直接 RMSNorm,因此不使用 K2 QK-Clip。
|
||
|
||
系统实现:
|
||
|
||
- dense matrix 通过受限 ZeRO group 与 knapsack 分配;
|
||
- MoE expert matrix 保持逻辑独立,不切断单矩阵;
|
||
- 相同 shape 合并做 batched Newton–Schulz;
|
||
- BF16 matrix multiplication 做 NS;
|
||
- MoE gradient stochastic-round 到 BF16 通信,再本地 FP32 sum。
|
||
|
||
这说明 optimizer 公式、参数分组与分布式拓扑是一个整体。
|
||
|
||
---
|
||
|
||
## 6. 稳定性不是一个故障,而是五条反馈环
|
||
|
||
### 6.1 深度 / residual 反馈
|
||
|
||
症状:
|
||
|
||
- model update 随深度累积;
|
||
- residual branch 过大;
|
||
- gradient vanishing / exploding;
|
||
- early training 直接卡进坏状态。
|
||
|
||
防线:
|
||
|
||
- warmup;
|
||
- scaled initialization;
|
||
- Pre-LN / RMSNorm;
|
||
- residual scaling;
|
||
- DeepNorm;
|
||
- K3 Block AttnRes / DeepSeek mHC 等新结构需各自稳定性证明。
|
||
|
||
DeepNet:
|
||
|
||
- 把 Post-LN 失稳定位为 early model update 过大;
|
||
- 用 residual up-scaling + branch weight down-scaling 让更新随深度有界;
|
||
- 作者展示可训练 1000-layer Transformer。
|
||
|
||
### 6.2 Attention logit 反馈
|
||
|
||
```text
|
||
weight norm / spectral norm ↑
|
||
→ ||Q||, ||K|| ↑
|
||
→ max(QKᵀ) ↑
|
||
→ softmax 近 one-hot,entropy ↓
|
||
→ gradient 与 head dynamics 更尖锐
|
||
→ 进一步推动 weight growth
|
||
```
|
||
|
||
可选防线:
|
||
|
||
- QK L2 normalization + learned temperature;
|
||
- QK LayerNorm / RMSNorm;
|
||
- logit soft-cap;
|
||
- QK-Clip weight rescaling;
|
||
- z-loss 管 output logits,不与 attention logits 混同。
|
||
|
||
ViT-22B:
|
||
|
||
- 8B 视觉模型无 QK norm 时 attention logits 超过 50,000;
|
||
- QK LayerNorm 让 `1e-3` LR 在更大 scale 保持稳定。
|
||
|
||
Small-scale proxies:
|
||
|
||
- 用小模型 + 高 LR 复现 attention / output logit 不稳定;
|
||
- QK LayerNorm + z-loss 使作者设置跨三数量级 LR 可训练;
|
||
- 这是一种研究代理,不保证覆盖 data / system / MoE 全部故障。
|
||
|
||
### 6.3 Activation / SwiGLU 反馈
|
||
|
||
SwiGLU:
|
||
|
||
```text
|
||
(xᵀw_up) × Swish(xᵀw_gate)
|
||
```
|
||
|
||
两支都大时,乘积可远大于单一 GeLU / ReLU。
|
||
|
||
防线谱系:
|
||
|
||
- Smooth-SwiGLU:scale 转移,函数等价;
|
||
- hard clamp:限制 linear / gate 分支;
|
||
- K3 SiTU-GLU:两支分别用 smooth tanh cap;
|
||
- PowLU:另一种 bounded / stable activation 研究。
|
||
|
||
K3 SiTU-GLU:
|
||
|
||
```text
|
||
β1 tanh(Wg x / β1) × sigmoid(Wg x) × β2 tanh(Wu x / β2)
|
||
β1 = 4, β2 = 25
|
||
|output coordinate| < β1 β2 = 100
|
||
```
|
||
|
||
它在原点附近一阶匹配 SwiGLU,极大值时有界;不是简单 hard clamp。
|
||
|
||
DeepSeek-V4:
|
||
|
||
- linear component clamp 到 `[-10, 10]`;
|
||
- gate component upper cap `10`;
|
||
- 报告称两款 V4 训练均使用,未观察性能损失;
|
||
- 机制理论仍明确写为 open question。
|
||
|
||
### 6.4 Optimizer-statistic 反馈
|
||
|
||
Wortsman et al. 2023 VLM:
|
||
|
||
- loss spike 常发生在 squared gradient 被 AdamW second moment 低估后 1–8 steps;
|
||
- gradient clipping 发生在 adaptive scaling 前,未必能限制真正 update;
|
||
- 其 AdamW–Adafactor hybrid 解决指定 CLIP ViT-H 实验的 spike。
|
||
|
||
Adafactor 更早已区分:
|
||
|
||
- gradient clipping:裁 `g`;
|
||
- update clipping:裁 preconditioned update。
|
||
|
||
Muon 的风险不同:
|
||
|
||
- 不用逐坐标 second moment;
|
||
- 但 matrix spectrum、shape-based RMS、Q/K logit 放大成为核心。
|
||
|
||
### 6.5 MoE routing / expert outlier 反馈
|
||
|
||
DeepSeek-V4 公开报告:
|
||
|
||
```text
|
||
expert outlier
|
||
→ routing 更偏向某些 expert
|
||
→ 被选 expert 接收更多异常输入 / update
|
||
→ outlier 与 routing 互相强化
|
||
→ loss spike
|
||
```
|
||
|
||
Anticipatory Routing:
|
||
|
||
- step `t` feature 用当前 `θ_t`;
|
||
- routing indices 用历史 `θ_(t-Δt)` 预计算;
|
||
- spike 时短 rollback 并临时启用;
|
||
- 预计算本身作者报告约 20% wall-clock overhead;
|
||
- 动态启用后整体额外开销可忽略。
|
||
|
||
这是一种 break-the-loop 工程策略,不是通用 MoE 理论。
|
||
|
||
---
|
||
|
||
## 7. 一个稳定性控制室应该监控什么
|
||
|
||
| 信号 | 统计 | 它能提示什么 | 它不能证明什么 |
|
||
|---|---|---|---|
|
||
| training / validation loss | raw、EMA、per-domain | 已经影响目标 | 根因 |
|
||
| attention logits | max、p99.9、per-head | Q/K growth、softmax saturation | FFN / optimizer state 正常 |
|
||
| attention entropy | per-head / layer | 过尖或坍缩 | 一定有错 |
|
||
| activation | max、RMS、percentile、outlier channel | overflow / quantization risk | gradient update 原因 |
|
||
| gradient | global norm、per-layer、nonfinite | backward 异常 | adaptive update 真正大小 |
|
||
| update | RMS、param/update ratio、spectrum | optimizer 施加的实际步长 | forward outlier 根因 |
|
||
| weight | RMS、spectral norm、singular entropy | 长期增长与 rank | 即刻 loss spike |
|
||
| quantization | saturation、underflow、SNR、scale history | dtype / scale 失败 | 高精度算子正常 |
|
||
| optimizer state | moment max/min、scale、staleness | second moment 低估 / overflow | model architecture 正常 |
|
||
| MoE | per-expert activation、load、drop、bias | router–outlier feedback | dense layer正常 |
|
||
| system | checksum、nonfinite rank、bitwise replay | hardware / kernel / collective 错误 | 数据 / 算法正确 |
|
||
|
||
控制动作也要分层:
|
||
|
||
- skip update;
|
||
- dynamic loss / tensor scaling;
|
||
- gradient / update clip;
|
||
- QK normalize / QK-Clip;
|
||
- activation clamp;
|
||
- lower LR / longer warmup;
|
||
- change accumulator;
|
||
- rollback + replay;
|
||
- quarantine batch;
|
||
- temporary routing decoupling。
|
||
|
||
---
|
||
|
||
## 8. DeepSeek 数值主线
|
||
|
||
### 2024 · DeepSeek LLM
|
||
|
||
- BF16 training;
|
||
- FP32 gradient accumulation;
|
||
- cross entropy 内按需 BF16 → FP32;
|
||
- AdamW;
|
||
- gradient norm clip `1.0`;
|
||
- 每 5 分钟异步 checkpoint,硬件失败最坏损失约 5 分钟。
|
||
|
||
意义:先把“低精度 compute、高精度关键路径、恢复能力”建立为工程基线。
|
||
|
||
### 2024 · DeepSeek-V2
|
||
|
||
- 继续 AdamW / BF16 主线;
|
||
- MLA 改变 Q/K 的物化方式;
|
||
- 这为 K2 选择 QK-Clip 而非直接 QK-Norm 提供结构背景,但不是 V2 自己的 QK-Clip 结论。
|
||
|
||
### 2024 · DeepSeek-V3
|
||
|
||
- 671B total / 37B active;
|
||
- 14.8T Token;
|
||
- fine-grained FP8 training;
|
||
- 1×128 activation / 128×128 weight scale;
|
||
- FP32 promotion interval 128;
|
||
- BF16 optimizer moments,FP32 master / accumulated gradients;
|
||
- 报告整个主训练无 irrecoverable loss spike / rollback。
|
||
|
||
注意:
|
||
|
||
- 这是作者技术报告结果;
|
||
- Appendix B.2 同时给出 block Dgrad 导致发散的反例;
|
||
- 因而“V3 稳定”来自精确角色分配,不是 FP8 自然稳定。
|
||
|
||
### 2026 · DeepSeek-V4
|
||
|
||
- majority modules 改 Muon;
|
||
- 特定向量 / norm / head 保留 AdamW;
|
||
- Q / KV RMSNorm 避免 logit explosion,不用 QK-Clip;
|
||
- hybrid NS + BF16 compute + FP32 local sum;
|
||
- 训练真实遇到 loss spikes;
|
||
- Anticipatory Routing + SwiGLU clamping;
|
||
- post-training 对 MoE experts + indexer QK 做 FP4 QAT;
|
||
- rollout / inference 使用 native FP4。
|
||
|
||
这条主线最值得学习的地方:
|
||
|
||
> V3 的“成功 FP8”没有让 V4 停止做稳定性工程;模型、优化器、attention、MoE 与 QAT 每次变化都会重新打开新的失稳路径。
|
||
|
||
---
|
||
|
||
## 9. Kimi 数值主线
|
||
|
||
### 2025 · Moonlight / scalable Muon
|
||
|
||
- 从原始 Muon 补上 weight decay;
|
||
- matching update RMS;
|
||
- distributed Muon;
|
||
- 5.7T Token Moonlight;
|
||
- 作者报告相对 AdamW 约 2× compute efficiency。
|
||
|
||
### 2025 · Kimi K2
|
||
|
||
- 1.04T total / 32.6B active;
|
||
- 15.5T Token;
|
||
- MuonClip;
|
||
- QK-Clip threshold 100;
|
||
- per-head minimal intervention;
|
||
- 报告 zero observable loss spike。
|
||
|
||
### 2026 · Kimi K3
|
||
|
||
- 2.78T total / 104.2B active;
|
||
- 总训练 Token 未披露;
|
||
- Per-Head Muon;
|
||
- 保留 K2 weight clipping;
|
||
- Stable LatentMoE 加 RMSNorm;
|
||
- SiTU-GLU 两支有界,coordinate bound 100;
|
||
- most activation backward storage 用 block-wise FP8 + offload;
|
||
- distributed Muon 用 P2P 只取本地参数所需 shards;
|
||
- SFT → RL 全程 MXFP4 expert QAT;
|
||
- rollout / training 相同 quantization scheme。
|
||
|
||
不能外推:
|
||
|
||
- K3 `2.5×` family-level scaling efficiency 是架构、数据、训练联合变化;
|
||
- 不是 Per-Head Muon 单项收益;
|
||
- 不是 MXFP4 throughput;
|
||
- 不是相对 DeepSeek 的公开对照。
|
||
|
||
---
|
||
|
||
## 10. K2 / K3 / V3 / V4 对照
|
||
|
||
| 系统 | 主要 optimizer | Attention 防线 | FFN / MoE 防线 | 低精度主线 | 报告边界 |
|
||
|---|---|---|---|---|---|
|
||
| DeepSeek-V3 | AdamW | attention 高精度 | fine-grained scale | FP8 pretraining | <0.25% loss error on two baselines;主 run 无不可恢复 spike |
|
||
| Kimi K2 | MuonClip | QK-Clip `τ=100` | — | 非本章主卖点 | 15.5T;zero observable spike |
|
||
| Kimi K3 | Per-Head Muon + K2 clip | per-head update + weight clip | RMSNorm + SiTU-GLU | FP8 activation cache;MXFP4 expert QAT | 总 Token 未公开;Per-Head 单项收益未公开 |
|
||
| DeepSeek-V4 | majority Muon + selected AdamW | Q/KV RMSNorm | Anticipatory Routing + SwiGLU clamp | FP4 QAT + FP8 compute/storage | 训练遇到 spikes;经验补丁理论仍开放 |
|
||
|
||
---
|
||
|
||
## 11. 四个互动实验的合同
|
||
|
||
### Lab A · Format Microscope
|
||
|
||
输入:
|
||
|
||
- format:FP32 / FP16 / BF16 / E4M3 / E5M2 / MXFP4;
|
||
- real value;
|
||
- scale;
|
||
- block outlier;
|
||
- rounding mode。
|
||
|
||
输出:
|
||
|
||
- 最近 representable value;
|
||
- absolute / relative error;
|
||
- overflow / underflow / rounded;
|
||
- block 内有效精度。
|
||
|
||
教学边界:
|
||
|
||
- 是格式语义模拟,不是任一 GPU bit-exact implementation;
|
||
- MXFP4 强制显示 scale 和 block;
|
||
- NaN / subnormal 的厂商实现差异不做伪精确承诺。
|
||
|
||
### Lab B · Mixed Precision Ledger
|
||
|
||
输入:
|
||
|
||
- parameter count;
|
||
- activation cache;
|
||
- compute dtype;
|
||
- master weights;
|
||
- gradient accumulation;
|
||
- optimizer moments;
|
||
- activation / gradient communication。
|
||
|
||
输出:
|
||
|
||
- 每种状态 GB;
|
||
- 总显存 / 通信相对基线;
|
||
- 风险列表;
|
||
- preset:BF16 baseline / classic FP16 / V3-like FP8 / K3 deployment-aware。
|
||
|
||
边界:
|
||
|
||
- 不含 allocator、fragmentation、checkpoint、parallel sharding;
|
||
- speed 不从 byte ratio 自动推出;
|
||
- V3-like / K3-like 是教学配置,不是完整生产复现。
|
||
|
||
### Lab C · Optimizer Geometry
|
||
|
||
输入:
|
||
|
||
- 2×2 gradient / momentum matrix;
|
||
- AdamW / Muon / Per-Head Muon;
|
||
- momentum、weight decay、RMS matching;
|
||
- head scale imbalance。
|
||
|
||
输出:
|
||
|
||
- update matrix;
|
||
- approximate singular-value balance;
|
||
- per-head update RMS;
|
||
- state bytes;
|
||
- logical matrix partition。
|
||
|
||
边界:
|
||
|
||
- Newton–Schulz 可视化使用简化迭代;
|
||
- 不承诺等于生产 kernel;
|
||
- 2D teaching matrix 不代表真实 loss landscape。
|
||
|
||
### Lab D · Stability Control Room
|
||
|
||
输入:
|
||
|
||
- attention logit growth;
|
||
- SwiGLU outlier;
|
||
- quantization scale granularity;
|
||
- optimizer mode;
|
||
- MoE routing feedback;
|
||
- 防线 toggles。
|
||
|
||
输出:
|
||
|
||
- softmax saturation risk;
|
||
- activation overflow risk;
|
||
- update risk;
|
||
- simulated timeline;
|
||
- “先看哪个监控量”的解释。
|
||
|
||
边界:
|
||
|
||
- 不合成伪“总稳定分”;
|
||
- 使用独立 gauges;
|
||
- K2 / K3 / V3 / V4 preset 只映射报告公开机制。
|
||
|
||
---
|
||
|
||
## 12. 关键论文链
|
||
|
||
| 年份 | 来源 | 本章作用 | 证据边界 |
|
||
|---:|---|---|---|
|
||
| 2014 | Adam | adaptive moment baseline | 非 LLM 专用 |
|
||
| 2015 | Limited Numerical Precision | stochastic rounding 前史 | fixed-point / 小模型 |
|
||
| 2017 | Mixed Precision Training | FP32 master + loss scale + accumulate | FP16 时代 |
|
||
| 2017 | AdamW | decoupled weight decay | 视觉主实验 |
|
||
| 2017 | Integer-only QAT | fake quant / QAT 起点 | CNN 部署 |
|
||
| 2018 | Shampoo | tensor structured preconditioner | 扩展成本高 |
|
||
| 2018 | Adafactor | factored second moment + update clip | MT Transformer |
|
||
| 2019 | BFLOAT16 Study | range vs precision | 多领域但非现代万亿 LLM |
|
||
| 2020 | GLU Variants | SwiGLU 起点 | 未讨论 outlier |
|
||
| 2020 | QK Normalization | cosine Q/K + learned scale | 低资源 MT |
|
||
| 2021 | 8-bit Optimizers | block-wise state quantization | 到 1.5B LM |
|
||
| 2022 | DeepNet | depth / residual stability | 以 MT / 深度为主 |
|
||
| 2022 | Tensor Programs V | μP / μTransfer | 宽度主线 |
|
||
| 2022 | LLM.int8 | activation outlier | inference |
|
||
| 2022 | FP8 Formats | E4M3 / E5M2 标准语义 | scale heuristic 不在范围 |
|
||
| 2022 | GPTQ | weight-only PTQ | 不含 W/A/KV 全量 |
|
||
| 2022 | SmoothQuant | W8A8 outlier migration | inference |
|
||
| 2023 | ViT-22B | QK LayerNorm 与 50k logits | 视觉模型 |
|
||
| 2023 | Stable low-precision VLM | moment underestimation / SwitchBack | CLIP |
|
||
| 2023 | QLoRA | 4-bit frozen-base finetuning | 非 4-bit base training |
|
||
| 2023 | LLM-QAT | data-free W/A/KV QAT | LLaMA ≤30B |
|
||
| 2023 | Small-scale proxies | high-LR stability proxy | 不覆盖全部生产故障 |
|
||
| 2023 | MX Formats | E8M0 + 32-block + MXFP4 | 到 1.5B GPT training |
|
||
| 2023 | FP8-LM | end-to-end FP8 system | 作者硬件栈 |
|
||
| 2023 | Spike No More | small sublayer / large shortcut | 理论假设与中等模型 |
|
||
| 2024 | DeepSeek LLM | BF16 + FP32 accumulate | 67B |
|
||
| 2024 | Deconstructing Optimizers | Adam / Adafactor / Lion 对照 | ≤1.2B |
|
||
| 2024 | Scaling FP8 to trillion Token | late SwiGLU outlier | Llama2 / delayed scale |
|
||
| 2024 | DeepSeek-V3 | fine-grained FP8 production recipe | 作者报告 |
|
||
| 2024 | Muon blog | 原始 Muon 定义 | 技术博文 |
|
||
| 2025 | Muon is Scalable | decay + update RMS | 作者 scaling law |
|
||
| 2025 | Kimi K2 | MuonClip / QK-Clip | 作者报告 |
|
||
| 2025 | FP4 All the Way | fully quantized training | 7B / 200B Token |
|
||
| 2026 | PowLU | bounded activation 对照 | 新论文 |
|
||
| 2026 | DeepSeek-V4 | hybrid Muon + FP4 QAT + spike mitigation | 作者报告 |
|
||
| 2026 | Kimi K3 | Per-Head Muon + SiTU + MXFP4 QAT | 作者报告 |
|
||
|
||
---
|
||
|
||
## 13. 正文必须保留的公开未知项
|
||
|
||
1. K3 总预训练 Token 数与完整 dtype placement 未公开;
|
||
2. K3 Per-Head Muon 的单项 ablation 数字未公开;
|
||
3. K3 MXFP4 QAT 相对高精度的完整 capability / latency 对照未公开;
|
||
4. K2 zero spike 不是独立复现;
|
||
5. DeepSeek-V3 `<0.25%` 来自两组 baseline,不是所有 tensor policy 的保证;
|
||
6. DeepSeek-V4 Anticipatory Routing 的触发阈值、持续步数与全部 spike trace 未公开;
|
||
7. DeepSeek-V4 FP4 QAT 的完整质量 ablation 与硬件端到端收益未公开;
|
||
8. Muon 相对 AdamW 的最优性依赖模型族、参数分组、调参预算与 Token regime;
|
||
9. 新 Muon 分支快速演化,首版不把未经大规模复现的变体写成继任者;
|
||
10. 所有 teaching lab 都是机制模型,不是 bit-exact kernel 或真实训练预测器。
|
||
|
||
---
|
||
|
||
## 14. 一手来源定位摘要
|
||
|
||
### Kimi
|
||
|
||
- Kimi K2 §2.1:MuonClip / QK-Clip 公式与 Figure 2;
|
||
- Kimi K2 Appendix D:QK-Clip 无质量损伤与 self-deactivation;
|
||
- Kimi K2 Appendix E:Muon logit explosion 假说;
|
||
- Kimi K3 §2.3.1:LatentMoE RMSNorm;
|
||
- Kimi K3 §2.3.2 / Appendix B:SiTU-GLU 与 bound 100;
|
||
- Kimi K3 §2.5:Per-Head Muon;
|
||
- Kimi K3 §3.3:Per-Head Muon + K2 weight clipping;
|
||
- Kimi K3 §4.1.4:MXFP4 expert QAT;
|
||
- Kimi K3 §5.2.2:block-wise FP8 activation cache、P2P Muon。
|
||
|
||
### DeepSeek
|
||
|
||
- DeepSeek LLM §2.4:BF16、FP32 gradient accumulation、checkpoint;
|
||
- DeepSeek-V3 §3.3.1:mixed precision role map;
|
||
- DeepSeek-V3 §3.3.2:1×128 / 128×128 scale 与 FP32 promotion;
|
||
- DeepSeek-V3 §3.3.3:optimizer state、activation、communication;
|
||
- DeepSeek-V3 Appendix B.1:BF16 vs FP8;
|
||
- DeepSeek-V3 Appendix B.2:block Dgrad divergence;
|
||
- DeepSeek-V4 §2.4:Muon 与 hybrid Newton–Schulz;
|
||
- DeepSeek-V4 §3.4.1:distributed Muon / BF16 sync / FP32 sum;
|
||
- DeepSeek-V4 §4.2.3:Anticipatory Routing / SwiGLU clamp;
|
||
- DeepSeek-V4 §5.2.1:FP4 QAT / STE / native rollout。
|
||
|
||
### 通用论文
|
||
|
||
- Mixed Precision §3.1–3.3;
|
||
- BFLOAT16 §1–2 / Table 1;
|
||
- FP8 Formats §2–3 / Table 1;
|
||
- MX Formats §2 / Table 1 / Figure 1;
|
||
- Adam Algorithm 1;
|
||
- AdamW §2;
|
||
- Adafactor §3 / §5–6;
|
||
- μP / TP-V main theorem and transfer experiments;
|
||
- Muon Scalable §2.2–2.3 / §3;
|
||
- QK Norm §2;
|
||
- ViT-22B §2 / Appendix B;
|
||
- Small-scale proxies §3;
|
||
- Scaling FP8 §3–5;
|
||
- QAT Jacob §3;
|
||
- LLM-QAT §2–3。
|
||
|
||
---
|
||
|
||
## 15. 本地证据缓存说明
|
||
|
||
主干 PDF / text 已缓存到:
|
||
|
||
```text
|
||
research/sources/numerics/
|
||
research/sources/training-systems/1710.03740.*
|
||
research/sources/scaling-laws/2401.02954.*
|
||
research/sources/moe/2412.19437.*
|
||
research/sources/reasoning/2507.20534.*
|
||
research/sources/long-context/2606.19348.*
|
||
research/sources/kimi-k3/k3_tech_report.*
|
||
```
|
||
|
||
缓存受 `.gitignore` 排除;公开仓库只提交 canonical URL、原创研究笔记与课程内容,
|
||
不重新分发论文全文。
|