De modelo base a asistente
¿Qué convierte a un predictor de texto en un asistente útil?
Lección completa
Si quieres:
En la lección veintitrés viste que un modelo base solo continúa texto. En la anterior, que ajustarlo con ejemplos cambia su conducta. Hoy: cómo se vuelve un asistente.
Sin voz: la lección avanza sola con subtítulos.
La voz de esta lección está en preparación: por ahora avanza sola con subtítulos.
Modo revisiónComentar este pasoTerminé la lección
Qué lograrás
- Explicar por qué un modelo base no es un asistente y nombrar los pasos que lo convierten en uno: ajuste con instrucciones, preferencias con modelo de recompensa, y RLHF o DPO.
- Calcular, con la sigmoide, la probabilidad de que gane una respuesta a partir de los puntos que le da un modelo de recompensa.
- Reconocer los efectos de optimizar la aprobación humana (ley de Goodhart, adulación, rechazos de más o de menos) y quién decide el comportamiento de un asistente.
Ideas clave
- Un modelo base solo continúa texto: se entrenó para adivinar la siguiente pieza, no para atender a una persona. Alinear es lograr que haga lo que la persona pretende: ser útil, veraz y no causar daño.
- Paso uno, ajuste con instrucciones: se sigue entrenando el modelo con ejemplos de indicación y respuesta ideal, escritos por personas. Enseña la forma de responder con pocos datos (InstructGPT: unas 13 mil indicaciones).
- Paso dos: comparar es más fácil que escribir. Con miles de preferencias se entrena un modelo de recompensa, un juez que da puntos; la probabilidad de que gane una respuesta es la sigmoide de la diferencia de puntos.
- Paso tres, RLHF: el modelo practica contra el juez, con una correa que lo mantiene cerca de cómo escribía. Con demasiada presión agrada al juez y la calidad real cae (ley de Goodhart). DPO llega al mismo lugar sin juez aparte.
- Optimizar la aprobación humana puede premiar la adulación, y el umbral de rechazo siempre cuesta algo. El asistente es el modelo base más una capa de comportamiento, decidida por personas concretas.
Lo que mucha gente cree
Creencia común Un asistente como ChatGPT es un modelo distinto, entrenado desde cero para conversar.
Lo correcto Es un modelo base preentrenado más una capa de comportamiento: ejemplos, preferencias y reglas. Esa capa cambia sobre todo cómo responde, y en InstructGPT entrenarla costó menos del dos por ciento del cómputo de GPT-3 (sin contar los datos).
Compruébalo
Cuatro preguntas. Sin nota ni cuenta: sirven para ver si la idea quedó.
Por dentroPara quien quiere las fórmulas y el código. No hace falta para seguir el curso.
Paso uno: el ajuste supervisado (SFT)
Con pares (indicación , respuesta ideal ), el ajuste con instrucciones minimiza la entropía cruzada solo sobre los tokens de la respuesta:
Los tokens de la indicación no aportan error (una «máscara de pérdida»). Es la pérdida de la lección 19 con otros datos, y el ajuste fino de la lección 27. InstructGPT usó unas 13 mil indicaciones con demostraciones escritas por unas 40 personas contratadas (Ouyang et al., 2022). Antes, FLAN (Wei et al., 2021) había convertido decenas de conjuntos de datos en instrucciones; después, LIMA (Zhou et al., 2023) ajustó un modelo de 65 mil millones de parámetros con solo mil ejemplos elegidos con cuidado, para argumentar que casi todo el conocimiento llega en el preentrenamiento y el ajuste enseña sobre todo el formato.
Un matiz: la frontera entre «base» y «asistente» se ha vuelto borrosa. El informe técnico de Qwen2.5 (2024) cuenta que su preentrenamiento ya usa datos sintéticos generados por modelos instruidos; con ese modelo base no se ve el contraste. Por eso la escena usa TinyLlama 1.1B base (punto de control de 3 billones de tokens) y TinyLlama-1.1B-Chat-v1.0, que según su ficha se ajustó con UltraChat (diálogos sintéticos) y luego se alineó con DPO sobre UltraFeedback (64 mil indicaciones con respuestas ordenadas por GPT-4, no por personas). Las salidas son reales, con decodificación voraz y sin retoques (build-outputs.py); es un modelo pequeño, entrenado sobre todo en inglés, y su asistente es imperfecto: el correo «de dos líneas» no sale en dos líneas.
Paso dos: el modelo de recompensa (Bradley–Terry)
Si es la respuesta preferida y la rechazada para la indicación , el modelo de preferencias de Bradley–Terry supone
y el modelo de recompensa se entrena minimizando . Solo importan las diferencias: sumarle una constante a todas las puntuaciones no cambia nada. En InstructGPT, quienes etiquetaban ordenaban entre 4 y 9 respuestas por indicación (sobre unas 33 mil indicaciones), lo que da comparaciones por indicación, y el modelo de recompensa tenía 6 mil millones de parámetros, con una salida escalar. Quienes etiquetaban coincidían entre sí el 72.6 % de las veces (±1.5). Durante la recolección de datos de entrenamiento se les pidió priorizar la utilidad por encima de la veracidad y la inocuidad; en la evaluación final, al revés.
La idea de aprender una recompensa a partir de comparaciones humanas viene de Christiano et al. (2017), en juegos de Atari y robots simulados; Stiennon et al. (2020) la aplicó a resúmenes de texto, e InstructGPT, a instrucciones generales. Las preferencias no siempre vienen de personas: Constitutional AI (Bai et al., 2022) sustituye las etiquetas humanas sobre qué es dañino por una lista de principios escritos (RLAIF). En la escena, con cuatro rasgos asignados a mano, y se ajusta con regresión logística con una pequeña regularización L2.
Paso tres: optimizar con correa (RLHF)
El modelo se ajusta para maximizar la recompensa sin alejarse del modelo de partida ; la «correa» es la penalización de divergencia KL:
Su solución exacta tiene forma cerrada:
La escena calcula esa distribución exacta; la «presión» es . En la práctica se aproxima con algoritmos de refuerzo como PPO. InstructGPT aplicó una penalización KL por token respecto del modelo ajustado y, además, mezcló gradientes del preentrenamiento (PPO-ptx) para reducir las caídas de rendimiento en algunas tareas públicas.
Optimizar de más: la ley de Goodhart
Como es un sustituto imperfecto, optimizarlo demasiado perjudica la calidad real. Gao, Schulman y Hilton (2022) lo midieron con un modelo «de oro» que hacía el papel de las personas: con , la puntuación de oro sigue al elegir la mejor de muestras y con refuerzo: sube, llega a un máximo y baja. En su montaje, la penalización KL no mejoró de forma medible esa frontera (podría depender de los hiperparámetros): sirve sobre todo para decidir hasta dónde llegar.
En el juguete, los rasgos son independientes en el modelo de partida (), y el óptimo conserva esa independencia: la probabilidad de cada rasgo pasa a ser . El juez de práctica tiene pesos supuestos y la «calidad real» es otra regla supuesta, , que premia lo correcto y castiga el relleno y la complacencia. La calidad real mejora hasta (+0.90) y luego cae, hasta −0.97 con presión 8, mientras los puntos del juez suben siempre (de 0 a +1.89).
DPO: el modelo es, en secreto, un modelo de recompensa
Despejando de la solución cerrada, . Como Bradley–Terry solo depende de diferencias, se cancela, y la pérdida depende solo del modelo (Rafailov et al., 2023):
No hace falta muestrear del modelo durante el ajuste: se parte de un conjunto fijo de parejas. En la escena, la familia de modelos es ; la pérdida DPO se calcula con las 16 combinaciones de rasgos y su normalización, y con la misma regularización los pesos coinciden con los del modelo de recompensa: un caso exacto de la equivalencia. En un modelo real es una aproximación, porque el modelo no puede representar cualquier distribución. Con preferencias ordenadas por GPT-4 en lugar de personas, Zephyr (2023) obtuvo un asistente competente sin anotación humana nueva; TinyLlama Chat siguió esa receta.
Qué publican los laboratorios: OpenAI dice que ChatGPT se entrenó con RLHF con los métodos de InstructGPT. Llama 2 usó RLHF con muestreo por rechazo y PPO (Touvron et al., 2023); Llama 3 usó ajuste supervisado, muestreo por rechazo y DPO, y explica que los algoritmos de refuerzo más complejos eran menos estables y más difíciles de escalar (Llama Team, 2024). De otros asistentes comerciales no se publica la receta completa: no la des por supuesta.
Cuánto cuesta la capa
El «menos del 2 %» sale del artículo de InstructGPT: entrenar el modelo ajustado de 175 mil millones costó 4.9 petaflops/s-día, y el modelo final con PPO-ptx, 60, frente a 3 640 de GPT-3 (60 / 3 640 ≈ 1.6 %; con los 4.9, ≈ 1.8 %). No incluye el modelo de recompensa de 6 mil millones, la recolección de datos ni las pruebas previas. En las evaluaciones, las personas prefirieron las salidas del InstructGPT de 175 mil millones a las de GPT-3 en el 85 % de los casos (±3), y las del de 1.3 mil millones a las del GPT-3 de 175 mil millones.
En código
import math
def sigmoid(x):
return 1 / (1 + math.exp(-x))
# 1) Modelo de recompensa (Bradley–Terry): puntos de la respuesta preferida y de la rechazada
r_pref, r_rech = 1.8, -1.1
p = sigmoid(r_pref - r_rech) # probabilidad de que la preferida gane
print(round(p, 3), round(-math.log(p), 3))
# 2) Óptimo con correa KL: pi*(y) ∝ pi_ref(y) · exp(r(y) / beta), con tres respuestas posibles
pi_ref = [0.6, 0.3, 0.1]
r = [0.0, 1.0, 3.0]
for beta in (10.0, 1.0, 0.25):
w = [q * math.exp(ri / beta) for q, ri in zip(pi_ref, r)]
z = sum(w)
print(beta, [round(x / z, 3) for x in w])
# 3) DPO: la misma pérdida, pero con log-probabilidades del modelo en lugar de puntos
beta = 0.1
logp_w, logp_l = -12.0, -15.0 # log pi_theta de la preferida y de la rechazada
ref_w, ref_l = -12.5, -14.0 # log pi_ref
margen = beta * ((logp_w - ref_w) - (logp_l - ref_l))
print(round(-math.log(sigmoid(margen)), 3))
Salida esperada:
0.948 0.054
10.0 [0.563, 0.311, 0.127]
1.0 [0.175, 0.238, 0.587]
0.25 [0.0, 0.001, 0.999]
0.621
Con grande (correa corta) el modelo casi no se mueve; con pequeño casi toda la probabilidad se concentra en la respuesta mejor puntuada y pierde variedad.
Lo que viene
Todo esto moldea el comportamiento a partir de preferencias. La siguiente lección usa la misma maquinaria de refuerzo, pero con recompensas que se pueden verificar (la respuesta de un problema de matemáticas es correcta o no) para enseñar al modelo a razonar antes de responder.
Lente de decisión
Qué significa esta idea si tu trabajo es decidir, no programar.
- Pregunta quién calibró el modelo. Las preferencias de quienes lo evaluaron quedan incorporadas: en InstructGPT fueron unas cuarenta personas contratadas, que coincidían entre sí unas tres de cada cuatro veces, y sus autores advierten que el modelo refleja a ese grupo, no «valores humanos» en general. Pide saber quiénes, cuántas, en qué idiomas y con qué instrucciones.
- Tono, longitud, grado de rechazo y complacencia son decisiones de producto, no hechos técnicos. En InstructGPT, durante el entrenamiento se pidió priorizar la utilidad sobre la veracidad y la inocuidad. Pide la política de comportamiento por escrito (algunas empresas la publican, como el Model Spec de OpenAI) y cómo comprueban que el modelo la cumple.
- Cada actualización del proveedor puede cambiar el comportamiento sin cambiar el nombre del modelo. En abril de 2025 se retiró una actualización de GPT-4o por aduladora; según OpenAI, influyó una combinación de cambios, entre ellos una señal nueva con los pulgares de los usuarios. Mantén casos de prueba propios (adulación, rechazos, tono) y córrelos antes de adoptar cada versión.
- «Optimizado con retroalimentación humana» no garantiza veracidad: se optimizó una puntuación que aproxima el gusto de las personas. Pide evaluaciones independientes de esa puntuación (lección 34) y recuerda que alinear moldea el comportamiento, no elimina las alucinaciones (lección 33).
Términos de la lección
- Preentrenamiento Primera etapa del entrenamiento de un modelo de lenguaje: con un corpus enorme, el modelo adivina la siguiente pieza del texto una y otra vez y ajusta sus parámetros para bajar el error. El resultado es un modelo base.
- Modelo base Modelo de lenguaje que solo pasó por el preentrenamiento: sabe continuar textos, pero no está ajustado para seguir instrucciones ni conversar como un asistente.
- Ajuste fino Seguir entrenando un modelo ya preentrenado con un conjunto pequeño de ejemplos propios (entrada y respuesta deseada) para cambiar su comportamiento, sin empezar de cero.
- Modelo de lenguaje Modelo que, dado un texto (el contexto), da una probabilidad a cada palabra o pieza que puede seguir. Escribe agregando una pieza a la vez.
- Token Pieza de texto (una palabra, un trozo de palabra, un signo o un código básico) tomada del vocabulario. Es la unidad que el modelo lee y genera, y por la que se cobra.
- Función de pérdida Un único número que resume qué tan equivocado está un modelo con sus datos. Entrenar es buscar los parámetros que lo hacen lo más pequeño posible.
- Sigmoide Función σ(z) = 1/(1 + e⁻ᶻ): convierte cualquier número en un valor entre 0 y 1, y vale 0.5 cuando z = 0.
- Descenso del gradiente Método que ajusta los pesos paso a paso, siempre en contra de la pendiente del error (el gradiente), hasta llegar a un fondo.
- Ajuste con instrucciones Ajuste fino de un modelo base con pares de indicación y respuesta ideal escritos por personas, para que trate lo que se le pide como una petición y no como el comienzo de un texto.
- Alineación Técnicas para que un modelo haga lo que la persona pretende y sea útil, veraz e inofensivo, y no solo lo más probable según su texto de entrenamiento. Convierte un modelo base en un asistente.
- Modelo de recompensa Modelo entrenado con comparaciones entre respuestas que devuelve una puntuación: más alta cuanto más probable es que las personas prefieran la respuesta. Hace de juez al optimizar; la probabilidad de que gane una respuesta es la sigmoide de la diferencia de puntuaciones.
- RLHF (aprendizaje por refuerzo con retroalimentación humana) Ajusta un modelo para que sus respuestas obtengan más puntos de un modelo de recompensa entrenado con preferencias humanas, con una penalización (la «correa» KL) que lo mantiene cerca del modelo de partida.
- DPO (optimización directa de preferencias) Método que aprende de parejas de respuestas (preferida y rechazada) ajustando el modelo directamente: sube la probabilidad de la preferida y baja la de la rechazada, sin entrenar un modelo de recompensa aparte ni usar refuerzo.
- Adulación (sycophancy) Tendencia de un asistente a decir lo que la persona quiere oír, como darle la razón o elogiar su trabajo aunque esté equivocada. En parte es un efecto de optimizar la aprobación humana.
Transcripción completa
Fuentes
- Ouyang, L., Wu, J., Jiang, X., et al. (2022). Training language models to follow instructions with human feedback
- Brown, T. B., Mann, B., Ryder, N., et al. (2020). Language Models are Few-Shot Learners
- OpenAI (2022). Introducing ChatGPT
- Rafailov, R., Sharma, A., Mitchell, E., Ermon, S., Manning, C. D., Finn, C. (2023). Direct Preference Optimization: Your Language Model Is Secretly a Reward Model
- Gao, L., Schulman, J., Hilton, J. (2022). Scaling Laws for Reward Model Overoptimization
- Sharma, M., Tong, M., Korbak, T., et al. (2023). Towards Understanding Sycophancy in Language Models
- OpenAI (2025). Sycophancy in GPT-4o: what happened and what we’re doing about it
- OpenAI (2025). Expanding on what we missed with sycophancy
- OpenAI (2024). Introducing the Model Spec
- Zhang, P., Zeng, G., Wang, T., Lu, W. (2024). TinyLlama: An Open-Source Small Language Model
- TinyLlama (2024). TinyLlama-1.1B-Chat-v1.0 (ficha del modelo / model card)
- Tunstall, L., Beeching, E., Lambert, N., et al. (2023). Zephyr: Direct Distillation of LM Alignment
- Llama Team, AI @ Meta (2024). The Llama 3 Herd of Models
- Christiano, P. F., Leike, J., Brown, T. B., Martic, M., Legg, S., Amodei, D. (2017). Deep Reinforcement Learning from Human Preferences
- Stiennon, N., Ouyang, L., Wu, J., et al. (2020). Learning to Summarize from Human Feedback
- Wei, J., Bosma, M., Zhao, V. Y., et al. (2021). Finetuned Language Models Are Zero-Shot Learners
- Zhou, C., Liu, P., Xu, P., et al. (2023). LIMA: Less Is More for Alignment
- Qwen Team (2024). Qwen2.5 Technical Report
- Bai, Y., Kadavath, S., Kundu, S., et al. (2022). Constitutional AI: Harmlessness from AI Feedback
- Touvron, H., Martin, L., Stone, K., et al. (2023). Llama 2: Open Foundation and Fine-Tuned Chat Models
ComentariosConversación pública de esta lección: dudas, datos por revisar, ideas.
Los comentarios viven en GitHub Discussions, en el repositorio público del curso; para escribir se necesita una cuenta de GitHub. Se cargan desde giscus.app al abrir esta sección. Las personas que revisan el curso los leen, y si un cambio se acepta, se aplica en los dos idiomas. Abrir el hilo en GitHub