Recursos/Entrenamiento de modelos/Métodos de entrenamiento

Método

GRPO, paso a paso

La Optimización de Políticas Relativas de Grupo puntúa varias respuestas al mismo prompt y refuerza aquellas que están por encima de la media del grupo. Reemplaza el modelo de valor separado de PPO con esa sencilla comparación.

Capítulo 77 min de lectura5 referencias

De dónde proviene GRPO

GRPO se introdujo en 2024 en el artículo de DeepSeekMath como una versión más ligera de PPO (Optimización de Políticas Próximas, 2017), el algoritmo detrás de la mayoría de los ajustes finos de RL anteriores en modelos de lenguaje, incluido el RLHF utilizado para InstructGPT. Se hizo ampliamente conocido cuando DeepSeek-R1 lo utilizó a gran escala, y ahora es el método RL predeterminado en entrenadores de código abierto como Hugging Face TRL y en la mayoría de los servicios RFT.

PPO · línea base aprendida
prompt→el modelo escribe 1 respuesta→el modelo de recompensa lo puntúa→modelo de valorpredice la puntuación esperada, token por token→ventaja = puntuación − predicción

El modelo de valor suele ser casi tan grande como el modelo que se está entrenando y se entrena junto a él.

GRPO · línea base del grupo
prompt→el modelo escribe N respuestas→el evaluador puntúa cada una→media y dispersión del grupocalculado, no aprendido→ventaja = (puntuación − media) ÷ dispersión

No hay modelo de valor que entrenar ni mantener en memoria. El precio es generar N respuestas por prompt en lugar de una.

PPO necesita una segunda red, el modelo de valor, para estimar lo buena que debería haber sido una respuesta. GRPO prescinde de ella: toma muestras de varias respuestas para el mismo prompt y utiliza su puntuación media como referencia.

PPO necesita una línea base para convertir las puntuaciones brutas en ventajas, y aprende una: un modelo de valor (el «crítico») que predice, token por token, la puntuación hacia la que se dirige la respuesta. Los autores de DeepSeekMath señalan que este modelo de valor suele ser casi tan grande como el modelo que se está entrenando, lo que supone una gran carga de memoria y computación, y que predecir un valor en cada token resulta difícil cuando la recompensa solo llega al final. GRPO lo elimina. Muestrea un grupo de respuestas para cada prompt y utiliza la puntuación media del propio grupo como línea base.

El algoritmo

  1. Muestrear prompts. Tome un lote de prompts de sus datos.
  2. Generar un grupo. Para cada prompt, el modelo actual escribe N respuestas, muestreando con aleatoriedad para que difieran. Los grupos de 4 a 16 son comunes; DeepSeekMath utilizó 64.
  3. Puntuar. El evaluador otorga a cada respuesta una recompensa, aquí de 0 a 1.
  4. Normalizar dentro del grupo. La ventaja de cada respuesta es su puntuación menos la media del grupo, dividida por la desviación estándar del grupo. Cada token de la respuesta obtiene esa misma ventaja.
  5. Actualizar con un objetivo recortado. Haga que las respuestas con ventaja positiva sean más probables y las negativas menos probables, pero nunca en más de una proporción establecida en un solo paso (véase a continuación).
  6. Opcionalmente, penalizar la desviación. Reste β × la divergencia KL de una copia congelada del modelo inicial.
promptMEDIA DEL GRUPO 0.50.8respuesta 1+0.30.3respuesta 2−0.20.6respuesta 3+0.10.3respuesta 4−0.2ventaja = (puntuación − media del grupo) ÷ dispersión del grupo
GRPO en un paso. El modelo responde al mismo prompt cuatro veces; el evaluador puntúa cada una; cada respuesta se compara con la media de su propio grupo. Lo que está por encima de la media se refuerza, lo que está por debajo se desincentiva.
Ventaja relativa al grupo, para el grupo de la figura
advantage_i = (score_i − mean(group)) / std(group)

