Files
llm-atlas/research/NUMERICS_RESEARCH.md

37 KiB
Raw Permalink Blame History

数值精度、优化器与训练稳定性研究账本

状态:第一轮证据框架
研究截止:2026-07-29
课程位置:专题 09「数值精度、优化器与训练稳定性」
锚点:Kimi K2 §2.1 / Appendix DE、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 至少包含:

参数存储
  → 前向输入
  → 乘法
  → 部分和累加
  → 激活输出
  → 反向激活梯度
  → 权重梯度
  → 跨卡通信
  → optimizer moments
  → master weights
  → checkpoint

每个角色可以用不同格式。DeepSeek-V3 的核心 GEMM 输入用 FP8,但 embedding、output head、 attention、normalization、router 等保留 BF16 / FP32master 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 三个字段

典型二进制浮点数可写成:

(-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 2017mixed 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

  • E4M34 exponent + 3 mantissa,推荐 weight / activation
  • E5M25 exponent + 2 mantissa,推荐 gradient
  • 输入需通过 scale 移入可表示区间;
  • 输出通常以更高精度产生;
  • nonlinear、normalization、optimizer update 等可保留高精度;
  • 是否使用 per-tensor scale 由网络决定。

论文自己的限制:

  • 格式论文不规定 scale heuristic
  • 许多训练实验是模拟格式,而不是同一硬件上的端到端系统结果;
  • FP8 并不取消混合精度,只把角色划分做得更细。

3.3 2023Microscaling 的关键不是 FP4,而是“局部共享范围”

Rouhani et al. 2023 §2

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 elementE4M3 / E5M2
  • MXFP6 elementE2M3 / E3M2
  • MXFP4 elementE2M1
  • MXINT8 elementINT8。

粒度变小的收益:

  • 一个极端 outlier 只压缩同 block 的有效精度;
  • sub-8-bit 才有机会覆盖复杂 tensor 分布。

代价:

  • 每 32 个值多一个 scale
  • scale axis 是语义的一部分;
  • transpose 可能改变 scale axis,量化与 transpose 不可交换;
  • conversion recipe 与 clipping 会影响结果;
  • vector op 仍常用 BF16 / FP32。

3.4 DeepSeek-V3FP8 成功靠的是一整套角色分配

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

  • activation1 × 128 tile,即 per token / 128 channels
  • weight128 × 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 可 FP8combine 保留 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 20252026FP4 的三种完全不同路径

  1. FP4 All the Way
    研究从头 fully quantized trainingW/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 开始贯穿 RLMoE expert weights 用 MXFP4activation compute 用 MXFP8 attention projection、latent MoE projection、shared expert、router 保留更高精度; rollout 与 training 使用相同量化方案以减少 traininference mismatch。

不能把三者混成“2026 模型都用 FP4 预训练”。


4. 量化:对象、粒度、时机

4.1 仿射量化的最小模型

常见 uniform affine quantization

q = clamp(round(x / scale) + zero_point)
x_hat = scale × (q - zero_point)
  • symmetriczero 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

m_t = μ m_(t-1) + g_t
θ_t = θ_(t-1) - η m_t

优点:

  • 状态少;
  • 更新含义直接;
  • 通信 / sharding 容易。

LLM 常见困难:

  • 不同参数坐标 / layer 的梯度尺度差异大;
  • 高 LR 可用区间窄;
  • 要靠参数化、归一化和精细 schedule 补偿。

5.2 Adam

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 AdamWweight decay 不是 L2 penalty 的别名

在 SGD 中,L2 gradient 与 weight decay 可在适当缩放下等价; 在 Adam 中,若把 λθ 混入 gradient,它也会被 v_t 的自适应分母改变。

AdamW

θ_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 公式:

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
  • NewtonSchulz 用矩阵乘迭代近似;
  • 只适合 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 K2MuonClip

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

Smax_h = per-head max pre-softmax logit
γ_h = min(1, τ / Smax_h)
rescale head-specific Q / K weights after optimizer step

MLA 细节:

  • qCkC 各乘 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 K3Per-Head Muon

K3 不对完整 Q / K / V projection momentum 统一正交化,而按 head block 分开:

  • 避免大 scale head 主导共享矩阵 update
  • 让不同 head update scale 更均衡;
  • tall per-head block 的 NewtonSchulz 更便宜;
  • 报告称提升大尺度训练稳定性。

训练 recipe 同时保留 K2 weight clipping,因此:

Per-Head Muon = 更新几何
QK-Clip = 越界保护

不能把两者合成一个算法名,也不能说 Per-Head Muon 已取代 QK-Clip。

5.11 DeepSeek-V4Hybrid MuonAdamW

DeepSeek-V4

  • majority modulesMuon
  • embedding、prediction head、mHC static bias / gate、RMSNorm weightsAdamW
  • Muon momentum 0.95、weight decay 0.1、update RMS scale 0.18
  • hybrid NewtonSchulz:前 8 次快速系数,后 2 次稳定到 singular value 1
  • Q / KV 可直接 RMSNorm,因此不使用 K2 QK-Clip。

系统实现:

  • dense matrix 通过受限 ZeRO group 与 knapsack 分配;
  • MoE expert matrix 保持逻辑独立,不切断单矩阵;
  • 相同 shape 合并做 batched NewtonSchulz
  • 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 反馈

weight norm / spectral norm ↑
  → ||Q||, ||K|| ↑
  → max(QKᵀ) ↑
  → softmax 近 one-hotentropy ↓
  → 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

(xᵀw_up) × Swish(xᵀw_gate)

两支都大时,乘积可远大于单一 GeLU / ReLU。

防线谱系:

  • Smooth-SwiGLUscale 转移,函数等价;
  • hard clamp:限制 linear / gate 分支;
  • K3 SiTU-GLU:两支分别用 smooth tanh cap
  • PowLU:另一种 bounded / stable activation 研究。

K3 SiTU-GLU

β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 低估后 18 steps
  • gradient clipping 发生在 adaptive scaling 前,未必能限制真正 update;
  • 其 AdamWAdafactor 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 公开报告:

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 routeroutlier 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 momentsFP32 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.5Tzero observable spike
Kimi K3 Per-Head Muon + K2 clip per-head update + weight clip RMSNorm + SiTU-GLU FP8 activation cacheMXFP4 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

输入:

  • formatFP32 / 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
  • 总显存 / 通信相对基线;
  • 风险列表;
  • presetBF16 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。

边界:

  • NewtonSchulz 可视化使用简化迭代;
  • 不承诺等于生产 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.1MuonClip / QK-Clip 公式与 Figure 2
  • Kimi K2 Appendix DQK-Clip 无质量损伤与 self-deactivation
  • Kimi K2 Appendix EMuon logit explosion 假说;
  • Kimi K3 §2.3.1LatentMoE RMSNorm
  • Kimi K3 §2.3.2 / Appendix BSiTU-GLU 与 bound 100
  • Kimi K3 §2.5Per-Head Muon
  • Kimi K3 §3.3Per-Head Muon + K2 weight clipping
  • Kimi K3 §4.1.4MXFP4 expert QAT
  • Kimi K3 §5.2.2block-wise FP8 activation cache、P2P Muon。

DeepSeek

  • DeepSeek LLM §2.4BF16、FP32 gradient accumulation、checkpoint
  • DeepSeek-V3 §3.3.1mixed precision role map
  • DeepSeek-V3 §3.3.21×128 / 128×128 scale 与 FP32 promotion
  • DeepSeek-V3 §3.3.3optimizer state、activation、communication
  • DeepSeek-V3 Appendix B.1BF16 vs FP8
  • DeepSeek-V3 Appendix B.2block Dgrad divergence
  • DeepSeek-V4 §2.4Muon 与 hybrid NewtonSchulz
  • DeepSeek-V4 §3.4.1distributed Muon / BF16 sync / FP32 sum
  • DeepSeek-V4 §4.2.3Anticipatory Routing / SwiGLU clamp
  • DeepSeek-V4 §5.2.1FP4 QAT / STE / native rollout。

通用论文

  • Mixed Precision §3.13.3
  • BFLOAT16 §12 / Table 1
  • FP8 Formats §23 / Table 1
  • MX Formats §2 / Table 1 / Figure 1
  • Adam Algorithm 1
  • AdamW §2
  • Adafactor §3 / §56
  • μP / TP-V main theorem and transfer experiments
  • Muon Scalable §2.22.3 / §3
  • QK Norm §2
  • ViT-22B §2 / Appendix B
  • Small-scale proxies §3
  • Scaling FP8 §35
  • QAT Jacob §3
  • LLM-QAT §23。

15. 本地证据缓存说明

主干 PDF / 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、原创研究笔记与课程内容, 不重新分发论文全文。