Reward Modeling
El modelado de recompensas entrena una red para puntuar los resultados de la IA como lo harían las personas, a partir de comparaciones de preferencias. Incluye la pérdida de Bradley-Terry, tipos y riesgos.
El modelado de recompensas consiste en entrenar una red neuronal, llamada modelo de recompensa, para que puntúe los resultados de un sistema de IA como los juzgarían las personas. En el aprendizaje por refuerzo estándar, el entorno proporciona una recompensa, como la puntuación de un juego. Muchos objetivos no tienen una puntuación de ese tipo: una respuesta útil, una imagen bien compuesta o un robot que entrega una taza con cuidado son fáciles de juzgar y difíciles de definir mediante código. Un modelo de recompensa aprende ese criterio a partir de comentarios de personas, normalmente comparaciones entre dos resultados, y después puntúa automáticamente los nuevos resultados, mucho más rápido y de forma más constante de lo que podrían hacerlo las personas. Los modelos de recompensa son el componente que hace posible el aprendizaje por refuerzo a partir de comentarios humanos (RLHF), y también se utilizan para volver a clasificar respuestas candidatas, filtrar datos de entrenamiento y evaluar modelos.
Cómo se entrena un modelo de recompensa#
Los datos de entrenamiento consisten en comparaciones. Las personas ven una indicación con dos o más respuestas de un modelo y eligen la mejor; en el trabajo de OpenAI sobre InstructGPT, quienes etiquetaban clasificaron entre 4 y 9 respuestas por indicación, y cada pareja de una clasificación se convirtió en una comparación de entrenamiento. Se usan clasificaciones en lugar de puntuaciones absolutas porque es mucho más probable que las personas coincidan en cuál de dos respuestas es mejor que en si una merece un 6 o un 7 sobre 10.
El modelo de recompensa suele ser un modelo de lenguaje grande (LLM) preentrenado, a menudo el propio modelo que se está alineando, con la capa de salida sustituida por una capa lineal que convierte la representación vectorial final en un número. El entrenamiento utiliza el modelo de Bradley-Terry para comparaciones por pares, que establece que la probabilidad de que las personas prefieran la respuesta A a la B es la sigmoide de la diferencia entre sus recompensas. La pérdida es el logaritmo negativo de esa probabilidad para la respuesta que las personas eligieron realmente. Este ejemplo de PyTorch entrena una capa lineal de recompensa con 2000 comparaciones simuladas:
import torch
import torch.nn.functional as F
torch.manual_seed(0)
# 2,000 preference pairs: embeddings of two responses to the same prompt
# Simulated raters prefer the response with higher hidden quality, with some noise
hidden_quality = torch.randn(64)
a, b = torch.randn(2000, 64), torch.randn(2000, 64)
a_wins = (a @ hidden_quality + torch.randn(2000) * 2 > b @ hidden_quality).unsqueeze(1)
chosen, rejected = torch.where(a_wins, a, b), torch.where(a_wins, b, a)
# Reward model: a linear head mapping a response embedding to one scalar score
reward_model = torch.nn.Linear(64, 1)
optimizer = torch.optim.Adam(reward_model.parameters(), lr=0.01)
train, test = slice(0, 1500), slice(1500, 2000)
for step in range(300):
# Bradley-Terry loss: maximize the probability that the chosen response scores higher
margin = reward_model(chosen[train]) - reward_model(rejected[train])
loss = -F.logsigmoid(margin).mean()
optimizer.zero_grad()
loss.backward()
optimizer.step()
accuracy = (reward_model(chosen[test]) > reward_model(rejected[test])).float().mean()
print(f"Held-out pairs ranked like the raters: {accuracy:.1%}")Imprime 94.8%. Las personas evaluadoras simuladas, cuyos juicios contienen ruido, contradicen la clasificación de calidad sin ruido en alrededor del 5 % de esos pares reservados para evaluación, por lo que el modelo de recompensa ha aprendido las preferencias tan bien como permiten sus etiquetas, aunque nunca haya visto una sola puntuación absoluta. La precisión por pares en las comparaciones reservadas para evaluación también permite comparar modelos de recompensa reales, por ejemplo, en el benchmark RewardBench. Como en la pérdida solo intervienen las diferencias entre recompensas, la escala de las puntuaciones es arbitraria y los procesos suelen normalizarlas antes del RL.
Tipos de modelos de recompensa#
- Modelos de recompensa de resultado: Puntúan una respuesta o episodio completo; son la opción estándar en RLHF.
- Modelos de recompensa de proceso: Puntúan cada paso intermedio de una solución. El conjunto de datos PRM800K de OpenAI contiene 800 000 etiquetas humanas por paso sobre soluciones matemáticas.
- Modelos de recompensa generativos: Un LLM que actúa como juez redacta una crítica o un veredicto, lo que permite que un mismo modelo evalúe muchos tipos de tareas y explique sus puntuaciones.
- Modelos de recompensa implícitos: La optimización directa de preferencias (DPO) entrena directamente la política con pares de preferencias, y la razón entre las probabilidades logarítmicas de la política y las del modelo de referencia actúa como recompensa.
- Modelos de recompensa de imágenes: ImageReward se entrenó con 137 000 comparaciones expertas de imágenes generadas y se utiliza para ajustar modelos de texto a imagen y conseguir resultados atractivos y fieles a las indicaciones.
El aprendizaje robótico aplica la misma idea con modelos de visión. Un clasificador de imágenes entrenado con fotogramas de cámara que las personas etiquetaron como intentos correctos o fallidos —por ejemplo, una taza colocada en posición vertical o volcada— produce una probabilidad de éxito que sirve como recompensa para una política de aprendizaje. Un modelo Ultralytics YOLO26 entrenado con esos fotogramas mediante la tarea de clasificación cumple esa función y puntúa cada fotograma de un intento en milisegundos.
Cómo mantener la precisión del modelo de recompensa#
Un modelo de recompensa solo es preciso con resultados que se parecen a sus datos de entrenamiento. A medida que mejora la política, produce respuestas que el modelo de recompensa nunca ha visto, por lo que el equipo de Llama 2 de Meta recopiló nuevas comparaciones sobre los resultados del modelo más reciente y volvió a entrenar el modelo de recompensa antes de cada nueva ronda de RL:
Optimizar demasiado contra cualquier recompensa aprendida conduce al engaño de la recompensa. El estudio de OpenAI sobre la sobreoptimización del modelo de recompensa utilizó un modelo de recompensa «de referencia» grande en lugar de evaluadores humanos y observó que, al optimizar una política contra un modelo de recompensa aproximado más pequeño, la puntuación del modelo de referencia primero subía y luego bajaba, mientras que la puntuación del modelo aproximado seguía aumentando; el efecto se reducía de forma gradual a medida que crecía el modelo aproximado. Los modelos de recompensa también asimilan sesgos de los evaluadores, como preferir respuestas más largas o complacientes, que el RL amplifica hasta convertirlos en verbosidad y adulación. Una penalización KL respecto al modelo original, conjuntos de modelos de recompensa y el reentrenamiento periódico con comparaciones nuevas limitan el daño.
Modelado de recompensas frente a términos relacionados#
- RLHF: El proceso completo de ajuste fino supervisado, modelado de recompensas a partir de comparaciones humanas y optimización mediante RL. El modelado de recompensas es su segunda etapa.
- Función de recompensa: Una recompensa definida manualmente, como +1 por alcanzar un objetivo. El modelo de recompensa se aprende a partir de datos porque nadie puede escribir la función.
- Recompensas verificables: Un programa comprueba la respuesta comparándola con una solución conocida, como una prueba unitaria o un resultado matemático de referencia. Es más difícil explotar este método que un modelo aprendido, pero solo funciona cuando se pueden verificar las respuestas.
- Aprendizaje inverso por refuerzo: Deduce una función de recompensa a partir de demostraciones expertas de la tarea, mientras que el modelado de recompensas para RLHF aprende de las comparaciones de las personas entre los propios resultados del sistema.










