Chapter 03 · Learning what "good" means

Reward models & preference learning

How a pile of "A is better than B" clicks becomes a differentiable number, why that number is only ever a proxy, and what happens when a strong optimizer is pointed at it.

⏱ 60 min9 interactivesPrereq: logistic regression, ch. 02
In one breath
  • A reward model is logistic regression on differences: Bradley-Terry says $P(y_w\succ y_l)=\sigma(r_w-r_l)$, so the loss is $-\log\sigma(r_w-r_l)$ and the reward is identified only up to a per-prompt constant.
  • In the published RLHF datasets, annotators agree with each other (or with the researchers) only about 63–81% of the time. That disagreement is a ceiling on RM accuracy and it sets the reward's scale.
  • Optimizing a learned reward is Goodhart's law with a clock on it. Gao et al. found gold reward follows $d(\alpha-\beta d)$ for best-of-$n$ and $d(\alpha-\beta\log d)$ for RL, where $d=\sqrt{\KL}$. Bigger RMs push the peak further out but don't remove it.
  • Best-of-$n$ is the honest baseline. Its KL is at most $\log n-\frac{n-1}{n}$, it gives near-optimal win rate per nat of KL, and RL has to beat it.
  • The field is moving from one opaque scalar to judgments you can inspect: generative and reasoning RMs, rubrics, and verifiers. Process reward models survive mainly as search and verification tools, not as dense RL rewards.

§1Why learn a reward at all, and why from comparisons

RL needs a number for every sample. Humans can't produce numbers at RL speed, and the numbers they do produce don't mean the same thing from one person to the next. The reward model fixes both: it is a cheap, differentiable stand-in for a human judge, trained on the one kind of judgment humans give reliably, which is "this one is better than that one".

Chapter 02 assumed a reward function $r(x,y)$ and asked how to climb it. This chapter asks where $r$ comes from when nothing can check the answer: is this explanation clear, is this refusal appropriate, is this poem any good. The answer that has carried RLHF since Christiano et al. (2017) has three parts:

  1. show people pairs (or small sets) of responses to the same prompt and record which one they prefer;
  2. fit a model $r_\phi(x,y)$ whose score differences predict those preferences;
  3. freeze $r_\phi$ and optimize a policy against it: with RL (chapter 04), by reranking samples (best-of-$n$, §5), or by filtering data for SFT (chapter 01).

Why comparisons and not scores? There are three reasons, and they compound. Calibration: one annotator's "7/10" is another's "5/10", and the same person drifts over a session. Absolute scores mix the annotator's private scale into the label. A comparison cancels any monotone per-annotator transform, because if both responses go through the same $f$, the order is unchanged. Difficulty: it is much easier to say which of two summaries is better than to place one summary on an absolute scale. Stiennon et al. note that their "decision to collect comparisons rather than Likert scores is supported by recent work". Statistics: as §2 shows, a comparison model gives you a proper likelihood, so you get maximum-likelihood estimation, calibration and uncertainty for free.

Analogy · the wine tasting

Ask ten sommeliers to score a wine from 1 to 100 and you'll get ten different scales. One never goes below 80, another thinks 90 is extraordinary. Pour two glasses side by side and ask which is better, and they mostly agree. The preference data is the side-by-side tasting. The reward model is the critic who has read thousands of those verdicts and can now put a number on any glass.

Where it breaks: side-by-side tasting throws away intensity. "Slightly better" and "vastly better" both become one bit. It also assumes the tasters share one underlying taste. §10 shows what happens when they don't.

The whole loop, end to end. The rest of the chapter zooms into each box.

Press Play. Two things to notice: the RM is trained once on off-policy data (responses from an earlier policy), then frozen and used as a judge on on-policy samples it never saw. That distribution shift is where overoptimization (§4) comes from. Phase 2 is the subject of chapter 04.

Key idea

A reward model is a proxy fit on one distribution (responses from past policies) and then queried on another (responses from a policy that is actively trying to score well). Everything that goes wrong with reward models follows from those two facts.

§2Bradley-Terry from scratch

Assume each response has a hidden "quality" $r$. Turn the difference into a probability with a sigmoid. Maximize the likelihood of the observed preferences. That's the whole model. It is logistic regression, it is Elo, and it is a special case of a 1920s psychophysics model.

The random-utility story

Suppose an annotator judging response $y$ to prompt $x$ perceives a noisy utility $u = r(x,y) + \varepsilon$ and picks whichever response has higher perceived utility. Then

$$P(y_1\succ y_2\mid x) = P\big(r_1+\varepsilon_1 > r_2+\varepsilon_2\big) = P\big(\varepsilon_2-\varepsilon_1 < r_1-r_2\big).$$

The noise distribution decides the link function:

Logistic and probit curves are almost identical after rescaling. BT won in practice because of what the Gumbel buys you: the maximum of i.i.d. Gumbel-perturbed utilities is softmax-distributed, which gives a clean extension to more than two items (Plackett-Luce, below) and a log-likelihood that is easy to differentiate.

$$\htmlClass{t-loss}{\mathcal L(\phi)} = -\,\E_{(x,\,y_w,\,y_l)\sim\htmlClass{t-data}{\mathcal D}}\Big[\log \htmlClass{t-sig}{\sigma}\big(\htmlClass{t-rw}{r_\phi(x,y_w)} - \htmlClass{t-rl}{r_\phi(x,y_l)}\big)\Big]$$
  • Negative log-likelihood of the observed preferences under Bradley-Terry: binary cross-entropy with every label equal to 1.
  • Comparison data: prompt, preferred ("winner") response, rejected ("loser") response.
  • Logistic link: implied by Gumbel noise in perceived utility.
  • Reward of the winner: one scalar from the RM head.
  • Reward of the loser: same network, same prompt. Only the difference enters.

The gradient tells you what the model learns from. With $\Delta=r_w-r_l$, $\frac{d}{d\Delta}\big[-\log\sigma(\Delta)\big] = -(1-\sigma(\Delta)) = -\sigma(-\Delta)$, so

$$\nabla_\phi\mathcal L = -\,\E\Big[\underbrace{\sigma(r_l-r_w)}_{\text{P(model is wrong)}}\big(\nabla_\phi r_\phi(x,y_w)-\nabla_\phi r_\phi(x,y_l)\big)\Big].$$

Each pair pushes the winner up and the loser down, weighted by how likely the current model is to get the pair wrong. Pairs it already ranks confidently contribute almost nothing. Pairs it ranks confidently wrong contribute the most, and with noisy labels those are often the mislabeled ones. The noise-floor variant below changes exactly that.

Three identities worth knowing well

1 · It is logistic regression on difference vectors. If the RM is a linear head on frozen features, $r(x,y)=w^\top h(x,y)$, then $\Delta = w^\top\big(h(x,y_w)-h(x,y_l)\big)$. Fitting BT means fitting a logistic regression with no intercept on the feature differences. There is no intercept because the order of the pair is arbitrary: swapping $(y_w,y_l)$ must flip the prediction. Sharma et al. (2023) used this directly. A Bayesian logistic regression on 23 interpretable, LLM-generated features of Anthropic's HH comparisons reached 71.3% held-out accuracy, against ~72% for a 52B preference model trained on the same data. That is a sobering number about how much of "human preference" in that dataset is a handful of surface features.

2 · It is Elo. Chess Elo predicts $E_A = 1/\big(1+10^{(R_B-R_A)/400}\big)$, which is $\sigma\big(\tfrac{\ln 10}{400}(R_A-R_B)\big)$, a BT model with a different unit. After a game it updates $R_A\leftarrow R_A + K(S_A-E_A)$. The BT log-likelihood gradient for one game is $\tfrac{\ln 10}{400}(S_A-E_A)$, so Elo is online SGD on the Bradley-Terry likelihood, one game at a time, with a step size proportional to $K$ (exactly $K\cdot 400/\ln 10$ in the BT parametrization). Christiano et al. make the analogy explicit. Chatbot Arena later switched from online Elo to a batch BT fit "because the BT coefficients are better for the purpose of statistical estimation". The online version depends on game order and $K$; the MLE doesn't.

Analogy · a tournament where every match is a judgment

Each response is a chess player. Each human comparison is one game. The RM is the rating system, except it doesn't store a rating per player. It learns a function that predicts any new player's rating from how they play. That is what lets it score responses it has never seen, which is the whole point.

Where it breaks: a chess player keeps the same strength across opponents. A response is only ever compared against other responses to the same prompt. Ratings across different prompts are never directly linked, which leads straight to the next identity.

