Phase 09: Reinforcement Learning

Modelado de recompensas y RLHF

Los humanos no pueden escribir una función de recompensa para "buena respuesta de asistente", pero pueden comparar dos respuestas y elegir la mejor. Ajuste un modelo de recompensa a esas comparaciones, luego RL el modelo de lenguaje en contra de ella. Cristiano 2017.

Type: Build

Languages: Python

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

Time: ~45 minutes

El problema

Usted entrenó un modelo de lenguaje en el objetivo de predicción de tokens. Escribe inglés gramatical. También miente, vagabundea y se niega a rechazar. No se puede arreglar esto con más preentrenamiento.

Si quieres una recompensa escalar que diga "respuesta A es mejor que respuesta B para instrucción X". Es imposible escribir esa función de recompensa a mano. "Helpfulness" no es una expresión de forma cerrada sobre tokens. Pero los humanos pueden comparar dos salidas y marcar una preferencia. Eso es barato para recoger en escala.

RLHF (Christiano et al. 2017; Ouyang et al. 2022) convierte las preferencias en un modelo de recompensa, luego optimiza el LM a través de PPO en contra de esa recompensa. En tres pasos: SFT → RM → PPO. Es la receta que envió ChatGPT, Claude, Gemini y todos los demás LLM alineados en 20232025.

En 2026 el paso PPO se sustituye principalmente por DPO (Fase 10 · 08) porque es más barato y casi tan bueno para la sintonización de alineamientos. Pero la pieza de modelo de recompensa sigue siendo la base de cada muestreo Best-of-N, cada RL-from-verifiable-rewards pipeline, y cada modelo de razonamiento que utiliza un modelo de recompensa de proceso.

El concepto

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

Stage 1: Supervised Fine-Tuning (SFT).Comienza con un modelo base pre-entrenado. Enfine las demostraciones escritas por el hombre del comportamiento objetivo (respuestas que siguen instrucciones, respuestas útiles, etc.). Resultado: un modelo π_SFTque es preciado hacia el buen comportamiento pero todavía tiene un espacio de acción ilimitado.

Stage 2: Reward Model training.

  • Recoger pares de respuestas (y_+, y_-)a las instrucciones x, etiquetado por los seres humanos como "y_+ es preferido sobre y_-."
  • Entrenar un modelo de recompensaR_φ(x, y)para asignar puntuaciones más altas a y_+¿ Qué ?
  • Las pérdidas:Bradley-Terry pairwise logistic¿Qué es esto ?

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

La diferencia en la recompensa implica una probabilidad de log de preferencia. BT ha sido el estándar desde 1952 (Bradley-Terry) y es la opción dominante en la moderna RLHF.

  • R_φEl modelo de transformer de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de la base de datos.

Stage 3: PPO against the RM with KL penalty.

  • Iniciar la política de capacitación π_θde laπ_SFTMantenga una referencia congelada.π_ref = π_SFT¿ Qué ?
  • Recompensa al final de una respuesta y¿Qué es esto ?

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

La penalidad de KL impideπ_θde la deriva arbitraria de π_SFT es un regularizador, no una región de confianza difícil. βPor lo general0.01- ¿ Qué ?0.05¿ Qué ?

  • ejecuta PPO (Ley 08) con esta recompensa. Las ventajas se calculan en la trayectoria de nivel de token, pero el RM marca solo la respuesta completa.

Why the KL?Sin él, PPO encontrará estrategias de hackeo de recompensas el RM sólo fue entrenado en completos en distribución. Una respuesta fuera de distribución podría tener un puntaje más alto que cualquier otro escrito por humanos.π_θEs el nodo más importante en el RLHF.

2026 status:

  • DPO(Rafailov 2023): el álgebra de forma cerrada se desploma en la etapa 2 + 3 en una sola pérdida supervisada sobre los datos de preferencia. No RM, no PPO. La misma calidad en los puntos de referencia de alineación para una fracción del cálculo.
  • GRPO(DeepSeek 20242025): PPO con un baseline relativo al grupo en lugar de un crítico, recompensa de un verificador (codificación / correspondencias matemáticas) en lugar de un RM entrenado por el hombre.
  • Process reward models (PRMs):soluciones parciales de puntaje (cada paso de razonamiento), utilizadas tanto en las variantes RLHF como en las GRPO para el razonamiento.
  • Constitutional AI / RLAIF:El programa de investigación de la Comisión de Investigación y Desarrollo de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación de la Investigación

