跳到主要內容
NVIDIA NeMo RL 是什麼?Agent 何時該用 RL

NVIDIA NeMo RL 是什麼?Agent 何時該用 RL

NVIDIA NeMo RL 是用於 LLM、VLM 與 Agent post-training 的開源框架。本文比較 Prompt、SFT 與 RLVR,拆解 GRPO、Async RL、Ray、training/generation backend,並提供是否值得導入的判斷標準。

目錄+

NeMo RL v0.7.0 把 Nemotron 3 Super 的完整 RL post-training recipe 放進主分支,也補上 PPO、Async rollout、weight synchronization 與多種長序列訓練能力。

這看起來像一張「企業終於可以自己訓練 Agent」的邀請函。但真正的門檻不是先準備幾張 GPU,而是先回答:你的 Agent 做得好不好,能不能被機器可靠判定?

這篇會先幫你選 Prompt、SFT、DPO 或 RLVR,再深入拆解 GRPO、Ray、training/generation backend 與 Async RL。讀完後,你應該能判斷 NeMo RL 是必要投資,還是一套現在不該導入的複雜系統。

RL 最貴的不是 GPU,是錯誤的 reward。

NVIDIA-NeMo/RL on GitHub

NVIDIA NeMo RL 是什麼?

NVIDIA NeMo RL 是一套開源的 multimodal model post-training library,用來組織 RL 演算法、模型生成、reward environment、分散式訓練與權重更新。 它能處理 LLM、VLM 等模型,從單 GPU 的小型實驗一路擴充到 multi-node cluster。

它不是一個模型,也不是 Agent runtime。

  • Model 提供原始能力。
  • Agent Harness 決定模型如何管理 context、工具與多輪流程。
  • Environment 定義 Agent 能做什麼、看到什麼,以及怎麼得分。
  • NeMo RL 讓模型反覆產生嘗試,讀取 reward,計算 loss,再更新 weights。

這個責任邊界很重要。上一篇 NeMo Gym Agent 訓練環境解析 處理的是環境、trajectory 與 verifier;NeMo RL 處理的是 training loop。再往前一層,NOOA Agent Harness 研究的則是模型如何操作與改寫自己的 Harness。三者都跟 Agent 有關,但不是同一個東西。

NeMo RL 的價值也不只在 GRPO。官方目前提供 SFT、DPO、reward model training、GRPO、DAPO、PPO、on-policy distillation 等路線。真正的設計重點,是用同一套 controller 與 interfaces 管理 policy、generation、environment 和不同硬體後端。

Prompt、SFT、DPO、RLVR 該怎麼選?

先別從演算法名稱開始。先看你手上有哪一種可信訊號。

方法你需要的訊號適合解決什麼不該先用的情況
Prompt/工具設計清楚規則與可控流程格式、routing、tool schema、context 問題模型根本不會完成任務
SFT高品質示範答案或 trajectories教模型模仿格式、語氣、基本工具流程正確策略很多,示範涵蓋不了探索空間
DPO/RLHF偏好對或人類評分幫助性、風格、安全與難以寫成規則的偏好成功可由測試或模擬器直接判定
RLVR可重複任務、探索空間、可靠 verifier數學、程式測試、CLI、tool use、模擬器Reward 容易被鑽漏洞,或沒有 held-out evaluation
Loading diagram...

決策順序不能倒過來。很多 Agent 失敗,是工具描述不清、context 被截斷、sandbox 權限錯誤,或 verifier 本身寫錯。這些問題不會因為跑更多 RL 自動消失。模型反而可能學會迎合錯誤訊號,把 bug 練得更穩。

RLVR 真正適合的情況,是任務需要探索,而且最後結果比過程長得像不像示範更重要。例如修正程式時,你不需要規定唯一修改路徑;只要 hidden tests、回歸測試與安全檢查能可靠判分,模型就能嘗試不同策略。

GRPO 如何把 reward 變成模型能力?

GRPO 全名是 Group Relative Policy Optimization。核心不是「答對就加一分」這麼簡單,而是讓同一個 prompt 產生一組不同 responses,再比較它們的相對 reward。

