En el post anterior anuncié que éste sería el último... pero me equivoqué: éste será el penúltimo y aún habrá, por tanto, otro post en esta serie
Dónde nos habíamos quedado
En los posts anteriores habíamos visto, en primer lugar, algunos métodos que realmente no alteraban en modelo en sí, es decir no modifican ni su arquitectura ni sus parámetros (sus pesos). En el fondo, 'el modelo se queda como está' y lo que hacemos es hacerle razonar mediante técnicas de 'prompting', en concreto, la cadena de pensamiento (CoT, 'Chain-Of-Thought') y la autoconsistencia ('self-consistency').
Y también vimos el auto-refinamiento en que de alguna forma el modelo establece un diálogo consigo mismo y se proporciona 'feedback' sobre las respuestas que ha aportado.
Estos tres métodos se encuadraban dentro de lo que el autor denomina escalado en tiempo de inferencia ('inference-time scaling') porque, por un lado, se aplican ya en producción (en inferencia) y no durante el entrenamiento y, por otro, suponen un mayor esfuerzo computacional.
El último de los mecanismos que habíamos revisado se aplicaba ya en tiempo de entrenamiento y sí que modifica el modelo en sí mismo (sus pesos). Se trataba de un método, aprendizaje por refuerzo con recompensas verificables (RLVR, 'Reinforcement Learning with Verifiable Rewards'), que aplicaba aprendizaje por refuerzo y en el que la recompensa que se ofrece al modelo (la indicación de lo bien o mal que lo ha hecho) se basa en alguna de forma de reglas claramente calculables o verificables (por ejemplo mediante la aplicación de una calculadora para un problema matemático simple).
Vamos ahora otra variante de aprendizaje por refuerzo.
El aprendizaje por refuerzo con feedback humano (RLHF)
Esta variante es realmente muy popular y, de hecho, se mencionó frecuentemente ya desde el momento del lanzamiento de ChatGPT cuando la propia OpenAI explicaba cómo había entrenado su modelo GPT-3.
Aunque RLHF se nos propone como una técnica para conseguir un modelo razonador, en realidad se utiliza con frecuencia para entrenar modelos de lenguaje no razonadores. De hecho, GPT-3, por ejemplo, no era un modelo razonador.
El aprendizaje por refuerzo con feedback humano (RLHF, 'Reinforcement Learning with Human Feedback') se definió originalmente (o explicó, mejor dicho) en el paper 'Training language models to follow instructions with human feedback'.
La idea del aprendizaje con feedback humano es que sea una persona quien indique cómo de buena o mala es la respuesta del modelo y, aplicando algún algoritmo sobre esta valoración, se actualice la política que se aplica (en el fondo el propio modelo) de una manera que recuerda de alguna forma al etiquetado en aprendizaje supervisado.
Sin embargo, en este caso, con frecuencia el feedback humano se recoge de una manera 'muy astuta': como supongo que todos hemos tenido ocasión de experimentar con ChatGPT: de vez en cuando te da dos opciones y te pide que elijas una como la más adecuada. Bueno, pues eso es feedback humano y digo que es 'astuta' porque nos recluta a todos los usuarios para dar ese feedback.
En RLHF hay un doble entrenamiento: primero se entrena un modelo que proporciona las recompensas en función del feedback humano y, con ese modelo ya entrenado, se realiza el entrenamiento del modelo propiamente dicho. Es en el primer entrenamiento, el entrenamiento del modelo que genera las recompensas, donde realmente se utiliza el feedback humano. A partir de ahí ese modelo generador de recompensas se utiliza para entrenar al modelo objetivo ya sin intervención humana.
Un tipo de algoritmo que se utiliza mucho en RLHF es PPO ('Proximal Policy Optimization') que, a partir de las recompensas generadas por el modelo generador de recompensas, 'decide' cómo actualizar el modelo que está siendo entrenado.
PPO ('Proximal Policy Optimization')
Lo que busca PPO es una forma de actualizar políticas, digamos, 'poco a poco', evitando cambios bruscos que puedan perjudicar el aprendizaje. En este caso, cuando hablamos de políticas, estamos hablando en el fondo del propio modelo en entrenamiento.
PPO utiliza el famoso descenso de gradiente ('Gradient Descent') para calcular cómo ajustar los pesos en la nueva política (en el modelo). Pero, para evitar los cambios bruscos, lo que hace es comparar la probabilidad de una respuesta con la política nueva (el modelo eventualmente actualizado) frente a la probabilidad con la política antigua (el modelo sin actualizar) calculando un 'ratio' de la siguiente forma:
r = probabilidad con política nueva (modelo modificado) / probabilidad con política antigua (modelo sin modificar)
Si ese 'ratio' se aleja mucho de 1 (es decir, los resultados de ambas políticas son muy diferentes) aplica lo que se denomina 'clipping' (recorte) y no tiene en cuenta el cambio. Esta forma de actuar es lo que evita cambios bruscos y lo que aporta la primera palabra del nombre del algoritmo: 'proximal' (próximo)
Se trata de un tipo de algoritmos muy estables y muy sencillos de implementar, de ahí su popularidad. Además, funciona muy bien con ese tipo de acciones básicas como elegir simplemente entre dos opciones.
Conclusiones
Hemos visto una segunda forma de aprendizaje por refuerzo que se puede utilizar para el entrenamiento de grandes modelos de lenguaje a la hora de convertirlos en modelos razonadores. Una forma en que, además, nos apoyamos en la opinión de personas, de humanos. Se trata del el RLHF, es decir, el aprendizaje por refuerzo con 'feedback' humano, una forma de entrenamiento que se utiliza también en modelos no razonadores.
Artículos de este blog relacionados
- Cómo hacemos que un modelo razone (IV): aprendizaje por refuerzo basado en recompensas verificables (RLVR)
- Cómo hacemos que un modelo razone (III): auto-refinamiento
- Cómo hacemos que un modelo razone (II): técnicas de prompting
- Cómo hacemos que un modelo razone (I): tres grandes estrategias







