078 — RLHF, RLAIF y DPO

← Clase anterior · Índice de la parte · Clase siguiente →

Parte: 06 — Modelos fundacionales e ingeniería de LLM
Nivel: avanzado · Horas estimadas: 6
Laboratorio: probability · Estado: EXECUTABLE_CORE

🎯 Propósito

Comprender rlhf, rlaif y dpo dentro de la evolución de la inteligencia artificial, implementar un experimento mínimo verificable y distinguir qué parte constituye evidencia frente a una afirmación todavía no comprobada.

📚 Resultados de aprendizaje

Al finalizar podrás:

  1. Explicar rlhf, rlaif y dpo usando los conceptos preferencias, reward model, RLHF, DPO.
  2. Ejecutar el laboratorio con una semilla explícita y revisar su contrato JSON.
  3. Identificar al menos un supuesto, una limitación y un riesgo de aplicación.
  4. Comparar el enfoque con la etapa anterior de la ruta de aprendizaje.
  5. Producir una evidencia reproducible y una conclusión que no exceda los datos.

🧩 Conceptos centrales

preferencias, reward model, RLHF, DPO

🗺️ Ubicación en el mapa de la IA

El SFT (clase 076) enseña a imitar demostraciones, pero no a preferir: entre dos respuestas plausibles no sabe cuál es más útil, honesta o inocua. El aprendizaje por preferencias cierra el ciclo de alineamiento: RLHF (InstructGPT, 2022) lo hizo con un modelo de recompensa y PPO — la receta detrás de ChatGPT — y DPO (2023) demostró que el mismo objetivo se optimiza con una pérdida supervisada simple, sin RL explícito. Aquí se conectan el aprendizaje por refuerzo (parte 07 de la ruta usa estas bases) y la ingeniería práctica de LLM.

📖 Fundamentos

🔁 El pipeline RLHF (InstructGPT)

Etapa 1 — SFT: fine-tuning sobre demostraciones humanas → política π_SFT.
Etapa 2 — Modelo de recompensa (RM): humanos ORDENAN K respuestas por prompt;
          se entrena r_φ(x, y) para predecir la preferencia.
Etapa 3 — RL (PPO): optimizar la política π_θ para maximizar la recompensa,
          penalizando alejarse de π_SFT.

🏆 Modelo de recompensa y Bradley–Terry

La probabilidad de que la respuesta y_w ("winner") sea preferida a y_l ("loser") se modela con Bradley–Terry:

P(y_w ≻ y_l | x) = σ(r_φ(x, y_w) − r_φ(x, y_l))       σ = sigmoide
L_RM = −E[log σ(r_φ(x, y_w) − r_φ(x, y_l))]

Solo importan las diferencias de recompensa: r_φ está definida salvo una constante. Comparar es más fiable que puntuar: los anotadores discrepan menos en "¿cuál es mejor?" que en "¿cuánto vale esta del 1 al 10?".

🎯 Objetivo RL con penalización KL

Maximizar r_φ a secas invita al reward hacking (respuestas largas, aduladoras o degeneradas que engañan al RM). Por eso el objetivo real es:

max_θ  E_{y~π_θ} [ r_φ(x, y) ]  −  β · KL( π_θ(·|x) ‖ π_ref(·|x) )

La penalización KL ancla la política a la referencia π_ref (el modelo SFT): β pequeño permite explorar más (y hackear más); β grande congela el modelo. En la práctica se añade como término por token a la recompensa y se optimiza con PPO, manteniendo 3–4 copias del modelo en memoria (política, referencia, RM, crítico).

📐 DPO: optimización directa de preferencias

DPO (Rafailov et al., 2023) parte de que el óptimo del objetivo anterior tiene forma cerrada π*(y|x) ∝ π_ref(y|x)·exp(r(x,y)/β). Despejando r y sustituyendo en Bradley–Terry, la recompensa desaparece y queda una pérdida supervisada sobre los propios pares de preferencia:

L_DPO = −E[ log σ( β·( log π_θ(y_w|x)/π_ref(y_w|x) − log π_θ(y_l|x)/π_ref(y_l|x) ) ) ]

