ServiceNow/PipelineRL
A scalable asynchronous reinforcement learning implementation with in-flight weight updates.
解决的问题
PipelineRL 解决了大语言模型(LLM)强化学习(RL)中的效率权衡问题。具体而言,它解决了实现高推理吞吐量(需要在多个 GPU 上使用大批次)与保持“在线策略”数据新鲜度(确保模型使用其最新版本生成的数据进行训练)之间的冲突。
工作原理
PipelineRL 采用可扩展的异步架构,支持“飞行中权重更新”。与在更新模型时停止整个采样过程不同,更新后的权重在每次优化器步骤后立即通过 NCCL 广播到推理服务器。这使得系统能够在更新策略的同时继续生成轨迹,从而在不牺牲 GPU 利用率的前提下,使数据保持接近在线策略状态。
系统由六个模块化组件构成:
- 协调器:管理 GPU 分配并启动子进程。
- 推理服务器:基于 vLLM 的服务器,负责采样并接收权重更新。
- 演员进程:通过从 LLM 采样生成原始轨迹并收集奖励。
- 预处理器:对序列进行分词并计算优势值。
- 训练器:执行 RL 步骤(使用简化的 GRPO 算法)并触发权重更新。
- 验证器:可选的服务器,用于检查模型输出的正确性(例如数学任务)。
适用人群
专为训练 LLM 代理的研究人员和开发者设计,尤其适用于关注推理任务(如数学或编程)且奖励可验证的用户,需要在多个 GPU 上扩展训练时尤为适用。
核心亮点
- 飞行中权重更新:在不中断采样流水线的情况下更新模型参数。
- 代理无关性:通过实现
load_problems和generate_rollout函数,可适配任意代理任务。 - 高性能:在 AIME-2024 和 MATH-500 基准测试中表现与或超过 Open-Reasoner-Zero。
- 灵活后端:支持基于文件系统和 Redis 的流式通信用于进程间交互。
- 沙箱集成:支持 SandboxFusion,可在远程沙箱中执行并验证代码。
相关
- Dispatch
- 项目
- 项目
- Dispatch
- 项目