Phase 09: Reinforcement Learning

Modélisation des récompenses et RLHF

Les humains ne peuvent pas écrire une fonction de récompense pour " bonne réponse assistante ", mais ils peuvent comparer deux réponses et choisir la meilleure. Ajustez un modèle de récompense à ces comparaisons, puis RL le modèle de langue contre lui. Christiano 2017. InstructGPT 2022. La recette qui a transformé GPT-3 en ChatGPT. En 2026 il est principalement remplacé par DPO mais le modèle mental reste.

Type: Build

Languages: Python

Prerequisites: Phase 5 · 05 (Sentiment), Phase 9 · 08 (PPO)

Time: ~45 minutes

Le problème

Vous avez formé un modèle de langage sur l'objectif de prédiction du prochain jeton. Il écrit l'anglais grammatical. Il ment aussi, vagabondage et refuse de refuser. Vous ne pouvez pas résoudre cela avec plus de prétrainement.

Vous voulez une récompense à l'échelle qui dit " la réponse A est meilleure que la réponse B pour l'instruction X. " Écrire cette fonction de récompense à la main est impossible. " Aide " n'est pas une expression de forme fermée sur des jetons. Mais les humains peuvent comparer deux sorties et marquer une préférence.

RLHF (Christiano et coll. 2017; Ouyang et coll. 2022) convertit les préférences en un modèle de récompense, puis optimise le LM via PPO contre cette récompense. En trois étapes: SFT → RM → PPO. C'est la recette qui a expédié ChatGPT, Claude, Gemini et tous les autres alignés-LLM en 20232025.

En 2026, la phase PPO est principalement remplacée par la phase 10 · 08, car elle est moins chère et presque aussi bonne pour l'ajustement de l'alignement. Mais la pièce modèle de récompense est toujours à la base de chaque échantillonneur Best-of-N, chaque pipeline RL-from-verifiable-rewards, et chaque modèle de raisonnement utilisant un modèle de récompense de processus.

Le concept

!Three-stage RLHF: SFT, RM training on pairwise prefs, PPO with KL penalty

Stage 1: Supervised Fine-Tuning (SFT).Commencez par un modèle de base prétrainé. Définition sur des démonstrations écrites par l'homme du comportement cible (réactions à la suite d'instructions, réponses utiles, etc.).π_SFTqui est biased vers le bon comportement mais a toujours un espace d'action illimité.

Stage 2: Reward Model training.

  • Rassembler des paires de réponses (y_+, y_-)à des invites x, étiqueté par les humains comme "y_+ est préférable à y_-. "
  • Formez un modèle de récompense R_φ(x, y)pour attribuer des scores plus élevés à y_+- Je suis désolé .
  • Perte: le Bradley-Terry pairwise logistic- Le numéro de la liste:

L(φ) = -E[ log σ(R_φ(x, y_+) - R_φ(x, y_-)) ]

Le prix de la récompense est le plus élevé de tous les prix de la récompense.

  • R_φLe modèle SFT est généralement initialement défini avec une tête scalaire en haut.

Stage 3: PPO against the RM with KL penalty.

  • Initialiser la politique de formation π_θde π_SFTGardez une référence gelée.π_ref = π_SFT- Je suis désolé .
  • Récompense à la fin d' une réponse y- Le numéro de la liste:

r_total(x, y) = R_φ(x, y) - β · KL(π_θ(·|x) || π_ref(·|x))

La pénalité de KL empêche π_θde dériver arbitrairement de π_SFT il s'agit d'un régulateur, pas d'une région de confiance difficile. βGénéralement0.01- Je suis là.0.05- Je suis désolé .

  • Exécutez PPO (Léction 08) avec cette récompense.

Why the KL?Sans elle, le PPO trouvera heureusement des stratégies de piratage des récompenses le RM n'a été formé que sur les réalisations en distribution.π_θC'est le bouton le plus important de la RLHF.

2026 status:

  • DPO(Rafailov 2023): l'algèbre de forme fermée s'effondre en une seule perte supervisée sur les données de préférence. Aucun RM, aucun PPO. La même qualité sur les points de référence d'alignement pour une fraction du calcul.
  • GRPO(DeepSeek 20242025): PPO avec une base de référence relative au groupe au lieu d'un critique, récompense d'un verifier (code run / maths answers matches) au lieu d'un RM formé par l'homme. Dominant pour les modèles de raisonnement. couvert dans la phase 9 · 12.
  • Process reward models (PRMs):Les solutions partielles de score (chaque étape de raisonnement), utilisées dans les variantes RLHF et GRPO pour le raisonnement.
  • Constitutional AI / RLAIF:Il est important de noter que les entreprises peuvent utiliser un LLM aligné pour générer des préférences au lieu d'utiliser des humains.