Intuición: sube la probabilidad relativa (vs. referencia) de la respuesta preferida y baja la de la rechazada, con β controlando la fuerza. Sin RM separado, sin muestreo online, sin PPO: entrena como un fine-tuning normal con dos forwards por ejemplo (θ y ref). RLAIF sustituye anotadores humanos por un LLM que juzga con una constitución/criterios — misma matemática, otra fuente de preferencias.

🧮 Ejemplo trabajado

Modelo de recompensa sobre un par: r(x, y_w) = 2,0 y r(x, y_l) = 0,5.

P(y_w ≻ y_l) = σ(2,0 − 0,5) = σ(1,5) = 1/(1+e^−1,5) ≈ 0,817
L_RM = −ln 0,817 ≈ 0,202

Si el RM se equivocara (r_w = 0,5, r_l = 2,0): P = σ(−1,5) ≈ 0,182 → L ≈ 1,703.

Paso DPO con β = 0,1 (log-probs totales de cada respuesta):

log π_θ(y_w) = −12,0   log π_ref(y_w) = −12,5   → ventaja_w = +0,5
log π_θ(y_l) = −10,0   log π_ref(y_l) = −9,0    → ventaja_l = −1,0
margen = β·(0,5 − (−1,0)) = 0,1·1,5 = 0,15
L_DPO = −ln σ(0,15) ≈ −ln 0,537 ≈ 0,621

El gradiente empuja a aumentar π_θ(y_w) y reducir π_θ(y_l), con más fuerza cuanto más "sorprendido" está el modelo (margen pequeño o negativo).

📊 Propiedades y comparación

Aspecto RLHF (PPO) DPO RLAIF
Modelo de recompensa Explícito, entrenado aparte Implícito en la pérdida Explícito o implícito
Fuente de preferencias Humanos Humanos LLM juez con criterios
Muestreo durante el entrenamiento Online (genera y evalúa) Offline (dataset fijo) Según variante
Modelos en memoria 3–4 (π, ref, RM, crítico) 2 (π, ref) Según variante
Estabilidad / complejidad Frágil, muchos hiperparámetros Estable, tipo SFT Hereda del método base
Riesgo característico Reward hacking del RM Sobreajuste al dataset de pares Sesgos del juez amplificados
flowchart TD
    A[Modelo SFT] --> B[Generar K respuestas por prompt]
    B --> C[Humanos o LLM ordenan pares y_w vs y_l]
    C --> D{Metodo}
    D -->|RLHF| E[Entrenar RM con Bradley-Terry]
    E --> F[PPO: max r - beta·KL vs referencia]
    D -->|DPO| G[Perdida directa sobre pares con beta]
    F --> H[Politica alineada]
    G --> H
    H -.reward hacking / sobreajuste.-> C

⚠️ Errores conceptuales frecuentes

  1. "El RM mide la calidad verdadera." Mide preferencias de anotadores bajo incentivos y guías concretas; optimizarlo demasiado produce adulación y verbosidad (reward hacking), no calidad.
  2. "La KL es un tecnicismo opcional." Sin ella, PPO destruye el modelo en pocos pasos (texto degenerado con recompensa alta). β es el hiperparámetro central.
  3. "DPO no tiene modelo de recompensa." Lo tiene implícito: r̂ = β·log(π_θ/π_ref); DPO evita entrenarlo por separado, no lo elimina.
  4. "RLHF enseña hechos nuevos." Ajusta comportamiento y estilo sobre las capacidades ya existentes; no añade conocimiento.
  5. "Preferencias = verdad." Los anotadores prefieren respuestas seguras, largas y confiadas; el modelo aprende también esos sesgos (p. ej., confianza injustificada).

🚀 Del aprendizaje a la operación

Un pipeline real necesita: miles-millones de comparaciones con control de calidad inter-anotador; evaluación del RM en pares retenidos (accuracy ~65–75 % es lo normal — los humanos también discrepan); vigilancia de reward hacking con evals adversariales; decisión RLHF vs DPO según infraestructura (DPO domina en equipos pequeños); y monitoreo del "impuesto de alineamiento" sobre capacidades base tras cada ronda.

🧪 Laboratorio

python lab.py

El laboratorio llama a ai_evolution.labs.run_lab("probability"). Esta decisión evita 183 implementaciones divergentes: cada clase tiene un entrypoint propio, pero los motores didácticos se prueban como una biblioteca común.

🔍 Evidencia esperada

📓 Notebooks

📝 Evaluación

