第 21 课:数据输入与优化器进阶:Sequence Packing、无污染掩码与 Muon 分布式实现
本课目标与通过标准
本课产出:掌握超大规模预训练中数据吞吐的极限压榨与现代先进优化器的分布式系统工程。深入拆解 Sequence Packing(无 Padding 序列打包) 的显存节约原理,推导如何利用 cu_seqlens 累积长度索引与 Document Mask 彻底杜绝跨文档上下文污染(Cross-contamination);掌握基于 Token 计数的全局损失归一化契约与 RoPE Position ID 重置规则;掌握新一代矩阵正交化优化器 Muon(基于 Newton-Schulz 迭代) 的数学本质,攻克其与 ZeRO / FSDP 参数切分天然冲突的分布式系统编排难题。
通过要求:唯一代码填空题通过全部断言;Q1~Q3 沿长序列张量注意力因果掩码、矩阵极分解迭代与分布式参数切分给出因果链;能指出一个正确性不变量、一个数值谱范数收敛边界和一个优化器混合挂载策略;总分至少 8/10。
源码版本与阅读方法
本课程使用固定 commit 的永久链接保证行号可复现,同时链接 current docs 供核对最新变化。阅读时先建立“消除无效填充与矩阵更新正交化”的数学与系统心智模型:
| 顺序 | 核心文件与模块 | 带着什么问题读 |
|---|---|---|
| 1 | 论文 Efficient Sequence Packing(arXiv:2107.02027) | 为什么简单的 <pad> 填充会吃掉大量无效浮点算力(比例取决于长度分布)? |
| 2 | FlashAttention 的 varlen 接口(flash_attn_varlen_func) |
cu_seqlens 是如何通知底层 GPU Kernel 跳过不同文档间的注意力点积的? |
| 3 | Muon 参考实现 KellerJordan/Muon 的 muon.py |
为什么 Newton-Schulz 迭代能够在纯矩阵乘加下快速求出正交因子? |
| 4 | Moonshot AI “Muon is Scalable” 论文源码 | 在千亿大模型万卡训练中,Muon 的参数切分如何与 FSDP2 / TP 协同通信? |
版本基准:论文 Sequence Packing arXiv:2107.02027、Muon is Scalable arXiv:2502.16982;实现参考 KellerJordan/Muon。
🔒 VIP 专享:本课核心机制、推导、代码题与参考答案已锁定
本课剩余部分(核心心智模型、数值推导、代码填空题、问答题与完整参考答案)为 VIP 内容。同一张密钥可解锁全部 VIP 内容:题库、速查表、系统设计案例与全部付费课程。