强化学习微调作为提升大型语言模型高级能力的关键技术,在实际应用中却面临训练不稳定、性能提升困难等问题。传统观点认为这些问题的根源在于复杂的算法设计缺陷,然而,最新研究指出,数值精度才是导致这些问题的关键因素。
当前,BF16格式因其在预训练阶段的稳定表现,已成为业界广泛采用的标准配置。然而,在强化学习微调的精细调整过程中,BF16的低精度特性反而成为阻碍。研究发现,BF16在训练和推理过程中引发的“训练-推理不匹配”现象,是导致训练任务失败和崩溃的主要原因。这一现象表现为训练引擎和推理引擎在计算结果上的微小数值偏差,这些偏差在长序列生成任务中不断累积,最终导致模型性能显著下降。
为解决这一问题,研究团队将目光投向了另一种16位浮点格式——FP16。与BF16不同,FP16在尾数部分分配了更多位数,使其能够更精确地表示数值,从而减少舍入误差。尽管FP16的动态范围较小,但在强化学习微调阶段,模型的权重和激活值范围已相对稳定,不再需要BF16那样大的动态范围。因此,FP16的高精度特性成为解决训练不稳定问题的关键。研究团队通过一系列实验验证了FP16的有效性。他们构建了一个“完美可解”的数据集,以排除数据集难度分布对实验结果的干扰。在这个数据集上,基于FP16的算法展现出了极高的训练稳定性,不仅从未崩溃,而且收敛速度飞快,最终性能全面超越了基于BF16的算法。实验还发现,所有最终崩溃的BF16算法在崩溃前都表现出训练策略和推理策略之间差异持续增大的特征,这表明差异程度可作为训练健康状况的监测指标。
进一步的研究探讨了不同精度组合对训练效果的影响。结果显示,将训练和推理精度统一为FP16的组合,不仅实现了最低的训练-推理不匹配,还获得了最稳定的训练动态和最高的性能,同时保持了极高的计算效率。相比之下,其他精度组合要么训练不稳定,要么计算效率低下。
为证明FP16解决方案的普适性,研究团队在多种模型和训练范式上进行了验证。在混合专家模型中,FP16精度下的训练比BF16更加稳定,能够持续获得更高的训练奖励和验证集性能。在低秩适应微调中,基于FP16的训练从头到尾保持完全稳定,而基于BF16的训练则在约600步后崩溃。在大型稠密模型上,FP16训练的模型奖励增长速度远快于BF16,并在验证集上取得了更高的准确率。在不同模型架构上的实验也得出一致结论:FP16能够有效提升强化学习微调的稳定性。
这些发现促使业界重新思考在大型语言模型训练流程中关于数值精度的选择。研究结果表明,将浮点数精度从BF16切换到FP16,是一种能够系统性提升强化学习微调稳定性和性能的根本性解决方案。这一发现不仅解决了当前强化学习微调领域的一个核心痛点,也为未来模型训练提供了新的思路。