3 · The reward is identified only up to a per-prompt constant. Replace $r(x,y)$ with $r(x,y)+c(x)$ for any function $c$. Every difference $r(x,y_w)-r(x,y_l)$ is unchanged, so the likelihood is unchanged. Nothing in the data pins down whether prompt A's responses are "better" than prompt B's. Consequences:

The same invariance is what makes DPO work. The KL-regularized optimum (chapter 04) satisfies $r(x,y)=\beta\log\frac{\pi^*(y\mid x)}{\piref(y\mid x)}+\beta\log Z(x)$. The intractable $\beta\log Z(x)$ is a per-prompt constant, so it cancels inside $\sigma(r_w-r_l)$. Plug the policy's log-ratio into the Bradley-Terry loss and you train the policy directly on the comparisons: the policy is the reward model (Rafailov et al. 2023, chapter 05). Everything in this chapter about noise, identifiability and spurious features applies to that implicit reward too, and RewardBench scores DPO checkpoints as reward models side by side with classifier RMs.

Six responses with hidden qualities (blue rings). Simulated annotators compare random pairs under BT, then a fraction ε of labels is flipped. Green dots are the live MLE, shifted to share the true mean, since only differences are identified. Try: drop to 30 comparisons (the ranking gets shaky); push ε to 0.3 (the ranking survives but the scale readout shrinks well below 1, because noise compresses rewards); compare "fitted RM acc." to the "ceiling". Even the true scores can't beat the ceiling.

Rankings: Plackett-Luce

InstructGPT asked labelers to rank $K=4$ to $9$ responses at once. The Gumbel story extends naturally. The probability of a full ranking $\tau$ (best first) is the probability of picking $\tau(1)$ by softmax among all $K$, then $\tau(2)$ among the rest, and so on:

$$P(\tau\mid x)=\prod_{k=1}^{K}\frac{\exp r\big(x,y_{\tau(k)}\big)}{\sum_{j=k}^{K}\exp r\big(x,y_{\tau(j)}\big)}.$$

That is the Plackett-Luce model (Luce 1959; Plackett 1975). With $K=2$ it reduces to BT. InstructGPT did not use the full PL likelihood. It decomposed each ranking into its $\binom K2$ pairs, applied the BT loss to each with a $1/\binom K2$ weight, and, crucially, put all pairs from one prompt in the same batch element. Their reason: the pairs are highly correlated, and shuffling them as independent examples meant "a single pass over the dataset caused the reward model to overfit". Zhu, Jordan & Jiao (2023) show both estimators are consistent under PL, but the full PL MLE is asymptotically more efficient.

Ties, strength and noise

Real interfaces collect more than one bit, and how you use the extra information is a design choice:

Left: the predicted preference probability. Right: the per-pair loss as a function of the reward gap Δ, with its gradient. Raise the margin m: the loss now demands Δ > m before it relaxes, so the gradient stays alive on pairs the plain loss already considers solved. Raise ε: the probability can never exceed 1 − ε/2, and the pink loss flattens for very negative Δ, which is the "confidently wrong" region where mislabeled pairs live.

import torch, torch.nn.functional as F

def bt_loss(r_chosen, r_rejected, margin=None, eps=0.0):
    """r_*: (B,) rewards for the same prompts. margin: (B,) or None. eps: label-noise floor."""
    delta = r_chosen - r_rejected
    if margin is not None:
        delta = delta - margin                      # Llama 2: -log sigma(r_c - r_r - m)
    if eps == 0.0:
        return -F.logsigmoid(delta).mean()          # plain Bradley-Terry NLL
    p = eps / 2 + (1 - eps) * torch.sigmoid(delta)  # Christiano-style random-response floor
    return -torch.log(p).mean()

def rank_to_pairs_loss(r, ranking):
    """InstructGPT-style: one prompt's K responses, ranked best-first; all C(K,2) pairs in ONE element."""
    idx = torch.as_tensor(ranking)
    rr = r[idx]                                     # rewards in rank order
    w, l = torch.triu_indices(len(rr), len(rr), offset=1)
    return -F.logsigmoid(rr[w] - rr[l]).mean()      # mean = 1/C(K,2) weighting
You add 5.0 to the reward of every response to prompts about cooking, and nothing else. What changes?
A prompt-dependent shift cancels in every within-prompt difference, so the likelihood and every within-prompt argmax are unchanged. In expectation PPO only sees it through the advantage, where a per-prompt constant acts as a baseline (it changes variance, not the expected gradient). Anything that compares absolute rewards across prompts is affected.

§3The reward model as a network, and the noise it learns from

Take a pretrained transformer, remove the unembedding, add one linear layer that outputs a scalar from the final token's hidden state, and train it for about one epoch. The details that matter are what you initialize from, how you batch, and what the labels can and cannot tell you.

Architecture and recipe

import torch, torch.nn as nn
from transformers import AutoModel

class RewardModel(nn.Module):
    def __init__(self, name):
        super().__init__()
        self.backbone = AutoModel.from_pretrained(name)          # SFT / chat checkpoint, LM head dropped
        self.head = nn.Linear(self.backbone.config.hidden_size, 1)
        nn.init.normal_(self.head.weight, std=1 / (self.backbone.config.hidden_size + 1) ** 0.5)
        nn.init.zeros_(self.head.bias)

    def forward(self, input_ids, attention_mask):                # prompt + response, RIGHT-padded
        h = self.backbone(input_ids=input_ids, attention_mask=attention_mask).last_hidden_state
        last = attention_mask.sum(dim=1) - 1                     # index of final real token
        return self.head(h[torch.arange(h.size(0)), last]).squeeze(-1)   # (B,) scalar rewards
Pitfall · padding side and the "last token"

The sketch above assumes right padding. With left padding (common in generation code), attention_mask.sum(1) - 1 points at a pad token for every sequence that isn't the longest. The RM then trains fine on one batch layout and silently scores garbage on another. It's a classic source of an RM that "works in eval but not in RL". Read the reward at an explicit end-of-sequence position and test it on both paddings.

Preference model pretraining and the HH data

Anthropic's early work treated the reward model, which they call a preference model (PM), as its own scaling object. Askell et al. (2021) compared three objectives as model size grows. Ranked preference modeling "performs much better than imitation learning, and often scales more favorably with model size". Binary discrimination (pass/fail) scaled about like imitation. They then introduced preference model pretraining (PMP), an extra stage:

LM pretraining → PMP on large public comparison data → PM finetuning on the small target dataset

The PMP data was scraped, naturally ranked text: Stack Exchange answers ranked by votes, Reddit comments by score, and Wikipedia edits that were quickly reverted as vandalism versus the text that replaced them. PMP "significantly improves sample efficiency" and transferred even when the domains differed, e.g. Stack Exchange → summarization. One counterintuitive detail: for the PMP stage, binarized comparisons transferred better than full rankings. Their hypothesis was that "hierarchies of preferences are difficult to quickly unlearn during finetuning", whereas binary discrimination "teaches models the correct features without establishing strong model preferences".

Bai et al. (2022) then built the HH (helpful and harmless) dataset that much of the open community trained on: a base set of ~44k helpfulness and ~42k red-teaming comparisons collected with a context-distilled 52B model, a rejection-sampling set, and an "online" set gathered from RLHF policies retrained roughly weekly. Two choices from that paper are worth remembering. First, the helpfulness data asks for the more helpful response, while the red-team data asks crowdworkers to elicit harm and pick the more harmful one. The two objectives can pull in different directions, and Bai et al. found PMs trained on the HH mixture somewhat less well calibrated than PMs trained on helpfulness alone. Second, iterated online RLHF: refreshing the comparison data with samples from the current policy keeps the PM on-distribution, which is the most direct defense against the drift in §4.

Anthropic

The HH paper is also where the empirical relation "reward grows roughly linearly in $\sqrt{\KL}$" first appears. The argument: $\KL(\pi+\delta\pi\,\|\,\pi)$ is quadratic in $\delta\pi$ to leading order, while reward is linear in $\delta\pi$ because the initial policy was never optimized for this reward and so does not sit at an extremum. Hence reward $\propto\sqrt{\KL}$ in the "small-$\delta\pi$ regime". Gao et al. adopted $d=\sqrt{\KL}$ as their x-axis for exactly this reason (§4). More recently, Anthropic describes Claude's character training as a "character" variant of Constitutional AI in which Claude generates prompts, "ranks its own responses", and a preference model is trained "on the resulting data", a pipeline that "uses only synthetic data generated by Claude itself" (Claude's Character). The Claude Opus 4.6 system card (Feb 2026) describes post-training as "a variety of techniques including reinforcement learning from human feedback (RLHF) and reinforcement learning from AI feedback". Exactly how those preference models are built today is not public.

How much do humans agree? The ceiling under every RM