answer      1      2      3      4
score      0.8    0.3    0.6    0.3
− mean     +0.3   −0.2   +0.1   −0.2      mean = 0.5
÷ std      +1.41  −0.94  +0.47  −0.94     std ≈ 0.21
Cálculo de ventajas para un grupo de cuatro
  1. El evaluador califica cuatro respuestas a un prompt: 0,8, 0,3, 0,6 y 0,3.
  2. Media del grupo = (0,8 + 0,3 + 0,6 + 0,3) ÷ 4 = 0,5. Diferencias respecto a la media: +0,3, −0,2, +0,1, −0,2.
  3. Dispersión (desviación estándar de los cuatro) = √((0,09 + 0,04 + 0,01 + 0,04) ÷ 4) = √0,045 ≈ 0,21.
  4. Ventajas = diferencias ÷ 0,21 ≈ +1,41, −0,94, +0,47, −0,94. La respuesta 1 se impulsa más hacia arriba, la respuesta 3 un poco; las respuestas 2 y 4 se empujan hacia abajo por igual.
  5. Algunas bibliotecas dividen por n − 1 al calcular la dispersión (≈ 0,24 aquí, lo que da +1,22, −0,82, +0,41, −0,82). Los signos y la clasificación, que son los que guían al modelo, son los mismos.
Dos grupos que enseñan cantidades muy diferentes
  1. El grupo A obtiene 0, 0, 0, 0: todas las respuestas fallaron. Media 0, dispersión 0, por lo que cada ventaja es 0 y este prompt no aporta nada. (Las implementaciones añaden una pequeña constante a la dispersión para que nada se divida por cero).
  2. El grupo B obtiene 0,61, 0,60, 0,60, 0,59: prácticamente idénticas. Pero la dispersión es minúscula (≈ 0,007), por lo que las ventajas resultan ser +1,41, 0, 0, −1,41, tan grandes como en un grupo con diferencias reales.
  3. Dividir por la dispersión otorga un peso desproporcionado a los prompts de baja dispersión y permite que el ruido del evaluador se convierta en una señal de máxima intensidad. Es una de las razones por las que la variante Dr. GRPO elimina la división, y por la que un evaluador con puntuaciones generales y consistentes supera a uno con ruido de apariencia precisa.

El objetivo recortado, en palabras sencillas

Una vez que se conocen las ventajas, el modelo se actualiza, a menudo durante unos pocos minilotes con las mismas respuestas. Cada vez, el entrenador compara la probabilidad de que el modelo actual genere una respuesta con la probabilidad de que el modelo que la escribió la generara. Esa proporción es de 1,0 al inicio del paso. La idea de PPO, que GRPO mantiene, es dejar de otorgar crédito una vez que la proporción se ha movido lo suficiente: con el habitual ε = 0,2, una respuesta por encima de la media no gana nada más por volverse más de 1,2 veces más probable, y una por debajo de la media no gana nada más por caer por debajo de 0,8 veces.

REGIÓN DE CONFIANZA 0.8–1.20.51.0 · sin cambios1.5por encima de la media: limitadopor debajo del promedio: limitado al mínimoprobabilidad nueva ÷ antigua de la respuesta
El objetivo recortado, para una respuesta. Las respuestas por encima del promedio (verde) obtienen crédito por volverse más probables solo hasta 1.2 veces su probabilidad anterior; las que están por debajo del promedio (rosa) obtienen crédito por volverse menos probables solo hasta 0.8 veces. Más allá de esos límites, el gradiente es cero, por lo que un lote afortunado no puede desviar mucho al modelo.

El resultado es una región de confianza: cada paso solo puede alejar el modelo una distancia limitada del modelo que generó los datos, lo que evita que un lote afortunado o desafortunado provoque un cambio brusco. TRL registra la frecuencia con la que se aplica el límite bajo clip_ratio; los valores que se mantienen altos significan que las actualizaciones siguen alcanzando el límite, lo que a menudo es señal de que la tasa de aprendizaje es demasiado alta.

El objetivo de GRPO, simplificado
ratio      r = P_new(answer) / P_old(answer)        # 1.0 when the step starts

