feat: publish numerics and optimization chapter
This commit is contained in:
+15
-3
@@ -17,6 +17,7 @@
|
||||
| 稀疏计算与 MoE | 完成首版 | 74% | 真实负载 traces 与专家特化案例 |
|
||||
| 长上下文专题 | 完成首版 | 72% | 真实模型配置、内核细节与失败案例 |
|
||||
| 大规模训练系统 | 完成首版 | 71% | 真实集群 traces、故障案例与精确 topology 配置 |
|
||||
| 数值精度、优化器与稳定性 | 完成首版 | 75% | 真实 kernel 吞吐、长程训练 traces 与逐图论文精读 |
|
||||
| 引用与事实检查 | 进行中 | 57% | 自动化外链复查与来源等级扩展 |
|
||||
| 开源仓库 | 已完成首版 | 100% | 持续提交研究与网站迭代 |
|
||||
| k1412 部署 | 已完成首版 | 100% | 每轮发布保留不可变镜像与回滚点 |
|
||||
@@ -30,10 +31,10 @@
|
||||
- [x] 提炼参考网站的编辑设计语言。
|
||||
- [x] 确认 `git.k1412.top` 为 Gitea/Forgejo 兼容服务且本机 HTTPS 凭据可用于既有仓库。
|
||||
- [x] 使用 Grok CLI 检索并形成约 95 篇一手论文的补充路线,主代理已回查关键来源。
|
||||
- [x] 完成 202 篇关键论文索引,覆盖 13 个标签专题与 Kimi/DeepSeek 聚光主线。
|
||||
- [x] 完成 223 篇关键论文索引,覆盖 14 个标签专题与 Kimi/DeepSeek 聚光主线。
|
||||
- [x] 完成可检索、可按专题筛选的论文库页面。
|
||||
- [x] 完成 K3、Transformer 基础、DeepSeek 谱系、Scaling Laws、数据工程、长上下文、MoE、推理与训练系统九篇首版长文。
|
||||
- [x] 完成 K3 三轴架构、Self-Attention、DeepSeek 谱系、长上下文、MoE 路由、推理三页签,以及训练系统、Scaling 与数据工程各四页签等二十个原创交互视图。
|
||||
- [x] 完成 K3、Transformer 基础、DeepSeek 谱系、Scaling Laws、数据工程、长上下文、MoE、推理、训练系统与数值优化十篇首版长文。
|
||||
- [x] 完成 K3 三轴架构、Self-Attention、DeepSeek 谱系、长上下文、MoE 路由、推理三页签,以及训练系统、Scaling、数据工程与数值专题各四页签等二十四个原创交互视图。
|
||||
- [x] 完成长上下文首版:五张成本账、26 篇一手论文、10+ 机制图与 8 策略交互实验室。
|
||||
- [x] 核验 FlashAttention、DeepSeek-V2/V3.2/V4、Kimi Linear/K3 等六份论文原文,并建立长上下文研究账本。
|
||||
- [x] 核验 Switch、ST-MoE、DeepSeekMoE、Loss-Free、V3、LatentMoE 与 K3 原文,并建立 MoE 研究账本。
|
||||
@@ -67,12 +68,18 @@
|
||||
- [x] 对 Scaling、训练系统、推理与 MoE 重新执行全量浏览器回归;13 项桌面 / 移动导航和首页数据新章入口无回归。
|
||||
- [x] Astro 类型检查、生产构建、13 个页面路由、527 个站内引用和 20 个跨页锚点全部通过。
|
||||
- [x] 数据工程首版以源提交 `ee0361b`、不可变镜像 `20260728T190932Z-ee0361b` 发布;NAS、VPS/Tailscale、NPM、DNS、HTTPS、证书、13 路由、门户与生产 Chrome 全链路通过。
|
||||
- [x] 启动数值精度、优化器与稳定性专题:回查 K2/K3、DeepSeek-V3/V4 原文,并缓存核验 mixed precision、BF16、FP8、MX、QAT、AdamW、μP、Muon 与稳定性论文。
|
||||
- [x] 使用 Grok Headless 扩展 40 个候选节点;将错误年份、不可核实新稿和无一手证据结论保留在独立 leads,不进入正式账本。
|
||||
- [x] 建立数值专题正式研究账本:十张数值账、格式/量化/优化器/稳定性主线、DeepSeek/Kimi 双谱系、四实验合同与公开未知项。
|
||||
- [x] 完成数值专题首版:19 节长文、36 个一手节点、十余组机制图与格式—状态—更新—失稳四联实验。
|
||||
- [x] 论文库新增「优化器」标签与 21 个一手节点,从 202 篇扩充至 223 篇。
|
||||
|
||||
## 正在进行
|
||||
|
||||
- [ ] Scaling Laws 二轮精读:真实拟合复现、逐篇图表、置信区间、外推失败与更多模型族对照。
|
||||
- [ ] 数据工程二轮:FineWeb / DCLM / Dolma / ROOTS 逐图精读、真实去重误伤、mixture traces 与污染案例。
|
||||
- [ ] 大规模训练系统二轮:真实集群 traces、故障恢复案例与精确 topology / kernel 配置。
|
||||
- [ ] 数值与稳定性二轮:真实 kernel 吞吐、长程失稳 traces、optimizer / quantization 逐图复现。
|
||||
- [ ] 推理专题二轮:真实 pass@k 曲线、PRM 失败案例与逐篇图表精读。
|
||||
- [ ] 长上下文专题的真实模型配置对比、内核细节与失败案例二轮深化。
|
||||
- [ ] MoE 专题的真实集群 traces、专家特化案例与二轮外部证据。
|
||||
@@ -114,6 +121,11 @@
|
||||
| 2026-07-29 | 数据工程首版用四个独立实验闭环 | 文档保留、去重误伤、领域 exposure 与改写课程分开建模,不合成伪“数据质量总分” |
|
||||
| 2026-07-29 | 论文库新增数据标签并扩充到 202 篇 | 新增 CCNet、ROOTS、Dedup、DoReMi、DCLM、WRAP、MATES、MM1、Swallow 等 20 个节点 |
|
||||
| 2026-07-29 | 数据工程首版用不可变镜像 `20260728T190932Z-ee0361b` 发布 | OCI digest `sha256:2fe8f3aa…59c8`;复用 `12010→8080`、NPM host 31 / cert 41、门户 order 180 与公开 Forgejo |
|
||||
| 2026-07-29 | 数值专题拆成表示、缩放、计算、累加、搬运、更新、参数化、观测、恢复与证据经济十张账 | 防止把一个 dtype 标签误当成完整训练配方 |
|
||||
| 2026-07-29 | Grok 数值研究包只保留为 `NUMERICS_GROK_LEADS.md` | 40 个候选必须回到论文/官方报告核验;错误元数据和不可核实结论不进入正文 |
|
||||
| 2026-07-29 | K2/K3 与 DeepSeek-V3/V4 数值谱系显式保留边界 | Per-Head Muon 不替代 QK-Clip;K3 2.5× 不归因单项技巧;V3 失败实验与高精度保留项不省略 |
|
||||
| 2026-07-29 | 数值首版用四个独立实验闭环 | 格式误差、状态字节、矩阵更新与失稳防线分开建模,不合成伪“效率总分” |
|
||||
| 2026-07-29 | 论文库新增「优化器」标签并扩充到 223 篇 | 新增 Shampoo、Adafactor、μP、8-bit optimizer、FP8-LM、FP4 training、稳定性代理等 21 个节点 |
|
||||
|
||||
## 未决问题
|
||||
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
- 持续进度:[PROGRESS.md](./PROGRESS.md)
|
||||
- 证据与写作规范:[research/METHODOLOGY.md](./research/METHODOLOGY.md)
|
||||
|
||||
当前里程碑包含 16 专题学习地图、202 篇关键论文索引、Kimi K3 完整导读、
|
||||
Transformer 基础、DeepSeek 技术谱系、Scaling Laws、数据工程、长上下文、MoE、推理与训练系统深度专题,
|
||||
当前里程碑包含 16 专题学习地图、223 篇关键论文索引、Kimi K3 完整导读、
|
||||
Transformer 基础、DeepSeek 技术谱系、Scaling Laws、数据工程、长上下文、MoE、推理、训练系统与数值优化深度专题,
|
||||
以及覆盖核心机制的原创交互实验室。
|
||||
其余专题按进度账本持续扩建。
|
||||
|
||||
|
||||
+6
-1
@@ -1,6 +1,6 @@
|
||||
# LLM Atlas 总体研究地图
|
||||
|
||||
最后更新:2026-07-28
|
||||
最后更新:2026-07-29
|
||||
|
||||
## 组织原则
|
||||
|
||||
@@ -63,6 +63,11 @@ Conditional Computation → Sparsely-Gated MoE → GShard/Switch → DeepSeekMoE
|
||||
|
||||
Adam/AdamW、Adafactor、μP、Muon;FP16/BF16/FP8/MXFP4、量化感知训练、缩放与误差。重点讲 DeepSeek-V3 FP8 与 K3 per-head Muon/MXFP4。
|
||||
|
||||
首版已发布:以“表示、缩放、计算、累加、搬运、更新、参数化、观测、恢复、证据经济”十张账串起
|
||||
2014–2026 的 36 个一手节点;重点拆解 Kimi K2 MuonClip、K3 Per-Head Muon / SiTU-GLU / MXFP4 QAT,
|
||||
以及 DeepSeek-V3 fine-grained FP8 与 V4 hybrid Muon / spike mitigation / FP4 QAT,并提供格式显微镜、
|
||||
混合精度状态账、优化器几何与失稳控制室四个独立互动实验。
|
||||
|
||||
### 10. 指令微调与人类偏好
|
||||
|
||||
Instruction Tuning、SFT、RLHF/PPO、RLAIF、Constitutional AI、DPO 及其后续。解释 base model 如何变成可协作助手。
|
||||
|
||||
+2
-1
@@ -14,7 +14,8 @@
|
||||
"check:reasoning-browser": "node scripts/check-reasoning-browser.mjs",
|
||||
"check:training-systems-browser": "node scripts/check-training-systems-browser.mjs",
|
||||
"check:scaling-browser": "node scripts/check-scaling-browser.mjs",
|
||||
"check:data-browser": "node scripts/check-data-browser.mjs"
|
||||
"check:data-browser": "node scripts/check-data-browser.mjs",
|
||||
"check:numerics-browser": "node scripts/check-numerics-browser.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/sitemap": "3.7.3",
|
||||
|
||||
@@ -0,0 +1,210 @@
|
||||
# 数值精度、优化器与训练稳定性 · Grok Discovery Leads
|
||||
|
||||
> **未核验候选,不是正式研究账本。**
|
||||
>
|
||||
> 2026-07-29 使用本机 Grok CLI Headless 扩展论文召回。Grok 被要求不修改工作区、不调用子代理,
|
||||
> 只返回原论文、标准与官方技术报告候选。正式结论只进入 `NUMERICS_RESEARCH.md`,
|
||||
> 且必须由主代理重新打开原文、核对版本、章节、公式、实验设置与限制。
|
||||
|
||||
---
|
||||
|
||||
## 1. Grok 建议的三条历史主线
|
||||
|
||||
### A. 数字怎样在机器里活下来
|
||||
|
||||
```text
|
||||
FP32
|
||||
→ FP16 mixed precision:FP32 master weights + loss scaling + FP32 accumulate
|
||||
→ BF16:保留 FP32 的指数位宽,牺牲尾数精度
|
||||
→ FP8 E4M3 / E5M2:按 tensor 缩放,计算与累加分层
|
||||
→ fine-grained / block scaling:让离群值只影响小组
|
||||
→ MXFP4:32 个 E2M1 元素共享 E8M0 scale
|
||||
→ QAT:训练时显式经历部署量化误差
|
||||
```
|
||||
|
||||
### B. 梯度怎样变成参数更新
|
||||
|
||||
```text
|
||||
SGD / Momentum
|
||||
→ Adam:逐元素一阶矩 + 二阶矩
|
||||
→ AdamW:把 weight decay 从自适应梯度中解耦
|
||||
→ Adafactor:矩阵行列因子化二阶矩
|
||||
→ Shampoo:保留张量结构的预条件
|
||||
→ μP / μTransfer:让超参数跨宽度迁移
|
||||
→ Muon:对矩阵 momentum 做 Newton–Schulz 正交化
|
||||
→ scalable Muon:weight decay + update RMS matching
|
||||
→ MuonClip / Per-Head Muon / hybrid Muon–AdamW
|
||||
```
|
||||
|
||||
### C. 一次昂贵训练怎样避免突然失控
|
||||
|
||||
```text
|
||||
初始化 / warmup / residual scaling
|
||||
→ Pre-LN / DeepNorm
|
||||
→ QK normalization / z-loss / soft-cap
|
||||
→ 小模型高 LR proxy
|
||||
→ attention logit 与 SwiGLU outlier 定位
|
||||
→ QK-Clip / activation clamp / bounded activation
|
||||
→ 路由、低精度、optimizer state 与集群确定性联合监控
|
||||
```
|
||||
|
||||
这些只是 discovery taxonomy;三条线互相影响,但不能被压缩成一个“稳定性分数”。
|
||||
|
||||
---
|
||||
|
||||
## 2. 候选一手来源
|
||||
|
||||
### 2014–2019:基础格式与自适应优化
|
||||
|
||||
| 年份 | 候选 | 原始入口 | Grok 给出的检查点 |
|
||||
|---:|---|---|---|
|
||||
| 2014 | Adam: A Method for Stochastic Optimization | <https://arxiv.org/abs/1412.6980> | Algorithm 1;一阶/二阶矩与 bias correction |
|
||||
| 2015 | Deep Learning with Limited Numerical Precision | <https://arxiv.org/abs/1502.02551> | stochastic rounding 与 16-bit fixed-point |
|
||||
| 2017 | Mixed Precision Training | <https://arxiv.org/abs/1710.03740> | FP32 master weights、loss scaling、FP32 accumulate |
|
||||
| 2017 | Decoupled Weight Decay Regularization | <https://arxiv.org/abs/1711.05101> | L2 与 adaptive optimizer 中 weight decay 不等价 |
|
||||
| 2017 | Quantization and Training of Neural Networks… | <https://arxiv.org/abs/1712.05877> | simulated quantization、fake quant 与 QAT |
|
||||
| 2018 | Shampoo | <https://arxiv.org/abs/1802.09568> | tensor-mode preconditioner 与扩展成本 |
|
||||
| 2018 | Adafactor | <https://arxiv.org/abs/1804.04235> | factored second moment、update clipping |
|
||||
| 2019 | A Study of BFLOAT16 for Deep Learning Training | <https://arxiv.org/abs/1905.12322> | 1-8-7 格式与 FP32 同动态范围 |
|
||||
|
||||
### 2020–2023:QK、μP、FP8、量化与 Microscaling
|
||||
|
||||
| 年份 | 候选 | 原始入口 | Grok 给出的检查点 |
|
||||
|---:|---|---|---|
|
||||
| 2020 | GLU Variants Improve Transformer | <https://arxiv.org/abs/2002.05202> | SwiGLU 原始定义;未讨论低精度 outlier |
|
||||
| 2020 | Query-Key Normalization for Transformers | <https://arxiv.org/abs/2010.04245> | head 维 L2 norm + learned scale |
|
||||
| 2021 | 8-bit Optimizers via Block-wise Quantization | <https://arxiv.org/abs/2110.02861> | block-wise dynamic quantization 与 stable embedding |
|
||||
| 2022 | DeepNet: Scaling Transformers to 1,000 Layers | <https://arxiv.org/abs/2203.00555> | residual scaling、初始化与 bounded update |
|
||||
| 2022 | Tensor Programs V / μTransfer | <https://arxiv.org/abs/2203.03466> | Maximal Update Parametrization 与跨宽度超参迁移 |
|
||||
| 2022 | LLM.int8() | <https://arxiv.org/abs/2208.07339> | emergent outlier features 与 mixed INT8/FP16 |
|
||||
| 2022 | FP8 Formats for Deep Learning | <https://arxiv.org/abs/2209.05433> | E4M3 / E5M2、缩放与 higher-precision output |
|
||||
| 2022 | GPTQ | <https://arxiv.org/abs/2210.17323> | one-shot weight-only PTQ 与近似二阶补偿 |
|
||||
| 2022 | SmoothQuant | <https://arxiv.org/abs/2211.10438> | 把 activation 难度迁移到 weight 的等价变换 |
|
||||
| 2023 | Scaling Vision Transformers to 22B | <https://arxiv.org/abs/2302.05442> | QK LayerNorm 与大规模 logit explosion |
|
||||
| 2023 | Stable and low-precision training… | <https://arxiv.org/abs/2304.13013> | SwitchBack;Adam 二阶矩低估与 loss spike |
|
||||
| 2023 | QLoRA | <https://arxiv.org/abs/2305.14314> | NF4、double quant、paged optimizer;训练基座仍冻结 |
|
||||
| 2023 | LLM-QAT | <https://arxiv.org/abs/2305.17888> | data-free distillation、W/A/KV QAT |
|
||||
| 2023 | Small-scale proxies… | <https://arxiv.org/abs/2309.14322> | 高 LR 小模型复现大尺度不稳定 |
|
||||
| 2023 | Microscaling Data Formats | <https://arxiv.org/abs/2310.10537> | 32-element block、E8M0 scale、MXFP4 E2M1 |
|
||||
| 2023 | FP8-LM | <https://arxiv.org/abs/2310.18313> | FP8 gradient / communication / optimizer |
|
||||
| 2023 | Spike No More | <https://arxiv.org/abs/2312.16903> | “小 sublayer、大 shortcut”的 Jacobian 视角 |
|
||||
|
||||
### 2024–2026:Muon、长程 FP8 与生产级 FP4 QAT
|
||||
|
||||
| 年份 | 候选 | 原始入口 | Grok 给出的检查点 |
|
||||
|---:|---|---|---|
|
||||
| 2024 | Deconstructing What Makes a Good Optimizer… | <https://arxiv.org/abs/2407.07972> | Adam/Adafactor/Lion 对照;尺度只到 1.2B |
|
||||
| 2024 | Scaling FP8 training to trillion-token LLMs | <https://arxiv.org/abs/2409.12517> | 200B Token 后 SwiGLU outlier 与 Smooth-SwiGLU |
|
||||
| 2024 | Methods of improving LLM training stability | <https://arxiv.org/abs/2410.16682> | QK norm + soft-cap 的中等规模对照 |
|
||||
| 2024 | DeepSeek-V3 Technical Report | <https://arxiv.org/abs/2412.19437> | tile/block scaling、FP32 promotion、精度保留表 |
|
||||
| 2024 | Muon: An Optimizer for Hidden Layers… | <https://kellerjordan.github.io/posts/muon/> | 原始技术博文与 Newton–Schulz update |
|
||||
| 2025 | Muon is Scalable for LLM Training | <https://arxiv.org/abs/2502.16982> | weight decay、update RMS matching、Moonlight |
|
||||
| 2025 | Kimi K2 Technical Report | <https://arxiv.org/abs/2507.20534> | MuonClip、QK-Clip、per-head trigger |
|
||||
| 2025 | FP4 All the Way | <https://arxiv.org/abs/2505.19115> | fully quantized FP4 training 与 quantization-noise threshold |
|
||||
| 2026 | PowLU | <https://arxiv.org/abs/2605.25704> | bounded activation 与 loss-spike 对照 |
|
||||
| 2026 | DeepSeek-V4 | <https://arxiv.org/abs/2606.19348> | hybrid Muon、QK RMSNorm、SwiGLU clamp、FP4 QAT |
|
||||
| 2026 | Kimi K3 | <https://arxiv.org/abs/2607.24653> | Per-Head Muon、SiTU-GLU、MXFP4 QAT |
|
||||
|
||||
---
|
||||
|
||||
## 3. Grok 建议、但首版不直接采用的线索
|
||||
|
||||
以下候选存在“过新、标题/版本漂移、只有推文或缺少大规模复现”等风险:
|
||||
|
||||
- Pion、NorMuon、Muon+、Newton-Muon 等 2025–2026 Muon 分支;
|
||||
- “Compositional Muon” 的社交媒体讨论;
|
||||
- 仅由二手文献转述的某些 SwiGLU-Clip 来源;
|
||||
- 只有厂商吞吐宣传、没有端到端精度与配方对照的格式页面;
|
||||
- 把所有 outlier 论文合并成一个统一因果理论的综述式结论。
|
||||
|
||||
它们可以进入二轮阅读队列,但不得用来证明 K2/K3/V4 的生产实现。
|
||||
|
||||
---
|
||||
|
||||
## 4. 候选视觉与互动
|
||||
|
||||
### 视觉 A:浮点显微镜
|
||||
|
||||
- 一个值拆成 sign / exponent / mantissa;
|
||||
- 同时展示 representable range、相邻格点间距、overflow、underflow;
|
||||
- FP8 视图必须显示 scale,不允许让读者误以为格式单独工作。
|
||||
|
||||
### 视觉 B:一次 GEMM 的精度流水线
|
||||
|
||||
```text
|
||||
BF16 master / activation
|
||||
→ group scale
|
||||
→ FP8 input
|
||||
→ low-precision multiply
|
||||
→ higher-precision partial accumulation
|
||||
→ BF16/FP32 output
|
||||
```
|
||||
|
||||
必须区分“存储格式、乘法输入、累加器、输出、master weights、optimizer states”。
|
||||
|
||||
### 视觉 C:AdamW vs Muon 更新光谱
|
||||
|
||||
- AdamW:逐坐标二阶矩归一;
|
||||
- Muon:矩阵 momentum → approximate orthogonalization;
|
||||
- 显示 singular values,而不是把 Muon 错画成完整 SVD;
|
||||
- Per-Head Muon 按逻辑独立 head 分块。
|
||||
|
||||
### 视觉 D:稳定性控制室
|
||||
|
||||
- attention logits;
|
||||
- activation max / percentile;
|
||||
- gradient norm;
|
||||
- weight / update RMS;
|
||||
- quantization saturation;
|
||||
- MoE expert outlier;
|
||||
- 每条防线标记它干预 forward、backward、optimizer 还是 routing。
|
||||
|
||||
---
|
||||
|
||||
## 5. 已由主代理回查并纠正的风险
|
||||
|
||||
1. **“少一半位数”不自动等于“快两倍”。**
|
||||
速度取决于硬件指令、kernel、shape、cast、scale、通信与内存瓶颈。
|
||||
|
||||
2. **FP8 training 不是“所有 tensor 都是 FP8”。**
|
||||
DeepSeek-V3 让 GEMM 输入走 FP8,但 attention、normalization、router、master weights、
|
||||
accumulated gradients 等关键角色保留 BF16/FP32。
|
||||
|
||||
3. **MXFP4 不是一个独立标量类型的完整故事。**
|
||||
标准格式是 32 个 E2M1 元素共享 E8M0 scale;scale 粒度与轴是语义的一部分。
|
||||
|
||||
4. **PTQ、QAT 与低精度预训练不是同一件事。**
|
||||
GPTQ/QLoRA 等只回答部分部署或微调问题,不能证明全程 FP4 预训练可行。
|
||||
|
||||
5. **Muon 的 `~2×` 是 Moonlight 报告的 scaling-law 作者结果。**
|
||||
它不是对所有模型、数据和超参数的普遍定理。
|
||||
|
||||
6. **K2 的 QK-Clip 与 DeepSeek-V4 的 QK normalization 是结构相关选择。**
|
||||
K2 报告解释 MLA 中 key 不完全物化带来的约束;V4 的 attention 结构允许直接 RMSNorm。
|
||||
|
||||
7. **K3 不只是“继续用 MuonClip”。**
|
||||
报告同时给出 Per-Head Muon、继承 K2 weight clipping、有界 SiTU-GLU,
|
||||
以及在 post-training 全程对专家权重使用 MXFP4 QAT。
|
||||
|
||||
8. **DeepSeek-V4 确实披露训练中遇到 spike。**
|
||||
报告不是“稳定性完美”的宣传,而是公开 Anticipatory Routing 与 SwiGLU clamping 两个经验补丁。
|
||||
|
||||
9. **稳定性不是只有 loss 一条曲线。**
|
||||
logits、activation、gradient、weight、update、scale、router 与系统错误需要分别监控。
|
||||
|
||||
---
|
||||
|
||||
## 6. 从候选晋级正式账本的门槛
|
||||
|
||||
每条进入正文的结论至少满足:
|
||||
|
||||
1. 找到论文 / 标准 / 正式报告的一手入口;
|
||||
2. 核对标题、版本、作者、年份;
|
||||
3. 定位到支持结论的章节、公式、图或表;
|
||||
4. 写清 tensor 角色、格式、group 粒度和计算阶段;
|
||||
5. 写清模型规模、Token 预算、硬件与 baseline;
|
||||
6. 区分作者报告、课程推导与标准定义;
|
||||
7. 同时记录失败条件和不可外推范围;
|
||||
8. 无法公开确认的实现细节明确写为未知。
|
||||
|
||||
这份文件保留 Grok 的“召回价值”,并永久阻止未核验摘要越过证据门槛。
|
||||
File diff suppressed because it is too large
Load Diff
@@ -230,15 +230,15 @@ if (transform.keyboard.selected !== "transform" || transform.keyboard.visible !=
|
||||
if (layout.articleSections !== 18 || layout.paperLinks !== 31 || layout.labTabs !== 4 || layout.views !== 4) {
|
||||
failures.push("章节、论文或实验数量异常");
|
||||
}
|
||||
if (layout.navLinks !== 13 || mobile.mobileLinks !== 13 || home.navLinks !== 13) failures.push("全站导航未同步数据工程");
|
||||
if (layout.navLinks !== 14 || mobile.mobileLinks !== 14 || home.navLinks !== 14) failures.push("全站导航未同步数值专题");
|
||||
if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出");
|
||||
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
||||
if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用");
|
||||
if (home.releaseCards !== 6 || !home.firstRelease.includes("一万亿 Token") || home.firstHref !== "/pretraining/data/") {
|
||||
failures.push("首页数据工程新章入口异常");
|
||||
if (home.releaseCards !== 7 || !home.firstRelease.includes("少几个比特") || home.firstHref !== "/systems/numerics/") {
|
||||
failures.push("首页数值新章入口异常");
|
||||
}
|
||||
if (home.paperCount !== "202") failures.push(`首页论文总数异常:${home.paperCount}`);
|
||||
if (!papers.hasDataFilter || papers.total !== 202 || papers.visible < 25) failures.push("论文库数据标签或论文总数异常");
|
||||
if (home.paperCount !== "223") failures.push(`首页论文总数异常:${home.paperCount}`);
|
||||
if (!papers.hasDataFilter || papers.total !== 223 || papers.visible < 25) failures.push("论文库数据标签或论文总数异常");
|
||||
if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`);
|
||||
|
||||
socket.close();
|
||||
|
||||
@@ -177,7 +177,7 @@ if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentO
|
||||
}
|
||||
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
||||
if (!mobile.menuVisible) failures.push("移动端菜单按钮未显示");
|
||||
if (home.releaseCards !== 6) failures.push(`首页新章卡数量异常:${home.releaseCards}`);
|
||||
if (home.releaseCards !== 7) failures.push(`首页新章卡数量异常:${home.releaseCards}`);
|
||||
if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`);
|
||||
|
||||
socket.close();
|
||||
|
||||
@@ -0,0 +1,292 @@
|
||||
import { writeFileSync } from "node:fs";
|
||||
|
||||
const cdpPort = process.env.CDP_PORT ?? "9227";
|
||||
const baseUrl = process.env.SITE_URL ?? "http://127.0.0.1:4326";
|
||||
const pages = await fetch(`http://127.0.0.1:${cdpPort}/json/list`).then((response) => response.json());
|
||||
const page = pages.find((entry) => entry.type === "page");
|
||||
if (!page) throw new Error(`CDP ${cdpPort} 没有可用页面`);
|
||||
|
||||
const socket = new WebSocket(page.webSocketDebuggerUrl);
|
||||
await new Promise((resolve, reject) => {
|
||||
socket.addEventListener("open", resolve, { once: true });
|
||||
socket.addEventListener("error", reject, { once: true });
|
||||
});
|
||||
|
||||
let nextId = 0;
|
||||
const pending = new Map();
|
||||
const exceptions = [];
|
||||
socket.addEventListener("message", (event) => {
|
||||
const message = JSON.parse(event.data);
|
||||
if (message.id && pending.has(message.id)) {
|
||||
const { resolve, reject } = pending.get(message.id);
|
||||
pending.delete(message.id);
|
||||
if (message.error) reject(new Error(message.error.message));
|
||||
else resolve(message.result);
|
||||
}
|
||||
if (message.method === "Runtime.exceptionThrown") {
|
||||
exceptions.push(message.params.exceptionDetails.exception?.description ?? message.params.exceptionDetails.text);
|
||||
}
|
||||
});
|
||||
|
||||
const command = (method, params = {}) => new Promise((resolve, reject) => {
|
||||
const id = ++nextId;
|
||||
pending.set(id, { resolve, reject });
|
||||
socket.send(JSON.stringify({ id, method, params }));
|
||||
});
|
||||
const pause = (milliseconds) => new Promise((resolve) => setTimeout(resolve, milliseconds));
|
||||
const evaluate = async (expression) => {
|
||||
const result = await command("Runtime.evaluate", { expression, returnByValue: true, awaitPromise: true });
|
||||
if (result.exceptionDetails) throw new Error(result.exceptionDetails.exception?.description ?? result.exceptionDetails.text);
|
||||
return result.result.value;
|
||||
};
|
||||
const navigate = async (path) => {
|
||||
await command("Page.navigate", { url: `${baseUrl}${path}` });
|
||||
for (let attempt = 0; attempt < 50; attempt += 1) {
|
||||
await pause(100);
|
||||
if (await evaluate("document.readyState === 'complete'")) return;
|
||||
}
|
||||
throw new Error(`${path} 加载超时`);
|
||||
};
|
||||
const screenshot = async (path, full = false) => {
|
||||
const params = { format: "png", captureBeyondViewport: full };
|
||||
if (full) {
|
||||
const metrics = await command("Page.getLayoutMetrics");
|
||||
params.clip = {
|
||||
x: 0,
|
||||
y: 0,
|
||||
width: metrics.cssContentSize.width,
|
||||
height: metrics.cssContentSize.height,
|
||||
scale: 1,
|
||||
};
|
||||
}
|
||||
const result = await command("Page.captureScreenshot", params);
|
||||
writeFileSync(path, Buffer.from(result.data, "base64"));
|
||||
};
|
||||
|
||||
await command("Page.enable");
|
||||
await command("Runtime.enable");
|
||||
await command("Emulation.setDeviceMetricsOverride", {
|
||||
width: 1440,
|
||||
height: 1100,
|
||||
deviceScaleFactor: 1,
|
||||
mobile: false,
|
||||
});
|
||||
await navigate("/systems/numerics/");
|
||||
await screenshot("/tmp/llm-atlas-numerics-desktop.png");
|
||||
|
||||
const format = await evaluate(`(() => {
|
||||
const root = document.querySelector("[data-numerics-lab]");
|
||||
const metric = (name) => root.querySelector('[data-format-metric="' + name + '"]').textContent;
|
||||
const initial = {
|
||||
storage: metric("storage"),
|
||||
status: metric("status"),
|
||||
error: metric("absolute"),
|
||||
};
|
||||
root.querySelector('[data-format-choice="fp16"]').click();
|
||||
root.querySelector('[data-format-preset="tiny"]').click();
|
||||
const tinyFp16 = { status: metric("status"), encoded: metric("encoded") };
|
||||
root.querySelector('[data-format-choice="e4m3"]').click();
|
||||
root.querySelector('[data-format-preset="large"]').click();
|
||||
const largeE4M3 = { status: metric("status"), encoded: metric("encoded") };
|
||||
root.querySelector('[data-format-choice="mxfp4"]').click();
|
||||
root.querySelector('[data-format-preset="one"]').click();
|
||||
const outlier = root.querySelector('[data-format-input="outlier"]');
|
||||
const local = { error: metric("absolute"), encoded: metric("encoded") };
|
||||
outlier.value = "64";
|
||||
outlier.dispatchEvent(new Event("input", { bubbles: true }));
|
||||
return {
|
||||
initial,
|
||||
tinyFp16,
|
||||
largeE4M3,
|
||||
local,
|
||||
shared: {
|
||||
error: metric("absolute"),
|
||||
encoded: metric("encoded"),
|
||||
note: root.querySelector("[data-format-scale-note]").textContent,
|
||||
},
|
||||
};
|
||||
})()`);
|
||||
|
||||
const ledger = await evaluate(`(() => {
|
||||
const root = document.querySelector("[data-numerics-lab]");
|
||||
root.querySelector('[data-num-tab="ledger"]').click();
|
||||
const read = () => ({
|
||||
total: root.querySelector('[data-ledger-metric="total"]').textContent,
|
||||
saving: root.querySelector('[data-ledger-metric="saving"]').textContent,
|
||||
activation: root.querySelector('[data-ledger-metric="activation"]').textContent,
|
||||
communication: root.querySelector('[data-ledger-metric="communication"]').textContent,
|
||||
risks: root.querySelector("[data-ledger-risks]").textContent,
|
||||
rows: root.querySelectorAll("[data-state-stack] > div").length,
|
||||
});
|
||||
root.querySelector('[data-precision-preset="bf16"]').click();
|
||||
const bf16 = read();
|
||||
root.querySelector('[data-precision-preset="v3"]').click();
|
||||
const v3 = read();
|
||||
root.querySelector('[data-precision-preset="k3"]').click();
|
||||
const k3 = read();
|
||||
return { bf16, v3, k3 };
|
||||
})()`);
|
||||
|
||||
const optimizer = await evaluate(`(() => {
|
||||
const root = document.querySelector("[data-numerics-lab]");
|
||||
root.querySelector('[data-num-tab="optimizer"]').click();
|
||||
const ratio = root.querySelector('[data-optimizer-input="ratio"]');
|
||||
ratio.value = "24";
|
||||
ratio.dispatchEvent(new Event("input", { bubbles: true }));
|
||||
const read = () => ({
|
||||
label: root.querySelector("[data-optimizer-label]").textContent,
|
||||
imbalance: root.querySelector('[data-optimizer-metric="imbalance"]').textContent,
|
||||
unit: root.querySelector('[data-optimizer-metric="unit"]').textContent,
|
||||
note: root.querySelector("[data-optimizer-note]").textContent,
|
||||
cells: root.querySelectorAll('[data-matrix="output"] i').length,
|
||||
});
|
||||
root.querySelector('[data-optimizer-choice="muon"]').click();
|
||||
const full = read();
|
||||
root.querySelector('[data-optimizer-choice="perhead"]').click();
|
||||
const perHead = read();
|
||||
return { full, perHead };
|
||||
})()`);
|
||||
|
||||
const stability = await evaluate(`(() => {
|
||||
const root = document.querySelector("[data-numerics-lab]");
|
||||
root.querySelector('[data-num-tab="stability"]').click();
|
||||
const read = () => ({
|
||||
summary: root.querySelector("[data-stability-summary]").textContent,
|
||||
levels: [...root.querySelectorAll("[data-gauge] b")].map((node) => node.textContent),
|
||||
defenses: [...root.querySelectorAll("[data-defense]:checked")].map((node) => node.dataset.defense),
|
||||
timeline: root.querySelectorAll("[data-risk-timeline] i").length,
|
||||
});
|
||||
root.querySelector('[data-stability-preset="k2"]').click();
|
||||
const k2 = read();
|
||||
root.querySelector('[data-stability-preset="v4"]').click();
|
||||
const v4 = read();
|
||||
const firstTab = root.querySelector('[data-num-tab="format"]');
|
||||
firstTab.focus();
|
||||
firstTab.dispatchEvent(new KeyboardEvent("keydown", { key: "End", bubbles: true }));
|
||||
return {
|
||||
k2,
|
||||
v4,
|
||||
keyboard: {
|
||||
selected: root.querySelector('[data-num-tab][aria-selected="true"]').dataset.numTab,
|
||||
visible: root.querySelector("[data-num-view]:not([hidden])").dataset.numView,
|
||||
},
|
||||
};
|
||||
})()`);
|
||||
|
||||
const layout = await evaluate(`(() => {
|
||||
const nav = document.querySelector(".top-nav");
|
||||
const meta = document.querySelector(".header-meta");
|
||||
return {
|
||||
documentOverflow: document.documentElement.scrollWidth - document.documentElement.clientWidth,
|
||||
navGap: Number((meta.getBoundingClientRect().left - nav.getBoundingClientRect().right).toFixed(1)),
|
||||
navLinks: document.querySelectorAll(".top-nav a").length,
|
||||
articleSections: document.querySelectorAll(".article-section").length,
|
||||
paperLinks: document.querySelectorAll(".paper-chain a").length,
|
||||
labTabs: document.querySelectorAll("[data-num-tab]").length,
|
||||
views: document.querySelectorAll("[data-num-view]").length,
|
||||
};
|
||||
})()`);
|
||||
|
||||
await evaluate(`document.querySelector("[data-numerics-lab]").scrollIntoView({ block: "start", behavior: "instant" })`);
|
||||
await pause(150);
|
||||
await screenshot("/tmp/llm-atlas-numerics-lab-desktop.png");
|
||||
|
||||
await command("Emulation.setDeviceMetricsOverride", {
|
||||
width: 390,
|
||||
height: 844,
|
||||
deviceScaleFactor: 1,
|
||||
mobile: true,
|
||||
});
|
||||
await navigate("/systems/numerics/");
|
||||
await evaluate(`document.querySelector("[data-numerics-lab]").scrollIntoView({ block: "start", behavior: "instant" })`);
|
||||
await pause(100);
|
||||
await screenshot("/tmp/llm-atlas-numerics-lab-mobile.png");
|
||||
const mobile = await evaluate(`(() => {
|
||||
const toggle = document.querySelector("#menu-toggle");
|
||||
toggle.click();
|
||||
return {
|
||||
documentOverflow: document.documentElement.scrollWidth - document.documentElement.clientWidth,
|
||||
menuVisible: getComputedStyle(toggle).display !== "none",
|
||||
menuOpen: toggle.getAttribute("aria-expanded"),
|
||||
mobileLinks: document.querySelectorAll("#mobile-nav a").length,
|
||||
};
|
||||
})()`);
|
||||
|
||||
await command("Emulation.setDeviceMetricsOverride", {
|
||||
width: 1440,
|
||||
height: 1100,
|
||||
deviceScaleFactor: 1,
|
||||
mobile: false,
|
||||
});
|
||||
await navigate("/");
|
||||
const home = await evaluate(`({
|
||||
documentOverflow: document.documentElement.scrollWidth - document.documentElement.clientWidth,
|
||||
releaseCards: document.querySelectorAll(".release-card").length,
|
||||
firstRelease: document.querySelector(".release-card h2").textContent,
|
||||
firstHref: document.querySelector(".release-card").getAttribute("href"),
|
||||
paperCount: document.querySelector(".hero-stats div:nth-child(3) b").textContent,
|
||||
navLinks: document.querySelectorAll(".top-nav a").length,
|
||||
})`);
|
||||
|
||||
await navigate("/papers/");
|
||||
const papers = await evaluate(`(() => {
|
||||
const optimizer = [...document.querySelectorAll("[data-filter]")].find((node) => node.dataset.filter === "优化器");
|
||||
optimizer?.click();
|
||||
return {
|
||||
hasOptimizerFilter: Boolean(optimizer),
|
||||
total: document.querySelectorAll("[data-paper]").length,
|
||||
visible: [...document.querySelectorAll("[data-paper]")].filter((node) => !node.hidden).length,
|
||||
};
|
||||
})()`);
|
||||
|
||||
const report = { format, ledger, optimizer, stability, layout, mobile, home, papers, exceptions };
|
||||
console.log(JSON.stringify(report, null, 2));
|
||||
|
||||
const numeric = (value) => Number.parseFloat(value.replaceAll(",", ""));
|
||||
const failures = [];
|
||||
if (format.initial.storage !== "2.000 B/value") failures.push("BF16 初始字节口径异常");
|
||||
if (!["SUBNORMAL", "ROUNDED"].includes(format.tinyFp16.status)) failures.push("FP16 微小梯度未进入 subnormal/rounding 边界");
|
||||
if (format.largeE4M3.status !== "OVERFLOW") failures.push("E4M3 大激活未触发 overflow");
|
||||
if (numeric(format.shared.error) <= numeric(format.local.error) || !format.shared.note.includes("teaching scale")) {
|
||||
failures.push("MXFP4 block outlier 没有压缩普通值格点");
|
||||
}
|
||||
if (ledger.bf16.rows !== 6 || ledger.v3.rows !== 6 || ledger.k3.rows !== 6) failures.push("混合精度状态栈数量异常");
|
||||
if (numeric(ledger.v3.total) >= numeric(ledger.bf16.total) || numeric(ledger.k3.total) >= numeric(ledger.bf16.total)) {
|
||||
failures.push("低精度预设没有降低教学状态字节");
|
||||
}
|
||||
if (!ledger.v3.risks.includes("1×128") || !ledger.k3.risks.includes("post-training")) failures.push("V3/K3 证据边界缺失");
|
||||
if (optimizer.full.cells !== 8 || optimizer.perHead.cells !== 8) failures.push("更新矩阵没有完整渲染");
|
||||
if (optimizer.perHead.unit.trim() !== "attention head" || !optimizer.perHead.label.includes("Per-Head")) {
|
||||
failures.push("Per-Head Muon 逻辑单位异常");
|
||||
}
|
||||
if (
|
||||
numeric(optimizer.perHead.imbalance) > 1.25
|
||||
|| numeric(optimizer.perHead.imbalance) >= numeric(optimizer.full.imbalance) * 0.1
|
||||
) failures.push("Per-Head Muon 没有显著降低两个 head 的更新失衡");
|
||||
if (stability.v4.timeline !== 24 || stability.k2.timeline !== 24) failures.push("稳定性时间线数量异常");
|
||||
if (!stability.v4.summary.includes("均低于 HIGH") || stability.v4.defenses.length !== 5) {
|
||||
failures.push("DeepSeek-V4 防线预设没有压低四条教学风险");
|
||||
}
|
||||
if (stability.keyboard.selected !== "stability" || stability.keyboard.visible !== "stability") {
|
||||
failures.push("实验页签键盘导航异常");
|
||||
}
|
||||
if (layout.articleSections !== 19 || layout.paperLinks !== 36 || layout.labTabs !== 4 || layout.views !== 4) {
|
||||
failures.push("章节、论文或实验数量异常");
|
||||
}
|
||||
if (layout.navLinks !== 14 || mobile.mobileLinks !== 14 || home.navLinks !== 14) failures.push("全站导航未同步数值专题");
|
||||
if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出");
|
||||
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
||||
if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用");
|
||||
if (home.releaseCards !== 7 || !home.firstRelease.includes("少几个比特") || home.firstHref !== "/systems/numerics/") {
|
||||
failures.push("首页数值新章入口异常");
|
||||
}
|
||||
if (home.paperCount !== "223") failures.push(`首页论文总数异常:${home.paperCount}`);
|
||||
if (!papers.hasOptimizerFilter || papers.total !== 223 || papers.visible < 8) failures.push("论文库优化器标签或论文总数异常");
|
||||
if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`);
|
||||
|
||||
socket.close();
|
||||
if (failures.length) {
|
||||
failures.forEach((failure) => console.error(`- ${failure}`));
|
||||
process.exit(1);
|
||||
}
|
||||
console.log("数值精度、优化器与稳定性专题真实 Chrome 断言通过。");
|
||||
@@ -289,7 +289,7 @@ if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentO
|
||||
}
|
||||
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
||||
if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用");
|
||||
if (home.releaseCards !== 6 || !home.firstRelease.includes("一万亿 Token")) failures.push("首页新章入口异常");
|
||||
if (home.releaseCards !== 7 || !home.firstRelease.includes("少几个比特")) failures.push("首页数值新章入口异常");
|
||||
if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`);
|
||||
|
||||
socket.close();
|
||||
|
||||
@@ -269,14 +269,14 @@ if (emergence.paths.some((length) => length < 500)) failures.push("涌现多指
|
||||
if (layout.articleSections !== 16 || layout.paperLinks !== 29 || layout.labTabs !== 4 || layout.views !== 4) {
|
||||
failures.push("章节、论文或实验数量异常");
|
||||
}
|
||||
if (layout.navLinks !== 13 || mobile.mobileLinks !== 13 || home.navLinks !== 13) failures.push("全站导航未同步 Scaling");
|
||||
if (layout.navLinks !== 14 || mobile.mobileLinks !== 14 || home.navLinks !== 14) failures.push("全站导航未同步数值专题");
|
||||
if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出");
|
||||
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
||||
if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用");
|
||||
if (home.releaseCards !== 6 || !home.firstRelease.includes("一万亿 Token") || home.firstHref !== "/pretraining/data/") {
|
||||
failures.push("首页数据工程新章入口异常");
|
||||
if (home.releaseCards !== 7 || !home.firstRelease.includes("少几个比特") || home.firstHref !== "/systems/numerics/") {
|
||||
failures.push("首页数值新章入口异常");
|
||||
}
|
||||
if (home.paperCount !== "202") failures.push(`首页论文总数异常:${home.paperCount}`);
|
||||
if (home.paperCount !== "223") failures.push(`首页论文总数异常:${home.paperCount}`);
|
||||
if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`);
|
||||
|
||||
socket.close();
|
||||
|
||||
@@ -233,7 +233,7 @@ if (layout.articleSections !== 16 || layout.paperLinks !== 37 || layout.labTabs
|
||||
if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出");
|
||||
if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`);
|
||||
if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用");
|
||||
if (home.releaseCards !== 6 || !home.firstRelease.includes("一万亿 Token")) failures.push("首页新章入口异常");
|
||||
if (home.releaseCards !== 7 || !home.firstRelease.includes("少几个比特")) failures.push("首页数值新章入口异常");
|
||||
if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`);
|
||||
|
||||
socket.close();
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -16,6 +16,7 @@ const items = [
|
||||
{ id: "long-context", href: "/long-context/", label: "长上下文" },
|
||||
{ id: "reasoning", href: "/reasoning/", label: "推理" },
|
||||
{ id: "training-systems", href: "/training-systems/", label: "训练系统" },
|
||||
{ id: "numerics", href: "/systems/numerics/", label: "数值" },
|
||||
{ id: "papers", href: "/papers/", label: "论文库" },
|
||||
{ id: "progress", href: "/progress/", label: "进度" },
|
||||
];
|
||||
|
||||
@@ -138,12 +138,12 @@ export const chapters: Chapter[] = [
|
||||
title: "数值精度、优化器与稳定性",
|
||||
kicker: "OPTIMIZATION",
|
||||
question: "为什么少几个比特能省巨资,也可能让训练瞬间崩掉?",
|
||||
summary: "解释 AdamW、μP、Muon、BF16/FP8/MXFP4 与量化感知训练的数值直觉。",
|
||||
status: "queued",
|
||||
progress: 13,
|
||||
papers: 16,
|
||||
summary: "用十张数值账解释 AdamW、μP、Muon、BF16/FP8/MXFP4、QAT 与训练失稳反馈环。",
|
||||
status: "published",
|
||||
progress: 75,
|
||||
papers: 36,
|
||||
prerequisites: ["02", "08"],
|
||||
highlights: ["FP8", "Muon", "MXFP4"],
|
||||
highlights: ["FP8", "MuonClip", "MXFP4", "稳定性控制室"],
|
||||
},
|
||||
{
|
||||
number: "10",
|
||||
|
||||
+173
-3
@@ -6,6 +6,7 @@ export type PaperTopic =
|
||||
| "Scaling"
|
||||
| "数据"
|
||||
| "训练系统"
|
||||
| "优化器"
|
||||
| "低精度"
|
||||
| "后训练"
|
||||
| "推理"
|
||||
@@ -867,7 +868,7 @@ export const papers: Paper[] = [
|
||||
year: 2014,
|
||||
title: "Adam: A Method for Stochastic Optimization",
|
||||
url: "https://arxiv.org/abs/1412.6980",
|
||||
topics: ["训练系统"],
|
||||
topics: ["训练系统", "优化器"],
|
||||
contribution: "自适应一阶/二阶矩估计,成为 LLM 优化器基线。",
|
||||
verified: true,
|
||||
},
|
||||
@@ -875,7 +876,7 @@ export const papers: Paper[] = [
|
||||
year: 2017,
|
||||
title: "Decoupled Weight Decay Regularization",
|
||||
url: "https://arxiv.org/abs/1711.05101",
|
||||
topics: ["训练系统"],
|
||||
topics: ["训练系统", "优化器"],
|
||||
contribution: "AdamW 将权重衰减与梯度更新正确解耦。",
|
||||
verified: true,
|
||||
},
|
||||
@@ -1081,11 +1082,19 @@ export const papers: Paper[] = [
|
||||
spotlight: "Kimi",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2024,
|
||||
title: "Muon: An Optimizer for Hidden Layers in Neural Networks",
|
||||
url: "https://kellerjordan.github.io/posts/muon/",
|
||||
topics: ["优化器"],
|
||||
contribution: "把 momentum matrix 经 Newton–Schulz 近似正交化,给出 Muon 的原始定义与参考实现。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2025,
|
||||
title: "Muon is Scalable for LLM Training",
|
||||
url: "https://arxiv.org/abs/2502.16982",
|
||||
topics: ["训练系统"],
|
||||
topics: ["训练系统", "优化器"],
|
||||
contribution: "补足 Muon 在 LLM 规模的权重衰减与更新尺度配方。",
|
||||
spotlight: "Kimi",
|
||||
verified: true,
|
||||
@@ -1130,6 +1139,166 @@ export const papers: Paper[] = [
|
||||
contribution: "基于近似二阶信息逐层量化大模型权重。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2015,
|
||||
title: "Deep Learning with Limited Numerical Precision",
|
||||
url: "https://arxiv.org/abs/1502.02551",
|
||||
topics: ["低精度"],
|
||||
contribution: "系统研究定点低精度训练,并用 stochastic rounding 保住微小更新的长期积累。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2017,
|
||||
title: "Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference",
|
||||
url: "https://arxiv.org/abs/1712.05877",
|
||||
topics: ["低精度"],
|
||||
contribution: "建立 fake quantization 与量化感知训练的经典整数推理配方。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2018,
|
||||
title: "Shampoo: Preconditioned Stochastic Tensor Optimization",
|
||||
url: "https://arxiv.org/abs/1802.09568",
|
||||
topics: ["优化器"],
|
||||
contribution: "沿 tensor 各 mode 构造结构化预条件器,在逐坐标自适应之外利用矩阵几何。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2018,
|
||||
title: "Adafactor: Adaptive Learning Rates with Sublinear Memory Cost",
|
||||
url: "https://arxiv.org/abs/1804.04235",
|
||||
topics: ["优化器", "训练系统"],
|
||||
contribution: "用行列因子近似二阶矩,并以 update clipping 降低优化器状态与失稳风险。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2019,
|
||||
title: "A Study of BFLOAT16 for Deep Learning Training",
|
||||
url: "https://arxiv.org/abs/1905.12322",
|
||||
topics: ["低精度", "训练系统"],
|
||||
contribution: "解释 BF16 保留 FP32 exponent、压缩 mantissa 的范围—精度取舍。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2020,
|
||||
title: "Query-Key Normalization for Transformers",
|
||||
url: "https://arxiv.org/abs/2010.04245",
|
||||
topics: ["Transformer", "优化器"],
|
||||
contribution: "归一化每个 attention head 的 Q/K 并学习缩放,直接约束 Softmax logit 尺度。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2021,
|
||||
title: "8-bit Optimizers via Block-wise Quantization",
|
||||
url: "https://arxiv.org/abs/2110.02861",
|
||||
topics: ["优化器", "低精度"],
|
||||
contribution: "用 block-wise dynamic quantization 压缩 optimizer state,同时隔离离群值影响。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2022,
|
||||
title: "DeepNet: Scaling Transformers to 1,000 Layers",
|
||||
url: "https://arxiv.org/abs/2203.00555",
|
||||
topics: ["Transformer", "优化器"],
|
||||
contribution: "用 DeepNorm 的残差缩放与初始化界约束深层 Transformer 更新。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2022,
|
||||
title: "Tensor Programs V: Tuning Large Neural Networks via Zero-Shot Hyperparameter Transfer",
|
||||
url: "https://arxiv.org/abs/2203.03466",
|
||||
topics: ["Scaling", "优化器"],
|
||||
contribution: "μP 让小代理模型调出的超参数可随宽度迁移到更大网络。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2023,
|
||||
title: "Scaling Vision Transformers to 22 Billion Parameters",
|
||||
url: "https://arxiv.org/abs/2302.05442",
|
||||
topics: ["Transformer", "优化器", "多模态"],
|
||||
contribution: "以 QK LayerNorm 等改动缓解超大 ViT 的 attention logit 爆炸。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2023,
|
||||
title: "Stable and Low-precision Training for Large-scale Vision-language Models",
|
||||
url: "https://arxiv.org/abs/2304.13013",
|
||||
topics: ["低精度", "优化器", "多模态"],
|
||||
contribution: "用 SwitchBack 与稳定性诊断研究低精度 VLM 训练中的 outlier 和 Adam second-moment spike。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2023,
|
||||
title: "QLoRA: Efficient Finetuning of Quantized LLMs",
|
||||
url: "https://arxiv.org/abs/2305.14314",
|
||||
topics: ["低精度", "后训练"],
|
||||
contribution: "以 NF4、double quantization 和 paged optimizers 微调冻结的 4-bit 基座。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2023,
|
||||
title: "LLM-QAT: Data-Free Quantization Aware Training for Large Language Models",
|
||||
url: "https://arxiv.org/abs/2305.17888",
|
||||
topics: ["低精度", "后训练"],
|
||||
contribution: "用自生成数据进行 weight、activation 与 KV cache 的量化感知训练。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2023,
|
||||
title: "Small-scale Proxies for Large-scale Transformer Training Instabilities",
|
||||
url: "https://arxiv.org/abs/2309.14322",
|
||||
topics: ["优化器", "训练系统"],
|
||||
contribution: "用高学习率小模型代理复现大模型失稳,降低稳定性机制的研究成本。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2023,
|
||||
title: "FP8-LM: Training FP8 Large Language Models",
|
||||
url: "https://arxiv.org/abs/2310.18313",
|
||||
topics: ["低精度", "训练系统"],
|
||||
contribution: "把 FP8 扩展到计算、优化器与分布式通信的端到端 LLM 训练。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2023,
|
||||
title: "Spike No More: Stabilizing the Pre-training of Large Language Models",
|
||||
url: "https://arxiv.org/abs/2312.16903",
|
||||
topics: ["优化器", "Transformer"],
|
||||
contribution: "从“小 sublayer、大 shortcut”原则解释并抑制预训练早期 loss spike。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2024,
|
||||
title: "Deconstructing What Makes a Good Optimizer for Language Models",
|
||||
url: "https://arxiv.org/abs/2407.07972",
|
||||
topics: ["优化器"],
|
||||
contribution: "拆解 Adam、Adafactor、Lion 等方法的更新尺度、方向与超参边界。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2024,
|
||||
title: "Scaling FP8 Training to Trillion-Token LLMs",
|
||||
url: "https://arxiv.org/abs/2409.12517",
|
||||
topics: ["低精度", "训练系统"],
|
||||
contribution: "研究万亿 Token 长程 FP8 训练的 SwiGLU outlier,并提出 Smooth-SwiGLU。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2025,
|
||||
title: "FP4 All the Way: Fully Quantized Training of LLMs",
|
||||
url: "https://arxiv.org/abs/2505.19115",
|
||||
topics: ["低精度", "训练系统"],
|
||||
contribution: "探索权重、激活与梯度广泛采用 FP4 的 fully quantized 训练边界。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2026,
|
||||
title: "PowLU: Power-Law Units for Stable and Efficient LLM Training",
|
||||
url: "https://arxiv.org/abs/2605.25704",
|
||||
topics: ["优化器", "低精度", "Transformer"],
|
||||
contribution: "用有界幂律激活控制极值,连接 activation 设计与低精度稳定性。",
|
||||
verified: true,
|
||||
},
|
||||
{
|
||||
year: 2023,
|
||||
title: "AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration",
|
||||
@@ -1669,6 +1838,7 @@ export const paperTopics: PaperTopic[] = [
|
||||
"Scaling",
|
||||
"数据",
|
||||
"训练系统",
|
||||
"优化器",
|
||||
"低精度",
|
||||
"后训练",
|
||||
"推理",
|
||||
|
||||
+30
-2
@@ -13,6 +13,7 @@ const routes: Record<string, string> = {
|
||||
"long-context": "/long-context/",
|
||||
reasoning: "/reasoning/",
|
||||
"training-systems": "/training-systems/",
|
||||
"systems/numerics": "/systems/numerics/",
|
||||
};
|
||||
|
||||
const paths = [
|
||||
@@ -86,6 +87,7 @@ const paths = [
|
||||
<a class="button" href="/long-context/">长上下文专题</a>
|
||||
<a class="button" href="/reasoning/">推理专题</a>
|
||||
<a class="button" href="/training-systems/">训练系统专题</a>
|
||||
<a class="button" href="/systems/numerics/">数值与优化专题</a>
|
||||
</div>
|
||||
</div>
|
||||
<aside class="hero-aside" aria-label="项目统计">
|
||||
@@ -95,20 +97,36 @@ const paths = [
|
||||
<div class="hero-stats">
|
||||
<div><b>16</b><span>核心专题</span></div>
|
||||
<div><b>151</b><span>K3 报告来源</span></div>
|
||||
<div><b>202</b><span>关键论文索引</span></div>
|
||||
<div><b>223</b><span>关键论文索引</span></div>
|
||||
<div><b>47p</b><span>K3 技术报告</span></div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
<div class="scope-strip">
|
||||
<span>研究范围</span>
|
||||
<p>表示学习 · Transformer · Scaling · 数据工程 · MoE · 长上下文 · 训练系统 · 后训练 · 推理 · Agent · 多模态 · 服务与评测</p>
|
||||
<p>表示学习 · Transformer · Scaling · 数据工程 · MoE · 长上下文 · 训练系统 · 数值优化 · 后训练 · 推理 · Agent · 多模态 · 服务与评测</p>
|
||||
<a href="/progress/">查看实时进度 →</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section compact release-section" id="new-chapters">
|
||||
<div class="release-grid">
|
||||
<a class="release-card numerics-release" href="/systems/numerics/">
|
||||
<div>
|
||||
<p class="eyebrow"><span>NEW / CHAPTER 09</span> PRECISION · OPTIMIZATION · STABILITY</p>
|
||||
<h2>少几个比特为什么省巨资,也可能让训练瞬间崩掉?</h2>
|
||||
<p>
|
||||
用表示、缩放、计算、累加、搬运、更新、参数化、观测、恢复与证据十张账,
|
||||
从 mixed precision、BF16、FP8 和 MXFP4,一路走到 AdamW、Muon、Kimi K2/K3 与 DeepSeek-V3/V4。
|
||||
</p>
|
||||
</div>
|
||||
<dl>
|
||||
<div><dt>LINEAGE</dt><dd>2014 → 2026</dd></div>
|
||||
<div><dt>PAPERS</dt><dd>36 个一手节点</dd></div>
|
||||
<div><dt>LAB</dt><dd>格式 · 状态 · 更新 · 失稳</dd></div>
|
||||
</dl>
|
||||
<span class="release-arrow" aria-hidden="true">进入数值与优化专题 →</span>
|
||||
</a>
|
||||
<a class="release-card data-release" href="/pretraining/data/">
|
||||
<div>
|
||||
<p class="eyebrow"><span>NEW / CHAPTER 05</span> DATA & PRE-TRAINING</p>
|
||||
@@ -438,6 +456,7 @@ const paths = [
|
||||
transition: transform 180ms ease, border-color 180ms ease;
|
||||
}
|
||||
|
||||
.numerics-release,
|
||||
.data-release,
|
||||
.scaling-release,
|
||||
.training-release,
|
||||
@@ -446,6 +465,14 @@ const paths = [
|
||||
min-height: 510px;
|
||||
}
|
||||
|
||||
.numerics-release {
|
||||
background:
|
||||
radial-gradient(circle at 82% 18%, rgba(113, 82, 137, 0.2), transparent 30%),
|
||||
repeating-linear-gradient(90deg, transparent 0 64px, rgba(113, 82, 137, 0.045) 64px 65px),
|
||||
repeating-linear-gradient(0deg, transparent 0 64px, rgba(76, 118, 112, 0.04) 64px 65px),
|
||||
var(--paper-raised);
|
||||
}
|
||||
|
||||
.data-release {
|
||||
background:
|
||||
radial-gradient(circle at 82% 18%, rgba(76, 118, 112, 0.2), transparent 30%),
|
||||
@@ -536,6 +563,7 @@ const paths = [
|
||||
padding-bottom: 76px;
|
||||
}
|
||||
|
||||
.numerics-release,
|
||||
.data-release,
|
||||
.scaling-release,
|
||||
.training-release,
|
||||
|
||||
@@ -18,6 +18,7 @@ const workstreams = [
|
||||
{ label: "稀疏计算与 MoE", value: 74, next: "补充真实集群 traces 与专家特化案例" },
|
||||
{ label: "长上下文专题", value: 72, next: "加入更多论文逐图笔记与真实模型配置对比" },
|
||||
{ label: "大规模训练系统", value: 71, next: "补真实集群 traces、故障案例与精确 topology 配置" },
|
||||
{ label: "数值精度、优化器与稳定性", value: 75, next: "加入真实 kernel 吞吐、长程训练 traces 与逐图论文精读" },
|
||||
{ label: "引用与事实检查", value: 57, next: "自动化外链复查与来源等级扩展" },
|
||||
{ label: "开源与部署", value: 100, next: "每轮保留不可变镜像、提交与回滚点" },
|
||||
];
|
||||
@@ -42,7 +43,7 @@ const workstreams = [
|
||||
<div><dt>OVERALL</dt><dd>专题平均 {average}%</dd></div>
|
||||
<div><dt>READABLE</dt><dd>{published} 个首版可读专题</dd></div>
|
||||
<div><dt>ACTIVE</dt><dd>{researching} 个研究/写作中</dd></div>
|
||||
<div><dt>UPDATED</dt><dd>2026-07-29 03:01 CST</dd></div>
|
||||
<div><dt>UPDATED</dt><dd>2026-07-29 03:55 CST</dd></div>
|
||||
<div><dt>MODE</dt><dd>持续迭代,不锁死版本</dd></div>
|
||||
</dl>
|
||||
</div>
|
||||
@@ -52,7 +53,7 @@ const workstreams = [
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<p class="eyebrow"><span>01</span> WORKSTREAMS</p>
|
||||
<h2>十三条工作流同时推进,但不混淆“有页面”和“已核验”</h2>
|
||||
<h2>十四条工作流同时推进,但不混淆“有页面”和“已核验”</h2>
|
||||
</div>
|
||||
<p class="section-lead">
|
||||
内容首版优先打通全局脉络;随后每轮迭代选择一个专题推进到论文/工程层,并做独立事实复核。
|
||||
@@ -89,15 +90,16 @@ const workstreams = [
|
||||
<article><span>✓</span><h3>K3 报告已结构化拆解</h3><p>47 页报告目录、151 条参考来源和架构/后训练/系统主线已经提取。</p></article>
|
||||
<article><span>✓</span><h3>16 专题知识图</h3><p>从语言模型基础到评测安全,包含先修依赖和三条贯穿案例。</p></article>
|
||||
<article><span>✓</span><h3>编辑式网站系统</h3><p>响应式导航、章节模板、侧栏、进度、论文链和证据提示组件。</p></article>
|
||||
<article><span>✓</span><h3>二十个原创交互视图</h3><p>K3、注意力、DeepSeek、长上下文、MoE、推理,以及训练系统、Scaling 与数据工程的多页签实验。</p></article>
|
||||
<article><span>✓</span><h3>九篇首版长文</h3><p>K3、Transformer、DeepSeek、Scaling、数据工程、长上下文、MoE、推理与训练系统专题。</p></article>
|
||||
<article><span>✓</span><h3>二十四个原创交互视图</h3><p>K3、注意力、DeepSeek、长上下文、MoE、推理,以及训练系统、Scaling、数据工程和数值专题的多页签实验。</p></article>
|
||||
<article><span>✓</span><h3>十篇首版长文</h3><p>K3、Transformer、DeepSeek、Scaling、数据工程、长上下文、MoE、推理、训练系统与数值优化专题。</p></article>
|
||||
<article><span>✓</span><h3>Scaling Laws 深度专题</h3><p>九张账、29 个一手节点、DeepSeek/Kimi 双谱系与曲面—部署—复用—涌现四联实验。</p></article>
|
||||
<article><span>✓</span><h3>数据工程深度专题</h3><p>十二张账、31 个一手节点、DeepSeek/Kimi 双谱系与流水线—去重—混合—改写四联实验。</p></article>
|
||||
<article><span>✓</span><h3>长上下文深度专题</h3><p>五张成本账、26 篇一手论文、10+ 机制图与 8 策略交互实验室。</p></article>
|
||||
<article><span>✓</span><h3>MoE 深度专题</h3><p>六张账、19 篇一手论文、DeepSeek/K3 主线与路由—容量—通信交互实验室。</p></article>
|
||||
<article><span>✓</span><h3>推理深度专题</h3><p>八张账、30 篇一手论文链、DeepSeek/Kimi 双主线与三页签互动实验室。</p></article>
|
||||
<article><span>✓</span><h3>训练系统深度专题</h3><p>九张账、37 个一手节点、DeepSeek/Kimi 双谱系与显存—网格—气泡—通信实验室。</p></article>
|
||||
<article><span>✓</span><h3>202 篇关键论文索引</h3><p>新增数据专题标签和 20 个一手节点,继续支持全文搜索与 Kimi/DeepSeek 聚光主线。</p></article>
|
||||
<article><span>✓</span><h3>数值、优化器与稳定性深度专题</h3><p>十张账、36 个一手节点、K2/K3 与 DeepSeek-V3/V4 双谱系,以及格式—状态—更新—失稳四联实验。</p></article>
|
||||
<article><span>✓</span><h3>223 篇关键论文索引</h3><p>新增「优化器」标签和 21 个一手节点,继续支持全文搜索与 Kimi/DeepSeek 聚光主线。</p></article>
|
||||
<article><span>✓</span><h3>公开仓库与自托管发布</h3><p>源码公开到 git.k1412.top,网站由不可变镜像、Compose Manager 与 HTTPS 交付。</p></article>
|
||||
</div>
|
||||
</section>
|
||||
@@ -115,6 +117,7 @@ const workstreams = [
|
||||
<div><span>P0</span><strong>Scaling Laws 二轮</strong><p>真实拟合复现 → 置信区间 → 更多模型族与下游任务外推</p><em>可复现实验 + 逐图笔记</em></div>
|
||||
<div><span>P1</span><strong>数据工程二轮</strong><p>FineWeb / DCLM 逐图 → 真实去重误伤 → mixture traces 与污染案例</p><em>逐图笔记 + 案例库</em></div>
|
||||
<div><span>P1</span><strong>大规模训练系统二轮</strong><p>真实集群 traces → 故障恢复 → 精确 topology / kernel 配置</p><em>案例库 + 实测边界</em></div>
|
||||
<div><span>P1</span><strong>数值与稳定性二轮</strong><p>真实 kernel 吞吐 → 长程失稳 traces → optimizer / quantization 逐图复现</p><em>实测边界 + 逐图笔记</em></div>
|
||||
<div><span>P1</span><strong>长上下文二轮深化</strong><p>真实模型配置 → 内核细节 → 长上下文评测与失败案例</p><em>配置比较器 + 逐图论文笔记</em></div>
|
||||
<div><span>P1</span><strong>MoE 二轮深化</strong><p>真实负载 traces → 专家特化可解释性 → 共享专家语义</p><em>案例库 + 集群证据</em></div>
|
||||
<div><span>P1</span><strong>推理二轮深化</strong><p>真实 pass@k 曲线 → PRM 失败案例 → 逐篇图表精读</p><em>案例库 + 真实 traces</em></div>
|
||||
@@ -162,6 +165,8 @@ const workstreams = [
|
||||
<div><time>2026-07-29</time><b>Scaling Laws 按九张账组织</b><p>把观测量、模型、数据、算术、配比、配方、外推、经济目标与能力阶段分开核算。</p></div>
|
||||
<div><time>2026-07-29</time><b>数据工程按十二张账组织</b><p>把来源、解析、语言、质量、唯一性、污染、混合、变换、Tokenizer、Packing、课程与价值分开核算。</p></div>
|
||||
<div><time>2026-07-29</time><b>Grok 数据线索与正式账本永久分离</b><p>1264 行正式研究账本只接受回查一手来源后的结论;203 行 Grok 产物保留为未核验发现队列。</p></div>
|
||||
<div><time>2026-07-29</time><b>数值专题按十张账组织</b><p>把格式、缩放、计算、累加、搬运、更新、参数化、观测、恢复与证据经济分开核算。</p></div>
|
||||
<div><time>2026-07-29</time><b>低精度结论必须写完整角色合同</b><p>对象、格式、scale 粒度、accumulator、输出与硬件不再被压缩成一个 dtype 标签。</p></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user