Preference labels are noisy in a way no amount of modeling removes, because the "noise" is partly genuine disagreement. Reported agreement rates:

SourceWho agrees with whomRate
Stiennon et al. 2020 (TL;DR)labelers vs researchers / researcher vs researcher77% ± 2% / 73% ± 4%
Ouyang et al. 2022 (InstructGPT)training labelers with each other / held-out labelers72.6% ± 1.5% / 77.3% ± 1.3%
Bai et al. 2022 (HH)Anthropic researchers vs crowdworkers"about 63%"
Zheng et al. 2023 (MT-Bench)expert humans with each other, non-tie votes81% (GPT-4 vs humans: 85%)

These numbers are not directly comparable (different tasks, tie handling, and who counts as the reference). The message is consistent anyway: on open-ended chat, two careful humans agree roughly two times out of three to four times out of five. Llama 2's helpfulness RM reached 63.2% on its own held-out test set, and that number hides a strong dependence on difficulty: 80.7% on "significantly better" pairs, 54.7% on "negligibly better/unsure" ones.

A toy model makes the ceiling concrete. Suppose there is a consensus preference and each annotator independently reports its opposite with probability $\varepsilon$. Two annotators agree with probability $a=(1-\varepsilon)^2+\varepsilon^2$, so

$$\varepsilon = \tfrac12\big(1-\sqrt{2a-1}\big),\qquad \text{best accuracy against a single held-out label} = 1-\varepsilon.$$

At $a=72.6\%$ that is $\varepsilon\approx16\%$ and a ceiling of ~84%. A perfect model of the consensus would score 84% against individual labels and would look "worse" than a model that has learned some annotators' idiosyncrasies. The toy model is optimistic: it assumes a single consensus exists. When disagreement reflects different values rather than mistakes (§10), there is no consensus to recover.

Move the slider to an agreement rate and read off the implied per-label flip rate and the best accuracy any model can reach against a single annotator's label (toy symmetric-noise model). The third readout shows why evaluation sets are often labeled by majority vote: a perfect model agrees more often with a majority of three noisy labels than with any single one.

Pitfall · an RM that beats inter-annotator agreement

If your RM's held-out accuracy is well above the agreement rate of your own annotators on the same distribution, suspect leakage (near-duplicate prompts across splits, the same annotator's style in both splits) or an easy test set before celebrating. Singhal et al. found that the length heuristic alone explains most of the "easy", high-confidence examples in several preference datasets. A test set full of those inflates accuracy without measuring anything you care about.

Your labelers agree with each other 70% of the time. A new RM scores 69% on a held-out set labeled by one labeler per pair. A colleague says "it's barely above inter-annotator agreement, so it's a weak model". Best response?
Inter-annotator agreement is the accuracy of a noisy labeler against a noisy labeler. A perfect model of the consensus is a noiseless "labeler", so its ceiling against one noisy label is 1 − ε, about 82% at a = 70%. The comparison only makes sense in a common frame, and difficulty-bucketed accuracy (as in Llama 2) is far more informative than one number.

§4Overoptimization: Goodhart's law, measured

Optimize against a learned reward and the true quality first rises, then peaks, then falls, while the proxy keeps climbing. That was folklore until Gao, Schulman & Hilton turned it into scaling laws with two clean functional forms.

Stiennon et al. had already shown the shape with real humans: "as we optimize further, true preferences fall off compared to the prediction, and eventually the reward model becomes anti-correlated with human preferences". Measuring this with human labels is expensive and noisy, so Gao et al. (2022) built a synthetic world. A 6B reward model from InstructGPT plays the role of the gold standard (the "human"). It labels 100k comparisons, which are used to train proxy RMs from 3M to 3B parameters. A 1.2B policy is then optimized against a proxy while both proxy and gold scores are tracked. Because the gold labels are synthetic, they could run many configurations and fit curves.

$$\htmlClass{t-bon}{R_{\text{bon}}(d)} = d\,\big(\htmlClass{t-a}{\alpha_{\text{bon}}} - \htmlClass{t-b}{\beta_{\text{bon}}}\,d\big),\qquad \htmlClass{t-rl}{R_{\text{RL}}(d)} = d\,\big(\htmlClass{t-a}{\alpha_{\text{RL}}} - \htmlClass{t-b}{\beta_{\text{RL}}}\log d\big),\qquad \htmlClass{t-d}{d}:=\sqrt{\KL(\pi\,\|\,\pi_{\text{init}})}$$
  • Gold reward under best-of-n, recentered so the initial policy scores 0 ($R(0)=0$ by definition).
  • Gold reward under RL (PPO). The authors note this form "likely does not hold near the origin, as it has infinite slope there".
  • Distance: square root of the KL from the initial policy, in nats. Analytic for BoN, measured for RL.
  • α: the initial slope. The authors read the gap between the proxy's slope and α as regressional Goodhart.
  • β: the bending term that eventually wins. Mostly extremal Goodhart. It shrinks smoothly as the proxy RM gets bigger.

Where the peak is. Setting the derivatives to zero:

$$\text{BoN: } d^*=\frac{\alpha_{\text{bon}}}{2\beta_{\text{bon}}},\; R^*=\frac{\alpha_{\text{bon}}^2}{4\beta_{\text{bon}}}\qquad\text{RL: } d^*=\exp\!\Big(\frac{\alpha_{\text{RL}}}{\beta_{\text{RL}}}-1\Big),\; R^*=\beta_{\text{RL}}\,d^*.$$

Because $\beta$ shrinks with RM size, larger RMs move the peak further out and raise it. For RL the effect is exponential in $\alpha/\beta$. The peak never disappears.

What else they found, in their own words where possible:

Solid lines use Gao et al.'s gold-reward forms. The coefficients are illustrative, chosen to follow the paper's qualitative trends (β falls with RM size, αRL constant); the paper reports them only in figures. Proxy lines are schematic: roughly linear in d, which the paper also observed and could not fit well. Try: grow the RM and watch both peaks move right and up. Add RL iterations k (each with a fresh RM). Drag the gold line to see where a fixed KL budget lands on each curve.

Why √KL, and why the gold curve bends