一個簡化訓練 step 可以拆成五步:

  1. 從 dataset 取一批 prompts。
  2. Generation backend 用目前 policy,為每個 prompt 產生多個 completions 或 trajectories。
  3. Environment/verifier 為每次嘗試給 reward。
  4. 在同一組嘗試內計算 relative advantage。
  5. Policy 根據 advantage 與 probability ratio 計算 loss,反向傳播並更新權重。

若同組 rewards 是 0、0、0、1,最後一個嘗試會得到明顯的正向 advantage。概念上可以寫成:

A_i = (r_i - mean(r_group)) / (std(r_group) + epsilon)

實際 loss 還會考慮新舊 policy 對 token 的 probability ratio、clipping、masking,以及視設定加入的 KL 控制。這些限制的目的,是避免模型因單批 reward 就跨出太大一步。

GRPO 不需要像 PPO 一樣另外訓練一個 critic/value model。這少了一個模型元件,但不代表成本很低。對長推理或 Agent 任務而言,最貴的部分往往是 rollout:一個 prompt 要生成多次,每次還可能包含多輪 tool calls、sandbox 執行與 verifier 計算。

還有一個常被忽略的零訊號問題。如果同一組嘗試全部得到 0,或全部得到 1,group standard deviation 接近零,模型幾乎得不到相對學習訊號。這可能表示任務太難、太簡單、reward 太粗,或 rollout diversity 不足。DAPO 的 dynamic sampling 等技術能跳過沒有 reward variance 的 prompt group,但它治不了壞掉的 verifier。

NeMo Gym 與 NeMo RL 如何接起來?

NeMo Gym 與 NeMo RL 的接點,是 trajectory 和 reward,而不是把兩個 repository 混成一個程式。

Gym 端建立 task state、工具、Agent interaction loop 與 verifier。Generation backend 呼叫 policy,Agent 在環境中完成一次嘗試。Gym 回傳 trajectory、reward 與 metadata,NeMo RL 再把它們整理成 batch,計算 advantage 與 loss。

Loading diagram...

NeMo RL 也能使用自己的 environment interface;NeMo Gym 也能接其他 training frameworks。選用 NVIDIA 全套堆疊的理由,應該是 recipe、部署與介面整合真的降低工程成本,而不是名字都叫 NeMo。

NeMo RL 的系統架構為什麼這麼複雜?

因為 online RL 同時在跑好幾種工作負載,而且它們對硬體的需求不同。

Policy training 要保存 optimizer state、gradients 與 activations,偏向高記憶體與高速 interconnect。Generation 要大量 decode tokens,追求 throughput、KV cache 與動態 batching。Environment 可能吃 CPU、網路、sandbox,甚至外部服務。把三者硬塞進同一個 process,依賴衝突與 GPU 閒置很快就會出現。

NeMo RL 把這些元件視為 RL Actors,交給 Ray 做 worker placement、資源分配、隔離與跨節點執行。上層則用 single controller 表達演算法流程,所以 GRPO 主迴圈不必直接管理每張 GPU 的 rank 與 process lifecycle。

目前官方 backend 分工是:

  • PyTorch/NeMo AutoModel training backend:走 PyTorch-native TP、SP、PP、CP 與 FSDP2,適合 Hugging Face 生態與研究修改。
  • Megatron training backend:提供面向大型模型的多維平行能力,適合更大的模型與 context。
  • vLLM generation backend:主打高吞吐與記憶體效率。
  • Megatron generation backend:訓練與生成共用 Megatron model format,可避免兩套格式轉換。

v0.7.0 官方容器也打包 SGLang,目前 release 的支援重點在 DTensorPolicyV2 路徑,Megatron backend 仍列為後續工作。「容器裡存在」與「每條 recipe 都成熟支援」不是同一句話。選 backend 要看具體 model、recipe、precision、weight refit 路徑與官方 support matrix。

最容易被低估的是 weight synchronization。Training 更新完 policy 後,generation workers 必須拿到新 weights。模型很大、兩組 workers 又不 colocate 時,傳輸會變成瓶頸。v0.7 引入 WeightSynchronizer abstraction,提供 IPC、HTTP、NCCL 等 transport;這正是 framework 真正解決的 infrastructure 問題。

Sync RL 與 Async RL 差在哪?

同步模式的流程最直觀:先完成整批 trajectories,再停止 generation、訓練 policy、同步新 weights,然後開始下一批。好處是每批資料接近目前 policy;代價是 generation 和 training 互相等待,GPU utilization 可能不好。

