logit softcap 30 → 15:159 个模型里 157 个变好

把输出 logits 的上限从 30 降到 15,平均好 0.0038,比单次种子噪声小,但几乎每个模型都同向变好,所以是真的。12–20 都一样好,排名基本不变。

159 个模型里 157 个变好,幅度集中在 0.002–0.006

每个模型都在同样 4 个种子(42–45)上,用 softcap 30 和 15 各跑一次。logit softcap 把输出 logits 变成 c·tanh(z/c),c 越小,单个 token 的 logit 越难变得极端。平均变化 -0.0038 ± 0.0002(标准误),中位数 -0.0034。

0 15 30 -0.012 -0.008 -0.004 0 +0.004 softcap 15 的 loss 减去 softcap 30 的 loss(4 个种子均值) 模型数 平均 -0.0038
橙色:变好;灰色:变差或不变。虚线是平均值。

12 到 20 是平台,7.5 明显过头

11 个模型扫过 4 个以上的 softcap 值。橙色是中位数:12、15、20 几乎一样,7.5 反而比 30 还差。在同时测过 15 和 20 的 60 个模型里,15 更好的占 50%,两者打平。

-0.01 0 +0.01 +0.02 7.5 10 12 15 20 30 logit softcap(对数刻度) 比同一模型 softcap 30 差多少
每条灰线是一个模型,纵轴相对它自己的 softcap 30。

排名基本不变:softcap 是整体平移(两份排行榜的名次相关 0.78)

把 softcap 30 下的排行榜整体换成 15,点基本落在下移后的对角线上。散开的部分和两次独立测量的噪声同一量级,所以已有排名不用重跑也能沿用。

2.670 2.675 2.680 2.685 2.690 2.695 2.700 2.705 2.670 2.675 2.680 2.685 2.690 2.695 2.700 2.705 softcap 30 的 loss softcap 15 的 loss
灰线:两者相等;橙色虚线:整体下移平均变化量。5 个慢模型超出范围,画在边上。

层数越多、GDN 越多,收益越小

收益在浅层模型上最大:3 层 -0.0047,4 层 -0.0038,5 层 -0.0023。含两层 GDN 的模型收益也小一些。这和“softcap 限制的是输出端的极端 logit”一致:更深或带递归记忆的模型可能本来就不那么容易出现极端 logit,但这里没有直接测 logit 分布。

-0.008 -0.006 -0.004 -0.002 0 平均变化(±2 个标准误) 层数 3(35 个) 层数 4(107 个) 层数 5(12 个) GDN 层数 0(74 个) GDN 层数 1(42 个) GDN 层数 2(39 个) 宽度 256(105 个) 宽度 384(54 个)
只列至少 5 个模型的组。

还没回答的问题

只测了 120 秒。更长的训练里 softcap 的作用可能变小或变大。

同一模型、同一种子的两次 softcap 对比,差值本身的噪声只有 0.0030,远小于两次独立运行的 0.0087(见“种子噪声”报告),所以 0.004 的平移在每个模型上都能单独看出来。