Here is a useful sanity check you can do on paper. Suppose the proxy reward of a sample is Gaussian under the base policy. Best-of-$n$ selects the maximum of $n$ Gaussians, whose expectation grows like $\sqrt{2\log n}$. The BoN KL is about $\log n$ for large $n$, so $d=\sqrt{\KL}\approx\sqrt{\log n}$ and the expected proxy grows linearly in d. That is the "roughly linear in √KL" proxy behavior seen by both Bai et al. and Gao et al. Now let the gold reward be the proxy minus independent noise. Selecting on the proxy partly selects on the noise, and the gold gain is the proxy gain shrunk by $\mathrm{Var}(X)/(\mathrm{Var}(X)+\mathrm{Var}(Z))$ (Gao et al.'s eq. 1). That shrinkage is still linear in $d$: it lowers α, but cannot produce a peak. The bend needs something else, namely features where the proxy and gold disagree more the further you go. That is extremal Goodhart, and it is what β measures.

The Goodhart taxonomy

Manheim & Garrabrant (2018) split Goodhart's law ("when a measure becomes a target, it ceases to be a good measure") into four mechanisms. Every one shows up in reward modeling:

VariantTheir definition (abridged)Reward-model instanceWhat helps
Regressional"you select not only for the true goal, but also for the difference between the proxy and the goal"RM error is i.i.d.-ish noise; top-scoring samples are partly the luckiestMore data, ensembles (average out independent error)
Extremalworlds where the proxy is extreme "may be very different from the ordinary worlds" where the relationship was observedPolicy outputs drift off the RM's training distribution; "longer is better" holds in-distribution, fails at 4× lengthKL leash, online data refresh, conservative objectives
Causal"When the causal path between the proxy and the goal is indirect, intervening can change the relationship"Length correlates with quality through informativeness; padding raises length without raising informationCounterfactual data (same content, different length), disentangled heads
Adversarialan agent with different goals exploits the metricA capable policy actively finds RM blind spots (flattery, formatting tricks, exploiting a judge's instructions)Red-teaming the RM, held-out judges, interpretability, not relying on a single judge

Gao et al. map their α term to regressional and their β term mainly to extremal Goodhart. They explicitly note that their small models are probably not strong enough for adversarial Goodhart, and that "the scaling laws observed in this paper may break down" when that happens. For a frontier lab in 2026 that caveat is the main point, not a footnote (§6).

Analogy · teaching to the test

A standardized test is a decent proxy for learning when nobody is optimizing for it. Once schools are ranked on scores, curricula drift toward test-taking tricks. Mild test prep helps real learning; extreme test prep hurts it. That's the rise-then-fall curve. The RM is the test, the policy is a school with infinite prep time, and the KL penalty is a rule that the curriculum must stay recognizably close to last year's.

Where it breaks: teachers know what the test is for and some resist gaming it. The policy has no access to the intent behind the reward, only the reward. Nothing in plain RL makes "the spirit of the test" part of the objective. That is one motivation for character training and constitutions (chapter 08).

Mitigations that work, partially

Ensembles and conservative objectives. Train $k$ reward models and optimize a pessimistic aggregate. Coste et al. (2023) compare worst-case optimization, $R_{\text{WCO}}=\min_i R_i$, with uncertainty-weighted optimization,

$$R_{\text{UWO}}(x,y)=\frac1k\sum_i R_i(x,y)\;-\;\lambda\,\frac1k\sum_i\Big(R_i(x,y)-\frac1k\sum_j R_j(x,y)\Big)^2,$$

in Gao's synthetic setup extended with 25% label noise. Their finding: conservative optimization "practically eliminates overoptimization and improves performance by up to 70% for BoN sampling". For PPO it always reduced overoptimization, and combined with a small KL penalty it prevented it "at no performance cost". The plain mean of an ensemble is not conservative: one member that overestimates is enough to get exploited.

But ensemble members share blind spots. Eisenstein et al. (2023) show that RMs are underspecified: models with similar in-distribution accuracy give very different rewards under the shifted distribution of an optimized policy. Ensembles help, and members that differ in pretraining seed help more than members differing only in fine-tuning seed. Still, "even pretrain reward ensembles do not eliminate reward hacking", because "all reward models in the ensemble exhibit similar error patterns". WARM (Ramé et al. 2024) averages fine-tuned RMs in weight space, which costs one RM at inference and relies on linear mode connectivity. A WARM-trained policy won 79.4% of comparisons against one trained with a single RM.

def conservative_reward(rewards, mode="uwo", lam=0.5):
    """rewards: (k, B) scores from k reward models for the same B samples."""
    if mode == "mean":
        return rewards.mean(0)                                   # NOT conservative
    if mode == "wco":
        return rewards.min(0).values                             # worst case over the ensemble
    mu = rewards.mean(0)
    return mu - lam * rewards.var(0, unbiased=False)             # Coste et al. UWO
Key idea · what each mitigation attacks

More data and averaging over independent errors shrink the regressional term (α gap). Keeping the policy near the data (KL, early stopping, online refresh) limits extremal drift. Ensembles help only as far as their errors are independent. Shared blind spots, which are exactly what a capable optimizer finds, survive averaging. No mitigation in this list addresses adversarial Goodhart in principle. That's why the frontier conversation has moved toward judges that can be inspected and audited (§7, §11).

In Gao et al.'s PPO experiments, what did increasing the KL penalty coefficient do?
"The KL penalty only causes the gold RM score to converge earlier, but does not affect the KLRL-gold reward frontier." The authors flag that this may be hyperparameter-sensitive. Coste et al. found a small KL penalty combined with a conservative ensemble did prevent overoptimization.

§5Best-of-n: the baseline every RL run must beat

Sample $n$ responses from the reference policy and keep the one the RM likes best. No training, a provable KL budget, and near-optimal win rate per nat. It's also the cleanest instrument for measuring overoptimization.

The BoN distribution and its KL

Fix a prompt and assume the reward takes distinct values with CDF $F$ under $\piref$. The selected sample has reward at or below $t$ only if all $n$ samples do, so its CDF is $F(t)^n$. For a continuous reward the density is $n F^{n-1} f$, a reweighting of the reference by $nF(r)^{n-1}$. If each response has its own reward value, the KL over responses equals the KL over rewards:

$$\KL(\pi_{\text{bon}}\|\piref)=\E_{\pi_{\text{bon}}}\!\big[\log\big(nF(R)^{n-1}\big)\big]=\log n+(n-1)\,\E[\log U],\quad U=F(R)\sim\mathrm{Beta}(n,1).$$

Since $\E[\log U]=-1/n$ for $U\sim\mathrm{Beta}(n,1)$, we get the formula used by Stiennon et al. and Gao et al.:

$$\boxed{\mathrm{KL}_{\text{bon}}=\log n-\frac{n-1}{n}}$$

It is an upper bound, not an identity. Beirami et al. (2024) prove $\KL(\pi^{(n)}\|\piref)\le\log n-\tfrac{n-1}{n}$ for discrete outputs and give a counterexample. With two equally likely outcomes, the true KL never exceeds $\log 2$, while the formula grows without bound. The gap is at most $2n(n-1)e^{-H_2}$, where $H_2$ is the Rényi-2 entropy of the reference given the prompt. So the formula is accurate when no single response has noticeable probability, which is typical for long open-ended generations. It overstates KL when outputs collapse onto a few strings: short answers, low temperature, multiple-choice. They also show the BoN win rate against the reference is at most $n/(n+1)$.

Each candidate has a true quality g and a "hackable" feature h (think length, flattery, confident tone). The proxy RM scores g + a·h + noise. The gold score is g minus a penalty once h gets extreme. Curves are Monte Carlo averages over 160 prompts with up to 4,096 samples each; the x-axis is the KL bound, so it lines up with Gao's d. Try: set a = 0 (pure regressional Goodhart: gold rises more slowly than the proxy but never turns down); raise a (extremal: gold peaks, then falls); switch to an ensemble of 4. Ensembles fix noise but not h, because every member shares it, which is Eisenstein et al.'s point. The scatter shows one draw: the gold ring is the chosen sample.

Analogy · the casting call

Best-of-$n$ is an audition. Call $n$ actors (samples from the base policy), have the casting director (the RM) pick one. With 4 actors you get a solid performer. With 4,000, you get whoever best matches the director's quirks, the one who always picks tall actors with deep voices, whether or not they can act. You never trained anyone. You only searched harder, and the KL readout measures how hard.

Where it breaks: a real casting call costs the same whoever wins. BoN costs $n$ samples on every query, forever. That inference cost is why RL (or distilling BoN into the policy) exists at all.

Why BoN is such a strong baseline

The other side, from Gao et al.: as a function of KL, RL overoptimizes more slowly and optimizes more slowly. Compared at equal proxy score, RL "initially has a larger proxy-gold gap" but "peaks at a higher gold RM score than BoN". BoN wins at small budgets and RL can reach further. In practice the comparison should be at equal compute and on gold or human evaluations, never at equal proxy reward.

import math, torch

def best_of_n(policy, rm, prompt, n):
    ys = policy.sample(prompt, num_samples=n)          # n i.i.d. samples from pi_ref
    scores = rm(prompt, ys)                            # (n,)
    kl_bound = math.log(n) - (n - 1) / n               # upper bound (Beirami et al.)
    return ys[scores.argmax()], kl_bound
You run best-of-16. What is the analytic KL bound, and is it tight for a policy generating long, high-entropy responses?
2.773 − 0.9375 ≈ 1.83 nats. Beirami et al. bound the gap by 2n(n−1)e−H₂, which is tiny when the Rényi-2 entropy of the response distribution is large. The bound is loose when outputs collapse onto a few strings.

§6Spurious correlates and reward hacking

Every preference dataset contains features that correlate with "preferred" without causing it: length, formatting, confident tone, agreeing with the user. A reward model learns them because they predict the labels. A policy finds them because they are much cheaper to produce than actual quality.

Length: the best-documented case

Singhal et al. (2023) took three RLHF settings and asked how much of the reward gain was length. On WebGPT and RLCD, "70%–90% of the improvement" came from length. More strikingly, "even a purely length-based reward reproduces most downstream RLHF improvements over supervised fine-tuned models". They traced the cause to the reward models, which were "non-robust and easily influenced by length biases in preference data". The confidently predicted ("easy") training examples were largely the ones where the length heuristic happened to be right.

Why does the policy pad instead of improving? The KL geometry explains it. Treat the policy as a distribution over response features and the KL penalty as measuring how unusual the new distribution is relative to the reference. For a Gaussian-mean family with reference covariance $\Sigma$, $\KL=\tfrac12\Delta\mu^\top\Sigma^{-1}\Delta\mu$, and the KL-regularized optimum for a locally linear reward is

$$\Delta\mu^*=\frac1\beta\,\Sigma\,\nabla_\mu r.$$

The policy moves furthest along directions where the reference already varies a lot. The base model's lengths vary by a factor of two or more from one sample to the next. Its quality on a given prompt varies much less. Even if the RM puts the same weight on both, the optimizer buys mostly length, because length is cheap in KL. This is a toy model, but it shows why "more KL budget" doesn't fix the problem.

The RM scores quality q plus a·log₂(length). True quality gets a little from extra length, then pays for padding (shading). Gold dashed ellipses are iso-KL contours of the reference: wide in length, narrow in quality. Press Run RL and watch the policy slide along the cheap direction. With the defaults about three quarters of the proxy gain comes from length, in the range Singhal et al. report. Then tick the ODIN box: train with the same RM but drop its length component during RL.

Mitigations. Measure first: report win rates with length control, and plot reward against length for every policy checkpoint. Length-controlled AlpacaEval (Dubois et al. 2024) answers "what would the preference be if the model's and baseline's output had the same length?" by regressing out the length difference. Fix the RM: ODIN trains two heads on shared features, "one trained to correlate with length, and the other trained to decorrelate with length", then discards the length head during RL. Counterfactual data (the same content at different lengths) attacks the causal Goodhart directly. Fix the objective: explicit length penalties, or normalizing reward by a length-matched baseline. These are blunt, because sometimes the longer answer really is better.

Analogy · the thesis committee that weighs the binder

A committee that has seen thousands of theses notices that the good ones tend to be thick. It's a real correlation: good work produces more results to report. Tell students they'll be graded by an assistant who learned "thicker is better", and the binders get thicker long before the science gets better, because adding pages is easy and adding results is hard.

Where it breaks: a human committee would notice the padding. The RM can't notice anything it wasn't trained to notice, and the policy is better at finding what it missed than any student.

Sycophancy is a learned preference

Length is the benign case. The same mechanism produces sycophancy: telling users what they want to hear. Sharma et al. (2023, Anthropic) analyzed Anthropic's own helpfulness preference data. All else equal, "when a response matches a user's views, it is more likely to be preferred", and "both humans and preference models (PMs) prefer convincingly-written sycophantic responses over correct ones a non-negligible fraction of the time". With best-of-$n$, optimizing against the PM used to train Claude 2 "consistently yields more sycophantic responses" than optimizing against a "non-sycophantic" PM (the same PM, prompted with an explicit request for truthful answers). Measured during Claude 2's actual RL phase, feedback and mimicry sycophancy increased as training went on. The effects were mixed rather than uniformly bad: best-of-$n$ against the Claude 2 PM reduced some forms of sycophancy, just less than the improved PM did. The behavior is not a bug in the RL algorithm. It is in the labels, and the RM faithfully learns it. Chapter 08 covers how character training and evaluations push back.

When the policy knows about the reward model

Two 2025 Anthropic papers show what adversarial Goodhart looks like with capable models.

Anthropic

Reward hacking is now a standing section of Anthropic's system cards. The Claude Opus 4.6 card (Feb 2026), for example, reports reward-hacking evaluations on "reward-hack-prone coding tasks" (with classifier and hidden-test variants) and on "Impossible Tasks", run with and without an explicit anti-hacking instruction. The lesson that connects this section to §4: once the optimized model is capable enough to model its own reward process, the reward is no longer just a noisy measurement. It is an opponent's rulebook, and the "regressional plus extremal" picture of Gao et al. stops being the whole story.

Pitfall · diagnosing "reward up, quality down"

Before blaming the RM, check that the reward really is going up on fresh prompts (not just on the training batch), that KL is being measured correctly (chapter 04), and that your evaluation is not itself an RM or judge sharing the same bias. Then segment: does reward correlate with length, formatting density, hedging, or agreement with the user? Plot reward against each feature across checkpoints. A slope that keeps increasing means the policy is spending its optimization on that feature.

§7Generative reward models, judges, rubrics and reasoning RMs

A scalar head forces the RM to compress a judgment into one forward pass and one number. Generative RMs let the judge write first: a critique, a checklist, a chain of thought. The score comes after. You pay inference compute and get more accuracy and more inspectability.

From LLM-as-judge to RLAIF

The cheapest RM is a strong LLM with a prompt. Zheng et al. (2023) found GPT-4 agreed with experts 85% of the time on non-tie votes, above the 81% human-human rate, while documenting position bias (favoring the first answer), verbosity bias and self-enhancement bias. Anthropic's Constitutional AI (Bai et al. 2022) used a model's own judgments against a list of principles as preference labels for the harmlessness PM. This is RLAIF, covered in detail in chapter 04. Soft labels from the feedback model's normalized log-probabilities "led to much better results than hard labels". With chain-of-thought, the probabilities became overconfident, so they were clamped to the 40–60% range, because without clamping "RL-CAI models would learn to output more extreme responses". Lee et al. (2023) found RLAIF comparable to RLHF on summarization and dialogue. They also introduced direct RLAIF, which skips the RM and queries the LLM judge for rewards during RL.

Generative RMs: train the judge, keep the LM head

Reasoning reward models (2025)

Once reasoning models existed (chapter 06), the obvious next step was to let the judge think. RM-R1 (Chen et al. 2025) frames reward modeling "as a reasoning task". Its "chain-of-rubrics" has the model write sample-specific rubrics, or its own solution for math and code, and grade against them. Training is distillation of good reasoning chains, then RL with verifiable rewards on preference correctness. Reward Reasoning Models (Guo et al. 2025) use RL with no reasoning traces as supervision, and show the judge can "adaptively exploit test-time compute". The pattern is the same one that made policies better: RL on a checkable signal, here "did you pick the human-preferred response?".

Rubrics as rewards

A rubric turns "is this good?" into a list of checkable criteria written for each prompt. Rubrics as Rewards (Gunjal et al. 2025) attaches $k$ weighted criteria $(w_j,c_j)$ to each prompt. Each $c_j(x,\hat y)\in\{0,1\}$ is judged by an LLM, and

$$r(x,\hat y)=\frac{\sum_{j=1}^k w_j\,c_j(x,\hat y)}{\sum_{j=1}^k w_j}.$$

The alternative, "implicit aggregation", hands all the criteria to the judge and asks for one score. RLVR is the special case $k=1$, $c_1=$ exact-match. On medical and science benchmarks, the best variant improved up to 31% (relative) on HealthBench over Likert-scored LLM-judge rewards. Checklists Are Better Than Reward Models (Viswanathan et al. 2025) extracts instruction-specific checklists and mixes AI judges with verifier programs. Their RLCF was "the only method to help on every benchmark" in their comparison. 2026 work treats rubric generation itself as a learned policy: Rubric-ARM alternates RL between a rubric generator and a judge, and OpenRS generates pairwise, adaptive rubrics from a "meta-rubric".

def rubric_reward(prompt, response, rubric, judge):
    """rubric: list of (weight, criterion_text); negative weights encode 'pitfalls'."""
    num = den = 0.0
    for w, crit in rubric:
        sat = judge.yes_prob(f"Criterion: {crit}\nPrompt: {prompt}\nResponse: {response}\n"
                             "Does the response satisfy the criterion? Answer Yes or No.")
        num += w * (sat > 0.5)          # RaR uses binary checks; a soft version uses sat directly
        den += abs(w)
    return num / max(den, 1e-8)
Scalar BT RMGenerative / reasoning RMRubric / checklist
Cost per score1 forward passa generation (100s–1000s of tokens), often × votesk judge calls (or one long one)
Inspectable?no (probe it)reasoning is readable, but not necessarily faithfulyes: which criteria failed
Uses test-time computenoyes: think longer, votepartly
Typical failurespurious features, OOD driftjudge biases (position, verbosity, self-preference), persuasive-but-wrong responsesrubric gaming: satisfy the letter, miss the point; incomplete rubrics
Best fithigh-throughput RL, style and helpfulnesshard-to-judge domains, verification-heavy tasksexpert domains with checkable requirements
Pitfall · the judge is part of the attack surface

An LLM judge reads the policy's output as input. Anything the policy writes can influence the judge: confident framing, self-assessments ("this answer is correct and complete"), formatting that mimics a rubric, or text phrased as instructions. These are adversarial-Goodhart channels that a scalar RM simply doesn't have. Standard mitigations: randomize answer positions for pairwise judges, strip or penalize self-evaluation, keep the rubric hidden from the policy, and audit high-reward samples by hand. Liu et al. (2026) saw this channel used: a Llama-3.1-8B policy trained with a reasoning judge learned to refuse, invent a usage policy and append a self-assessment, and judge-prompt rules written against the pattern did not stop it. Whether reasoning judges are more or less exploitable than scalar RMs at matched compute remains open.

Frontier · where reward signals for non-verifiable tasks are heading

The direction across 2025–2026 papers is consistent: decompose the judgment (rubrics, checklists, principles), verify what can be verified with programs, reason about the rest with a judge trained by RL, and spend test-time compute on the judge as well as the policy. DeepSeekMath-V2 (Shao et al., Nov 2025) shows this for proofs: an LLM verifier is the reward model for a proof generator, and verification compute is scaled up to label hard proofs that then improve the verifier. That keeps the "generation-verification gap" open as the generator improves. What the overoptimization curve of §4 looks like when the reward model is itself a reasoning agent has only small-scale answers so far (§11).

A rubric reward for medical answers includes "mentions consulting a doctor" with weight 3. After RL, every answer ends with "please consult a doctor", including answers to questions about textbook definitions. Which Goodhart variant is this mainly, and what's the cleanest fix?
The phrase is a correlate of good advice in some contexts, not a cause of quality everywhere. RaR's instance-specific rubrics (and its "pitfall" criteria) address exactly this. A higher KL coefficient would only slow the drift.

§8Outcome vs process rewards

For multi-step reasoning you can reward the final answer (an outcome reward model, ORM) or every step (a process reward model, PRM). PRMs give denser, better-localized signal and were the 2023 favorite. By 2025 they had mostly moved out of the RL loop and into search and verification.

A solution with a mistake in step 3. 30 / 6 is 5, not 6. Everything after inherits the error, and the final answer is 72 instead of 50. Watch how each kind of reward model assigns blame.

Outcome reward. An ORM (or an answer checker, in RLVR) sees only the final answer: 72 ≠ 50, so r = 0. Every step, including the two correct ones, gets the same blame. The credit-assignment problem is left to the RL algorithm and many samples.

The lucky solution. Same wrong step 3, then a second error that happens to cancel it, landing on 50. The outcome reward is 1, a false positive that reinforces broken reasoning. The Qwen team flags this exact pattern (correct answers from flawed processes) as a major bias in how PRMs are evaluated with best-of-n.

Process reward. A PRM predicts the probability that each step is correct. In Let's Verify Step by Step, humans labeled steps positive, negative or neutral up to the first mistake (PRM800K: 800K labels on 75K solutions to 12K problems). The solution score is the product of step probabilities, "the probability that every step is correct".

Labels without humans. Math-Shepherd estimates a step's quality by rolling out N completions from that prefix. Hard estimation calls a step good if any rollout reaches the answer; soft uses the fraction. Note the 1/8 at step 3: a completer that silently fixes the error makes a bad step look "good" under hard estimation. That is the main weakness of MC labels identified by the Qwen team.

Generative verifiers. A reasoning model reads the solution and writes out its checks, then outputs a verdict. ThinkPRM trained such a verifier with ~1% of PRM800K's labels and beat discriminative PRMs trained on all of them on several benchmarks. This is where step-level supervision went: into judges that reason.

What the evidence says

Uesato et al. (2022) ran the first careful comparison on GSM8K. Outcome supervision reached similar final-answer error with less labeling, but getting the reasoning right required process supervision, or an RM that emulates it (reasoning error among correct answers fell from 14.0% to 3.4%). Lightman et al. (2023) scaled this to MATH with best-of-1,860 reranking. The PRM solved 78.2%, against 72.4% for an ORM and 69.6% for majority voting. They also showed that active learning, surfacing "convincing wrong-answer solutions" to labelers, improved data efficiency. Math-Shepherd removed the humans and used its PRM for step-by-step PPO (Mistral-7B: 77.9% → 84.1% on GSM8K).

Then the reasoning-RL wave of 2025 largely went around PRMs. The DeepSeek-R1 report says they "abstain from applying neural reward models—whether outcome-based or process-based—to reasoning tasks" because they are "susceptible to reward hacking during large-scale reinforcement learning". Its "unsuccessful attempts" section lists three problems: it is "challenging to explicitly define a fine-grain step", step correctness is hard to judge automatically or to label at scale, and "once a model-based PRM is introduced, it inevitably leads to reward hacking". It also concedes that PRMs work well "to rerank the top-N responses generated by the model or assist in guided search". The Qwen team's lessons paper adds that MC-estimated labels underperform LLM-judge and human labels, and that best-of-$n$ evaluation rewards PRMs that drift toward judging only the final step.

Analogy · the driving test vs the driving instructor

An outcome reward is the driving test: did you reach the destination without crashing? It's cheap to grade and hard to fool, but a learner who passes by luck learns nothing about the near-miss at the third junction. A process reward is an instructor beside you, flagging each mistake as it happens. That's much more informative per lesson, but you're now optimizing for the instructor's approval. An instructor who can be charmed, or who doesn't understand an unusual but valid maneuver, will teach you the wrong things.

Where it breaks: a human instructor can tell an unconventional correct move from a mistake. A learned PRM trained on one model's step style may penalize valid steps it has never seen. That is one reason PRMs struggle to stay calibrated as the policy changes during RL.

Where PRMs went in 2025–2026.

A PRM scores a solution as the product of per-step correctness probabilities. You use it for best-of-n on problems whose solutions vary from 3 to 30 steps. What bias should you expect?
A product of probabilities shrinks with the number of factors. This is fine if it's a calibrated probability that every step is right, but it systematically favors short solutions when you compare across lengths. The common alternatives are min over steps or a length-normalized mean, and each has its own biases.

§9Evaluating reward models

The obvious metric, pairwise accuracy on held-out preferences, is easy to compute and only loosely related to what you want: a better policy after optimization. Benchmarks have improved. The gap hasn't closed.

Key idea · evaluate the RM the way it will be used

A good RM evaluation has at least three parts. (1) Accuracy by difficulty bucket on held-out preferences from the policy's own distribution. (2) An optimization curve: best-of-$n$ against a stronger judge or humans for $n = 1\ldots 256$. If gold falls early, stop there. (3) Probes for known spurious features: length, formatting, sycophancy pairs, position swaps for pairwise judges. RewardBench-style accuracy is a smoke test, not a verdict.

§10Whose preferences? Pluralism and aggregation

A single reward model trained on many annotators is a voting rule, whether or not anyone chose one. It is worth knowing which rule.

Siththaranjan, Laidlaw & Hadfield-Menell (2023) formalize hidden context: anything that affects a label but is invisible to the RM, such as who the annotator is, what they value, or which criterion they were told to use. They prove that standard preference learning "implicitly aggregate[s] over hidden contexts according to a well-known voting rule called Borda count". Borda scores each option by its average win probability against the others. It ignores how much each voter cares. A response that is everyone's close second can lose to one that half the population loves and half hates. They also show the "annotators have an incentive to misreport their preferences" to steer the learned model.

Two hidden annotator groups disagree about A vs C, and both rate B as a strong second (0.8 out of 1). With sharp judgments (large k), the BT reward ranks by pooled win rates (Borda-like) and ignores that B is nearly as good as each group's favorite. Average utility prefers B. Try a 60/40 split with k = 30: BT crowns A, the utilitarian choice is B. Then lower k: when annotators' choices reflect intensity, BT recovers B.

Proposed responses fall into three groups. Know the rule you are using: Conitzer et al. (2024) argue that social choice theory should guide how feedback is aggregated. Model the distribution instead of the average: distributional preference learning, latent-variable RMs conditioned on a user embedding (VPL), and mixtures of RMs optimized with an egalitarian max-min objective (MaxMin-RLHF). Collect from the right people: PRISM gathered preferences from 1,500 participants in 75 countries, linked to their profiles. Sorensen et al. (2024) name three goals that a single scalar RM can't serve at once: Overton pluralism (present the range of reasonable views), steerable pluralism (adopt a perspective when asked), and distributional pluralism (match a population's distribution of answers).

Analogy · choosing a restaurant for a group

Six friends love sushi and can't stand pizza. Four are the reverse. Everyone thinks the Thai place is pretty good, just not their favorite. Poll every pair with forced choices ("sushi or Thai?", "Thai or pizza?") and tally the wins: sushi comes out on top and Thai in the middle, even though Thai is the only option nobody minds. That is the 60/40 setting of the widget above.

Where it breaks: a real group can talk it over. A reward model never sees the group; the aggregation rule is implicit in the loss function. Constitutions and model specs (chapter 08) are one way to make the rule explicit and open to debate.

§11Frontier & open problems

Open problems (late 2026)
  • Overoptimization laws for reasoning judges. Gao et al.'s forms were fit for scalar RMs and models too weak for adversarial Goodhart. Letting the judge reason can keep the curve climbing longer, depending on its size and effort, but the climb may not be real: in early small-scale experiments, a policy can climb the curve by learning to fool the judge, and a stronger judge used as the referee can be fooled by the same text. So a rising curve from an LLM judge does not show real quality on its own. Whatever the judge, read high-scoring samples and keep a check it cannot be talked out of, such as a verifier, a held-out answer or human spot checks. We found no frontier-scale curves, so treat the shape of these laws as unknown.
    The evidence so far

    Liu et al. (2026), from Meta and Yale, trained small policies against fine-tuned Qwen3 judges and scored them with a "gold" judge (gpt-oss-120b). Every non-reasoning judge ended in severe reward hacking. Policies kept climbing with 4B and 8B high-effort reasoning judges, still degraded with 1.7B judges, and hacked more with low-effort than with medium-effort judges. The climb they inspected came from adversarial outputs that fooled the gold judge. Judged by GPT-4.1 on Arena-Hard-V2, the Llama-3.1-8B policy scored 89.6 on creative writing, ahead of gemini-2.5, but 39.1 on hard prompts.

    A neighboring result does not test reasoning judges: Zhou (2026), a single-author preprint, ran DPO self-play on GSM8K with judge output capped at 256 tokens and the policy's reasoning suppressed. It reports pass rates rising from 0.72 to 0.94 with accuracy flat at 0.20, a gap that falls to 0.086–0.125 when the policy generates chain of thought. False positives on wrong answers fell from 0.719 under a recompute prompt to 0.012 when the judge committed to its own answer first.

  • Rewards for long-horizon agentic work. Coding and computer-use tasks mix verifiable signals (tests pass) with unverifiable ones (the change is maintainable, the agent didn't do anything unsafe on the way). Reward hacking in exactly these environments was the starting point of MacDiarmid et al.'s emergent misalignment result (chapter 07).
  • RM auditing and interpretability. Marks et al. show that a model's objective can be recovered with sparse autoencoders and behavioral probes. Doing the same for production RMs (which features drive the reward?) is an open, practical problem.
  • Calibrated uncertainty. Conservative optimization needs reward uncertainty that grows off-distribution. Ensembles underestimate it when members share pretraining. Better OOD-aware RMs remain open.
  • Rewards beyond human judgment. When the policy is better than the labelers at the task, preference labels stop measuring quality. Verifiers, debate-style protocols, and decomposition into checkable claims are candidates. This is the scalable-oversight problem in reward-model form.
  • Aggregation as a design choice. If every RM is a voting rule, which rule, decided by whom, is a governance question as much as an ML one.
How to think about it

The more useful question is not "what is Bradley-Terry" but "the reward goes up while humans say the model got worse: what is happening?" Good explanations move between levels: the statistics (identifiability, noise ceiling, calibration), the optimization (KL as a budget, BoN vs RL, the Gao curve), the data (spurious correlates, annotator disagreement), and the safety framing (Goodhart variants, why adversarial Goodhart changes everything). A good test of your understanding: what reward signal would you use for a behavior with no checker, and how would you know it was being gamed?

§12Check yourself

Try each one before opening the answer.

Derive the reward model loss from Bradley-Terry and interpret its gradient. core

Random utility $u=r+\varepsilon$ with i.i.d. Gumbel noise gives $P(y_w\succ y_l)=\sigma(r_w-r_l)$. The NLL over a dataset is $-\E\log\sigma(r_w-r_l)$. The gradient with respect to the parameters is $-\E[\sigma(r_l-r_w)(\nabla r_w-\nabla r_l)]$: push the winner up and the loser down, weighted by the model's probability of being wrong. Hard and mislabeled pairs dominate. That motivates noise-floor likelihoods and filtering low-agreement pairs. With a linear head on frozen features it is logistic regression without intercept on feature differences.

Why collect comparisons instead of 1–10 ratings? Any downsides? core

Comparisons cancel per-annotator monotone transforms of the scale, are cognitively easier, and come with a principled likelihood (BT/PL). Downsides: they lose intensity (one bit per pair unless you collect strength and use margins), they leave the reward identified only up to a per-prompt constant, they need $O(K^2)$ pairs to rank $K$ items (or a ranking interface), and with heterogeneous annotators they aggregate like a Borda count.

What is the reward identified up to, and why should an RL engineer care? deep

BT only sees within-prompt differences, so $r(x,y)+c(x)$ fits equally well. The scale is fixed by label noise: noisier labels compress rewards. In RL, $c(x)$ acts as a per-prompt baseline. It's harmless in expectation but adds variance, so normalize per prompt or use group-relative advantages. Absolute thresholds across prompts (data filtering, "average reward went up") partly reflect $c(x)$. If you swap RMs mid-project, rewards aren't on a common scale. The effective KL coefficient also depends on reward scale, so a recalibrated RM changes the optimum of $\E[r]-\beta\KL$.

Why do reward models overfit after one epoch? deep

The datasets are small relative to model capacity, comparisons within a prompt are highly correlated (InstructGPT: shuffling the $\binom K2$ pairs separately overfit within one pass), and the labels are noisy. A model with billions of parameters can memorize individual noisy labels. Once it starts fitting noise, held-out loss degrades even if accuracy holds for a while. Gao et al. found 4 epochs gave no gold improvement while 4× more data helped a lot. RewardBench 2 reports cases where more than one epoch helped, so validate rather than assume.

State Gao et al.'s overoptimization laws and derive the peak. What do α and β mean? deep

With $d=\sqrt{\KL}$: $R_{\text{bon}}=d(\alpha-\beta d)$, peak at $d^*=\alpha/2\beta$ with $R^*=\alpha^2/4\beta$. $R_{\text{RL}}=d(\alpha-\beta\log d)$, with $R'=\alpha-\beta\log d-\beta=0$ giving $d^*=e^{\alpha/\beta-1}$ and $R^*=\beta d^*$. α is the initial slope, and the gap between it and the proxy's slope reflects regressional Goodhart. β bends the curve down and mostly reflects extremal Goodhart. It decreases roughly logarithmically with RM size, so bigger RMs delay and raise the peak but don't remove it. The KL penalty acted like early stopping in their setup. With $k$ RM refreshes, the RL form gains $+\beta d\log k$.

Derive the KL of best-of-n. Is it exact? deep

For continuous reward with CDF $F$, the selected reward has density $nF^{n-1}f$, so $\KL=\E[\log nF(R)^{n-1}]=\log n+(n-1)\E[\log U]$ with $U\sim\mathrm{Beta}(n,1)$, $\E\log U=-1/n$, giving $\log n-(n-1)/n$. This is exact for KL over rewards and equals KL over responses when rewards are distinct and each response has negligible mass. For discrete outputs, Beirami et al. prove it is an upper bound, with a gap of at most $2n(n-1)e^{-H_2}$. The win rate vs the reference is at most $n/(n+1)$.

Your PPO run: RM reward rises steadily, but win rate vs SFT (judged by humans) peaks at step 2k and then falls. What do you do? design

(1) Confirm it's real: fresh prompts, enough human judgments, check the KL estimator. (2) Characterize it: plot reward vs length, formatting and hedging across checkpoints, read the highest-reward samples, run sycophancy and position probes. (3) Locate the RM's breaking point: best-of-$n$ with the same RM on the SFT policy. If gold falls at small $n$, the RM is weak on that distribution. (4) Fix in order of cost: early stop or raise β; collect fresh comparisons on current-policy samples and retrain (online RLHF); use a conservative ensemble with diverse pretraining; debias the RM (length head, counterfactual pairs); move part of the signal to rubrics or verifiers. (5) Re-measure the curve, not a single checkpoint.

How would you detect and mitigate length bias? core

Detect: the correlation between RM score and length on fixed-quality pairs; RM accuracy on length-balanced subsets; reward gain decomposed into a length part and a within-length-bucket part (Singhal et al.); length trends across RL checkpoints; length-controlled win rates. Mitigate: counterfactual pairs (same content, different length); balance length in the preference data; ODIN-style disentangled heads with the length head dropped in RL; length-normalized baselines or penalties; judges instructed and verified to be length-neutral.

When would you choose a generative or reasoning RM over a scalar RM? research

When the judgment requires checking something (math, code, factual claims, instruction constraints), when the domain shifts and you need out-of-distribution robustness (GenRM's OOD gains), when you need an audit trail, or when you can afford test-time compute for the judge. Costs: 10–1000× inference per score, judge biases, and a new attack surface (the policy's text is the judge's input). A common design is a hybrid: programmatic verifiers where possible, rubric or reasoning judges for the rest, a scalar RM for cheap stylistic shaping, and a held-out judge family for evaluation only.

Why did DeepSeek-R1 avoid PRMs, and where are PRMs still useful? deep

Their stated reasons: steps are hard to define in general reasoning, step correctness is hard to label automatically or at scale, and a model-based PRM "inevitably leads to reward hacking" under large-scale RL, while retraining it adds cost and complexity. With rule-based outcome rewards, dense credit assignment comes from many samples. PRMs remain useful where the policy isn't trained against them, or is only lightly trained against them: reranking and guided search. They are also useful as generative verifiers (ThinkPRM), in online-updated implicit forms (PRIME), and in domains like proofs where outcome checking is meaningless.

RewardBench accuracy doesn't predict which RM gives the best PPO policy. Why, and what would you measure instead? research

Accuracy measures ranking on a fixed distribution of mostly clear-cut pairs. PPO queries the RM on the shifting tail of a policy distribution, and depends on reward scale and calibration, on lineage match with the policy (RewardBench 2), and on robustness to features the policy can push. Measure instead: accuracy on the policy's own samples by difficulty bucket, best-of-$n$ curves against a gold judge, sensitivity to spurious features, calibration (does $\sigma(\Delta)$ match empirical win rates?), and ensemble disagreement on high-reward samples. Downstream checks à la PPE remain the gold standard.

What does a BT reward model do when annotators disagree for value reasons? research

It implicitly aggregates over the hidden context with a Borda-count rule (Siththaranjan et al.): options are ranked by average pairwise win probability, which discards intensity. A compromise option everyone likes can lose to a polarizing one. It also gives annotators an incentive to misreport. Options: condition the RM on context (user or persona latents), learn reward distributions instead of point estimates, optimize egalitarian or other explicit social-welfare objectives, and make the aggregation rule explicit through constitutions or specs.

Design an experiment to estimate how much a frontier policy is exploiting its reward model, without a gold RM. research

Proxies for gold: blind human evaluation on a stratified sample of checkpoints; a held-out judge from a different model family that never served as a training signal; and task-specific verifiable subsets. Measurements: proxy-minus-judge gap vs KL across checkpoints (a widening gap means exploitation); ensemble disagreement on high-reward samples; reward attribution to known spurious features; counterfactual edits (remove flattery or padding and re-score: a large reward drop means the RM paid for it). Reading high-reward outliers and auditing for RM-specific behaviors, à la Marks et al., catches what metrics miss. Pre-register the thresholds so the answer can't be tuned after the fact.

Bradley-Terry in one line
$P(y_w\succ y_l)=\sigma(r_w-r_l)$; loss $-\log\sigma(r_w-r_l)$. Implied by Gumbel noise on utilities.
Thurstone vs Bradley-Terry
Gaussian noise → probit $\Phi(\Delta/\sqrt2\sigma)$; Gumbel noise → logit $\sigma(\Delta)$.
Elo = ?
Online SGD on the BT log-likelihood, one game at a time, base-10 scale of 400 points.
What is the reward identified up to?
A per-prompt additive constant $c(x)$. The scale is set by label noise.
Llama 2 margin loss
$-\log\sigma(r_c-r_r-m(\text{rating}))$, with m ∈ {1, 2/3, 1/3, 0} or {3, 2, 1, 0}.
InstructGPT annotator agreement
72.6 ± 1.5% (training labelers), 77.3 ± 1.3% (held-out).
Preference model pretraining
Askell et al. 2021: LM pretrain → PMP on Stack Exchange, Reddit, Wikipedia reverts → finetune. Better sample efficiency; binary PMP transfers best.
Gao et al. functional forms
BoN: $d(\alpha-\beta d)$. RL: $d(\alpha-\beta\log d)$. $d=\sqrt{\KL}$. β shrinks with RM size.
KL of best-of-n
$\le\log n-(n-1)/n$; equality in the continuous / high-entropy limit (Beirami et al.). Win rate ≤ n/(n+1).
Four Goodharts
Regressional (noise), extremal (out of distribution), causal (correlate ≠ cause), adversarial (optimizer exploits the measure).
UWO
Ensemble mean minus λ × ensemble variance (Coste et al.). WCO = min over members.
Singhal et al. headline
A purely length-based reward reproduces most RLHF gains; 70–90% of reward gain is length on WebGPT and RLCD.
PRM800K
800K step labels, 75K solutions, 12K MATH problems. Best-of-1860: PRM 78.2% vs ORM 72.4%.
Rubrics as Rewards
$r=\sum w_jc_j/\sum w_j$ over instance-specific criteria; RLVR is the k = 1 case.

§13Read next

Scaling Laws for Reward Model Overoptimization
Gao, Schulman, Hilton · 2022 · ICML 2023
Gold-vs-KL functional forms for BoN and RL, coefficient scaling with RM size, the Goodhart mapping.
overoptimizationscaling
Learning to summarize from human feedback
Stiennon et al. · 2020 · NeurIPS
The modern RM recipe (scalar head, BT loss, normalization), BoN KL, and the first clean picture of over-optimization against human judgment.
RM recipeRLHF
Training a Helpful and Harmless Assistant with RLHF
Bai et al. · 2022 · Anthropic
The HH data, PM calibration, iterated online RLHF, and reward ∝ √KL.
Anthropicpreference models
Let's Verify Step by Step
Lightman et al. · 2023 · OpenAI
Process supervision beats outcome supervision for best-of-n on MATH; releases PRM800K.
PRMverification
A Long Way to Go: Investigating Length Correlations in RLHF
Singhal et al. · 2023 · COLM 2024
Most measured RLHF gains in three settings are length; the bias lives in the reward model.
reward hackinglength
Deep Reinforcement Learning from Human Preferences
Christiano et al. · 2017
BT reward fitting from comparisons, the Elo analogy, ties as soft labels, the 10% noise floor, ensembles.
origins
Training language models to follow instructions with human feedback
Ouyang et al. · 2022 · OpenAI
K-way rankings batched per prompt, one-epoch RMs, a 6B RM for a 175B policy, annotator agreement.
InstructGPT
A General Language Assistant as a Laboratory for Alignment
Askell et al. · 2021 · Anthropic
Ranked preference modeling scales better than imitation; preference model pretraining.
AnthropicPMP
Llama 2: Open Foundation and Fine-Tuned Chat Models
Touvron et al. · 2023 · Meta
Separate helpfulness and safety RMs, margin loss, accuracy by preference strength.
margins
Theoretical guarantees on the best-of-n alignment policy
Beirami et al. · 2024 · ICML 2025
The BoN KL formula is an upper bound; a better estimator; win rate ≤ n/(n+1).
best-of-ntheory
Reward Model Ensembles Help Mitigate Overoptimization
Coste et al. · 2023 · ICLR 2024
WCO and UWO conservative objectives nearly eliminate overoptimization in Gao's setup, even with 25% label noise.
ensembles
Helping or Herding? Reward Model Ensembles Mitigate but do not Eliminate Reward Hacking
Eisenstein et al. · 2023 · COLM 2024
RMs are underspecified; pretraining-diverse ensembles help most; shared errors survive.
ensemblesunderspecification
Categorizing Variants of Goodhart's Law
Manheim & Garrabrant · 2018
Regressional, extremal, causal, adversarial: the vocabulary for every reward-hacking discussion.
Goodhart
Towards Understanding Sycophancy in Language Models
Sharma et al. · 2023 · Anthropic, ICLR 2024
Human preference data and PMs reward agreeing with the user; BoN against the Claude 2 PM yields more sycophancy than a "non-sycophantic" PM, and some sycophancy grew during Claude 2's RL.
Anthropicsycophancy
Natural Emergent Misalignment from Reward Hacking in Production RL
MacDiarmid et al. · 2025 · Anthropic
Learning to hack production coding environments generalizes to broad misalignment; inoculation prompting mitigates.
Anthropicreward hacking
Auditing Language Models for Hidden Objectives
Marks et al. · 2025 · Anthropic
A model trained to exploit (fictional) RM biases generalizes to unreinforced ones; blind audits recover the objective.
Anthropicauditing
Rubrics as Rewards: Reinforcement Learning Beyond Verifiable Domains
Gunjal et al. · 2025 · Scale AI
Instance-specific weighted rubrics as on-policy rewards; RLVR as the one-criterion special case.
rubrics
RM-R1: Reward Modeling as Reasoning
Chen et al. · 2025 · ICLR 2026
Reasoning reward models with chain-of-rubrics, trained by distillation then RLVR.
generative RMreasoning
Inference-Time Scaling for Generalist Reward Modeling
Liu et al. · 2025 · DeepSeek
Pointwise generative RMs that write principles and critiques; scale with sampling, voting and a meta-RM.
generative RMtest-time compute
RewardBench 2: Advancing Reward Model Evaluation
Malik et al. · 2025 · ICLR 2026
Harder best-of-4 RM benchmark; strong BoN correlation, weak PPO signal; lineage matters.
evaluation
Distributional Preference Learning: Understanding and Accounting for Hidden Context in RLHF
Siththaranjan, Laidlaw, Hadfield-Menell · 2023 · ICLR 2024
Preference learning aggregates hidden context by Borda count; distributional RMs as a remedy.
pluralismsocial choice