AI News HubLIVE
站內改寫2 分鐘閱讀

NVIDIA AI 釋出 Molt:一個 PyTorch 原生的智慧體強化學習框架

NVIDIA NeMo 團隊釋出了 Molt,一個約 8.6K 行 RL 程式碼的 PyTorch 原生智慧體強化學習框架,組合 Ray、vLLM 和 NVIDIA AutoModel,目標是降低研究者在演算法迭代中的工程成本。它支援普通 Python 智慧體、token 精確的軌跡,吞吐量與基於 Megatron 的堆疊相當,但需注意 MoE 路由差異。

來源MarkTechPost作者: Asif Razzaq

智慧體強化學習研究伴隨著不斷的演算法修改。新估計器、新流水線階段、新 rollout 方案層出不窮。在主流框架中,每一次修改都要貫穿訓練器、分散式後端和 rollout 粘合層,研究者每次迭代都要承擔這些成本。

NVIDIA NeMo 團隊釋出的 Molt 直接瞄準了這一成本。它是一個 PyTorch 原生的智慧體 RL 框架,設計目標非常獨特:程式碼庫要足夠緊湊,讓研究者能在腦中把握整體,也讓 AI 程式設計助手能完整閱讀和推理。其 RL 程式碼量約為 8.6K 行(透過跟蹤各框架 RL 入口的匯入圖統計),相比之下 verl 約 62K 行、slime 約 25K 行、OpenRLHF 約 7.2K 行。

Molt 是否可用於部署?可以。它以 Apache 2.0 許可釋出,附帶啟動指令碼、Slurm 指令碼和預構建容器。但研究論文將其定位為研究基礎設施而非生產訓練服務;真正的門檻是硬體。隨附的配方假設使用 2 個節點、每節點 8 塊 H100 GPU,其中 8 塊用於訓練、8 塊用於 rollout。這意味著 Molt 面向前沿實驗室、資金充足的 AI 初創公司、金融/醫療/機器人領域的企業 AI 研究團隊以及擁有多節點 H100/H200 的學術實驗室。應用場景包括多輪工具呼叫智慧體、程式碼執行智慧體、視覺語言環境(附帶的 geo3k 配方)、LLM 作為評判者的獎勵迴圈,以及線上策略蒸餾到更小的 student 模型。

Molt 組合了 Ray(放置與非同步佇列)、vLLM(rollout)和 NVIDIA AutoModel(FSDP2 訓練),三者均未 fork,所以上游改進透過容器 pin 而非 rebase 進入。執行時是一個智慧體池:一組 vLLM 引擎位於請求路由器之後,再加上一個可訓練的策略 actor。流式池保持 prompt 組在飛行中,使引擎在 actor 訓練時不會排空。部分 rollout 會暫停引擎,透過 NCCL 將 actor 分片直接廣播到每個引擎,然後恢復保留的請求而不是丟棄。

智慧體本身是一個普通程式。RL 執行只需指定一個匯出 AgentRunner 的 Python 模組,其餘都是普通程式碼,包括獎勵。支援兩種形式:Env 在 Gymnasium 對齊的 step() 中由框架擁有 LLM 迴圈;ChatAgent 則透過標準 OpenAI 或 Anthropic SDK 由使用者擁有迴圈。Molt 啟動一個支援兩種線路協議的迴環伺服器,每個請求在服務端解碼為 token 精確的累積。當長程智慧體壓縮上下文並重寫字首時,伺服器會自動密封當前段並開啟新段。

三個正確性不變數支撐著設計:token 同一性(取樣 token id 定義軌跡,而非重新 token 化的轉錄)、策略版本語義(可訓練 token 保留其行為策略的對數機率,非同步使用在序列級門控後逐 token 修正)、前向一致性(rollout 與 actor 必須對模型語義一致)。對於混合專家(MoE)策略,最後一個不變數最重要:rollout 和訓練路由器獨立選擇專家,小的數值差異可能翻轉 top-k 選擇。Molt 採用 rollout 路由重放:vLLM 返回每個 token 的專家 id,訓練前向重放這些 id。

Molt 是 Apache 2.0 許可的智慧體 RL 框架,RL 程式碼約 8.6K 行,約為 verl 的 1/7。Ray、vLLM 和 NVIDIA AutoModel 組合而不 fork,上游釋出以容器 pin 引入。智慧體是普通 Python,標準 OpenAI/Anthropic SDK 可直接訓練。吞吐量與基於 Megatron 的堆疊統計相當,並披露了 MoE 不匹配注意事項。規模只是一個標誌:同一個迴圈可以在 --fsdp.ep_size 256 下執行稠密 4B 模型和 700B MoE。