Next-token Preference: Scaling Unsupervised Reward Modeling
Organizations: Harvard University · Cornell University · Microsoft Research · Kempner Institute
Abstract
Learning from feedback advances the capabilities and safety of frontier models, but preference supervision remains costly and difficult to scale. We introduce next-token preference (NTP), an unsupervised reward-modeling method that constructs preference pairs from the continuation structure of raw web text. NTP uses each prefix's original continuation as the chosen response and nearby continuations as in-batch negatives, without candidate generation or human or model-generated preference annotations. Training on 11M tokens of math-focused web data yields steady gains on RewardBench and RewardBench 2, with gains across model families and sizes. Across mathematical and general-domain web corpora, our method improves overall RewardBench 2 accuracy by 7.6-8.3 percentage points over initialization under the same token budget. Training on math-focused text yields gains of up to +16.1 on in-domain math subsets and consistent improvements on out-of-domain safety and general subsets. These reward models improve best-of-N selection on math, code, safety, and instruction following, and support math policy optimization competitive with supervised reward models of similar size. NTP also improves the label efficiency of subsequent supervised fine-tuning. Using half the labeled pairs from a curated preference dataset, NTP initialization surpasses base initialization trained on the full dataset. These results suggest that web text contains transferable preference signals that can reduce dependence on costly preference annotations.
Figures & tables
| Method | Budget | RewardBench 2 gain |
| FineMath NTP (ours) | 11M tokens | +7.7 |
| Skywork-80K-v0.2 | 9K pairs (11M) | |
| Skywork-80K-v0.2 | 77K pairs (full) | |
| RLHFMix1 | 22K pairs (11M) | |
| RLHFMix1 | 244K pairs (full) |
| Training corpus | RewardBench 2 gain |
| FineMath-4plus | |
| MegaMath-Web-Pro-Max | |
| FineWeb-Edu |
| Actor: Llama-3.2- 3B-Instruct | Actor: Llama-3.1- 8B-Instruct | |||
| MATH | GSM8K | MATH | GSM8K | |
| Before training | ||||
| Skywork-Reward-V2-Llama-3.1-8B | 0.833 | 0.447 | ||
| Skywork-Reward-V2-Llama-3.2-3B | 0.439 | 0.465 | 0.884 | |
| beaver-7b-unified-reward | ||||
| FineMath-RM-Qwen-2.5-7B | 0.420 | 0.823 | 0.886 | |
| Checkpoint | ID | OOD Safety | OOD others | RewardBench 2 |
| Llama-3.2-3B | +14.5 | +22.3 | +1.6 | +8.3 |
| Llama-3.2-3B-Instruct | +19.4 | +22.6 | +7.8 | +13.1 |
| Finemath-RM-Llama-3.2-3B | +21.4 | +24.4 | +2.0 | +10.4 |
Appendix figures & tables21 assets
Supplementary material from the paper’s appendix.
Appendix
| Dataset | #Pairs | Prompt length | Preferred length | Rejected length | Overhead (in/out) | Cost ($) | $/pair | |||
| HH-RLHF | 115,396 | 160.4 | 82.2 | 73.6 | 155.8 | / – | 18.51M | 17.98M | 180.85 | 0.00157 |
| SHP | 93,301 | 186.2 | 173.6 | 88.8 | 262.4 | / – | 17.37M | 24.48M | 230.60 | 0.00247 |
| HelpSteer | 37,131 | 530.0 | 116.4 | 89.3 | 205.7 | / – | 19.68M | 7.64M | 100.46 | 0.00271 |
| PKU-SafeRLHF-30K | 26,874 | 21.5 | 70.4 | 74.6 | 145.0 | / – | 0.58M | 3.90M | 32.33 | 0.00120 |
| UltraFeedback | 340,025 | 161.5 | 279.5 | 211.1 | 490.6 | / – | 54.91M | 166.82M | 1444.36 | 0.00425 |
| UltraInteract | 161,927 | 507.4 | 396.6 | 416.7 | 813.3 | / – | 82.16M | 131.70M | 1217.89 | 0.00752 |
| Dataset | #Pairs | Prompt length | Preferred length | Rejected length | Overhead (in/out) | Cost ($) | $/pair | |||
| HH-RLHF | 115,396 | 160.4 | 82.2 | 73.6 | 316.2 | 40 / 40 | 41.10M | 4.62M | 148.92 | 0.00129 |
| SHP | 93,301 | 186.2 | 173.6 | 88.8 | 448.6 | 40 / 40 | 45.59M | 3.73M | 151.29 | 0.00162 |
| HelpSteer | 37,131 | 530.0 | 116.4 | 89.3 | 735.7 | 40 / 40 | 28.79M | 1.49M | 86.91 | 0.00234 |
| PKU-SafeRLHF-30K | 26,874 | 21.5 | 70.4 | 74.6 | 166.5 | 40 / 40 | 5.55M | 1.07M | 24.57 | 0.00091 |
| UltraFeedback | 340,025 | 161.5 | 279.5 | 211.1 | 652.1 | 40 / 40 | 235.71M | 13.60M | 725.83 | 0.00213 |
| UltraInteract | 161,927 | 507.4 | 396.6 | 416.7 | 1320.7 | 40 / 40 | 220.56M | 6.48M | 616.28 | 0.00381 |
| Backbone | Seed | Optimizer | Learning rate | Batch size | (center) |
| Llama-3.2-1B | 2025 | Adam betas 0.9, 0.95 | , constant 0.05 warmup ratio | 32 | 0.01 |
| Llama-3.2-3B | 2025 | Adam betas 0.9, 0.95 | , constant 0.05 warmup ratio | 32 | 0.01 |
| Qwen2.5-3B-Inst. | 2028 | Adam betas 0.9, 0.95 | , constant 0.05 warmup ratio | 32 | 0.01 |
| Qwen2.5-7B-Inst. | 2025 | Adam betas 0.9, 0.95 | , constant 0.05 warmup ratio | 8 | 0.01 |
| Backbone | Corpus | Optimizer | Learning rate | Blocks per step | Cutoff (tokens) | Epochs |
| Llama-3.2-3B | FineMath-4plus | AdamW | peak, cosine, warmup ratio 0.1 | 1024 | 2048 | 1 |
| Readout | Untrained | CPT | RM |
| Frozen probe | 30.0 | 28.9 | 36.4 |
| Conversion (512 pairs) | 32.3 | 31.2 | – |
| Original RM head | – | – | 36.2 |
| Dataset | #Pairs | Instruction (tokens) | Chosen (tokens) | Rejected (tokens) | Tokens/ pair | Equiv. pairs @ 11M tok. |
| Skywork-80K-v0.2 | 77,016 | 115 | 514 | 584 | 1,213 | 9,070 |
| RLHFMix1 | 244,216 | 224 | 149 | 120 | 493 | 22,310 |
| Task (ID/OOD) | Dataset / split | Prompt format | Actor decoding | Accuracy / scoring criterion |
| MATH500 (ID) | HuggingFaceH4/MATH-500 (test) | Problem: question . Provide your reasoning step by step, then the final answer the form FINAL_ANSWER: answer . | 1.0, top- 1.0 max tokens 512 | lm-eval-harness math-verify |
| GSM8K (ID) | openai/gsm8k (test) | Problem: question . Provide your reasoning step by step, then the final answer the form FINAL_ANSWER: answer . | 1.0, top- 1.0 max tokens 512 | lm-eval-harness math-verify |
| HumanEval+ (OOD) | evalplus/humanevalplus v0.1.10 (160 of 164 problems whose canonical solutions pass under EvalPlus) | Please provide a self-contained Python script that solves the following problem in a markdown code block: problem | 1.0, top- 1.0 max tokens 512 | evalplus ; pass iff the extracted program passes both the base and the plus test suites |
| ToxiGen (OOD) | toxigen/toxigen-data (test) | Is the following statement hateful? Statement: text . Respond with either Yes or No. Response: | 1.0, top- 1.0 max tokens 20 | lm-eval-harness |
| IFEval (OOD) | google/IFEval (train) | prompt | 1.0, top- 1.0 max tok. 1280 | lm-eval-harness prompt level strict |
| Seed | ID | OOD Safety | OOD Others | RewardBench 2 Avg |
| 2025 | ||||
| 2027 | ||||
| 2028 | ||||
| Mean |
| Benchmark | Subset | Gain |
| RewardBench | Chat | |
| Chat Hard | ||
| Safety | ||
| Reasoning | ||
| RewardBench 2 | Math | |
| Safety |
| Backbone | RewardBench | RewardBench 2 | ||
| Score | Rank | Score | Rank | |
| Llama-3.2-1B | 60.0 | 3 of 4 | 33.2 | 3 of 4 |
| Llama-3.2-3B | 65.6 | 4 of 9 | 36.2 | 9 of 12 |
| Qwen2.5-3B-Inst. | 70.0 | 3 of 9 | 46.2 | 8 of 12 |
| Qwen2.5-7B-Inst. | 73.8 | 18 of 47 | 57.0 | 5 of 11 |
| Model | Params (B) | AvgAcc | Type |
| opencompass/CompassJudger-1-1.5B-Instruct | 1.5 | 73.4 | Generative |
| OpenAssistant/oasst-rm-2.1-pythia-1.4b-epoch-2.5 | 1.4 | 69.5 | Seq. Classifier |
| Finemath-RM-Llama-3.2-1B (ours) | 1.0 | 60.0 | Seq. Classifier |
| Qwen/Qwen1.5-0.5B-Chat | 0.5 | 53.8 | DPO |
| Model | Params (B) | AvgAcc | Type |
| Skywork/Skywork-Reward-V2-Llama-3.2-1B | 1.0 | 64.376 | Seq. Classifier |
| Skywork/Skywork-Reward-V2-Qwen3-0.6B | 0.6 | 61.250 | Seq. Classifier |
| Finemath-RM-Llama-3.2-1B (ours) | 1.0 | 33.2 | Seq. Classifier |
| OpenAssistant/oasst-rm-2.1-pythia-1.4b-epoch-2.5 | 1.4 | 26.479 | Seq. Classifier |
| Model | Params (B) | AvgAcc | Type |
| Ray2333/GRM-llama3.2-3B-rewardmodel-ft | 3.0 | 90.9 | Seq. Classifier |
| stabilityai/stablelm-zephyr-3b | 3.0 | 74.0 | DPO |
| Finemath-RM-Qwen-2.5-3B (ours) | 3.0 | 70.0 | Seq. Classifier |
| Finemath-RM-Llama-3.2-3B (ours) | 3.0 | 65.6 | Seq. Classifier |
| stabilityai/stable-code-instruct-3b | 3.0 | 64.3 | DPO |
| Qwen/Qwen1.5-4B-Chat | 4.0 | 56.0 | DPO |
| Model | Params (B) | Avg Acc | Type |
| Skywork/Skywork-Reward-V2-Qwen3-4B | 4.0 | 75.51 | Seq. Classifier |
| Skywork/Skywork-Reward-V2-Llama-3.2-3B | 3.0 | 74.665 | Seq. Classifier |
| Schrieffer/Llama-SARM-4B | 4.0 | 73.793 | Seq. Classifier |
| Skywork/Skywork-Reward-V2-Qwen3-1.7B | 1.7 | 68.176 | Seq. Classifier |
| Skywork/Skywork-Reward-V2-Llama-3.2-1B | 1.0 | 64.376 | Seq. Classifier |
| Skywork/Skywork-Reward-V2-Qwen3-0.6B | 0.6 | 61.25 | Seq. Classifier |
| Model | Params (B) | AvgAcc | Type |
|---|---|---|---|
| Skywork/Skywork-VL-Reward-7B | 7.0 | 90.070 | Seq. Classifier |
| R-I-S-E/RISE-Judge-Qwen2.5-7B | 7.0 | 88.191 | Generative |
| internlm/internlm2-7b-reward | 7.0 | 87.593 | Seq. Classifier |
| ZiyiYe/Con-J-Qwen2-7B | 7.0 | 87.120 | Generative |
| opencompass/CompassJudger-1-7B-Instruct | 7.0 | 83.167 | Generative |
| CIR-AMS/BTRM_Qwen2_7b_0613 | 7.0 | 83.152 | Seq. Classifier |
| Model | Params (B) | Avg Acc | Type |
| Skywork/Skywork-VL-Reward-7B | 7.0 | 68.847 | Seq. Classifier |
| weqweasdas/RM-Mistral-7B | 7.0 | 59.601 | Seq. Classifier |
| openbmb/Eurus-RM-7b | 7.0 | 58.057 | Seq. Classifier |
| CIR-AMS/BTRM_Qwen2_7b_0613 | 7.0 | 57.363 | Seq. Classifier |
| Finemath-RM-Qwen-2.5-7B (ours) | 7.0 | 57.0 | Seq. Classifier |
| internlm/internlm2-7b-reward | 7.0 | 53.348 | Seq. Classifier |
| Task | Ep. | Optimizer | LR | KL | Rollout | Max len. | Batch size | Eval metric |
| GSM8K | 5 | Adam betas 0.9, 0.95 | 0.1 | 8 | 512 | 512 | mean@1 test accuracy using math-verify | |
| MATH | 5 | Adam betas 0.9, 0.95 | 0.1 | 8 | 512 | 512 | mean@1 test accuracy using math-verify |
| Dataset | Epochs | Optimizer | LR | Warmup ratio | Cutoff len. | Batch size |
| RLHFMix1 | 1 | Adam betas 0.9, 0.95 | – | 0.03 | 2048 | 512 |
| Labeled fraction | Pairs | Base init. | NTP init. |
| 1% | 2.4K | 23 | 32 |
| 5% | 12K | 23 | 29 |
| 10% | 24K | 24 | 29 |
| 25% | 61K | 31 | 33 |
| 50% | 122K | 32 | 44 |
| 100% | 244K | 32 | 44 |
Reward Modeling
Reward modeling learns scores or rankings that capture human goals and task success, guiding AI selection, reinforcement learning, and alignment.
See all 325 papers