训练时间一长,结论会翻:2 分钟要快,10 分钟要大
44 种 4–12 层结构,每种在 2 分钟和 10 分钟各跑 4 个种子。加宽 MLP 在 2 分钟时变差约 0.02,在 10 分钟时变好约 0.01;最好的 8 层在 2 分钟时比 4 层差 0.014,在 10 分钟时好 0.034。不随预算变的是层的分工:开头用局部混合,后段要有全注意力。
- 训练 120 秒和 600 秒 · 1 张 RTX PRO 5000
- 分数 最后 64 步训练 loss,越低越好
- 数据 FineWeb · 1024 词表 · 序列长 256
- 种子 42–45
- 模型 宽 256 · softcap 15 · 学习率 0.01
前 4 层:开头放全注意力差 0.057,只放 MLP 差约 0.09;加宽 MLP 在 2 分钟变差、10 分钟变好
层用字母表示:C 短卷积,A 全注意力,G 为 GDN,I 表示跳过混合。后 4 层固定为 G·A·G·A(MLP ×12),前 4 层换 17 种排法。中心模型是 C·A·G·A·G·A·G·A,120 秒 2.7020,600 秒 2.5298。前 4 层全用全注意力,两种预算都明显更差(+0.057 / +0.039)。前 4 层全用短卷积在 120 秒最好(-0.017),到 600 秒优势消失。10 分钟时的第一名是 “MLP 加宽到 ×24”(120 秒 2.7209,600 秒 2.5220)。
后 4 层:要有全注意力(全换 GDN 差 0.029);去掉 MLP 在 10 分钟时代价翻倍
前 4 层固定为 C·A·G·A,后 4 层换 14 种排法。后 4 层只要有全注意力,排法差别不大,不一定要放在最后一层。去掉后 4 层的 MLP:120 秒差 +0.030,600 秒差 +0.066。10 分钟时的第一名是 “MLP 加宽到 ×24”(120 秒 2.7199,600 秒 2.5197)。
整体:10 分钟时最好的 8 层比 4 层最好好 0.034,2 分钟时反而差 0.014
10 分钟第一是 “中心,首尾 MLP ×24”(120 秒 2.7066,600 秒 2.5182),2 分钟第一的 8 层是 “全短卷积”(120 秒 2.6851,600 秒 2.5327),4 层最好的是 “4 层最好”(120 秒 2.6715,600 秒 2.5522)。加宽 MLP(前 4 层 / 后 4 层):120 秒 +0.019 / +0.018,600 秒 -0.008 / -0.010。短预算下步数更重要,长预算下容量更重要。
同事 spec 的三个 A/M 参照,各 12 个子层(A 是只有全注意力的子层,M 是只有 MLP ×12 的子层):AMAMAMAMAMAM 2.7227 / 2.5534;MAAMAMAMAMAM 2.7390 / 2.5719;MAAMAMAMMAAM 2.7398 / 2.5745(120 秒 / 600 秒)。这里 AMAMAMAMAMAM 最好,MAAMAMAMAMAM 比它差 0.016 / 0.018,和同事 pilot 里“首对交换更好”的结论相反。一个可能的原因:M 开头等于第 1 层没有任何混合。为了检验,又跑了两种:第一个子层换成短卷积 2.7133 / 2.5540;M 开头、再接短卷积 2.7305 / 2.5734。第一个子层换成短卷积,600 秒和 AMAM… 只差 +0.0006;M 开头再接短卷积,仍差 +0.020。所以关键是第一个子层要做混合,用全注意力还是短卷积不重要。
120 秒的排名只能部分预测 600 秒(名次相关 0.43),深而宽的模型后来居上
44 个不同模型,每个点是一个模型 4 个种子的均值。120 秒第一是“4 层最好”,600 秒第一是“中心,首尾 MLP ×24”。600 秒运行里第 120 秒的检查点和单独跑 120 秒的结果平均只差 0.0007(相关 1.00),所以以后一次 600 秒运行就能同时给出两种预算的分数。
6 个注意力子层 + 6 个 MLP 子层怎么排:严格交错最好,夹心越大越差,M 开头更差
A 是只有全注意力的子层,M 是只有 MLP(×12)的子层。同一组里各种次序的参数量和每步耗时都相同(10 分钟都跑约 4502 步),差别只来自每一步学到多少。夹心 k 指底部多放 k 个 A、顶部多放 k 个 M(Press 等人 2020 年提出的 sandwich 排法),k = 0 就是严格交错。
和严格交错打平的只有夹心 1 和两两成块。从夹心 2 开始越夹越差:夹心 2 +0.014,夹心 3 +0.031,夹心 4 +0.049,夹心 5 +0.076。M 开头都更差,同事 pilot 里最好的 MAAMAMAMAMAM 差 +0.016。
换成宽 512 或 16 个子层,次序的结论不变;更大的代价是把注意力和 MLP 拆开,差 0.047
宽 512、4 A + 4 M(MLP ×16,学习率用 10 分钟的最优值):交错、夹心 1、两两成块仍在噪声内,夹心 2 差 +0.024,M 开头差 +0.028,完全分开(夹心 3)差 +0.065。第一个 A 换成短卷积好 0.021。不拆开的普通块 C16·A16·A16·A16 比拆开的交错好 0.047:拆开后层数翻倍,每层的固定开销让 10 分钟的步数从 2795 降到 2282。
宽 256、8 A + 8 M 时,两两成块 -0.0016 ± 0.0008,夹心 1 +0.0010,夹心 2、3 分别 +0.0080、+0.016:子层多了,夹心也没有变好。
夹心 1 在 10 组设置里合计 +0.0019 ± 0.0008:没有收益,反而比严格交错略差
夹心 1(AAMAM…MM:底部多 1 个 A、顶部多 1 个 M)和严格交错按种子配对。训练程序只允许种子 42–45,所以重复在不同的宽度、子层数、MLP 宽度和学习率上做:10 组 × 4 个种子 = 40 对。夹心 1 在 3 组里略好、7 组里略差,单组在 -0.0037 到 +0.0086 之间。
训练越久,两者越接近(同一次 600 秒运行在各时刻的读数,全部配对合计):15 秒 +0.020 ± 0.0039,30 秒 +0.0058 ± 0.0035,60 秒 +0.0044 ± 0.0017,2 分钟 +0.0037 ± 0.0016,10 分钟 +0.0019 ± 0.0008。训练程序最长只允许 600 秒。
A 和 M 不必一样多:10 分钟最好的是 4 个 A + 12 个 M,2 分钟最好的是 3 + 6
宽 256,MLP ×12,学习率 0.01。A 的个数和 M 的个数各取 2–12(总数不超过设置语言的上限 16),A 从底部均匀铺开,最上面一个子层是 M;两者相等时就是严格交错。每格 4 个种子。黑框是这一预算下最好的一格,蓝框是同样子层总数里最好的一格。
每个子层的耗时(按 600 秒的步数拟合):一个 A 约 10.2 ms,一个 M 约 11.9 ms,固定开销约 1 ms。同样总数时最好的配比:6 个子层 3:3,8 个子层 4:4,10 个子层 4:6,12 个子层 4:8,14 个子层 4:10,16 个子层 4:12。A 和 M 每个的耗时差不多,所以这不是速度的差别:注意力子层到 3–4 个就够了,再多不如把位置给 MLP。
按种子配对(600 秒,负数是前者更好):12 个子层 4:8 比 6:6 -0.0048 ± 0.0028,反过来 8:4 比 4:8 +0.031 ± 0.0017;16 个子层 4:12 比 8:8 -0.0053 ± 0.0014,反过来 12:4 比 4:12 +0.044 ± 0.0021。
MLP 总宽度不变时,M 宁多勿宽:3 M × MLP 24 +0.023,9 M × MLP 8 +0.0026(比 6 个 ×12)
6 个 A 不变,M 的个数 × MLP 倍数固定为 72(6 × 12 是严格交错)。按种子配对。
还没回答的问题
学习率固定 0.01,没有为 8 层或 12 子层单独调;更深的模型可能需要更小的学习率。
600 秒时数据会重复:每步 65,536 个 token,4 层最好的模型 6667 步,约看了 2.2 遍 2 亿 token 的训练数据;8 层中心模型 3997 步,约 1.3 遍。重复对两者的影响可能不同,方向未查。
原计划是 300 秒,但这一轮 worker 只允许 10、120、600 秒三种预算,所以用了 600 秒。