Not every row is worth training on. For SFT the rule is simple: keep the
rows that passed, because those are the examples to copy. For RL the rule
is stranger, and it is the one idea in this course that surprises people.
A task the model always gets right teaches it nothing, because there is
nothing to fix. A task it always gets wrong teaches it nothing either,
because there is no good try to push toward. RL learns from the
difference between tries of the same task. So you keep the tasks in the
middle.
The mechanism
Here is the RL update in plain words, for the method most teams use
today, GRPO. Take one task and its four tries. Score each. Subtract
the group’s average score from each try. The tries above average get
pushed up, the ones below get pushed down. If all four scored the same,
every difference is zero and the update does nothing. A group like that
is a unanimous group, and the library drops it before it reaches the
trainer.
The rule of thumb that follows is the 20 to 80 percent band: keep
tasks the model currently passes between one time in five and four times
in five. Below that it cannot learn yet. Above it, it already knows.
Two more gates run at the same time.
- Duplicates. The stand-in agent repeats itself, and so do real
agents at low temperature. Identical tries carry no difference to learn
from.
- What the reward is really tracking. A model learns whatever gets
the score. If longer replies happen to score higher, it learns to be
long. The scan checks every reward against features like length and
hedging, within each task, and warns when one predicts the reward.
That warning is a reason to look at the judge before you train, not a
reason to skip it.
Run it
The judge is lesson 3’s, unchanged.
The gates are the point of the call, so read four of them.
- privileged leaks dropped: 4. Four replies recite the answer key
the grader was given. Lesson 3’s judge does not read that key, so it
passed three of them; the export would refuse them anyway. Both modes
drop them first.
- unanimous groups dropped: 10. Ten asks where every try scored the
same: the asks that name no order, where the stand-in guesses an id on
every try and never passes, and the asks it got right all four times.
Nothing to learn there. Six groups are in the middle, and those sixteen
rows are the RL set.
- reward punishes reply length (corr -0.74). The judge wants the
result in the first sentence, and the planted mistakes put a sentence
in front of it, so shorter replies really are the better ones here. On
a real judge this line means: check whether it is grading the job or
the word count. The line under it says no single feature predicts the
reward within an ask, which is the healthy reading of the same scan.
- Use repeats=16 for a firmer band. Four tries is a coarse estimate of
a task’s pass rate. The band is measured from sixteen in the source it
cites. Sixty-four rows is a lesson, not a training set.
Where it comes from
- Shao, Z. et al. DeepSeekMath: Pushing the Limits of Mathematical
Reasoning in Open Language Models. arXiv:2402.03300, 2024. GRPO: the
group average as the baseline.
- Yu, Q. et al. DAPO: An Open-Source LLM Reinforcement Learning System at
Scale. arXiv:2503.14476, 2025. Dropping unanimous groups while
sampling.
- Yuan, Z. et al. Scaling Relationship on Learning Mathematical Reasoning
with Large Language Models. arXiv:2308.01825, 2023. Keeping the passes
for SFT, called rejection sampling.
- Gao, L., Schulman, J., Hilton, J. Scaling Laws for Reward Model
Overoptimization. ICML, 2023. arXiv:2210.10760. Why a model learns what
the score rewards rather than what you meant.
- Lambert, N. Reinforcement Learning from Human Feedback. arXiv:2504.12501,
2025. Chapters Rejection Sampling, Reasoning and Inference-Time
Scaling (the 20 to 80 band) and Over-Optimization.
Next
Training is done when the held-out score moved:
export, train, and prove it. Last modified on September 20, 2026