优化器、调度与布局
Muon 更新普通的块内矩阵;原有的 AdamW 参数组更新嵌入、输出头、value embedding 和原生标量。辅助门控、indexer、halter、残差映射和 pseudo-query 都要显式登记;每个可训练参数恰好属于一个参数组。
| 参数组 | 基础学习率 |
|---|---|
| Muon | 0.02 |
| Embedding | 0.3 |
| Unembedding | 0.008 |
| 标量 | 0.5 |
| 辅助 AdamW | 0.0006 |
在此之上还会应用原有的全局批量平方根缩放和原生宽度缩放;以上是基础值,不一定是最终各组的学习率。warmup 为 40 次更新;训练的最后 65% 线性衰减到峰值学习率的 5%。权重衰减为 0.28,采用通用的 d24 缩放和原生 Muon 调度。默认不做全局梯度裁剪;任何方法特有的辅助学习率或裁剪例外,都要在 pilot 之前预先登记。
数据始终遵循八条固定的逻辑数据流。已登记三种布局:
| World size | 逻辑数据流 | 每条流的 rank 数 | 每 rank 的 microbatch × 累积步数 |
|---|---|---|---|
| 8 | 8 | 1 | 64 |
| 16 | 8 | 2 | 32 |
| 32 | 8 | 4 | 16 |
共享同一条数据流的相邻 rank 会打包这条流的所有行,并各自保留每次更新中连续的一段,因此每个更新边界处的全局行集合、顺序、行号和数据流状态都与 8 rank 运行相同。验证使用同样的共享方式;CORE 分配题目 ID,但不改变题目集合。其他 world size 只用于冒烟测试。四个独立的 8 卡作业不等于一个 32 卡作业。
不同型号的 GPU 可以在预检之后改变每 rank 的 microbatch 和累积步数,但不改变每次更新的全局 token 数。kernel、BF16 和归约顺序的差异会随运行一起记录。 与 microbatch 非线性相关的辅助损失需要测试并说明:对 microbatch 均值的平方取平均,并不等于全局均值的平方。
快速开始介绍了如何在单机或多机上启动。