Faites-le

Cette leçon utilise de minuscules "interrogations" et "réactions" synthétiques représentées sous forme de chaînes. Le RM est un marqueur linéaire sur une représentation de sac de jetons.code/main.py- Je suis désolé .

Étape 1: données de préférence synthétiques

pythonPROMPTS = ["help me", "answer me", "explain this"]
GOOD_WORDS = {"clear", "specific", "kind", "thorough"}
BAD_WORDS = {"vague", "rude", "wrong", "short"}

def make_pair(rng):
    x = rng.choice(PROMPTS)
    y_good = rng.choice(list(GOOD_WORDS)) + " " + rng.choice(list(GOOD_WORDS))
    y_bad = rng.choice(list(BAD_WORDS)) + " " + rng.choice(list(BAD_WORDS))
    return (x, y_good, y_bad)

Dans la vraie RLHF, cette étiquette est remplacée par des étiquettes humaines.(prompt, preferred_response, rejected_response) est identique.

Étape 2: Modèle de récompense Bradley-Terry

Score linéaire: R(x, y) = w · bag(y)- Trainer pour minimiser les pertes de logs par couples BT:

pythondef rm_train_step(w, x, y_pos, y_neg, lr):
    r_pos = dot(w, bag(y_pos))
    r_neg = dot(w, bag(y_neg))
    p = sigmoid(r_pos - r_neg)
    for tok, cnt in bag(y_pos).items():
        w[tok] += lr * (1 - p) * cnt
    for tok, cnt in bag(y_neg).items():
        w[tok] -= lr * (1 - p) * cnt

Après quelques centaines de mises à jour,wassigne des poids positifs aux bons mots et négatifs aux mauvais.

Étape 3: Politique de PPO en plus de RM

Notre politique de jouets produit un seul jeton à partir d'un vocabulaire.log π_θ(token | prompt), ajouter une pénalité KL à référence, et appliquer le coupé PPO substitué.

pythondef rlhf_step(theta, ref, w, prompt, rng, eps=0.2, beta=0.1, lr=0.05):
    logits_theta = policy_logits(theta, prompt)
    probs = softmax(logits_theta)
    token = sample(probs, rng)
    logits_ref = policy_logits(ref, prompt)
    probs_ref = softmax(logits_ref)
    reward = dot(w, bag([token])) - beta * kl(probs, probs_ref)
    # ppo-style update on theta, treating reward as the return
    ...

Étape 4: surveiller le KL

La moyenne de la piste KL(π_θ || π_ref)chaque mise à jour.~5-10La politique a dérivé de π_SFT plus bas βC'est le diagnostic le plus élevé dans la vraie RLHF.

Étape 5: la recette de production avec RTR

Une fois que vous comprenez le pipeline de jouets, voici la même boucle qu'un véritable utilisateur de bibliothèque l'écrit.TRLest la mise en œuvre de référence RewardTrainerpour la phase 2 et PPOTrainer(avec un KL-to-reference intégré) pour la phase 3.

python# Stage 2: reward model from pairwise preferences
from trl import RewardTrainer, RewardConfig
from transformers import AutoModelForSequenceClassification, AutoTokenizer

tok = AutoTokenizer.from_pretrained("meta-llama/Llama-3.1-8B-Instruct")
rm = AutoModelForSequenceClassification.from_pretrained(
    "meta-llama/Llama-3.1-8B-Instruct", num_labels=1
)

# dataset rows: {"prompt", "chosen", "rejected"} — Bradley-Terry format
trainer = RewardTrainer(
    model=rm,
    tokenizer=tok,
    train_dataset=preference_data,
    args=RewardConfig(output_dir="./rm", num_train_epochs=1, learning_rate=1e-5),
)
trainer.train()
python# Stage 3: PPO against the RM with KL penalty to the SFT reference
from trl import PPOTrainer, PPOConfig, AutoModelForCausalLMWithValueHead

policy = AutoModelForCausalLMWithValueHead.from_pretrained("./sft-checkpoint")
ref    = AutoModelForCausalLMWithValueHead.from_pretrained("./sft-checkpoint")  # frozen

ppo = PPOTrainer(
    config=PPOConfig(learning_rate=1.41e-5, batch_size=64, init_kl_coef=0.05,
                     target_kl=6.0, adap_kl_ctrl=True),
    model=policy, ref_model=ref, tokenizer=tok,
)

for batch in dataloader:
    responses = ppo.generate(batch["query_ids"], max_new_tokens=128)
    rewards   = rm(torch.cat([batch["query_ids"], responses], dim=-1)).logits[:, 0]
    stats     = ppo.step(batch["query_ids"], responses, rewards)
    # stats includes: mean_kl, clip_frac, value_loss — the three PPO diagnostics