objective  min( r × A ,  clip(r, 1 − ε, 1 + ε) × A )  −  β × KL(new ‖ reference)

           A = the answer's advantage
           ε = 0.2   (how far one step may move an answer's probability)
           β = 0 … 0.04   (pull back toward the starting model; 0 = none)

La penalización KL

El GRPO original añade un término más: β veces la divergencia KL entre el modelo que se está entrenando y una copia congelada de su estado inicial, la referencia. La divergencia KL mide cuán diferentes son dos distribuciones de probabilidad; aquí aumenta a medida que las elecciones de palabras del modelo se desvían de las de la referencia. Con β por encima de 0, la desviación cuesta recompensa, por lo que el modelo mejora en la tarea mientras se mantiene cerca de su lenguaje y estilo originales. DeepSeekMath utilizó β = 0,04 y añadió la penalización directamente a la pérdida en lugar de restarla de la recompensa.

Trabajos posteriores descubrieron que la penalización a menudo es innecesaria en tareas con respuestas verificables, y TRL ahora tiene como valor predeterminado β = 0, lo que también ahorra memoria porque no es necesario cargar ninguna copia de referencia. Sigue valiendo la pena tener una penalización cuando un modelo juez es el evaluador y las respuestas comienzan a degradarse (fraseo extraño, formato roto, un cambio de idioma): una desviación que un juez podría no castigar. La configuración de RFT explica cómo establecerla.

Peculiaridades conocidas

  • Sesgo de longitud. En la fórmula original, la pérdida de cada respuesta se promedia sobre su propia longitud, por lo que una respuesta incorrecta larga se penaliza menos por token que una incorrecta corta. El artículo de Dr. GRPO demostró que esto infla la longitud de la respuesta, especialmente para las respuestas incorrectas. El tipo de pérdida predeterminado de TRL, dapo, promedia sobre todos los tokens del lote en su lugar.
  • Grupos sin señal. Los prompts fáciles (todas las respuestas correctas) y los imposibles (todas incorrectas) no producen ninguna actualización. TRL registra su proporción como frac_reward_zero_std; la receta DAPO filtra dichos grupos y muestrea más.
  • La generación domina el coste. Escribir N respuestas token por token consume la mayor parte del tiempo de cada paso, lo que convierte el tamaño del grupo y la longitud de la respuesta en las principales palancas sobre la velocidad y el precio.

Errores comunes

  • Leer una única puntuación de forma aislada. En GRPO, la puntuación de una respuesta solo importa en relación con las demás respuestas al mismo prompt.
  • Usar grupos de dos para ahorrar tiempo. Con dos respuestas, cualquier diferencia, incluso el ruido del evaluador, se convierte en una señal completa de +1 / −1.
  • Introducir prompts que resultan demasiado fáciles o demasiado difíciles. Ambos generan puntuaciones idénticas dentro de un grupo y no ofrecen ninguna señal.
  • Asumir que la penalización KL está activada. En muchas bibliotecas actuales, el valor predeterminado es β = 0.
  • Confiar en un evaluador de apariencia precisa. Las diferencias de puntuación pequeñas y ruidosas se amplifican hasta convertirse en ventajas a gran escala.

Referencias y lecturas adicionales

Las fuentes externas se abren en una pestaña nueva.

  1. 01DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language ModelsShao et al., 2024 · arXiv · arxiv.orgIntroduce GRPO; su paso de RL elevó GSM8K del 82,9 % al 88,2 % y MATH del 46,8 % al 51,7 %.
  2. 02Proximal Policy Optimization AlgorithmsSchulman et al., 2017 · arXiv · arxiv.orgEl objetivo recortado y la idea de región de confianza que hereda GRPO.
  3. 03Understanding R1-Zero-Like Training: A Critical PerspectiveLiu et al., 2025 · arXiv · arxiv.orgDescubre el sesgo de longitud de GRPO y propone Dr. GRPO, una variante sin sesgo.
  4. 04DAPO: An Open-Source LLM Reinforcement Learning System at ScaleYu et al., 2025 · arXiv · arxiv.orgSoluciones prácticas para GRPO: pérdida a nivel de token, recorte asimétrico, filtrado de grupos sin señal.
  5. 05GRPO TrainerHugging Face TRL docs · huggingface.coVariantes de pérdida, valores predeterminados y las métricas que registra una ejecución de GRPO.

Convierta semanas de trabajo experto en minutos

Vea cómo Scalata se adapta a su equipo, a sus datos y a sus Controles.

Contactar con ventas