Criterio Peso
Comprensión conceptual 25 %
Ejecución reproducible 25 %
Interpretación basada en evidencia 25 %
Riesgos, límites y mejora propuesta 25 %

Consulta assessment.md para preguntas y criterio de aceptación.

⚠️ Errores comunes

Síntoma Causa probable Corrección
El código corre, pero no hay conclusión Se confundió ejecución con aprendizaje Explica qué demuestra y qué no demuestra
El resultado cambia sin explicación No se registró semilla o configuración Conserva semilla, versión y parámetros
Se promete uso real Se extrapoló desde una demo educativa Declara entorno, datos, límites y revisión humana
Se copia una métrica aislada No existe baseline ni costo de error Añade comparación y criterio de decisión

❓ Preguntas frecuentes

¿Debo usar una API comercial?
No. El núcleo funciona localmente. Las extensiones LIVE se documentan por separado.

¿El laboratorio representa una implementación industrial?
No por sí solo. Enseña el contrato y el patrón; producción exige integración, seguridad, observabilidad, pruebas y operación.

¿Dónde profundizo?
Revisa las especializaciones enlazadas en el README raíz y la ruta siguiente.

🔗 Referencias


📜 Papers que fundamentan esta clase

Bloque generado por python scripts/link_papers_to_classes.py. La fuente es papers/catalog/papers.json.

Paper Año Qué desbloqueó Miniatura
P12 · Entrenar modelos de lenguaje para seguir instrucciones con retroalimentación humana 2022 El salto de «modelo que completa texto» a «asistente que sigue instrucciones»: alineación con preferencias humanas. notebook
P15 · Optimización directa de preferencias: tu modelo de lenguaje ya es un modelo de recompensa 2023 Alinear un modelo con preferencias humanas sin modelo de recompensa explícito ni bucle de aprendizaje por refuerzo. notebook
P22 · DeepSeek-R1: incentivar la capacidad de razonamiento mediante aprendizaje por refuerzo 2025 El razonamiento se incentiva con refuerzo puro, sin trazas humanas anotadas; y es el primer LLM de pesos abiertos publicado tras revisión por pares. notebook
P50 · IA constitucional: inocuidad a partir de retroalimentación de IA 2022 Sustituye parte del juicio humano por un conjunto de principios explícitos y auditables, y por la autocrítica del modelo. notebook

Cada ficha explica el problema anterior, la matemática mínima, los límites y los errores de atribución más frecuentes. Para leerlas con método: cómo leer un paper de IA · anexos matemáticos.


📚 Bibliografía de apoyo

Bloque generado por python scripts/link_sources_to_classes.py. Cada obra lleva su localizador verificado en sources/bibliography.json.

Los papers dicen de dónde salió el mecanismo. Estas obras lo desarrollan con el espacio que una clase no tiene: teoría completa, demostraciones y ejercicios.

Obra Edición Localizador Papel en esta clase
Sutton, Richard S. y Barto, Andrew G. — Reinforcement Learning: An Introduction 2.ª · 2018 ISBN 9780262039246 · web de la obra citada en las referencias de esta clase
Jurafsky, Daniel y Martin, James H. — Speech and Language Processing 2.ª (la 3.ª circula como borrador abierto sin ISBN) · 2009 ISBN 9780131873216 · web de la obra obra de referencia de la parte 06 · capítulos de modelos de lenguaje y transformadores
Goodfellow, Ian, Bengio, Yoshua y Courville, Aaron — Deep Learning 2016 ISBN 9780262035613 · web de la obra obra de referencia de la parte 06 · optimización y entrenamiento a escala

⬅️ Clase anterior

077 — LoRA, QLoRA y adaptación eficiente

➡️ Siguiente clase

079 — Prompting, contexto y resultados estructurados


📝 Evaluación completa

❓ Preguntas

  1. Define rlhf, rlaif y dpo sin usar una marca o framework como definición.
  2. Explica la relación entre preferencias, reward model, RLHF, DPO.
  3. Ejecuta lab.py dos veces con la misma semilla. ¿Qué debe conservarse?
  4. Identifica una afirmación permitida y una afirmación exagerada sobre el resultado.
  5. Propón una prueba negativa o un caso límite.

🏆 Reto verificable

Amplía el resultado del laboratorio con una clave student_extension que incluya:

✅ Criterio de aceptación