Construye el mismo

Esta lección utiliza pequeñas "invitaciones" y "respuestas" sintéticas representadas como cuerdas. El RM es un punteador lineal sobre una representación de bolsa de fichas.code/main.py¿ Qué ?

Paso 1: Datos de preferencias sintéticas

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)

En el RLHF real, esto es reemplazado por etiquetadores humanos.(prompt, preferred_response, rejected_response) es idéntico.

Paso 2: modelo de recompensa Bradley-Terry

Punto lineal: R(x, y) = w · bag(y). Entrenamiento para minimizar la pérdida de registro de BT en parejas:

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

Después de unos cientos de actualizaciones,wasigna pesos positivos a los tokens de buenas palabras y negativos a los malos.

Paso 3: Política similar a la PPO en la parte superior de RM

Nuestra política de juguetes produce un solo token de un vocabulario.log π_θ(token | prompt), añadir una penalidad KL-a-referencia, y aplicar el recortado PPO sustituta.

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
    ...

Paso 4: Monitorear el KL

Mediano de pistaKL(π_θ || π_ref)Cada actualización. Si se hace pasar.~5-10La política ha desviado mucho de laπ_SFT más bajo βEste es el diagnóstico más alto en la verdadera RLHF.

Paso 5: receta de producción con TRL

Una vez que entiendes la línea de juguetes, aquí hay el mismo bucle que un usuario de biblioteca real lo escribe.TRLes la aplicación de referencia RewardTrainerpara la etapa 2 y PPOTrainer(con un KL-to-reference incorporado) para la etapa 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

Tres cosas que la biblioteca hace por ti.adap_kl_ctrl=Truese aplica el calendario de adaptación-β: si el KL observado excede target_klEl modelo de referencia está congelado por convención no se pueden compartir accidentalmente los parámetros con policyY el valor de la cabeza vive en la misma espina dorsal que la póliza (AutoModelForCausalLMWithValueHeadse une una cabeza de MLP escalar), por lo que TRL informa policy/kly value/losspor separado.

Las trampas

  • Over-optimization / reward hacking.El RM es imperfecto .π_θLos síntomas: la recompensa sube indefinidamente mientras que la evaluación humana califica plateaos o bajas.β, ampliar los datos de formación RM.
  • Length hacking.Las RM entrenadas en respuestas útiles a menudo recompensan implícitamente la longitud. La política aprende a cubrir las respuestas.
  • Too-small RM.El RM tiene que ser al menos tan grande como la póliza.
  • KL tuning.El método estándar es un método de adaptiva β que se dirige a un KL fijo por paso.
  • Preference-data noise.- 30% de las etiquetas humanas son ruidosas o ambigüas. Calibrar mediante la formación del RM en datos filtrados por acuerdo o utilizar una temperatura en BT.
  • Off-policy problems.Los datos de PPO son ligeramente fuera de política después de la primera época.

Usalo

El RLHF en 2026 se superponerá a capas:

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.

El RLHF fue el método en 2022-2024. En 2026, las tuberías de alineación de producción son DPO-primero, PPO-solo para las etapas de RM-intensivas o críticas a la seguridad.

Envío

Salvo comooutputs/skill-rlhf-architect.md¿Qué es esto ?

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.

Los ejercicios

  1. Easy.Entrenemos el modelo de recompensa Bradley-Terry en .code/main.pyEn el caso de las piezas de la serie, el valor de la precisión de la medida es de un par de 100 pares.
  2. Medium.Ejecutar el bucle de juguete PPO-RLHF con β ∈ {0.0, 0.1, 1.0}Para cada uno, compro RM puntuación vs KL-a-referencia sobre las actualizaciones. ¿Cuál ejecuta recompensa-hack?
  3. Hard.Implemente DPO (perdida de probabilidad de preferencia en forma cerrada) en los mismos datos de preferencia y compare con el oleoducto RLHF-PPO en el cálculo utilizado y el puntaje final RM obtenido.

Términos clave

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.

Leer más

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.