用 120 秒的结果预测 600 秒排名:按步数修正,学习率另调
直接按 120 秒 loss 排,和 600 秒排名的秩相关只有 0.65。加上步数修正后升到 0.95,但只在学习率不变时成立。学习率要在 600 秒重新调。
- 训练 120 秒 → 600 秒 · 1 张 RTX PRO 5000
- 分数 最后 64 步训练 loss,越低越好
- 数据 FineWeb · 1024 词表 · 序列长 256
- 模型 迁移样本 300 个 + 其他轮次 504 个
直接按 120 秒排序,到 600 秒排名变化很大:秩相关 0.65,120 秒前 80 名内部只有 -0.03
我从跑满 4 个种子的 120 秒模型里取了最好的 80 个,再随机取 220 个,每个训练 600 秒(种子 42,其中 300 个加跑种子 43)。120 秒的值取同一次运行在第 120 秒的检查点,它和单独跑 120 秒的结果几乎一样(学习率不衰减)。
600 秒的种子噪声很小:单次运行的标准差 0.0044,两个种子的排名秩相关 0.98。所以排名的变化来自模型本身,不是噪声。
120 秒内步数少的模型,后面追回得多:下降量和步数的秩相关 -0.93
步数指 120 秒内完成的更新次数。每步的数据量固定(256 条 × 256 token),所以步数就是模型的速度。大模型、层多的模型每步慢,到 120 秒时还在学习曲线的前段,后面 480 秒还能降很多。快的小模型在 120 秒已经接近自己的上限。
按“120 秒 loss + 0.11 × ln(步数)”排序,在学习率 0.01 下能预测 600 秒排名:没参与拟合的 8 层布局从 0.42 升到 0.90
我用迁移样本拟合了 600 秒 loss ≈ -0.63 + 0.92 × 120 秒 loss + 0.102 × ln(步数)。意思是:120 秒 loss 相同时,步数多一倍的模型,600 秒 loss 高 0.070。只看排序时常数无关,等价于按“120 秒 loss + 0.11 × ln(步数)”排。
一半拟合、一半检验,秩相关从 0.65 升到 0.95。拿到别的轮次上检验(没参与拟合,学习率同为 0.01):8 层布局 0.42 → 0.90,其他长预算轮次 -0.45 → 0.59。在 120 秒前 80 名内部,120 秒 loss 只差 0.015,直接排是 -0.03,修正后 0.92:这时排名几乎全由步数决定,越慢的模型 600 秒越好。
学习率一变,这个修正就失效:低学习率在 120 秒吃亏、在 600 秒占优,预测偏高 0.11~0.20
修正公式是在学习率 0.01 下拟合的,0.01 正好是 120 秒的最优学习率。600 秒的最优 Muon 学习率是 0.0035。学习率低的模型在 120 秒落后,到 600 秒反超,公式看不到这一点:预测比实际高(0.005 时 +0.11、0.0035 时 +0.17、0.0025 时 +0.20)。换学习率之后,两种排法的秩相关都不超过 0.38。
在最优区域抽样里,同一组学习率内的模型差别很小,两种排法只有 0.13 和 0.21,只能直接跑 600 秒。
怎么用
第一步,固定学习率,用 120 秒筛结构,按“120 秒 loss + 0.11 × ln(步数)”排,不要直接按 120 秒 loss 排。
第二步,前几十名放到 600 秒跑,在 600 秒重新调学习率。
第三步,最优区域里的比较只用 600 秒的结果,至少 2 个种子,同种子配对。