Gradiente de la política y PPO: aprender directamente la política
Una política estocástica como red, REINFORCE y el teorema del gradiente de la política, línea base y ventaja, actor-crítico, PPO con recorte escrito desde cero en el péndulo invertido sobre un carro, qué pasa sin recorte, y cómo PPO ajustó los modelos de lenguaje.
Serie Fundamentos de IA Parte 49 de 52
- Mapa de la inteligencia artificial: qué es cada cosa y cómo encaja todo
- Breve historia de la inteligencia artificial: de Turing a los modelos de lenguaje
- Datos, modelo, entrenamiento, inferencia: los conceptos básicos en un solo ejemplo
- Cómo leer la notación matemática: símbolos, subíndices, sumatorios y cuantificadores
- Conjuntos y relaciones: las piezas con las que se construyen las definiciones en IA
- Funciones y aplicaciones: por qué todo modelo de IA es una función
- Lógica y demostraciones: las reglas con las que se razona en IA
- Grafos y árboles: la estructura sobre la que se apoyan la búsqueda y las redes neuronales
- Álgebra lineal para aprendizaje automático: vectores, matrices y por qué la IA sobre todo multiplica
- Derivadas, gradiente y regla de la cadena: cómo sabe un modelo en qué dirección aprender
- Descenso de gradiente: cómo aprende un modelo
- Qué es la probabilidad: del lanzamiento de un dado a los axiomas de Kolmogórov
- Probabilidad condicionada y teorema de Bayes: cómo cambiar una estimación cuando te enteras de algo nuevo
- Variable aleatoria y función de distribución: una sola función que lo dice todo sobre la distribución
- Función de densidad y función de probabilidad: por qué una variable continua tiene probabilidad cero en cada punto
- Esperanza, varianza y covarianza: dónde está una distribución, qué anchura tiene y qué se relaciona con qué
- Resumen de las distribuciones de probabilidad: Bernoulli, binomial, Poisson, uniforme, normal y exponencial
- Ley de los grandes números y teorema central del límite: por qué las medias se comportan de forma tan predecible
- Estadística y estimación de parámetros: máxima verosimilitud, MAP e intervalos de confianza
- Teoría de la información: entropía, entropía cruzada y divergencia KL, el origen de las funciones de pérdida
- Búsqueda en el espacio de estados: BFS, DFS, UCS y A* con animaciones
- Juegos y adversarios: minimax, poda alfa-beta y Monte Carlo tree search
- Satisfacción de restricciones: backtracking, propagación de restricciones y AC-3 con un sudoku y un mapa de regiones checas
- Lógica y sistemas basados en conocimiento: encadenamiento hacia delante y hacia atrás, resolución y sistemas expertos
- Planificación: STRIPS, el mundo de bloques, heurísticas a partir de la relajación y la planificación en los agentes de IA
- Búsqueda local y recocido simulado: un viajante por las capitales regionales checas
- Algoritmos genéticos: población, cruce, mutación y selección en una mochila para la excursión
- Estrategias evolutivas y programación genética: de la regla de un quinto a la ley de Kepler
- Optimización por colonia de hormigas: cómo un rastro de feromona encuentra un camino corto
- Optimización por enjambre de partículas: inercia, experiencia propia y experiencia del enjambre
- Neuroevolución: evolución de los pesos y la forma de las redes neuronales, y el algoritmo NEAT
- Conjuntos difusos y funciones de pertenencia: cómo escribir «algo cálido»
- Lógica difusa y probabilidad: por qué «algo cálido» no significa «probablemente cálido»
- Lógica difusa: t-normas, implicaciones y reglas SI–ENTONCES
- Control difuso: Mamdani y Sugeno, del ventilador al péndulo invertido sobre un carro
- Agrupamiento difuso: el algoritmo fuzzy c-means y los puntos entre clusters
- Sistemas neuro-difusos (ANFIS): reglas difusas que aprenden de los datos
- Cadenas de Markov: matriz de transición, distribución estacionaria y PageRank
- Modelos ocultos de Márkov: el algoritmo de Viterbi y el casino deshonesto
- Redes bayesianas: por qué está mojada la hierba y qué significa eso para el aspersor
- El filtro de Kalman: cómo estimar a partir de mediciones imprecisas dónde está un coche y a qué velocidad va
- Tipos de aprendizaje automático: supervisado, no supervisado, semisupervisado y más
- Prompts, contexto y RAG: cómo darle a un modelo la información correcta
- Autocodificadores variacionales (VAE): imágenes nuevas a partir de un espacio latente continuo
- Redes generativas adversarias (GAN): el falsificador contra el detective
- Modelos de difusión: cómo el ruido puro se convierte en una imagen
- Procesos de decisión de Markov: estados, acciones, recompensas y ecuaciones de Bellman
- Q-learning y DQN: aprender el valor de las acciones, de la tabla a la red neuronal
- Gradiente de la política y PPO: aprender directamente la política
- Cómo funciona un agente de IA: un modelo de lenguaje en un bucle con herramientas
- Programación con agentes de IA: encargo, pruebas y revisión
- Evaluación y seguridad de los sistemas de IA: cómo medir y cómo vigilar
Temario completo de la serie 52 de 83 temas publicados
- Cómo se aprende una política directamente a partir de los resultados, sin tabla de valores.
- Por qué ayuda restar una línea base y qué es la ventaja.
- Por qué el recorte es tan importante en PPO y qué relación tiene con RLHF.
Conviene conocer antes: Q-learning y DQN: aprender el valor de las acciones, de la tabla a la red neuronal, Procesos de decisión de Markov: estados, acciones, recompensas y ecuaciones de Bellman
El DQN de la parte anterior aprende lo buena que es cada acción, y la política se deriva de ello solo de forma indirecta: elige la acción con el mayor valor. La segunda gran familia de métodos va directa: la red recibe el estado y devuelve probabilidades de las acciones, y nosotros desplazamos esas probabilidades para que las buenas acciones sean más frecuentes. De esta familia viene PPO, el algoritmo que enseñó a andar a robots, venció a profesionales en el juego Dota 2 y estuvo detrás del ajuste fino de ChatGPT. En esta parte lo escribiremos desde cero y lo compararemos con predecesores más sencillos.
Continúa las partes Q-learning y DQN, Procesos de decisión de Markov y Softmax.
1. Aprender directamente la política
Definición — política parametrizada
Una política estocástica πθ(a | s) es una red con parámetros θ que, para un estado s, devuelve una distribución de probabilidad sobre las acciones: para un número finito de acciones, el softmax de las salidas de la red; para acciones continuas, por ejemplo la media y la varianza de una distribución normal. El objetivo es maximizar el retorno esperado J(θ) = Eπθ[G0] mediante ascenso de gradiente θ ← θ + α ∇J(θ).
El DQN lleva una tabla de «cuántos puntos por cada jugada» y juega la jugada con más puntos. Una política, en cambio, dice directamente: «en esta situación empuja a la derecha con un 70 % y a la izquierda con un 30 %». Las ventajas: funciona también con acciones continuas (con qué fuerza, con qué ángulo), el azar viene incorporado, así que el agente prueba cosas por sí mismo, y un cambio pequeño de los parámetros supone un cambio pequeño del comportamiento.
Ejemplo — el retorno de un intento en el péndulo invertido sobre un carro
La recompensa es +1 por cada paso y el descuento γ = 0,99. Si quedan T − t pasos hasta el final del episodio, el retorno es una serie geométrica:
Gt = 1 + γ + γ² + … + γT−t−1 = (1 − γT−t) / (1 − γ).
Al comienzo de un episodio que aguanta los 500 pasos completos: G0 = (1 − 0,99500) / 0,01 = 99,34. Veinte pasos antes de la caída: G = (1 − 0,9920) / 0,01 = 18,21. El paso justo antes de la caída: G = 1. El retorno es, por tanto, siempre positivo y nunca supera 1 / (1 − γ) = 100; esto será útil en la sección sobre la línea base.
2. REINFORCE: refuerza lo que salió bien
Definición — teorema del gradiente de la política y REINFORCE
El gradiente del retorno esperado se puede escribir como una esperanza, que se puede estimar a partir de episodios jugados:
∇J(θ) = Eπθ[ ∑t ∇ log πθ(at | st) · Gt ].
REINFORCE (Ronald Williams, 1992) lo hace al pie de la letra: juega episodios, calcula para cada paso el retorno Gt desde ese paso en adelante y desplaza θ en la dirección ∇ log π(at | st) · Gt. Para el softmax, ∇ log π(a) respecto a las salidas de la red es simplemente (1a − π).
Juega, mira cómo ha salido, y haz cada jugada que hiciste un poco más probable, tanto más cuanto mejor salió todo después. Las jugadas de las partidas buenas se refuerzan más que las de las malas. Nadie tiene que decirte qué jugada era la correcta; basta con el resultado.
∇J(θ) = Eπθ[ ∑t ∇ log πθ(at | st) · Gt ]
- ∇J(θ)
- la dirección en la que girar los parámetros para que el retorno medio crezca lo más rápido posible; no se puede calcular directamente, porque el retorno depende de θ solo a través del juego aleatorio y de la física desconocida del entorno
- Eπθ[ ∑t … ]
- media sobre episodios jugados con la política actual; por eso se puede sustituir por la media sobre partidas realmente jugadas, y por eso los datos de otra política (más antigua, ajena) no bastan sin corrección
- ∇ log πθ(at | st)
- la dirección en el espacio de parámetros que hace más probable la acción jugada; ∇ log π = ∇π / π divide por la probabilidad, de modo que una acción frecuente, que aparece a menudo en los datos, no recibe un refuerzo extra solo por ser frecuente
- Gt
- el peso: lo bien que salió todo después de la acción; solo las recompensas desde el paso t en adelante, porque una acción no puede influir en las recompensas que ya llegaron
Teorema — de dónde sale la fórmula (el truco del logaritmo)
Un episodio τ = (s0, a0, s1, a1, …) tiene, con la política πθ, la probabilidad Pθ(τ) = p(s0) ∏t πθ(at | st) P(st+1 | st, at) y el retorno G(τ). Entonces
∇J(θ) = ∇ ∑τ Pθ(τ) G(τ) = ∑τ Pθ(τ) · ∇ log Pθ(τ) · G(τ) = Eτ ∼ πθ[ ∇ log Pθ(τ) · G(τ) ],
porque ∇P = P · ∇ log P. Demostración (esbozo): el logaritmo convierte el producto en una suma, log Pθ(τ) = log p(s0) + ∑t log πθ(at | st) + ∑t log P(st+1 | st, at). De θ depende solo la suma del medio, así que no necesitamos conocer la física del entorno P: ∇ log Pθ(τ) = ∑t ∇ log πθ(at | st). Por último, para cada at descartamos las recompensas anteriores al paso t: no dependen de at, y por eso su contribución tiene esperanza nula (véase el teorema de la sección siguiente). Queda Gt. ∎ (El enunciado exacto para el retorno descontado es algo más sutil; aquí, simplificado.)
Ejemplo — un paso de REINFORCE con softmax
Dos acciones, salidas de la red z = (0; 0), así que π = softmax(z) = (0,50; 0,50). El agente jugó la acción 1 («a la derecha») y el retorno desde ese paso fue G = 10. Para el softmax, ∇z log π(a) = 1a − π, es decir
∇z log π(1) · G = ((0; 1) − (0,50; 0,50)) · 10 = (−5; 5).
Un paso de ascenso con α = 0,1: z ← (0; 0) + 0,1 · (−5; 5) = (−0,5; 0,5). La nueva política π = (e−0,5; e0,5) / (e−0,5 + e0,5) = (0,269; 0,731). La acción que salió bien es ahora más probable. (En una red real cambian los pesos θ, y el gradiente llega a z por retropropagación; la dirección es la misma.)
θ = pesos aleatorios de la red de la política
repite:
juega episodios completos con la política π_θ hasta tener al menos 2 000 pasos
para cada episodio, de atrás hacia delante: # G = 0 tras el final del episodio
G_t = r_(t+1) + γ · G_(t+1)
g = media sobre todos los pasos ∇ log π_θ(a_t | s_t) · G_t
θ = θ + α · g # ascenso; aquí con un paso de Adam
descarta los datos: la próxima vez serán de otra política
3. Varianza y línea base
Definición — línea base (baseline) y ventaja
A Gt se le puede restar cualquier función del estado b(st) sin que cambie la esperanza de la estimación del gradiente, porque E[∇ log π(a | s)] = 0. En cambio, la varianza de la estimación puede reducirse mucho. La mejor elección habitual es el valor del estado V(s), aprendido por una segunda red; la diferencia A(s, a) = Q(s, a) − V(s) se llama ventaja (advantage). Los métodos con una política aprendida («actor») y un valor aprendido («crítico») se llaman actor-crítico.
En el péndulo sobre el carro, el agente recibe +1 por cada paso, así que todo retorno es positivo: REINFORCE refuerza todas las jugadas, solo que unas más que otras. La señal «esto fue mejor de lo habitual» se pierde en el ruido. Al restar el nivel esperado, se convierte en «esta jugada salió 20 puntos mejor de lo que se esperaba en esta situación», y las jugadas peores reciben signo negativo.
∇J(θ) = E[ ∑t ∇ log πθ(at | st) · (Gt − b(st)) ], A(s, a) = Q(s, a) − V(s)
- ∇ log πθ(at | st)
- la dirección «la acción jugada, más a menudo», igual que en REINFORCE
- Gt, Q(s, a)
- lo que realmente llegó después de la acción (Gt), o cuánto rinde después de ella en promedio (Q es la esperanza de Gt); por sí solo casi siempre positivo, así que no distingue una acción buena de una corriente
- b(st), V(s)
- el listón: cuánto se espera en esta situación independientemente de la acción; tras restarlo, las acciones peores que la media reciben signo negativo. Solo puede depender del estado, no de la acción; si no, el gradiente quedaría sesgado (teorema más abajo)
- A(s, a)
- la ventaja: cuánto mejor es la acción a que la acción media de la política en s; justo la información que queremos reforzar
Teorema — la línea base no sesga el gradiente
Para todo estado s se cumple Ea ∼ πθ[∇ log πθ(a | s)] = 0, y por tanto E[∇ log πθ(a | s) · b(s)] = 0 para cualquier función b que no dependa de a.
Demostración: ∑a πθ(a | s) ∇ log πθ(a | s) = ∑a ∇πθ(a | s) = ∇ ∑a πθ(a | s) = ∇1 = 0. El término b(s) es una constante para s fijo, así que puede sacarse fuera de la suma. ∎
Ejemplo — misma media, distinta varianza
Un estado, dos acciones con π = (0,5; 0,5). La acción 1 da un retorno de 12; la acción 0, de 10: ambos positivos, como en el carro. La componente de la estimación del gradiente respecto a la salida z1 es, a partir de una sola muestra, (1a=1 − 0,5) · (G − b).
Sin línea base (b = 0): si sale la acción 1, la estimación es 0,5 · 12 = 6; si sale la acción 0, es −0,5 · 10 = −5. Media (6 − 5) / 2 = 0,5, varianza ((6 − 0,5)² + (−5 − 0,5)²) / 2 = 30,25.
Con línea base b = 11 (retorno medio): 0,5 · (12 − 11) = 0,5 y −0,5 · (10 − 11) = 0,5. La media sigue siendo 0,5, la varianza 0.
El gradiente verdadero es π1(1 − π1) · (12 − 10) = 0,25 · 2 = 0,5. Las dos estimaciones apuntan bien en promedio, pero sin listón una sola muestra se desvía ±5,5, y con listón nada. En la realidad la varianza no baja a cero (los retornos son aleatorios y hay muchos estados), pero el principio es el mismo.
Lo medimos al comienzo del aprendizaje: 40 lotes independientes de 1 000 pasos de la misma política aleatoria, y de cada uno un gradiente de REINFORCE. Solo con restar el retorno medio (una línea base constante), la suma de las varianzas de las componentes del gradiente baja de 0,177 a 0,131, es decir, un 26 %. Un valor aprendido V(s), que distingue las situaciones buenas de las malas, ayuda todavía más.
Definición — suma de las varianzas de las componentes del gradiente
De K = 40 lotes tenemos estimaciones del gradiente ĝ(1), …, ĝ(K) (vectores de todos los pesos de la red). Para cada componente j calculamos la varianza entre lotes y sumamos:
∑j (1/K) ∑k (ĝj(k) − ḡj)², ḡj = (1/K) ∑k ĝj(k).
Es la traza de la matriz de covarianza de la estimación: un único número que dice cuánto tiembla la estimación. Reducción: 1 − 0,131 / 0,177 = 0,26, es decir, un 26 %.
Un V aprendido también lo necesita PPO, más abajo. Pero la ventaja no la estima con la diferencia Gt − V(st), sino con un compromiso entre ella y la estimación de un paso de la parte sobre el Q-learning:
Ât = ∑l≥0 (γλ)l δt+l, δt = rt+1 + γ V(st+1) − V(st)
- Ât
- la estimación de la ventaja del paso t (GAE, John Schulman et al., 2015): aquello por lo que se multiplica ∇ log π
- δt
- error TD: cuánto mejor salió un paso de lo que esperaba V; una estimación de la ventaja de un solo paso, con poca varianza pero sesgada si V se equivoca
- rt+1
- la recompensa que realmente llegó: el único trozo de realidad en δ
- V(s)
- el listón aprendido; en st+1 sustituye el resto del retorno por una estimación, en st se resta como línea base (tras una caída, V(st+1) = 0)
- (γλ)l
- lo rápido que se olvidan los pasos más lejanos. λ = 0 da solo δt; λ = 1 da, tras sumar (los términos V se cancelan entre sí), exactamente Gt − V(st): sin sesgo, pero con mucha varianza. Nosotros usamos λ = 0,95
4. PPO: pasos pequeños y seguros
REINFORCE tiene otra debilidad: cada experiencia jugada la usa para un solo paso de gradiente y luego la tira. Si sobre los mismos datos diéramos más pasos, la política podría alejarse de la que recogió los datos, y la estimación del gradiente dejaría de valer: el aprendizaje se desmorona. PPO vigila precisamente esto.
Definición — Proximal Policy Optimization (PPO)
PPO (John Schulman et al., OpenAI, 2017) recoge un lote de transiciones con la política antigua πold, calcula las ventajas Ât y luego, durante varias épocas, maximiza el objetivo recortado
L(θ) = Et[ min( rt(θ) Ât, clip(rt(θ), 1 − ε, 1 + ε) Ât ) ], rt(θ) = πθ(at | st) / πold(at | st),
normalmente con ε = 0,2. En cuanto la probabilidad de una acción cambia más de ε en la dirección que mejora el objetivo, el gradiente de esa muestra desaparece. Las ventajas suelen estimarse con GAE (generalized advantage estimation), una media ponderada de los errores TD con el parámetro λ.
Después del partido, el entrenador dice: «haz esto más a menudo». El jugador lo repite en el entrenamiento, pero solo hasta que lo hace una quinta parte más a menudo que antes. A partir de ahí ya no aprende más hasta que juega el siguiente partido y comprueba si sigue funcionando. Pasos lo bastante grandes para mejorar rápido, lo bastante pequeños para no volverse loco.
L(θ) = Et[ min( rt(θ) Ât, clip(rt(θ), 1 − ε, 1 + ε) Ât ) ]
- L(θ)
- el objetivo sustituto que se maximiza durante varias épocas sobre el lote antiguo; su gradiente en θ = θold es exactamente el gradiente de la política de REINFORCE con ventaja
- rt(θ) = πθ / πold
- la razón entre la probabilidad nueva y la antigua de la acción jugada. Los datos los recogió la política antigua; multiplicándolos por la razón se puede estimar con ellos cómo le iría a la nueva (muestreo por importancia, importance sampling). Al principio, r = 1
- Ât
- la ventaja de GAE: el signo dice si hay que reforzar la acción (+) o suprimirla (−)
- clip(r, 1 − ε, 1 + ε)
- la razón encajada en una banda (en verde en la figura); fuera de la banda es constante, así que de ahí no sale ningún gradiente: con esta muestra ya no se puede empujar más la política
- min
- de las dos estimaciones, la peor (pesimista): el recorte solo actúa donde la mejora parecería sospechosamente buena. Si, al contrario, la acción ha empeorado, min deja el término sin recortar y corrige el error
Ejemplo — tres muestras y el recorte con ε = 0,2
La política antigua daba a la acción jugada una probabilidad de 0,5. Tras unos cuantos pasos de aprendizaje es 0,65, así que r = 0,65 / 0,5 = 1,3 y clip(1,3; 0,8; 1,2) = 1,2.
Ventaja +2: min(1,3 · 2; 1,2 · 2) = min(2,6; 2,4) = 2,4. Gana el término recortado, que no depende de θ: el gradiente de esta muestra es cero. La acción ya es un 30 % más frecuente, y no más.
Ventaja −2 (misma razón): min(−2,6; −2,4) = −2,6. Gana el término sin recortar: la política hizo por error más probable una acción mala, y por eso el gradiente sigue tirando de ella hacia atrás.
Ventaja +2, pero la probabilidad bajó a 0,35: r = 0,7, min(1,4; 0,8 · 2 = 1,6) = 1,4. Otra vez el término sin recortar: una buena acción que la política había suprimido vuelve. El recorte solo frena los pasos que mejorarían el objetivo «demasiado».
repite:
π_old = π_θ; recoge 2 000 pasos con la política π_old, guarda π_old(a_t | s_t)
para cada episodio, de atrás hacia delante: # V(s_(t+1)) = 0 tras una caída
δ_t = r_(t+1) + γ · V(s_(t+1)) − V(s_t)
Â_t = δ_t + γλ · Â_(t+1) # GAE, γ = 0,99, λ = 0,95
objetivo_t = Â_t + V(s_t); normaliza  a media 0 y varianza 1
10 veces (época):
baraja los pasos y divídelos en minilotes de 100
para cada minilote:
r_t = π_θ(a_t | s_t) / π_old(a_t | s_t)
θ: paso hacia arriba sobre la media de min(r_t · Â_t, clip(r_t, 0,8, 1,2) · Â_t)
V: paso hacia abajo sobre la media de (V(s_t) − objetivo_t)²
5. Experimento: el péndulo invertido sobre un carro
El mismo péndulo sobre un carro que con el DQN, recompensa +1 por cada paso; el episodio termina con una caída o tras 500 pasos. La política es una red 4 → 32 → 32 → 2 con softmax, y el valor del estado, una segunda red de la misma forma. Los cuatro métodos reciben 100 000 pasos en el entorno, en lotes de 2 000. REINFORCE da un paso de gradiente por lote; PPO, diez épocas con minilotes de 100. La variante «sin recorte» es PPO con el recorte desactivado.
| método | cuándo la media llega por primera vez a ≥ 475 (ejecución 1 · 2 · 3) | al final (ejecución 1 · 2 · 3) |
|---|---|---|
| REINFORCE | — · — · — | 463 · 333 · 348 |
| REINFORCE con línea base | 90 000 · 80 000 · — | 488 · 500 · 404 |
| PPO | 30 000 · 20 000 · 20 000 | 500 · 500 · 500 |
| PPO sin recorte | 100 000 · 30 000 · 50 000 | 494 · 44 · 500 |
PPO mantiene la barra en pie los 500 pasos completos en las tres ejecuciones ya tras 30 000, 20 000, 20 000 pasos, y ya no la suelta. REINFORCE mejora despacio y no lo consigue antes del final; con línea base es algo más rápido y llega a la meta en dos de cada tres ejecuciones. Ojo: la comparación no es del todo justa en número de cálculos, porque PPO da diez veces más pasos de gradiente sobre cada lote. Pero sí es justa en lo que más cuenta en el aprendizaje por refuerzo: el número de experiencias que el agente tiene que recoger en el mundo.
¿Y qué pasa si dejamos el mismo aprendizaje repetido sobre un lote sin recorte? Las duraciones de los episodios suben y bajan; la ejecución 2 terminó en 44 pasos. El porqué lo muestra cuánto se aleja la política, en una sola actualización, de la que recogió los datos:
En PPO la distancia media es de 0,014 nats y nunca supera 0,06. Sin recorte es, en promedio, 5,5 y a veces hasta 25 nats: tras una sola actualización, la política hace algo completamente distinto de aquella de la que aprendió. Los datos entonces no dicen nada sobre ella y la mejora es una lotería. El recorte es un pequeño retoque en la fórmula, pero convierte un algoritmo inestable en uno fiable.
Definición — estimación de la KL entre la política antigua y la nueva
La divergencia KL de la parte sobre teoría de la información, aquí con el logaritmo natural (unidad: nat; 1 nat = 1 / ln 2 ≈ 1,44 bits), promediada sobre los estados del lote:
DKL(πold ‖ πθ) = Es, a ∼ πold[ log πold(a | s) − log πθ(a | s) ] ≈ (1/N) ∑i=1N [ log πold(ai | si) − log πθ(ai | si) ].
Las acciones ai las jugó la política antigua, así que la media sobre el lote es una estimación insesgada. Es el logaritmo medio de la razón, y por tanto e−D es la media geométrica de la razón πθ / πold sobre las acciones recogidas.
Qué significa en números: en PPO, como mucho 0,06 nats, e−0,06 = 0,94: las acciones del lote antiguo son típicamente unos pocos puntos porcentuales menos probables, y los datos siguen diciendo algo sobre la política nueva. Sin recorte, hasta 24,9 nats: e−24,9 ≈ 1,5 · 10−11; la política nueva casi nunca jugaría las acciones de las que acaba de aprender.
6. PPO y los modelos de lenguaje
En la parte sobre RLHF mencionamos que InstructGPT y el primer ChatGPT se ajustaron con aprendizaje por refuerzo. Fue precisamente PPO: la política es el modelo de lenguaje, el estado es el texto hasta el momento, la acción es el siguiente token, y la recompensa al final de la respuesta la da un modelo de recompensa aprendido de las preferencias humanas. La penalización por alejarse del modelo inicial (KL) cumple el mismo papel que el recorte: no deja que la política se escape adonde ya no se puede confiar en la recompensa.
Definición — recompensa en el ajuste fino de un modelo de lenguaje con PPO
Para una consulta x y una respuesta y generada por el modelo que se está ajustando, πθ, PPO recibe la recompensa
R(x, y) = rφ(x, y) − β · log [ πθ(y | x) / πref(y | x) ],
donde rφ es el modelo de recompensa, πref el modelo congelado tras el ajuste fino con ejemplos (SFT) y β la fuerza de la penalización (así lo escribe InstructGPT, Long Ouyang et al., 2022). La esperanza del segundo término sobre las respuestas es exactamente β · DKL(πθ ‖ πref). Un episodio es una respuesta, las acciones son tokens, y la recompensa rφ llega solo después del último token; el resto es PPO tal como se ha descrito arriba.
Con modelos grandes, sin embargo, PPO es caro: además del modelo necesita una red de valor igual de grande. Por eso surgieron simplificaciones. DPO, de la parte sobre RLHF, evita por completo el aprendizaje por refuerzo. GRPO (DeepSeek, 2024) prescinde de la red de valor y usa como línea base la recompensa media de varias respuestas a la misma pregunta: justo la línea base constante que medimos más arriba. Así se entrenan los modelos que «razonan» sobre matemáticas y código, donde se puede comprobar si una respuesta es correcta.
Âi = (ri − media(r1, …, rG)) / sd(r1, …, rG)
- Âi
- la ventaja de la i-ésima respuesta; la reciben todos sus tokens y pasa después al objetivo recortado de PPO
- ri
- la recompensa de la i-ésima de las G respuestas a la misma pregunta, por ejemplo 1 = el resultado es correcto, 0 = no lo es
- media(…)
- la línea base en lugar de la red de valor: lo bien que suele responder el modelo a esta pregunta; una pregunta fácil tiene el listón alto, una difícil, bajo
- sd(…)
- la desviación típica del grupo; iguala la escala para que las preguntas con mucha y con poca dispersión de recompensas tiren con la misma fuerza (como la normalización de ventajas en nuestro PPO)
Ejemplo — ventajas de GRPO para cuatro respuestas
El modelo responde cuatro veces a un problema, y solo acierta la primera: recompensas (1; 0; 0; 0). Media 0,25, desviación típica √((0,75² + 3 · 0,25²) / 4) = √0,1875 = 0,433.
Ventajas: (1 − 0,25) / 0,433 = 1,732 para la respuesta correcta y (0 − 0,25) / 0,433 = −0,577 para cada una de las tres incorrectas. La suma es cero: la correcta se refuerza y las incorrectas se suprimen. Si las cuatro respuestas fueran correctas (o todas incorrectas), todas las ventajas serían nulas y la pregunta no enseñaría nada: solo se aprende de las preguntas en las que el modelo unas veces acierta y otras no. (Dividimos entre G; algunas implementaciones dividen entre G − 1, y entonces los números difieren ligeramente.)
7. Resumen
- El gradiente de la política (policy gradient) aprende directamente las probabilidades de las acciones; funciona también con acciones continuas y explora por sí solo.
- REINFORCE refuerza las acciones en proporción al retorno que llegó después de ellas; es sencillo, pero la estimación del gradiente tiene mucha varianza.
- Restar una línea base reduce la varianza sin cambiar la esperanza (en nuestro caso, un 26 % ya con una constante); con un V(s) aprendido surge el actor-crítico.
- PPO aprovecha cada lote varias veces y, recortando la razón de probabilidades, mantiene la política cerca de la que recogió los datos.
- En el péndulo sobre el carro: PPO consigue 500 pasos tras 20–30 mil pasos en todas las ejecuciones; sin recorte, la política se aleja hasta 25 nats y el aprendizaje oscila.
- PPO ajustó el primer ChatGPT; su simplificación (GRPO) entrena hoy los modelos que «razonan».
¿Quieres tocarlo con tus propias manos? Pide a un agente de IA que ejecute PPO de la biblioteca Stable-Baselines3 en el entorno LunarLander y que cambie la ε del recorte (0,05; 0,2; 0,5), y que dibuje cómo cambian la velocidad y la estabilidad del aprendizaje.
¿Lo ves de otra manera? Escribe a support@coden-app.com.