Skip to main content
sf methods is authoritative for what the server you are connected to has actually published. The tables below are a map, not a version pin. The console’s Methods page shows the same catalog with the parameters laid out, which is easier to read before a first submission.

NeMo-RL

Default framework for the full post-training pipeline. Current catalog release: nemo-rl@0.7.0.

verl

ByteDance verl synchronous trainer. Catalog release: verl@0.9.0. Entrypoint and parameter-path diffs across versions live in the version matrix (Recipes). Every RL method below runs the same official entry point (verl.trainer.main_ppo); what separates them is the advantage estimator the recipe pins. That is deliberate: the estimator is not a hyperparameter you can set in config.yaml — writing it there is rejected at submission, because a config that silently disagrees with the method is worse than an error. Loss variants — GSPO, CISPO, GMPO, clip-cov / kl-cov, GPG — are not separate methods: they are the policy_loss_mode parameter on any of the RL recipes above. Neither is rollout correction (TIS / IcePop): every verl RL method carries the rollout_is* parameters, because the rollout engine and the trainer are never quite the same policy.

TRL

Hugging Face TRL + Accelerate. Catalog release: trl@1.10.0.

OpenRLHF

DeepSpeed ZeRO + vLLM hybrid engine (colocate). Catalog release: openrlhf@0.11.0. Images are self-built (deploy/docker/Dockerfile.openrlhf); set FORGE_IMAGE_OPENRLHF or the runtime registry. Official upstream Dockerfiles do not publish a ready image with the package itself.

Evaluation and custom

Per-framework walkthroughs: NeMo-RL, verl, TRL, OpenRLHF.

Picking a starting point

A common pipeline is SFT → DPO or GRPO → evalkit/benchmark. Pipelines.