From RL Papers to Framework Code: Inclusion and Review in Seven Open-Source Training Frameworks
Organizations: The University of Melbourne
Abstract
Practitioners use reinforcement learning methods for language models through training frameworks, so a method that a framework includes is one configuration change away for its users. We measure how often this happens. We trace seven open-source frameworks for RL post-training through their commit histories and link them to 6,939 screened arXiv papers from January 2025 to June 2026. Of 1,598 papers that propose a general RL training method, 37 reached at least one framework. Across five quarterly cohorts of papers, the number included within 180 days stayed between 5 and 7 while the cohorts grew from 72 to 386 papers. Compared with papers from the same quarters, included papers more often trained policies of 30B parameters or more, at 41 against 10 percent, and more often changed a coefficient, clip, mask or weight in the existing loss, at 29 against 9 percent. Both gaps hold without papers from the companies that maintain the frameworks, while code release was equally common in both groups. The frameworks' issues and pull requests show that few methods are turned away in public. More than nine in ten of the general methods no framework included have no thread there that cites or names them, and many proposals that do appear stay open without a reply. Two further records, the frameworks' issues and the technical reports of 13 large open-weight models, show that users rarely report training failures in public and that the reports state 8 of the 13 widely included methods. We release the data as a tracker that links training failures to framework implementations and lists each framework's contribution rules and earlier proposals.
Figures & tables
| Method | Source | First public | Frameworks | Days | Failure it addresses |
|---|---|---|---|---|---|
| Clip-higher | [ 84 ] | 2025-03-18 | 7 | 1 | entropy collapse |
| GSPO | [ 88 ] | 2025-07-24 | 7 | 3 | MoE instability, extreme ratios |
| Dynamic sampling | [ 84 ] | 2025-03-18 | 6 | 17 | groups without signal |
| Dr. GRPO | [ 43 ] | 2025-03-26 | 6 | -4 | length bias |
| CISPO | [ 49 ] | 2025-06-16 | 6 | 135 | entropy collapse |
| Truncated importance sampling (TIS) | [ 82 ] | 2025-08 | 6 | – | rollout-training mismatch |
| First | Median | Landing pull requests | Proposals for other methods | ||||||
| Framework | Methods | anywhere | days | By a prior merger | Days open | All | Open | Declined | Lapsed |
| verl | 30 | 21 | 25 | 1 of 27 | 10 | 20 | 12 | 0 | 7 |
| TRL | 24 | 16 | 35 | 13 of 23 | 5 | 18 | 3 | 10 | 2 |
| AReaL | 14 | 4 | 170 | 3 of 13 | 6 | 1 | 0 | 0 | 1 |
| NeMo-RL | 14 | 3 | 167 | 2 of 13 | 17 | 2 | 2 | 0 | 0 |
| ROLL | 12 | 4 | 99 | – | – | 0 | 0 | 0 | 0 |
| Merged | Unmerged | ||
|---|---|---|---|
| Thread record | pull requests | pull requests | Requests |
| Threads | 88 | 28 | 20 |
| Reply from someone other than the proposer | 71 | 14 | 10 |
| Concern raised in the thread | 60 | 11 | 7 |
| design or interface | 50 | 7 | 1 |
| tests or documentation | 39 | 4 | 0 |
| Issue threads | General methods | Catalog methods | ||
| Failure | naming it | naming it | included | in a framework |
| Collapse or divergence, cause not named | 23 | – | – | – |
| Rollout-training mismatch | 12 | 20 | 3 | 8 |
| Response-length drift | 5 | 167 | 5 | 5 |
| Stale rollout data | 3 | 52 | 4 | 7 |
| KL penalty grows | 3 | – | – | – |
| Report | Size | Framework stated | Clip-higher | GSPO | Dyn. sampling | Dr. GRPO | CISPO | TIS | MIS | R++ | Token loss | Overlong | R3 | SAPO | GDPO |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DeepSeek-R1 [ 13 ] | 671B MoE | in-house | |||||||||||||
| Llama-Nemotron [ 4 ] | 253B dense | NeMo-Aligner | |||||||||||||
| MiniMax-M1 [ 49 ] | 456B MoE | not stated | T | ✓ | S | ✓ | ✓ | ||||||||
| Kimi K2 [ 32 ] | 1T MoE | in-house | |||||||||||||
| gpt-oss [ 53 ] | 117B MoE | in-house | |||||||||||||
| GLM-4.5 [ 22 ] | 355B MoE | slime | ✓ | ✓ |
Appendix figures & tables9 assets
Supplementary material from the paper’s appendix.
Appendix
| Label | Meaning |
|---|---|
| RL method | A new or modified training-time RL component: loss or objective, advantage or baseline, clipping or trust region, importance weighting or off-policy correction, rollout sampling or filtering that feeds the gradient, task-agnostic reward shaping, KL or entropy regularisation, credit assignment, or an optimiser built for RL on language models. |
| RL application | Existing RL algorithms applied to a task or domain, including domain-specific rewards or verifiers. |
| Analysis | Empirical study, reproduction or ablation without a new method. |
| Systems | Training systems, asynchronous pipelines and throughput work with the objective unchanged. |
| Offline preference | Offline preference optimisation in the DPO family. |
| Distillation | The main objective matches a teacher. |
| Review \ Label | General | Embedded | Other |
|---|---|---|---|
| General | 68 | 3 | 1 |
| Embedded | 6 | 12 | 32 |
| Other | 2 | 1 | 75 |
| Analysis | Policy of 30B or more | Coefficient change | ||
|---|---|---|---|---|
| Main | 12/29 vs 14/141 | 0.001 | 9/31 vs 13/149 | 0.004 |
| Including the exceptions | 17/35 vs 14/141 | 0.001 | 9/38 vs 13/149 | 0.020 |
| Without model reports | 12/29 vs 13/139 | 0.001 | 9/31 vs 13/147 | 0.005 |
| With an industry author | 10/25 vs 11/90 | 0.003 | 7/26 vs 9/93 | 0.045 |
| Missing values against gap | 12/31 vs 23/150 | 0.005 | 9/31 vs 14/150 | 0.006 |
| Threshold of 14B | 13/29 vs 19/141 | 0.001 | – |
| Source | Abstract label | Model report | Included methods |
|---|---|---|---|
| Prime Intellect Team et al. [54] | RL method (embedded) | yes | Two-sided ratio clipping |
| He et al. [26] | RL application | yes | Adaptive entropy control |
| Fu et al. [20] | RL method (embedded) | no | Decoupled PPO objective |
| MiniMax et al. [49] | RL method (embedded) | yes | CISPO |
| Liu et al. [42] | RL method (embedded) | yes | AEPO |
| Liu et al. [44] | Analysis | no | LitePPO |
| Method | arXiv | Framework | Thread | Outcome | Stated reasons |
|---|---|---|---|---|---|
| VC-PPO decoupled GAE | 2503.01491 | verl | issue #479 | open, under discussion | – |
| AGPO | 2503.15952 | TRL | PR #6368 | redirected | maintenance burden, placement, evidence, already covered |
| JEPO | 2503.19618 | TRL | PR #5411 | declined | maintenance burden, demand |
| CPPO (completion pruning) | 2503.22342 | TRL | issue #3291 | open, no prior-merger reply | – |
| AdaRFT | 2504.05520 | verl | PR #1021 | open, under discussion | – |
| SSR | 2504.08837 | TRL | PR #3496 | closed as inactive | – |
| Repository | Stars | Commit | Status |
|---|---|---|---|
| verl-project/verl | 23,926 | 18cfb74852 2026-10-16 | tracked |
| huggingface/trl | 19,551 | 6d6901c5e3 2026-10-16 | tracked |
| OpenRLHF/OpenRLHF | 10,097 | dc2a7ad326 2026-09-17 | tracked |
| THUDM/slime | 8,686 | 859938dcb2 2026-10-17 | tracked |
| areal-project/AReaL | 5,843 | bb13e3bdb9 2026-10-16 | tracked |
| alibaba/ROLL | 3,430 | d96d0cce56 2026-10-13 | tracked |
| Method | Option names at the snapshot |
|---|---|
| Clip-higher | verl: clip_ratio_high , recipe/dapo ; TRL: epsilon_high ; OpenRLHF: eps_clip_low_high ; NeMo-RL: ratio_clip_max ; ROLL: pg_clip_high ; slime: eps_clip_high ; AReaL: dapo_dynamic_bs , eps_clip_higher |
| GSPO | verl: gspo ; TRL: importance_sampling_level ; OpenRLHF: gspo ; NeMo-RL: sequence_level_importance_ratios ; ROLL: importance_sampling_seq ; slime: gspo ; AReaL: gspo , importance_sampling_level |
| Dynamic sampling | verl: filter_groups , recipe/dapo ; OpenRLHF: dynamic_filtering ; NeMo-RL: use_dynamic_sampling ; ROLL: difficulty_mask ; slime: dynamic_sampling_filter ; AReaL: dapo_dynamic_bs , dynamic_bs |
| Dr. GRPO | verl: norm_adv_by_std_in_grpo , seq-mean-token-sum-norm ; TRL: dr_grpo , scale_rewards ; OpenRLHF: dr_grpo , no_std_norm ; ROLL: seq-mean-token-sum-norm ; slime: disable_grpo_std_normalization ; AReaL: drgrpo |
| CISPO | verl: cispo ; TRL: cispo ; NeMo-RL: use_cispo ; ROLL: cispo ; slime: cispo ; AReaL: use_cispo_loss |
| Truncated importance sampling (TIS) | verl: rollout_is ; TRL: vllm_importance_sampling_correction ; OpenRLHF: is_correction ; NeMo-RL: truncated_importance_sampling_ratio ; ROLL: tis , train_infer_correction ; slime: use_tis |
| Method | Source | First public | First landing | Frameworks now |
|---|---|---|---|---|
| PPO (clipped surrogate, GAE) | Schulman et al. [59] | 2017-07-20 | 2022-12-30 | verl, OpenRLHF, NeMo-RL, ROLL, slime, AReaL |
| Dual-clip PPO | Ye et al. [83] | 2019-12-20 | 2025-04-02 | verl, OpenRLHF, NeMo-RL, ROLL, slime, AReaL |
| k3 (low-variance) KL estimator | Schulman [58] | 2020-03-07 | 2025-01-23 | verl |
| ReMax | Li et al. [36] | 2023-10-16 | 2025-02-10 | verl |
| GRPO | Shao et al. [61] | 2024-02-05 | 2025-01-20 | verl, TRL, OpenRLHF, NeMo-RL, ROLL, slime, AReaL |
| RLOO | Ahmadian et al. [1] | 2024-02-22 | 2024-05-22 | verl, TRL, OpenRLHF, NeMo-RL, AReaL |
RL Post-Training
Reinforcement learning post-training adapts pretrained models with reward or feedback signals to improve reasoning, alignment, and interactive behavior.
See all 424 papers