Trois choses que la bibliothèque fait pour vous.adap_kl_ctrl=Truemet en œuvre le calendrier adaptatif-β: si le KL observé dépasse target_klLe modèle de référence est gelé par convention vous ne devez pas partager accidentellement des paramètres avec policyLa valeur de la tête de la police est la même que celle de la police (AutoModelForCausalLMWithValueHeadIl est également possible de faire une mise en place de la TRL.policy/klet value/lossséparément.

Les pièges

  • Over-optimization / reward hacking.Le RM est imparfait .π_θLes symptômes: la récompense monte indéfiniment tandis que le score humain d'évaluation atteint des plateaux ou des chutes.β- l'élargissement des données de formation RM.
  • Length hacking.Les RM formés sur des réponses utiles récompensent souvent implicitement la longueur.
  • Too-small RM.Une petite somme ne peut pas évaluer fidèlement les résultats de la police.
  • KL tuning.La politique de détection de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur est est est est est est est est est de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur de la valeur
  • Preference-data noise.- 30% des étiquettes humaines sont bruyantes ou ambiguës.
  • Off-policy problems.Les données de PPO sont légèrement hors politique après la première époque.

Utilisez-le

Le RLHF en 2026 est couché:

LayerTargetMethod
Instruction following, helpfulness, harmlessnessAlignmentDPO (Phase 10 · 08) preferred over RLHF-PPO.
Reasoning correctness (math, code)CapabilityGRPO with verifier reward (Phase 9 · 12).
Long-horizon multi-step tasksAgenticPPO / GRPO with process reward models over steps.
Safety / refusal behaviorSafetyRLHF-PPO with separate safety RM, or Constitutional AI.
Best-of-N at inferenceFast alignmentUse RM at decode time; no policy training needed.
Reward distillationInference computeTrain a small "reward head" on top of a frozen LM.

En 2026, les pipelines d'alignement de production sont DPO-first, PPO-only pour les étapes de RM-intensive ou critiques pour la sécurité.

La faire partir

  • Je ne sais pas .outputs/skill-rlhf-architect.md- Le numéro de la liste:
markdown---
name: rlhf-architect
description: Design an RLHF / DPO / GRPO alignment pipeline for a language model, including RM, KL, and data strategy.
version: 1.0.0
phase: 9
lesson: 9
tags: [rl, rlhf, alignment, llm]
---

Given a base LM, a target behavior (alignment / reasoning / refusal / agent), and a preference or verifier budget, output:

1. Stage. SFT? RM? DPO? GRPO? With justification.
2. Preference or verifier source. Humans, AI feedback, rule-based, unit-test-pass, or reward distillation.
3. KL strategy. Fixed β, adaptive β, or DPO (implicit KL).
4. Diagnostics. Mean KL, reward stability, over-optimization guard (holdout human eval).
5. Safety gate. Red-team set, refusal rate, safety RM separate from helpfulness RM.

Refuse to ship RLHF-PPO without a KL monitor. Refuse to use an RM smaller than the target policy. Refuse length-only rewards. Flag any pipeline that does not hold back a blind human-eval set as lacking over-optimization protection.

Exercices

  1. Easy.Entrenez le modèle de récompense Bradley-Terry .code/main.pysur 500 paires de préférence synthétiques. Mesurer par paires la précision sur 100 paires de préférence.
  2. Medium.Réglez la boucle de jouets PPO-RLHF avec β ∈ {0.0, 0.1, 1.0}Pour chaque score, le score RM par rapport au KL à la référence sur les mises à jour.
  3. Hard.Mettre en œuvre le DPO (perte de probabilité de préférence de forme fermée) sur les mêmes données de préférence et comparer avec le pipeline RLHF-PPO en calcul utilisé et le score final RM obtenu.

Les termes clés

TermWhat people sayWhat it actually means
RLHF"Alignment RL"Three-stage SFT + RM + PPO pipeline (Christiano 2017, Ouyang 2022).
Reward Model (RM)"The scoring net"Learned scalar function fit to pairwise preferences via Bradley-Terry.
Bradley-Terry"Pairwise logistic loss"P(y_+ ≻ y_-) = σ(R(y_+) - R(y_-)); the standard RM objective.
KL penalty"Stay near the reference"β · KL(π_θ || π_ref) in the reward; the anti-reward-hacking regularizer.
Reward hacking"Goodhart's law"Policy exploits RM flaws; symptoms: reward up, human eval flat.
RLAIF"AI-labeled preferences"RLHF where labels come from another LM instead of humans.
PRM"Process Reward Model"Scores partial reasoning steps; used in reasoning pipelines.
Constitutional AI"Anthropic's method"AI-generated preferences guided by explicit rules.

Pour en savoir plus

This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.

Browse the complete course catalog or open this lesson on GitHub.