目标: 从最简单的 9×9 乘法表开始,逐步升级到 4 位数 CoT 乘法,100% 正确率,最终实现 DeepSeek-V3 的核心架构创新 基础: 基于
transformer_cot项目迭代升级
| 章节 | 主题 | 核心技术 | 目录 | 状态 |
|---|---|---|---|---|
| Ch0 | 九九乘法表 | Nano Transformer 白盒实验 | ../index.html |
✅ 完成 |
| Ch1 | CoT 基础 | 分步乘法+加法, 泛化验证 | ch1_cot_basics.html |
✅ 完成 |
| Ch2 | RoPE 位置编码 | 旋转位置编码, 长度外推 | ch2_rope.html |
✅ 完成 |
| Ch3 | RL 自我进化 | GRPO, 从2位数进化到3-5位数 | ch3_rl_scaling.html |
✅ 完成 |
| Ch4 | KV Cache 优化 | 缓存机制, 推理加速 | ch4_kv_cache.html |
✅ 完成 |
| Ch5 | Attention 优化 | FlashAttention, AttnRes, 4d 极限 | ch5_attention_opt.html |
✅ 完成 |
| Ch6 | DeepSeek-V3/V4 前沿 | MLA, MoE, CSA, HCA, mHC | ch6_deepseek_v4.html |
✅ 完成 |
| Ch7 | 3D 矩阵流可视化 | Three.js, Forward Pass 拆解 | ch7_3d_visualization.html |
✅ 完成 |
| Ch8 | MLP 从零手搓 | 纯 numpy, 反向传播, 激活函数 | ch8_mlp_from_scratch.html |
✅ 完成 |
每章独立可运行,共享基础工具库
courses/shared/
教学目标:用最小的 Transformer(d_model=16, 2 层)学会全部 100 个 1 位数乘法
核心成果:
- 13 个 token 的极简词表(0-9 + * = <pad>)
- 全部 10×10 = 100 个组合 100% 准确率
- 完整前向传播手算报告(每一个浮点运算可追踪)
- Web UI 白盒实验室:实时查看 Embedding → Attention → FFN → Output 全流程
- 已部署到 HuggingFace Spaces
模型: d=16, h=2, L=2, 极致轻量
教学目标:用仅 3000 条数据训练 2 位数乘法,泛化到全部 9801 个组合
核心成果:
- 分步 CoT 格式:45*67=S1:45*60=2700;S2:45*7=315;A1:2700+315=5013;Z3015
- 反转加法结果解决进位传播问题
- 全量 9801 = 100% 准确率
模型: d=256, h=8, L=6, ff=1024, 4.78M 参数
教学目标:用 RoPE 替换 Learned PE,验证收敛加速和长度外推能力
核心成果: - 收敛速度比 Ch1 快 3 倍(99% @ epoch 42 vs 131) - 零位置编码参数(省 39,936) - 全量 9801 = 100% 准确率 - 发现 RoPE 与 FFT 相位旋转的数学统一性(傅里叶时移定理)
模型: d=256, h=8, L=6, ff=1024, 4.74M 参数 (RoPE 零参数)
教学目标:通过 SFT 课程学习策略,从 2 位数扩展到 3-4 位数乘法
实际成果: - 渐进式数据课程:1d 全量 → 2d 3000 → 3d 58000 → 4d 46000 - 含零专项训练(x0x 类型)+ 加法进位专项 - 3 位数乘法 100% 准确率 - 4 位数乘法 99.9%+ 准确率(5000 题随机测试)
关键发现:SFT 课程学习在这个规模下已经足够强大,RL 的价值在更大规模/更难任务上才体现
模型: d=256, h=8, L=6, ff=1024, 4.74M 参数
教学目标: 1. 理解 KV Cache 原理:避免重复计算 2. 实现 KV Cache,对比推理速度 3. 为 4d 长序列推理提供基础设施
核心成果:
- 完整的 KV Cache 实现(Prefill + Decode 两阶段)
- 4d 乘法序列(~750 tokens)推理速度显著提升
- CoT 数据生成器统一化(generate_data.py 被所有后续章节复用)
核心原理:
无 KV Cache: 每生成 1 个 token,重算全部 K,V → O(n²)
有 KV Cache: 只算新 token 的 Q, 复用已缓存的 K,V → O(n)
教学目标: 1. 手写 FlashAttention(block-wise online softmax),理解 IO 优化原理 2. 实现 Kimi AttnRes(动态层间聚合),对比训练稳定性 3. 将 4d×4d 乘法推到 100% 准确率极限
核心成果:
- 手写 FlashAttention 验证数学等价性(注意力矩阵存储减 62%)
- 实际训练使用 F.scaled_dot_product_attention 获得 CUDA 级加速
- Standard 模型 4d×4d = 100%(5000 题随机测试)
- AttnRes 模型 4d×4d = 99.9%(5000 题随机测试)
关键发现: - AttnRes 发现 U 形聚合模式:最终层给 Layer 0 分配 ~31.6% 权重("回头看"现象) - AttnRes 过度训练会导致 Feature Collapse(回声效应)→ Vanilla Transformer 更鲁棒 - FlashAttention 的核心不是算法创新,是对 GPU 内存层级的工程洞察
模型: d=256, h=8, L=6, ff=1024, 4.74M 参数
教学目标: 1. Part 1 (V3): MLA + MoE + 错题本微调 2. Part 2 (V4): CSA + HCA + mHC — 百万 token 上下文压缩
Part 1 核心成果 (V3):
| 配置 | 参数量 | KV Cache | 准确率 |
|---|---|---|---|
| baseline (标准 MHA + FFN) | 4.74M | 12,288 B/tok | 96.86% |
| mla_only (MLA + FFN) | 4.64M | 4,608 B/tok | 99.76% |
| moe_only (MHA + MoE) | 7.91M | 12,288 B/tok | 96.88% |
| full_ds (MLA + MoE) | 7.81M | 4,608 B/tok | 99.78% |
| 配置 | 微调前 | 微调后 | 微调数据 | 耗时 |
|---|---|---|---|---|
| baseline | 96.86% | 99.96% | 2308 条 (1.7%) | 27s |
| mla_only | 99.76% | 100.00% | 713 条 (0.5%) | 18s |
| moe_only | 96.88% | 99.96% | 2297 条 (1.7%) | 33s |
| full_ds | 99.78% | 99.76% ⚠️ | 702 条 (0.5%) | 21s |
Part 2 核心发现 (V4): - V4 的 CSA (4:1) + HCA (128:1) 是为百万 token 设计的序列维度压缩 - 在 750 token 的算术任务上,CSA/HCA 回退到标准 attention,压缩路径未被激活 - mHC 超连接改变收敛动力学,训练速度慢 4x (33 min/ep vs 8 min/ep) - 架构创新必须匹配问题规模 — 最重要的教学发现
关键发现: - MLA 是最大赢家:更少参数 + 更少内存 + 更高准确率。低秩压缩 = 天然正则化 - 错题本微调极其高效:用 1.7% 的数据 + 1% 的时间修补 157 个错误到仅剩 2 个 - V3 压 head 维度,V4 压序列维度:两个正交的压缩方向
模型: baseline 4.74M / V4 hybrid 7.99M 参数
| 章节 | 指标 | 目标 | 实际 |
|---|---|---|---|
| Ch0 | 1 位数全量准确率 | 100% | ✅ 100% |
| Ch1 | 2 位数全量准确率 | 100% | ✅ 100% (9801/9801) |
| Ch2 | 收敛加速 + 全量准确率 | 3x + 100% | ✅ 3x + 100% |
| Ch3 | 3-4 位数准确率 | 3d 100%, 4d >98% | ✅ 3d 100%, 4d 99.9% |
| Ch4 | KV Cache 推理加速 | 长序列加速 | ✅ O(n²)→O(n) |
| Ch5 | 4d×4d 5000 题 | >99% | ✅ Standard 100% |
| Ch6 | V3 KV Cache 压缩 + MoE 均衡 | >2x 压缩 | ✅ 2.7x 压缩, 25%×4 |
| Ch6 | V3 错题本微调 | MLA 100% | ✅ MLA 5000/5000 = 100% |
| Ch6 | V4 CSA/HCA/mHC 实现 | 代码可运行 | ✅ 模型创建+训练验证 |
| Ch8 | MLP 纯 numpy 100% | 100% (100/100) | ✅ ReLU 294 epochs |
Ch0 (16维, 100题)
│ 理解 Transformer 内部机制
▼
Ch1 (256维, 9801题)
│ CoT 分步推理 + 反转加法
▼
Ch2 (RoPE)
│ 旋转位置编码 → 3x 收敛加速
▼
Ch3 (SFT 课程学习)
│ 1d→2d→3d→4d 渐进式扩展
│ 含零专项 + 加法进位专项
▼
Ch4 (KV Cache)
│ Prefill + Decode → 长序列推理加速
▼
Ch5 (FlashAttention + AttnRes)
│ IO 优化 + 动态残差 → 4d 100%
│ 发现 Feature Collapse → Vanilla 更鲁棒
▼
Ch6 (DeepSeek-V3: MLA + MoE)
│ KV 压缩 2.7x + 专家均衡 + 错题微调
│ MLA 微调后 5000/5000 = 100%
▼
Ch8 (MLP 从零手搓)
│ 纯 numpy 实现反向传播
│ 10,834 参数 100% 背诵 99 乘法表
│ 理解:MLP=查表,Transformer=查表+路由
▼
🎓 完结