电竞比分网-中国电竞赛事及体育赛事平台

關(guān)于ZAKER 合作
量子位 1小時前

吞吐提升 76%!小紅書開源 RL 訓(xùn)練引擎 Relax

在小說閱讀器讀本章

去閱讀

隨著 RL 后訓(xùn)練逐步延伸至全模態(tài)與 Agentic 場景,多模數(shù)據(jù)異構(gòu)、系統(tǒng)穩(wěn)定性和角色耦合等方面的問題日益凸顯。

為此,小紅書 AI 平臺團隊剛剛開源了Relax——一個為全模態(tài)數(shù)據(jù)、Agentic 工作流和大規(guī)模異步訓(xùn)練協(xié)同設(shè)計的現(xiàn)代 RL 訓(xùn)練引擎!

實測全異步 Off-Policy 模式相比共卡 On-Policy 吞吐提升76%,相比 veRL 的全異步實現(xiàn)提升20%

先說痛點:全模態(tài) Agentic RL 訓(xùn)練的三重困境

RL 后訓(xùn)練正在經(jīng)歷兩個根本性變化:模型走向全模態(tài)(圖文音視頻一起訓(xùn),甚至帶有音頻或圖片視頻輸出),訓(xùn)練走向Agentic(多輪推理、工具調(diào)用、復(fù)雜環(huán)境交互)。

這兩個趨勢疊加,把現(xiàn)有 RL 訓(xùn)練框架逼進了三重困境——而且這三個問題不是各自獨立的,它們環(huán)環(huán)相扣,必須一起解決。

困境一:數(shù)據(jù)異構(gòu)。高質(zhì)量的圖片和音視頻原始數(shù)據(jù)傳輸體積大、CPU 預(yù)處理開銷高、編碼后 token 爆炸,multi-modal encoder 無法和已有并行策略高效協(xié)同——在小紅書內(nèi)極其豐富的多模場景下,需要一款定制優(yōu)化的框架。

困境二:系統(tǒng)脆弱。多模態(tài)下較高的 OOM 風(fēng)險疊加上千卡長時訓(xùn)練,硬件故障、NCCL 超時隨時出現(xiàn)——傳統(tǒng)方案缺乏分鐘級故障恢復(fù)和單角色彈性伸縮能力。

困境三:角色耦合。Colocate 方案下各角色共享 GPU 只能串行執(zhí)行,Trainer 干等最慢的 Rollout 完成;現(xiàn)有全異步方案雖然把 Rollout 和 Train 拆到不同組,但缺少細(xì)粒度的流水線調(diào)度。

核心洞察:三者耦合,必須協(xié)同設(shè)計

這三個困境形成了一條因果鏈

多模態(tài)讓系統(tǒng)更低效且脆弱→催生服務(wù)化隔離和全異步架構(gòu)→催生數(shù)據(jù)總線→總線的字段存儲天然兼容多模態(tài)→三個問題一條因果鏈,完成閉環(huán)。

Relax用一套協(xié)同設(shè)計(co-design)把多模態(tài)原生、服務(wù)化容錯、全異步流水線一并解決。

全異步架構(gòu):Rollout 和 Train 并行,一秒都不浪費

核心思路:拆開來,并行跑

傳統(tǒng)方案把 Rollout 和 Train 綁在一起。Relax 的做法很暴力——直接拆成兩個獨立服務(wù)。

Rollout 服務(wù):專門做推理生成,用 SGLang 引擎

Train 服務(wù):專門做梯度更新,用 Megatron 后端

兩個服務(wù)通過TransferQueue 數(shù)據(jù)總線連接。Rollout 生成的數(shù)據(jù)往里寫,Train 從里面讀,互不阻塞。這帶來一個直接的好處:Rollout 的推理時間大部分被掩蓋!Train 不用等 Rollout 完事再開工,而是上一批數(shù)據(jù)訓(xùn)著,下一批數(shù)據(jù)就已經(jīng)在生成了。

Micro Batch 級別的流水:不等慢的那個

光把 Rollout 和 Train 拆開還不夠。傳統(tǒng)方案——包括現(xiàn)有的全異步框架——還有一個致命缺陷:全局 batch 同步。

Relax 把粒度從全局 batch 推進到了micro batch 級別的流水線,例如:

把 256 條的全局 batch 切成 32 條一組的 micro batch

每組生成完,立即寫入 TransferQueue

下游的 Advantage、Train 各階段一看有數(shù)據(jù)了,馬上開始處理——不同 micro batch 在不同階段形成流水線并行。

