#1164·OpenRLHF

修复 SignalActor 并发问题,并重新设计基于条件锁的状态管理

作者: CLFutureX创建于 2025年12月23日更新于 2026年7月9日

描述

问题背景

当前的 SignalActor 使用 asyncio.Event 来实现生成轨迹和更新权重之间的互斥控制。在 OpenRLHF 分布式训练场景中,存在以下核心问题:

  1. 互斥逻辑失败:两个独立的 Event 对象无法保证操作的互斥性。生成轨迹和更新权重可能同时执行,导致模型权重被污染,以及异常的样本生成。
  2. 并发调用风险:未锁定的状态修改可能会被并发请求篡改,使 set_* 方法的执行结果不可控。

内容来源: OpenRLHF/OpenRLHF