AReal

直接从算法层面改进PPO,完全消除了长尾。

问题

同步的训练,交替Rollout和Train。

生成和训练解耦

生成工人(Rollout Workers)以流式方式持续生成输出,无需等待;训练工人(Trainer Workers)一旦收集到足够的一批数据,就立即更新模型。

感知过时的训练,引入超参数 η 来控制训练批次中数据的最大过时程度

alt text

可中断的生成工人(Interruptible Rollout Worker) 。当新权重到达时,它可以立即中断当前的生成,加载新参数,重新计算 KV 缓存并继续生成 。这意味着一个轨迹(Trajectory)甚至可能是由多个不同版本的策略片段拼接而成的。

通过算法创新(解耦的 PPO 目标函数),显著提高了系统对陈旧数据的忍耐力 。它引入了感知过时的训练,通过超参数 η 控制过时程度,实验表明即使 η 设为 4 或 8(甚至更多),模型性能依然稳健

AReaL:彻底消除了这些气泡,实现了高达 2.77 倍的训练加速,并在多达 512 张 GPU 上表现出近乎线性的扩展效率

无需等待批次内最长序列!

以前的 Batch:是阻塞式的。生成 Batch A -> 训练 Batch A -> 生成 Batch B 。 AReaL 的 Batch:是解耦式的。生成端像流水线一样不停出货,训练端像个收货员,凑够一箱(Batch)就发走处理 。

我去,中断了还能继续。 丢弃旧缓存:丢弃由旧权重计算的 KV 缓存 。 重新计算(Re-compute):利用新权重对已生成的 Token 重新计算一遍 KV 缓存 。 继续解码:从中断的地方接着往下生成,直到下一次中断或序列自然结束 。 因此,长尾序列确实会因为生成时间极长而经历多次“权重热加载”,导致一个完整的回复轨迹是由多个不同版本的策略片段拼接而成的