效果?長尾樣本再也拖不死整個 step。單條慢樣本只影響它所在的 micro batch,其他 micro batch 正常流轉(zhuǎn);對于超時仍未完成的樣本,Relax 還支持partial rollout——已生成的部分直接回收利用,不白等也不白扔。整條 RL 訓(xùn)練鏈路從粗粒度的 "Rollout 完了再 Train" 變成了細(xì)粒度的多階段流水線。

訓(xùn)練不怕掛:服務(wù)化隔離與自動恢復(fù)

服務(wù)化隔離:一個掛了不拖累全局

Relax 不是一個鐵板一塊的單體程序。它把 RL 訓(xùn)練的每個角色—— Actor、Ref、Rollout、Reward ——拆成獨立的 Ray Serve 服務(wù)

每個服務(wù)有自己的進程空間、故障域和資源配額。它們之間不直接引用,全部通過 TransferQueue 數(shù)據(jù)總線通信。

說白了—— Ref 掛了,Actor 照樣訓(xùn)。一個 Rollout 實例 OOM 了,其他 Rollout 正常工作。

傳統(tǒng)方案呢?一個節(jié)點出問題,整個任務(wù)重啟,進度全丟!

兩級恢復(fù)策略:能小修絕不大動

Relax 有一套完整的健康監(jiān)控體系:通過主動上報心跳超時兩條路并行,并根據(jù)角色重要性分級處理:

簡單來說——能局部修就局部修,必須全局重啟也從最近的 checkpoint 恢復(fù),而不是從頭再來。

分布式 Checkpoint 服務(wù)(DCS):快速恢復(fù)的關(guān)鍵

恢復(fù)快不快,核心取決于權(quán)重能不能快速到位。Relax 專門為此搞了一個獨立服務(wù)—— DCS,它不是簡單的 " 訓(xùn)完了存一下 ",而是一個帶拓?fù)涓兄姆植际綑?quán)重傳輸系統(tǒng)。

DCS 自動發(fā)現(xiàn) TP/PP 拓?fù)?、?gòu)建跨異構(gòu)并行的 rank 映射,集群內(nèi)走 NCCL GPU 通信(最低延遲),跨集群走 TCP,對彈性擴縮,甚至是聯(lián)邦集群下的彈性擴縮足夠友好。

彈性伸縮:訓(xùn)練不停,Rollout 隨時加減

Relax 支持訓(xùn)練過程中動態(tài)擴縮 Rollout 實例,提供 Ray 原生(集群內(nèi)增減副本)和外部引擎(接入外部集群)兩種模式。每個新實例依次經(jīng)過 PENDING → CREATING → HEALTH_CHECKING → WEIGHT_SYNCING → READY → ACTIVE 六個階段,每一步都有超時和回滾,任何一步失敗自動清理資源。縮容同樣不粗暴——先停止接新請求、排空在途任務(wù)、等待權(quán)重更新完成,再逐步下線。Relax 還內(nèi)置了基于 KV Cache 利用率、排隊深度、TTFT 等指標(biāo)的自動伸縮器。

多模不再拖后腿:CPU 預(yù)處理和 ViT 并行全解決

Processor Pool。多模態(tài) processor(圖片 resize、視頻抽幀、音頻重采樣)是 CPU 密集型操作,單線程跑會被 GIL 卡死。Relax 用 ProcessPoolExecutor 把 processor 放到獨立進程,共享內(nèi)存零拷貝傳輸,配合 asyncio 實現(xiàn) processor、media encoding、Rollout 請求三階段流水線—— CPU 預(yù)處理完全藏在 GPU 推理延遲背后。

ViT 原生 HF+TP 維度數(shù)據(jù)并行。通過 Megatron Bridge 保持 ViT 的 HF 原生實現(xiàn),在 TP 維度上復(fù)制到所有 rank,各 rank 獨立 encode 不同的 pixel_values 切片后 AllReduce 合并。ViT 參數(shù)只占 1-5%,冗余開銷可忽略,省掉格式轉(zhuǎn)換的工程負(fù)擔(dān)和精度風(fēng)險。

異步通信。Relax 基于 TransferQueue 的 async_put / async_get,讓數(shù)據(jù)讀寫與 GPU 計算完全重疊,配合 micro batch 流水線實現(xiàn)端到端的細(xì)粒度異步。

不只是快:Agentic RL 也原生支持

服務(wù)化架構(gòu)帶來的另一個好處——Agentic 場景天然適配

