跳到主要内容
返回时间线
vLLM Blog来源发表:

训练与推演不再各算各的:vime 与 RL-Kernel 在 AMD MI300X 上连续 200 步对数概率逐位一致

核心概要

强化学习后训练中,训练引擎与推演引擎即使模型、权重和输入相同,也会因算子、并行方式和归约顺序不同而算出不同的对数概率,进而影响重要性比、KL 诊断和裁剪。vime 负责对齐训练时间线,RL-Kernel 负责对齐数值执行,二者在 AMD Instinct MI300X 上把注意力、前馈网络、对数概率和通信路径统一到同一数值契约。在 8 卡 MI300X 上运行 Qwen3-8B 的 GRPO 实验,严格路径连续 200 步的 mismatch_count 与 max_abs_diff 均为零。

AI-generated editorial illustration: vime × RL-Kernel × AMD: Bitwise Train–Rollout Consistency on ROCm

深度剖析

训练与推演现在可以在 AMD ROCm 平台上对同一 token 给出逐位相同的对数概率,而不只是数值接近。 此前训练与推演使用不同的执行引擎和算子,即使模型、权重和输入一致,块大小、Split-K 或 Split-KV 策略、归约顺序、融合方式和中间精度的差异仍会让对数概率不同;已有工作主要面向 NVIDIA 平台,ROCm 上的系统探索较为有限。 在 8 块 AMD Instinct MI300X 上运行 Qwen3-8B 的端到端 GRPO 实验,vime 加 RL-Kernel 严格路径连续 200 步的 mismatch_count 为 0、max_abs_diff 为 0。

分工上,vime 管训练时间线,RL-Kernel 管数值执行,两者合起来才让同一批 token 沿同一条数值路径走完训练和推演。 vime 把 Megatron 训练、vLLM 推演和一个数据缓冲区连成完整的强化学习后训练流程,负责哪批 token 属于哪一步、由哪个权重版本生成、哪条推演记录进入更新以及新权重何时同步给 vLLM;RL-Kernel 则规定哪些值参与计算、如何分块与合并、使用何种中间精度以及在哪里舍入。 验证在 1 个节点、8 块 MI300X 192GB 上进行,Megatron 采用 TP4/CP2/PP1,推演为 2 个各用 TP4 的 vLLM 引擎,数据集为 dapo-math-17k,每步 1 个提示乘 8 个样本,KL 损失系数 0.001,HIP Graph 保持 FULL_AND_PIECEWISE 的生产执行路径。

逐位一致不是靠固定某一个算子实现的,而是把决定对数概率的前向边界作为一条数值链一起固定。 RMSNorm、GEMM、注意力、线性对数概率和分布式集合通信看似彼此独立,但都在合并部分结果,块大小、归约树、exp 与 log 实现、中间精度和融合都会改变合并顺序与舍入边界,只钉住单个内核或集合通信不足以保证对数概率逐位相同。 严格路径覆盖 RMSNorm 的归约域与 epsilon、注意力的位置与掩码及分片策略、GEMM 与 SwiGLU 的 K 维归约和累加精度、线性对数概率的真实词表范围与跨 rank LSE 合并,以及集合通信的载荷归属、dtype 和固定 rank 归约顺序;在 ROCm 上还加入了确定性的 MFMA GEMM 内核、词表归约和 HIP IPC 通信,并修正了 AITER/CK 注意力的执行调度。

启示与展望

当前端到端验证覆盖 Qwen3-8B 稠密模型、vime、vLLM、Megatron-LM 和 AMD Instinct MI300X,实验在 1 个节点、8 块 MI300X 192GB 上完成;后续计划扩展到更多 MoE 与多模态模型以及更多 AMD GPU 架构,并继续优化 ROCm 严格路径。

逐位一致的结论来自 Qwen3-8B 稠密模型在 8 块 MI300X 上的 200 步实验,扩展到 MoE、多模态模型和其他 AMD GPU 架构仍是计划中的工作;严格路径不要求训练与推演共享全部内存布局或调度策略,只要这些优化不改变被比较结果的数值语义。