AI Pulse

关掉AI训练的两个加速开关后,模型反而更准了

关掉AI训练的两个加速开关后,模型反而更准了

深夜调试模型的人,常会遇到这样的选择:再加1%训练速度,还是再压0.02的测试损失?

Giles Thomas在从零训练一个GPT-2小模型时,用了两个默认推荐的加速手段:一是让矩阵乘法用TF32(一种‘缩水版’的32位浮点),二是启用自动混合精度(AMP),让部分计算降为16位。这两招让训练吞吐从每秒1.26万token跳到近2万,还能把批大小从5拉到6。 这意味着什么:速度提升近60%,但所有加速都发生在数值计算的‘后台’,人眼看不见,梯度更新却已悄然不同。

他决定关掉这两个开关,回到纯float32、全精度训练。结果测试损失下降了0.03——对语言建模任务来说,这个幅度相当于把代码补全准确率从78%推到79.5%左右。 这意味着什么:那看似无害的‘精度让渡’,其实一直在悄悄拖慢收敛质量;它省下的时间,可能正以更长的训练轮次或更差的泛化能力悄悄还回去。

更关键的是,关掉AMP后,梯度突然开始频繁出现无穷大(inf)和非数字(NaN)——而之前AMP自带的梯度缩放器(scaler)一直默默拦下了这些错误更新。一旦撤掉,就得自己写逻辑检查每个参数的梯度是否‘健康’。 这意味着什么:所谓‘开箱即用’的加速方案,其实内置了一层容错保险;去掉它,不是回归原始,而是暴露了底层数值脆弱性的真实水位。

别人看到的是训练变慢了,他看到的是:精度不是可有可无的选项,而是训练动态中一条隐形的约束边界——你没感知到它,不代表它没在起作用。

现在的问题是:当更多人开始用消费级显卡微调模型时,他们调参界面上那个‘启用混合精度’的勾选框,到底是在帮他们,还是在替他们做一次未经告知的精度折价?

阅读原文
📚 相关主题 工程研究

📬 订阅 AI Pulse

每天三次更新,不错过重要信号

▲ 回到顶部