Async GRPO 讓 trajectory generation 與 policy training 同時執行。背景 collector 持續生成資料放進 replay buffer,training loop 從 buffer 取資料更新 policy。這能減少等待,但代價是部分 trajectory 來自較舊版本的 policy。

面向Sync GRPOAsync GRPO
Generation 與 training分階段、互相等待併行執行
Trajectory 新鮮度通常較新可能有 policy lag
系統複雜度較低需要 replay buffer、版本追蹤與 refit
GPU utilization容易出現空檔有機會提高,但取決於資源比例
穩定性重點backend logprob 一致性另加 staleness 與 off-policy correction

NeMo RL 的 Async GRPO 會記錄 generation weight version 與 target weight version,並用 max_trajectory_age_steps 淘汰太舊資料。官方指南也要求開啟 importance sampling correction,因為舊 generator policy 產生的資料,不能假裝來自目前的 training policy。

以下只展示關鍵設定,不是能直接複製到 production 的完整 recipe:

policy:
  generation:
    backend: vllm
    colocated:
      enabled: false
    vllm_cfg:
      async_engine: true

loss_fn:
  use_importance_sampling_correction: true

grpo:
  async_grpo:
    enabled: true
    max_trajectory_age_steps: 1

Async 不是免費加速。你還要配置獨立的 generation resources、管理 replay buffer、監測 discarded trajectories,並驗證 importance ratios 沒有失控。當 rollout 很短、模型很小,或單機資源有限時,同步模式反而可能更容易除錯。

NeMo RL v0.7.0 解決了哪些實際問題?

2026 年 7 月 29 日發布的 v0.7.0,不只是多幾個演算法名稱。它反映 Agent RL 已從單輪數學題,走向長序列、multi-step environment 與大型 MoE 模型。

幾個最值得看的變化:

  • Nemotron 3 Super recipe 進入 main:公開 RLVR、SWE RL 與帶 length penalty 的 RLHF 三階段流程,並提供 training data blends。
  • 完整 PPO support:加入 value model/critic 與 GAE 路線,讓團隊不必把所有任務硬套 GRPO。
  • Router Replay:讓 MoE 模型在 vLLM rollout 與 Megatron training 時重播相同 expert routing,降低非 policy update 造成的 logprob mismatch。
  • Async data plane 與 weight sync:加入 per-prompt async rollouts、staleness-window replay buffer,以及可替換的 weight transport。
  • 真正的 Agent recipe:兩階段 SWE RL 先用較便宜的 pivot stage 教 tool calls,再進 per-instance sandbox 做 multi-turn training。

官方 release 報告該 SWE recipe 在 SWE-bench Verified pass@1 上,從 base model 的 23.6% 提升到 pivot stage 的 30.4%,最後到 31.2%。這是 NVIDIA 公布的特定 model、recipe 與 benchmark 結果,不代表換一個 Agent 任務也會得到相同比例。

LoRA、FP8、DAPO/ProRLv2 等先前能力仍然重要,但它們解決的是記憶體、吞吐或訓練穩定性。多 reward 訓練時,GDPO 會把每個 reward 分開 normalization,再聚合 advantages,避免某個訊號的尺度讓其他訊號失去解析度。這些工具都不能替你定義什麼叫成功,也不能阻止 reward hacking。

導入 NeMo RL 前要準備什麼?

先準備下面五樣,再談 cluster。

1. 可驗證、但不容易被鑽漏洞的 reward

程式測試通過不代表修改品質一定好;CLI 指令格式正確也不代表操作安全。Reward 最好拆成 outcome、constraint 與 violation signals,並保留人工抽查。多 reward 場景還要確認 normalization 不會讓某個訊號吃掉其他訊號。

2. 能重設的 environment

每次 task attempt 必須從乾淨 state 開始。檔案、database、外部 API 或 sandbox 若殘留前一次結果,reward 就失去可比較性。這正是先建立 Gym 層,再進 RL 的原因。

3. 有變異的 rollout 分布

如果模型永遠失敗,GRPO 沒有正向樣本;如果模型每次都成功,也沒有相對訊號。先在候選 base model 上做 reward profiling,查看平均值、標準差、trajectory length、tool error 與 truncation,而不是直接開長時間訓練。

