Home Knowledge Base Reward Models

Reward Models are the neural networks trained to predict human preference scores for AI-generated outputs — serving as the automated judge in RLHF pipelines that enables reinforcement learning to align language models with human values at a scale that makes direct human evaluation of every response impractical.

What Is a Reward Model?

<svg viewBox="0 0 760 470" xmlns="http://www.w3.org/2000/svg" font-family="-apple-system,Segoe UI,Roboto,sans-serif">
  <rect x="0" y="0" width="760" height="470" fill="#0d1117"/>
  <text x="380" y="28" fill="#e6edf3" font-size="21" font-weight="700" text-anchor="middle">Reward Model — Learning Human Preferences</text>
  <text x="380" y="48" fill="#8b98a5" font-size="12" text-anchor="middle">train a model to score outputs by preference — becomes the objective function for RLHF alignment</text>

  <!-- Training pipeline -->
  <rect x="30" y="65" width="700" height="190" rx="6" fill="#080d14" stroke="#233043" stroke-width="1"/>
  <text x="380" y="86" fill="#e6edf3" font-size="11" font-weight="600" text-anchor="middle">Reward Model Training Pipeline</text>

  <!-- Step 1: Collect comparisons -->
  <rect x="50" y="100" width="150" height="130" rx="5" fill="#0b1220" stroke="#60a5fa" stroke-width="1"/>
  <text x="125" y="118" fill="#93c5fd" font-size="9" font-weight="600" text-anchor="middle">1. Human Comparisons</text>
  <text x="125" y="138" fill="#8b98a5" font-size="7.5" text-anchor="middle">prompt: "Explain X"</text>
  <rect x="65" y="146" width="120" height="18" rx="2" fill="#14261f" stroke="#34d399" stroke-width="0.5"/>
  <text x="125" y="158" fill="#34d399" font-size="7" text-anchor="middle">response A (preferred) ✓</text>
  <rect x="65" y="168" width="120" height="18" rx="2" fill="#1a0a0a" stroke="#f87171" stroke-width="0.5"/>
  <text x="125" y="180" fill="#f87171" font-size="7" text-anchor="middle">response B (rejected) ✗</text>
  <text x="125" y="200" fill="#6b7684" font-size="7" text-anchor="middle">humans rank A &gt; B</text>
  <text x="125" y="214" fill="#6b7684" font-size="6.5" text-anchor="middle">50K–500K comparisons</text>

  <path d="M202,165 L235,165" fill="none" stroke="#3a4453" stroke-width="1"/>
  <polygon points="233,162 239,165 233,168" fill="#3a4453"/>

  <!-- Step 2: Train RM -->
  <rect x="242" y="100" width="150" height="130" rx="5" fill="#0b1220" stroke="#f59e0b" stroke-width="1.2"/>
  <text x="317" y="118" fill="#fbbf24" font-size="9" font-weight="600" text-anchor="middle">2. Train Reward Model</text>
  <text x="317" y="140" fill="#8b98a5" font-size="7.5" text-anchor="middle">LLM backbone + scalar head</text>
  <text x="317" y="158" fill="#8b98a5" font-size="7.5" text-anchor="middle">loss = -log σ(r(A) - r(B))</text>
  <text x="317" y="176" fill="#8b98a5" font-size="7.5" text-anchor="middle">(Bradley-Terry model)</text>
  <text x="317" y="196" fill="#6b7684" font-size="7" text-anchor="middle">output: scalar score r(x)</text>
  <text x="317" y="212" fill="#6b7684" font-size="6.5" text-anchor="middle">higher = more human-like</text>

  <path d="M394,165 L427,165" fill="none" stroke="#3a4453" stroke-width="1"/>
  <polygon points="425,162 431,165 425,168" fill="#3a4453"/>

  <!-- Step 3: Use in RLHF -->
  <rect x="434" y="100" width="150" height="130" rx="5" fill="#0b1220" stroke="#34d399" stroke-width="1"/>
  <text x="509" y="118" fill="#6ee7b7" font-size="9" font-weight="600" text-anchor="middle">3. RLHF with PPO</text>
  <text x="509" y="138" fill="#8b98a5" font-size="7.5" text-anchor="middle">policy generates response</text>
  <text x="509" y="156" fill="#8b98a5" font-size="7.5" text-anchor="middle">RM scores it → reward signal</text>
  <text x="509" y="174" fill="#8b98a5" font-size="7.5" text-anchor="middle">PPO updates policy to</text>
  <text x="509" y="192" fill="#8b98a5" font-size="7.5" text-anchor="middle">maximize RM score</text>
  <text x="509" y="212" fill="#6b7684" font-size="6.5" text-anchor="middle">+ KL penalty (don't drift)</text>

  <!-- Final result -->
  <path d="M586,165 L619,165" fill="none" stroke="#3a4453" stroke-width="1"/>
  <polygon points="617,162 623,165 617,168" fill="#3a4453"/>
  <rect x="626" y="130" width="85" height="70" rx="5" fill="#14261f" stroke="#34d399" stroke-width="0.8"/>
  <text x="668" y="155" fill="#6ee7b7" font-size="8" text-anchor="middle">Aligned</text>
  <text x="668" y="170" fill="#6ee7b7" font-size="8" text-anchor="middle">Model</text>
  <text x="668" y="188" fill="#6b7684" font-size="7" text-anchor="middle">helpful, safe</text>

  <!-- DPO alternative -->
  <rect x="30" y="268" width="345" height="110" rx="6" fill="#080d14" stroke="#233043" stroke-width="1"/>
  <text x="202" y="288" fill="#e6edf3" font-size="10" font-weight="600" text-anchor="middle">DPO: Skip the Reward Model</text>
  <text x="50" y="312" fill="#a78bfa" font-size="8.5" font-weight="600">Direct Preference Optimization:</text>
  <text x="50" y="330" fill="#8b98a5" font-size="8">implicit reward in log-ratio of policy/reference</text>
  <text x="50" y="348" fill="#8b98a5" font-size="8">loss = -log σ(β · (log π(A)/ref(A) - log π(B)/ref(B)))</text>
  <text x="50" y="366" fill="#34d399" font-size="8">no separate RM, no PPO, no reward hacking</text>
  <text x="50" y="380" fill="#6b7684" font-size="7.5">2024 default: DPO > PPO for most use cases (simpler, stable)</text>

  <!-- What RM captures -->
  <rect x="390" y="268" width="340" height="110" rx="6" fill="#080d14" stroke="#233043" stroke-width="1"/>
  <text x="560" y="288" fill="#e6edf3" font-size="10" font-weight="600" text-anchor="middle">What the RM Learns to Reward</text>
  <text x="410" y="312" fill="#34d399" font-size="8.5">✓ helpful, relevant, accurate answers</text>
  <text x="410" y="330" fill="#34d399" font-size="8.5">✓ safe, non-toxic, refuses harmful requests</text>
  <text x="410" y="348" fill="#34d399" font-size="8.5">✓ follows instructions precisely</text>
  <text x="410" y="366" fill="#f87171" font-size="8.5">✗ sycophantic agreement (reward hacking risk)</text>
  <text x="410" y="380" fill="#6b7684" font-size="7.5">calibration matters: RM must generalize beyond training dist</text>

  <!-- Footer -->
  <rect x="30" y="390" width="700" height="40" rx="6" fill="#080d14" stroke="#233043" stroke-width="1"/>
  <text x="380" y="410" fill="#8b98a5" font-size="8.5" text-anchor="middle">RM is why ChatGPT feels "aligned" — it's the bridge between raw language modeling and human values</text>
  <text x="380" y="424" fill="#6b7684" font-size="7.5" text-anchor="middle">InstructGPT (2022): 6B RM trained on 33K comparisons → made GPT-3 dramatically more useful</text>

  <text x="380" y="452" fill="#6b7684" font-size="11" text-anchor="middle">The reward model encodes human judgment into a differentiable signal — it's how we steer AI toward human values.</text>
</svg>

Why Reward Models Matter

Training Process

Step 1 — Data Collection:

Step 2 — Reward Model Training:

L = -E[log σ(r(x, y_w) - r(x, y_l))] Where r(x, y) = reward score, y_w = preferred, y_l = rejected.

Step 3 — Calibration:

Reward Hacking — The Critical Failure Mode

Reward hacking occurs when the RL policy finds outputs that maximize the reward model score without actually being better by human standards:

Examples of reward hacking:

Mitigations:

Reward Model Types

TypeTraining SignalBest For
Bradley-Terry pairwiseHuman A>B labelsGeneral preference
RegressionHuman Likert scoresContinuous quality
Process reward model (PRM)Step-level correctnessMath reasoning
Outcome reward model (ORM)Final answer correct/wrongVerifiable tasks
ConstitutionalRule-based scoringSafety alignment

Open Reward Models

Reward models are the learned proxy for human judgment that makes scalable AI alignment possible — as reward models become more accurate, harder to hack, and better calibrated across diverse preference dimensions, they will increasingly replace expensive human evaluation in both alignment training and automated quality assurance pipelines.

reward modelpreferencehuman

Explore 500+ Semiconductor & AI Topics

From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.