时间怎么花:注意力便宜,只有深模型靠后的层可以跳过混合

在宽 256、序列长 256 的设置下,一层全注意力只占每步约 7 ms(最好的 4 层模型每步约 90 ms),跳过它几乎省不出时间。4 层模型里每层都要有混合层;6 层模型里,靠后的一层跳过混合常常不亏。

每步时间主要花在 MLP 和层数上,一层全注意力只要 7 ms

用 26287 次 4 层随机结构的运行,把每步耗时拆成固定部分、每层开销、各种混合层和 MLP 宽度,按部件相加能解释 99.8% 的差异。一层全注意力 7.0 ms,GDN 8.4 ms,短卷积 2.9 ms;MLP 每 ×1 宽度 0.68 ms(×24 约 16 ms);每多一层还有 3.8 ms 的固定开销。

固定部分每层固定开销全注意力GDN短卷积MLP
4 层最好 15 14 49 91 ms 8 层中心 31 28 25 65 153 ms 8 层普通 Transformer 31 56 65 153 ms 12 子层 A/M 46 42 49 138 ms
按拆分结果估算的每步耗时(毫秒)。

从最好的 4 层模型出发,13 种“跳过一部分、把时间挪给别处”的做法有 12 种明显更差

跳过一层注意力省下的时间,只够把那层 MLP 从 ×12 加到 ×24,步数几乎不变,loss 却差 0.02 左右。在前面加只有 MLP 的层、去掉中间层的 MLP、把每层拆成两个子层,都更差。

全注意力(A)GDN(G)短卷积(C)跳过(I)MLP,条越长越宽
各层,左边是第 1 层 比最好的模型差多少 120 秒内步数 最好的模型 loss 2.6715 1335 第 2 层跳过混合,MLP ×24 +0.019 1323 第 3 层跳过混合,MLP ×24 +0.022 1332 中间两层都跳过混合 +0.072 1329 删掉第 3 层 +0.023 1738 删掉第 3 层,首尾 MLP ×32 +0.019 1500 前面加一层只有 MLP +0.030 1096 前面加一层只有 MLP ×48 +0.056 933 第 1 层跳过混合,MLP ×48 +0.103 1134 中间两层去掉 MLP +0.032 1637 去掉中间 MLP,多一层注意力 +0.035 1442 拆成 A/M 子层 +0.028 1141 不跳过,第 1 层 MLP ×48 +0.012 1102 不跳过,全部 MLP 加宽 +0.0084 1122
每行 3–5 个种子;条的颜色:橙色超过 3 倍噪声,浅橙 1.5–3 倍,灰色在噪声内。右列是 120 秒内的步数。

6 层随机结构:前两层要 GDN 或短卷积,后几层要全注意力;平均来看跳过混合是最差的选择

在每层“混合方式 × MLP 宽度”共 16 种选择的 6 层空间里均匀抽了 2400 个结构(种子 42)。每格是第 i 层用这种选择的所有结构的平均 loss,减去这一层最好的选择(单位 0.001)。记法:字母是混合方式(A 全注意力,G 为 GDN,C 短卷积,I 跳过),数字是 MLP 宽度,0 表示没有 MLP。各层最好的选择:第 1 层 G12、第 2 层 G32、第 3 层 A24、第 4 层 A12、第 5 层 A24、第 6 层 A24。

全注意力 无 MLP ×12 ×24 ×32 GDN 无 MLP ×12 ×24 ×32 短卷积 无 MLP ×12 ×24 ×32 跳过混合 无 MLP ×12 ×24 ×32 第 1 层 +17 +20 +32 +35 +22 最好 +6 +8 +27 +5 +6 +8 +56 +64 +66 +79 第 2 层 +5 +2 +6 +8 +23 +1 +3 最好 +27 +8 +17 +14 +45 +49 +35 +49 第 3 层 +11 +0 最好 +4 +21 +14 +13 +15 +37 +25 +30 +35 +46 +49 +50 +54 第 4 层 +5 最好 +3 +2 +33 +23 +23 +22 +59 +38 +51 +54 +51 +42 +41 +70 第 5 层 +12 +2 最好 +3 +44 +31 +32 +29 +59 +58 +56 +50 +65 +59 +44 +56 第 6 层 +22 +6 最好 +1 +55 +34 +30 +32 +65 +56 +52 +56 +66 +39 +53 +73
颜色越深越好。其余 5 层是随机的,所以这是“平均情况”,和最好结构附近的结论可以不同。

但最好的 50 个 6 层结构里有 36 个跳过了一两层混合,77% 的跳过在第 4–6 层

跳过混合的层从 0 增加到 3,平均 loss 2.733、2.745、2.763、2.805:跳过一层代价小,跳过三层代价大。没有 MLP 的层 1–2 个时平均反而略好(2.764、2.757、2.758),因为省下的时间换成了步数。6 层模型在 120 秒内步数少,靠后的一层跳过混合能多跑一些步。6 层里最好的 5 个结构(单种子):C32 C0 A24 G12 I12 A24 2.6795;C32 I0 A12 A24 A12 C24 2.6804;C24 A12 A12 C0 A12 I12 2.6815;G32 A0 C12 G12 A24 I12 2.6817;C24 I12 G24 G12 A24 I0 2.6838。

跳过混合的层数没有 MLP 的层数
2.72 2.74 2.76 2.78 2.80 2.82 2.84 2.86 2.88 2.90 0 1 2 3 4 5 6 6 层里有几层 平均 loss(种子 42)
每个点至少 20 个结构,种子 42。

还没回答的问题

“更宽的注意力”测不了:头数和宽度是全局字段,不能按层设。

序列更长时注意力的耗时会上升,这个结论可能变。