强化学习正逐渐成为大模型训练的核心范式,推动技术向行业关键场景的工程化落地。然而,训练与推理过程的高度耦合,以及基础设施差异带来的不确定性,使得“训推一致”成为亟待解决的关键问题。若训练引擎与推理引擎在数值计算上存在差异,即便使用相同的模型权重,对同一输入序列的输出结果也可能出现偏差,这种偏差通常通过“logdiff”指标衡量。
华为计算团队近日宣布,基于昇腾Ascend C编程语言,开发了一套完整的训推一致算子集。该方案在Qwen3-30B MoE模型的测试中实现了logdiff=0的突破,并通过昇腾亲和的FA算子优化,在Eager模式下使性能提升20%-60%,为开发者提供了高效可靠的强化学习训练工具。这一成果的核心在于,通过系统性约束算子行为,确保训练与推理在关键计算路径上保持数值一致性。
训推不一致的根源在于底层计算的累加顺序差异。当模型规模扩大时,张量并行、专家并行等切分策略,以及集合通信路径的微小偏差,都会被放大,导致训练与推理无法实现“true-on-policy”。例如,在注意力机制中,训练掩码Softmax与推理逐步注意力的有效计算范围若未对齐,会因可见Token集合不同产生数值差异;规约维度上的切分顺序不一致,也会引发累加不保序问题。分块策略、精度转换等环节的差异,都会进一步累积误差。
为解决这些问题,昇腾团队从四个维度对关键算子进行了系统性优化:首先,统一注意力语义,确保训练与推理在有效位置上的计算范围一致;其次,锁定reduce累加序,约束训练与推理在规约维度上的切分与归约顺序;第三,对齐在线Softmax分块策略,统一分块大小与归约节奏;最后,在敏感步骤上统一精度转换策略,减少混合精度实现的尾数误差。这些修改的核心目标是,让训练与推理在“该累加的地方”走同一套数值路径。
通过算子约束与FA下发调度优化的结合,昇腾方案在保证训推一致的同时,避免了显著的性能回退。实测数据显示,该方案不仅实现了logdiff=0,还带来了端到端的加速效果。为进一步降低开发者使用门槛,华为已将相关基础设施开源,并计划上线“训推一致问题识别Skill”,支持快速排查残余logdiff,定位问题根源是算子路径还是框架实现差异。