4. 與 training data 分開的 evaluation

同一個 verifier 同時拿來訓練與宣告成功,很容易高估能力。保留 held-out tasks、不同 seeds、不同 Harness,並檢查模型是否只學會 exploit reward。最終還要回到真實工作流的成功率、成本與安全限制。

5. 能觀測的資源預算

GPU 只是其中一項。你還要預算 rollout tokens、sandbox 啟動、storage、checkpoint、network transfer、失敗重跑與工程時間。官方 quickstart 能在單 GPU 跑 1B 級 GRPO,不代表正式 Agent RL 也能在一張卡上完成。

若要先做本地小模型或 LoRA 原型,麗臺 RTX PRO 4000 Blackwell 24GB可以列入工作站候選;但 24GB VRAM 不會把 multi-node recipe 變成桌面任務。模型大小、sequence length、precision、optimizer 與 rollout concurrency 都會改變實際需求。

哪些團隊應該用,哪些不該用?

NeMo RL 適合已經具備下列條件的團隊:

  • Agent 任務可大量重複,而且成功能由 tests、simulator、schema 或工具狀態判定。
  • Prompt、Harness 與工具可靠性已先處理,瓶頸確實落在模型策略。
  • 有能力維護 environment、verifier、held-out evaluation 與 training observability。
  • 需要從單機 prototype 擴充到多 GPU/multi-node,或需要替換 training 與 generation backend。

下面這些情況則不該先導入:

  • 連「好答案」都還說不清楚。
  • 主要問題是 context、tool schema 或 permissions。
  • 只有少量人工偏好,沒有可重複 verifier。
  • 沒有 baseline,也沒有獨立 evaluation。
  • 團隊只因為競爭者在談 RL,就想跳過 SFT 與系統除錯。

如果你真正需要的是模型編排而非權重更新,可以先看 Nemotron 在異質模型編排中的角色。把每個問題都送進 RL pipeline,是最昂貴的分類錯誤之一。

常見問題

每個 Agent 都需要 reinforcement learning 嗎?

不需要。若 Prompt、工具設計或 SFT 已能穩定改善任務,而且成功難以自動驗證,導入 RL 通常只會增加成本與風險。

SFT 與 RLVR 可以一起使用嗎?

可以,而且常見做法是先用 SFT 建立基本格式與工具使用能力,再用 RLVR 讓模型探索不同策略並依 verifier reward 更新。SFT 是起點還是限制,要用 reward distribution 與 held-out evaluation 判斷。

NeMo Gym 與 NeMo RL 有什麼差別?

NeMo Gym 負責 Agent 與環境互動、state、trajectory 和 reward;NeMo RL 負責演算法、generation backend、distributed training、gradient 與模型權重更新。

單張 GPU 可以執行 NeMo RL 嗎?

可以跑官方的小模型 GRPO quickstart,但可行性取決於模型大小、sequence length、rollout 數、精度與顯存。能啟動原型不代表能經濟地完成正式 Agent RL。

GRPO 一定比 DPO 或 PPO 好嗎?

不一定。GRPO 適合能為同一任務產生多次嘗試並可靠評分的情境;DPO 適合偏好對,PPO 則保留 critic 與 GAE。方法必須跟可取得的訓練訊號配對。

我的判斷

NeMo RL 最有價值的地方,不是把 GRPO 寫進 YAML。它把 generation、environment、training 與 weight synchronization 拆成可替換元件,讓已經具備 reward discipline 的團隊能把實驗擴大。

但導入順序必須反過來想:先證明 verifier 可信,再證明 baseline 有探索缺口,最後才投資 RL infrastructure。否則你只是用更多 GPU,把錯誤的成功定義寫進模型。

現在最該問的不是「要用 GRPO 還是 PPO」,而是:你的 Agent 成功條件,真的能被機器可靠判定嗎?


本文含聯盟連結;若透過連結購買,站方可能獲得分潤,不影響內容判斷。硬體需求應以你的模型、precision、context 與官方 recipe 為準。

官方資料: NeMo RL GitHubNeMo RL v0.7.0 releaseTraining and generation backendsGRPO guideAsync GRPO guideNVIDIA Agentic RL guide