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
- 專案