Do Post-Training Algorithms Actually Differ? A Controlled Study Across Model Scales Uncovers Scale-Dependent Ranking Inversions
Abstract
Post-training alignment has produced dozens of competing algorithms -- DPO, SimPO, KTO, GRPO, and others -- yet practitioners lack controlled comparisons to guide algorithm selection. We present OXRL, a unified framework implementing 51 post-training algorithms with identical infrastructure, enabling the first large-scale apples-to-apples evaluation. Our study spans 8 algorithms across 4 model scales (0.5B--7B), 3 evaluation domains, and a 20-variant DPO taxonomy (100 runs at 1.5B, 5 seeds each), totaling 240 training runs on H100 GPUs. Three headline findings emerge. (1)Algorithm rankings are unstable across scale: at 1.5B, online RL (SGRPO) tops all methods at 58.0%0.57 on GSM8K; by 7B, the worst small-scale method (SimPO) becomes the best (85.8%), a complete ranking inversion driven by model scale rather than LoRA regularization (confirmed via 22 factorial). (2)Loss function modifications yield negligible gains: none of 20 DPO variants significantly outperform vanilla DPO after Bonferroni correction; the sole significant outlier, SimPO, is worse (11.5pp, ). (3)Algorithm leverage is task-specific: the 19.3pp GSM8K spread collapses to 0.54pp on MATH () and 0.47pp on general-domain benchmarks (), confirming that algorithm choice matters primarily within the training distribution. These findings yield a hierarchy of leverage for practitioners: model scale (50pp) training paradigm (10pp) online vs.\ offline (9pp) loss function (1pp). We release all code, configs, and evaluation data as a living community benchmark.
Figures & tables
| Variant | Primary Modification | Ref. | Year |
|---|---|---|---|
| DPO | Baseline logistic loss | ✓ | 2023 |
| IPO | Squared loss regularization | ✓ | 2024 |
| SimPO | Length-normalized, no ref | 2024 | |
| KTO | Unpaired binary feedback | ✓ | 2024 |
| Hinge | Hinge loss replacement | ✓ | 2024 |
| CPO | Contrastive preference | 2024 |
| 3B | 7B | ||
|---|---|---|---|
| Full FT | Base | 10.69 | 75.82 |
| SFT | 18.35 ‡ ( +7.7 ) | — | |
| DPO | 14.44 ±2.01 ( +3.8 ) | — | |
| SimPO | 6.90 ‡ ( 3.8 ) | — | |
| LoRA | Base | 10.69 | 75.82 |
| SFT | 18.04 ( +7.4 ) | 76.42 ( +0.6 ) |
| Algorithm | 0.5B | 1.5B | 3B (full FT) | 7B (LoRA) |
|---|---|---|---|---|
| Base Model | 19.56 | 31.16 | 10.69 § | 75.82 |
| SFT | 33.97 ±0.0 ( +14.4 ) | 54.36 ±0.59 ( +23.2 ) | 18.35 ‡ ( +7.7 ) | 76.42 ±0.0 ( +0.6 ) |
| DPO | 33.97 ±0.0 ( +14.4 ) | 49.08 ±0.61 ( +17.9 ) | 14.44 ±2.01 ( +3.8 ) | 83.85 ±0.0 ( +8.0 ) |
| IPO | 34.50 ±0.3 ( +14.9 ) | 52.24 ±0.22 ( +21.1 ) | — | 81.35 ( +5.5 ) |
| KTO | 33.81 ±0.0 ( +14.3 ) | 51.15 ±1.77 ( +20.0 ) | 15.31 ‡ ( +4.6 ) | 80.21 ( +4.4 ) |
| SimPO | 26.08 ±0.0 ( +6.5 ) | 38.67 ±1.78 ( +7.5 ) | 6.90 ‡ ( 3.8 ) | 85.82 ±0.0 ( +10.0 ) |
| Algorithm | MATH (%) | GSM8K (%) | Rank |
|---|---|---|---|
| SFT | 27.04 | 54.36 ±0.59 | (2nd 1st) |
| SimPO | 26.72 | 38.67 ±1.78 | (5th 2nd) |
| KTO | 26.64 | 51.15 ±1.77 | (3rd 3rd) |
| SGRPO | 26.58 | 58.00 ±0.57 | (1st 4th) |
| DPO | 26.50 | 49.08 ±0.61 | (4th 5th) |
| Spread | 0.54 pp | 19.33 pp | compression |
| Algorithm | ARC-C (%) | HellaSwag (%) | WinoGrande (%) | Avg (%) |
|---|---|---|---|---|
| Base Model | 46.76 | 68.23 | 62.90 | 59.30 |
| SFT | 46.16 ( 0.60 ) | 68.16 ( 0.07 ) | 62.90 (+0.00) | 59.08 ( 0.22 ) |
| DPO | 46.67 ( 0.09 ) | 68.38 ( +0.15 ) | 62.67 ( 0.24 ) | 59.24 ( 0.06 ) |
| IPO | 46.76 (+0.00) | 68.36 ( +0.13 ) | 62.67 ( 0.24 ) | 59.26 ( 0.04 ) |
| KTO | 47.01 ( +0.26 ) | 68.25 ( +0.02 ) | 63.06 ( +0.16 ) | 59.44 ( +0.14 ) |
| SimPO | 46.08 ( 0.68 ) | 68.37 ( +0.14 ) | 62.59 ( 0.32 ) | 59.01 ( 0.29 ) |
Appendix figures & tables12 assets
Supplementary material from the paper’s appendix.
Appendix
| Variant | Category | Mean (%) | Std | DPO | ||
|---|---|---|---|---|---|---|
| ORPO | Reference-free | 53.89 | 0.60 | +4.12 | 0.0134 | 2.48 |
| DPOP | Weighting/calibration | 53.62 | 1.80 | +3.85 | 0.0189 | 1.88 |
| SPPO | Data augmentation | 52.60 | 1.45 | +2.84 | 0.0521 | 1.49 |
| IPO | Alternative divergence | 52.36 | 0.75 | +2.59 | 0.0614 | 1.53 |
| CalDPO | Weighting/calibration | 52.16 | 1.58 | +2.40 | 0.0934 | 1.22 |
| CPO | Reference-free | 51.43 | 1.57 | +1.67 | 0.2187 | 0.85 |
| Parameter | Value |
|---|---|
| Optimizer | AdamW ( , , ) |
| Weight decay | 0.01 |
| LR schedule | Cosine with 10% linear warmup |
| Effective batch size | 8 prompts (1 8 grad. accum.) |
| Training epochs | 3 |
| Precision | BF16 mixed precision |
| Algorithm | Learning Rate | Key Hyperparameters | GPUs/Run |
|---|---|---|---|
| SFT | – | 1 | |
| DPO | 1 | ||
| SimPO | , | 1 | |
| IPO | 1 | ||
| KTO | 1 | ||
| SGRPO | , | 2 |
| Scale | Algorithm | Strict (%) | Flexible (%) | Gap (pp) |
|---|---|---|---|---|
| 1.5B | SFT | 54.66 | 55.57 | |
| DPO | 51.18 | 49.81 | ||
| IPO | 52.39 | 52.31 | ||
| KTO | 51.71 | 51.18 | ||
| SimPO | 43.44 | 43.06 | ||
| 3B (full FT) | Base | 10.69 | 62.93 |
| Algorithm | ARC-C (%) | HellaSwag (%) | WinoGrande (%) | Avg (%) |
|---|---|---|---|---|
| Base Model | 55.20 | 80.48 | 71.11 | 68.93 |
| SFT | 55.29 ( +0.09 ) | 80.45 ( 0.03 ) | 70.72 ( 0.39 ) | 68.82 ( 0.11 ) |
| DPO | 54.86 ( 0.34 ) | 80.58 ( +0.10 ) | 70.72 ( 0.39 ) | 68.72 ( 0.21 ) |
| IPO | 55.55 ( +0.35 ) | 80.37 ( 0.11 ) | 71.35 ( +0.24 ) | 69.09 ( +0.16 ) |
| KTO | 55.03 ( 0.17 ) | 80.39 ( 0.09 ) | 70.72 ( 0.39 ) | 68.71 ( 0.22 ) |
| SimPO | 54.44 ( 0.77 ) | 80.53 ( +0.05 ) | 70.17 ( 0.95 ) | 68.38 ( 0.56 ) |
| Category | # Runs | Time/Run | GPUs | GPU-h |
|---|---|---|---|---|
| Core 0.5B SL (5 algs 3 seeds) | 15 | 4–8 min | 1 | 1.5 |
| Core 0.5B RL (3 algs 3 seeds) | 9 | 3 h | 2 | 54 |
| Core 1.5B SL (5 algs 3 seeds) | 15 | 14–27 min | 1 | 5.0 |
| Core 3B SL full FT (3 algs) | 3 | 12–13 min | 1 | 0.6 |
| 3B LoRA factorial (3 algs) | 3 | 12–13 min | 1 | 0.6 |
| Core 7B SL (5 algs 2 seeds) | 10 | 335–362 min | 1 | 58 |
| Algorithm | 0.5B | 1.5B | 3B | 7B (LoRA) |
|---|---|---|---|---|
| SFT | 4 min | 14 min | 12 min | 330 min |
| DPO | 4 min | 20 min | 13 min | 360 min |
| SimPO | 4 min | 14 min | 12 min | 330 min |
| IPO | 4 min | 26 min | – | 335 min |
| KTO | 4 min | 23 min | – | 460 min |
| Scale | Method | GPUs | Time | Gain (pp) | GPU-h | GPU-h/pp |
|---|---|---|---|---|---|---|
| 0.5B | SFT/DPO | 1 | 4 min | +14.4 | 0.07 | 0.005 |
| IPO | 1 | 4 min | +14.9 | 0.07 | 0.004 | |
| SGRPO | 2 | 183 min | +12.9 | 6.1 | 0.47 | |
| 1.5B | SGRPO | 2 | 84 min | +26.8 | 2.8 | 0.10 |
| SFT | 1 | 14 min | +23.2 | 0.23 | 0.010 | |
| DPO | 1 | 20 min | +17.9 | 0.33 | 0.018 |
| Method | Original | Mean | s42 | s123 | s456 | |
|---|---|---|---|---|---|---|
| SFT | 54.66 | 54.36 | 0.59 | 53.90 | 55.19 | 53.98 |
| IPO | 52.39 | 52.24 | 0.22 | 52.54 | 52.16 | 52.01 |
| KTO | 51.71 | 51.15 | 1.77 | 51.33 | 53.22 | 48.90 |
| DPO | 51.18 | 49.08 | 0.61 | 49.58 | 49.43 | 48.22 |
| SimPO | 43.44 | 38.67 | 1.78 | 36.85 | 38.06 | 41.09 |
| Method | Original | Mean | s42 | s123 | |
|---|---|---|---|---|---|
| SFT | 18.04 | 18.35 ‡ | — | — | 18.35 |
| KTO | — | 15.31 ‡ | — | — | 15.31 |
| DPO | 16.45 | 14.44 | 2.01 | 16.45 | 12.43 |
| SimPO | 6.90 | 6.90 ‡ | — | 6.90 | — |
Language Model Post-Training
Language model post-training adapts pretrained models to follow instructions, reason, use tools, and meet task-specific or human-defined goals.
See all 193 papers