自定義 Rollout:Agent 要調(diào)工具、查數(shù)據(jù)庫、跑沙箱?寫成可插拔服務(wù),掛上去就行。

多輪狀態(tài)管理:服務(wù)化架構(gòu)下,多輪交互的狀態(tài)管理就是服務(wù)間的消息傳遞。

靈活的 Reward:Rule-based、LLM-as-Judge(GenRM)、自定義函數(shù),按需組合。

實驗結(jié)果:數(shù)據(jù)說話

實驗環(huán)境:NVIDIA H800 80GB GPU 集群,NVLink/InfiniBand 互聯(lián)。

全異步吞吐提升 76%

在 Qwen3-4B+DAPO-MATH-17k+16 × H800 的配置下,全異步 Off-Policy 模式相對 Colocate 方案吞吐提升 76%,相比 VeRL 的全異步實現(xiàn)提速 20%(28.7 vs. 23.9 steps/hour),即使是分離異步下的 On-Policy,也可提速 12%。

加速來自三層疊加:

1. 流式 micro batch 調(diào)度:不等慢樣本,生成一組處理一組,即使是 async 的 on-policy 也能拿到提速收益!

2. 資源分離:log-prob 和 reference log-prob 在獨立 GPU 上計算,計算量完全被掩蓋。

3. 無 sleep/wakeup 開銷:獨立集群部署,不再需要卸載 / 重載模型參數(shù)(4B 模型省 10 秒,35B 模型可能省 50-80 秒)。

收斂質(zhì)量:快了但沒降質(zhì)

最關(guān)鍵的問題:跑這么快,效果打折了嗎?

按 wall-clock time 看,三種模式最終收斂到相同 reward 水平,但Async Off-Policy 達到同等 reward 的 wall-clock 時間比 Colocate 縮短 43%。更快收斂,效果不掉。

近乎無損的 R3

MoE 模型在 RL 訓(xùn)練中有個隱蔽的坑:Rollout 和 Training 階段的 expert 路由可能不一致,導(dǎo)致 log probs mismatch 從而加重 off-policy。

Relax 的R3(Rollout Routing Replay)在 Rollout 時記錄路由決策,Training 時原樣回放:

Mismatch降低約 38%,Relax 額外開銷僅+1.9%,veRL 為+32%。

為什么差這么多?因為 Relax 的異步 pipeline 天然吸收了 R3 的開銷——序列化路徑重寫 + 異步 device-to-host 傳輸,R3 完全跑在關(guān)鍵路徑之外。

總結(jié)

當(dāng) RL 訓(xùn)練從純文本單輪走向全模態(tài) Agentic,數(shù)據(jù)異構(gòu)、系統(tǒng)脆弱、角色耦合三重困境不再是可以分別解決的獨立問題。Relax 的回答是一套協(xié)同設(shè)計:全模態(tài)原生 pipeline 解決數(shù)據(jù)異構(gòu),服務(wù)化隔離 +DCS 快速恢復(fù)解決系統(tǒng)脆弱,micro batch 級全異步流水線解決資源利用率——三者因果閉環(huán),缺一不可。

Relax 的落地有賴于開源社區(qū)的支持,研究團隊希望在此致謝:

感謝Slime 和 SGLang 團隊在 Ray+Megatron+SGLang 結(jié)合用于 RL 訓(xùn)練方面的基礎(chǔ)性工作,Relax 正是在此基礎(chǔ)架構(gòu)之上構(gòu)建的。感謝NVIDIA Megatron Bridge 團隊開發(fā)的開源 checkpoint 轉(zhuǎn)換框架,Relax 將其擴展以支持全模態(tài)模型。感謝華為昇騰 TransferQueue 團隊開發(fā)的開源異步數(shù)據(jù)總線,它是 Relax 分布式架構(gòu)的數(shù)據(jù)面核心。

GitHub:

https://github.com/redai-infra/Relax

License:

Apache 2.0

一鍵三連「點贊」「轉(zhuǎn)發(fā)」「小心心」

歡迎在評論區(qū)留下你的想法!

我們正在招聘一名眼疾手快、關(guān)注 AI 的學(xué)術(shù)編輯實習(xí)生

感興趣的小伙伴歡迎關(guān)注 了解詳情

點亮星標(biāo)

科技前沿進展每日見

相關(guān)標(biāo)簽

相關(guān)閱讀

最新評論

沒有更多評論了

覺得文章不錯,微信掃描分享好友

掃碼分享

企業(yè)資訊

查看更多內(nèi)容