根据缩放定律的训练运行欠训练 | AI生成和翻译

Home 2026.06

问题:这个 nanochat 训练跑得怎么样?

回答:

好的方面:

问题——你严重训练不足:

Chinchilla-Hoffmann 缩放定律指出最优 token 与参数比约为 20。你目前是 5.95,差距达 3.4 倍。

# Chinchilla 定律:tokens ≈ 20 * params
# 你的运行:
params = 286e6
tokens = 655e6
ratio = tokens / params  # 5.95
optimal_tokens = 20 * params  # 需要 5.72B tokens

print(f"你需要 {optimal_tokens / 1e9:.2f}B tokens,实际训练了 {tokens / 1e9:.2f}B")
print(f"差距:{optimal_tokens / tokens:.1f}x")

输出:你需要 5.72B tokens,实际训练了 0.66B。差距:8.7 倍

这完美解释了样本质量的问题。模型知道事实存在(能正确列出行星),但无法可靠地锚定它们(法国首都有误,黄金符号循环输出)。它只是在记忆弱模式,而非学习稳健的表征。

你应该做的事:

方案一(考虑到你有 MI300X 访问权限,推荐):缩减模型规模,训练至 Chinchilla 比值

方案二(如果你想继续推 286M):在 MI300X 上训练 10 倍时长

硬件现实:

一个技术说明: 你的学习率冷却从训练的 65% 开始(第 6500 步)。如果扩展到 4 万步,那将是第 2.6 万步。考虑调整冷却计划——过早冷却会在最后阶段浪费学习信号。

结论: 不要继续在 655M tokens 上推 286M 模型了。要么缩小模型,要么扩大算力。目前你处在一个糟糕的状态——模型够大导致慢,又小到训练不足。选一个方向并坚持执行。


Back Donate