Reward hacking & Goodhart's law
Alignment introduced reward hacking as the 'proxy risk' of preference training. This is the full picture: optimize any measurable proxy hard enough and a capable system maximizes the proxy without achieving the goal — Goodhart's law. From boat-racing RL agents to sycophantic chatbots to agents that edit the test instead of fixing the code.
Written and reviewed by Shreyash Prashu Last reviewed
What you'll learn
- Goodhart's law and why every proxy is gameable under enough optimization
- Reward-model over-optimization — the proxy rises while the true goal falls
- Specification gaming, from classic RL to LLM sycophancy to agentic test-gaming
- Why it scales with capability, and the mitigations that only contain it
Before you start
Alignment ended on an uncomfortable note: every stage after SFT optimizes a proxy for what we actually want, and a proxy can be gamed.
That’s reward hacking, and it deserves its own treatment. It is not a quirk of RLHF — it is a law about optimization itself. Point a capable optimizer at a measurable target and it will find the cheapest way to score, which is rarely the way you intended.
Goodhart’s law
The principle is Goodhart’s law: when a measure becomes a target, it ceases to be a good measure.
“Helpfulness” isn’t directly measurable, so we optimize a stand-in — rater approval, a reward-model score, a unit test passing. The stand-in correlates with the goal at first. Push optimization harder and the correlation breaks: the system climbs the proxy by exploiting the gap between proxy and goal. The telltale signature is a proxy that keeps rising while the true objective turns over and falls:
# Reward-model over-optimization: as we optimize the PROXY harder, the proxy keeps
# climbing, but the TRUE objective peaks and then declines as the gap is exploited.
print("optimization proxy_reward true_objective")
for effort in range(0, 6):
proxy = float(effort) # the measurable proxy we optimize
true = effort - 0.3 * effort**2 # real goal: helps at first, then over-optimization hurts
print(f" {effort} {proxy:.1f} {true:+.2f}")
optimization proxy_reward true_objective
0 0.0 +0.00
1 1.0 +0.70
2 2.0 +0.80
3 3.0 +0.30
4 4.0 -0.80
5 5.0 -2.50
The true objective peaks at optimization level 2 and then crashes, even as the proxy marches happily upward. If you only watch the proxy — which is all the training loop sees — everything looks like progress while the thing you cared about is getting worse.
Specification gaming, in three flavors
Reward hacking is also called specification gaming: the system satisfies the literal specification while violating its intent. It shows up everywhere optimization meets an imperfect objective.
-
Classic RL. The canonical example is an RL boat in the game CoastRunners:
- It discovered it could score more by spinning in a lagoon hitting bonus targets forever than by finishing the race. It maximized score and ignored the actual goal.
- Simulated robots have learned to position a hand between the camera and an object to fake a grasp.
- Evolution-in-simulation routinely exploits physics bugs.
-
LLM sycophancy. Reward models trained on human approval prefer answers that are:
- agreeable
- flattering
- confident
- long
Models learn to:
- tell you what you want to hear
- hedge less than they should
- pad
Sycophancy is reward hacking against a human proxy, and it’s one of alignment’s stubborn open problems.
-
Agentic reward hacking. Give a coding agent “make the tests pass” and a capable one may:
- edit the test
- hard-code the expected output
- put
try/exceptaround the failure - claim success it didn’t achieve
That’s gaming the verifier instead of doing the work. The more agentic and capable the system, the more inventive the hacks.
Containing it
You can’t make a proxy ungameable, but you can keep optimization from running off the cliff:
- Leash the optimizer. RLHF’s KL penalty keeps the policy close to the trusted reference model so it can’t drift into proxy-gaming nonsense — directly damping over-optimization.
- Better and plural rewards.
- Use stronger reward models.
- Use ensembles; hacking all of them at once is harder.
- Use AI-feedback methods like constitutional AI that judge against explicit principles rather than raw approval.
- Don’t over-optimize. Stop before the peak — early-stop on held-out evaluations that measure the true goal, not the training proxy, so you’d notice the turn-over.
- Keep humans in the loop for high-stakes objectives, and treat any single automatic metric as gameable by default.
These contain reward hacking; they don’t eliminate it.
As long as we optimize proxies for human values — which is the whole game — the gap exists, and a capable enough system will look for it.
In one breath
-
Reward hacking is Goodhart’s law applied to AI: when a measure becomes a target it stops being a good measure — optimize a proxy hard enough and the system games the gap.
-
The signature is over-optimization: the proxy keeps rising while the true objective peaks then falls (the demo turns over at level 2) — and the training loop only sees the proxy.
-
It’s also called specification gaming. Examples include:
- The CoastRunners boat looping for points.
- LLM sycophancy (agreeable/confident/long answers rewarded).
- Agentic hacks (editing the test instead of fixing the code).
-
It’s optimization working as specified against a flawed target, and it scales with capability — smarter systems find more hacks.
-
Mitigations contain it. They include:
- KL leash
- better/ensemble reward models
- constitutional AI
- early-stopping on held-out true-goal evals
- human oversight
They can’t remove the proxy gap.
Quick check
Quick check
Next
Reward hacking is the failure mode behind the alignment proxy and the reason a self-improving agent needs a trustworthy verifier.
One mitigation — judging against explicit principles instead of raw approval — is constitutional AI.
Practice this in an interview
All questionsRLHF (Reinforcement Learning from Human Feedback) aligns a language model's outputs to human preferences by training a reward model on ranked human comparisons, then using that reward signal to fine-tune the policy with reinforcement learning. It solves the gap between a model that is good at next-token prediction and a model that is genuinely helpful, harmless, and honest.
Autonomous agents are risky because untrusted prompts, retrieved documents, tool outputs, and memories can influence a model that has real authority to read data and take actions. The main risks are prompt injection and hijacking, excessive permissions and confused-deputy actions, data exfiltration, poisoned memory or tools, and runaway cost or destructive loops; defenses must enforce authorization, isolation, approvals, validation, budgets, and auditability outside the model.
Pretraining teaches a model general language structure by predicting tokens across a massive corpus; fine-tuning adapts the pretrained weights to a narrower task or domain using supervised data; instruction-tuning is supervised fine-tuning specifically on (instruction, response) pairs so the model follows directives; RLHF further aligns the model to human preferences by training a reward model on ranked responses and using it as a signal for policy optimisation with PPO or a similar algorithm.
Gaming is detectable by looking for statistical signatures: abnormal distribution tails, sudden regime changes that correlate with incentive changes rather than product changes, divergence between the metric and correlated downstream outcomes, and segment-level anomalies that cancel out in the aggregate. The detective work combines anomaly detection with causal reasoning about who benefits from inflating the number.