Programa
La Optimización de la Política Relativa de Grupo (GRPO) es una técnica vanguardista de aprendizaje por refuerzo (RL) que impulsa el impresionante rendimiento de los últimos grandes modelos lingüísticos (LLM). Aunque obtuvo una amplia atención tras el lanzamiento de DeepSeek-R1, GRPO se introdujo por primera vez en DeepSeekMath, un LLM perfeccionado para el razonamiento matemático avanzado. La GRPO se diseñó originalmente para mejorar la eficacia de la puesta a punto, y ha demostrado ser un método rentable y versátil adoptado por la comunidad.
En este artículo profundizaremos en la GRPO. Exploraremos qué es, cómo funciona, los componentes esenciales necesarios para su aplicación y cuándo es más apropiado utilizarla. El objetivo de esta guía es guiarte a través de las ideas clave que hay detrás de la GRPO, que justifican su creciente popularidad.
Si quieres saber más sobre DeepSeek, no dejes de consultar nuestro curso Trabajar con DeepSeek en Python.
Introducción al aprendizaje por refuerzo
Como exploramos en nuestra guía para el ajuste fino de los LLM, el ajuste fino supervisado (SFT) es la técnica de entrenamiento tradicional que consiste en entrenar un modelo utilizando datos etiquetados. Es decir, utilizando ejemplos que muestren las realizaciones o resultados esperados para unas entradas dadas.
Una de las limitaciones de la SFT es que depende en gran medida de grandes conjuntos de datos etiquetados, cuya producción puede ser costosa y requerir mucho tiempo. Además, los modelos entrenados mediante SFT corren el riesgo de sobreajustarse a los ejemplos de entrenamiento, lo que significa que funcionan bien con los datos vistos, pero les cuesta generalizarse a situaciones nuevas o inesperadas.
Una alternativa al SFT es el aprendizaje por refuerzo, mediante el cual, en lugar de aprender a partir de ejemplos fijos, un agente aprende interactuando con su entorno y probando distintas acciones para completar una tarea. Después de cada acción, el agente recibe retroalimentación en forma de recompensas o penalizaciones. El objetivo es maximizar la recompensa total a lo largo del tiempo descubriendo las estrategias que mejor funcionan.
Podemos representar un flujo de trabajo de RL sencillo como sigue:
Diagrama de un sencillo flujo de trabajo de RL.
Si quieres iniciarte en el RL en Python, el tutorial Aprendizaje por Refuerzo: Una introducción con ejemplos de Python ¡es para ti!
Aprendizaje por refuerzo simplificado
Para ilustrar el concepto de aprendizaje por refuerzo, imagina que estás enseñando a tu primo a montar en bici. Al principio, le cuesta pedalear y mantener el equilibrio, y a menudo se tambalea o se cae.
Cada vez que cabalga un poco más, la animas. Esta respuesta positiva la anima a seguir adelante. Pero cuando intenta bajar las escaleras, la detienes rápidamente y le explicas los riesgos. Eso sirve de señal negativa para desalentar esas acciones.
Del mismo modo, el aprendizaje por refuerzo permite a los modelos explorar diferentes acciones. Las recompensas positivas refuerzan los resultados deseables, mientras que las negativas desalientan los comportamientos no deseados. Con el tiempo, el modelo aprende a tomar mejores decisiones gracias a esta retroalimentación.
Enfoques del aprendizaje por refuerzo
Existen distintas técnicas para aplicar el aprendizaje por refuerzo a un modelo. Concretamente, la GRPO se considera una evolución de la optimización política proximal (OPP) y de la optimización política directa (OPD).
¿Has oído hablar alguna vez de PPO y DPO?
Optimización de la política proximal
PPO es un algoritmo de RL ampliamente utilizado, diseñado para optimizar el comportamiento de un modelo maximizando sus recompensas mediante el uso de un modelo de recompensa independiente. Un gran ejemplo de PPO en acción es elaprendizaje por refuerzo a partir de la retroalimentación humana (RLHF) de OpenAI . En RLHF, primero se recogen los comentarios humanos sobre las salidas del modelo, y estos datos se utilizan después para entrenar un modelo de recompensa que prediga los comentarios. Disponer de un modelo de recompensa es una forma de escalar la retroalimentación humana, sin necesidad de humanos.
Por último, la PPO utiliza el modelo de recompensa durante el entrenamiento para ajustar los parámetros del modelo, animándole a generar respuestas que se ajusten mejor a las preferencias humanas. El siguiente diagrama ilustra el flujo de trabajo de la PPO:
Diagrama del flujo de trabajo PPO.
Si quieres implementar el flujo de trabajo de la OPP en Python, ten en cuenta el tutorial Optimización de la Política Proximal con PyTorch y Gymnasium.
Optimización directa de la política
Entrenar un modelo de recompensa independiente puede ser complejo y consumir muchos recursos. Para simplificar este proceso, se introdujo la RPD, que cambió la forma de recoger las opiniones humanas.
En lugar de pedir a los humanos que valoren las respuestas con puntuaciones numéricas , la OPD se basa en la comparación de preferenciass. A los anotadores humanos se les muestran dos respuestas y se les pide que elijan la que prefieran. Esto crea un conjunto de datos de ejemplos preferidos y menos preferidos.
A continuación, el modelo se afina directamente sobre estos pares de preferencias, en lugar de basarse en el modelo de recompensa. Mediante este enfoque, el modelo aprende a aumentar la probabilidad de generar la respuesta preferida, al tiempo que reduce la probabilidad de la menos preferida.
Este enfoque permite que el modelo se ajuste a las preferencias humanas sin necesidad de un modelo de recompensa aparte. Echemos un vistazo a este nuevo flujo de trabajo:
Diagrama del flujo de trabajo del RPD.
El tutorial Ajuste de preferencias de OpenAI: Una guía con ejemplos te ayudará a poner en práctica la RPD.
Retos de la OPP y la OPD
La DPO presenta muchas ventajas en comparación con la PPO. Partiendo de los datos necesarios, PPO tiene que recopilar primero los datos para entrenar el modelo de recompensa, y luego hacer el entrenamiento real de este modelo auxiliar (con todos los retos técnicos que supone entrenar un nuevo modelo), incluso antes de empezar a entrenar tu modelo objetivo. La RPD simplifica el proceso al eliminar la necesidad de tener un modelo de recompensa independiente. Sin embargo, este enfoque sigue requiriendo una cantidad considerable de datos sobre preferencias.
En este momento, ¿prevés alguna forma de eliminar estas limitaciones?
¿Y si en lugar de depender de opiniones externas, pudiéramos encontrar una forma automática de validar y calificar las respuestas de los modelos?
¡Eso es exactamente lo que aporta GRPO a la tabla!
¿Qué es la GRPO?
La Optimización de la Política Relativa de Grupo es una técnica de RL que no requiere datos etiquetados, sólo un medio para "verificar" la corrección y ordenar las respuestas en consecuencia. La verificación se consigue normalmente mediantefunciones de recompensa programables , por ejemplo, funciones que pueden tomar la respuesta del modelo como entrada y emitir una puntuación de calificación sobre algún aspecto de la función.
Algunos enfoques de GRPO utilizan un LLM como juez para verificar y calificar las respuestas, pero la idea central de GRPO puede explotarse sin necesidad de un modelo externo en dominios como el desarrollo de software, ya que distintos aspectos del código generado pueden verificarse mediante herramientas externas. Por ejemplo,
- ¿Compila el código? En este caso, sólo tenemos que utilizar el compilador.
- ¿Tiene un error de ejecución? Aquí sólo tenemos que ejecutar el código.
- ¿Pasa las pruebas unitarias? En este caso, sólo necesitamos pruebas unitarias.
- ¿Está limpia la salida del linter de código? Aquí sólo necesitamos un linter.
Como puedes ver, ¡no se necesitan humanos ni datos de preferencias!
Funciones de recompensa
En el artículo original de DeepSeek-Mathlas funciones de recompensa se crearon para evaluar la corrección y el formato de las soluciones matemáticas. Si alguna vez has pedido una salida estructurada a un LLM, te habrás dado cuenta de que el modelo podría haber seguido el formato de salida deseado durante la mayor parte de la finalización, pero siempre había un caso de esquina que rompía tu pipeline, ¿verdad?
En el caso de DeepSeek-Mathlas funciones de recompensa se centraron en la corrección y el formato:
- Las recompensas por precisión evalúan si la respuesta final del modelo es correcta. Para los problemas matemáticos deterministas, el modelo debe presentar la respuesta final en un formato especificado (por ejemplo, dentro de un recuadro), lo que permite la verificación automatizada con respecto a la verdad básica.
- Las recompensas de formato garantizan que las respuestas del modelo se ajusten a una estructura predefinida. Concretamente, se anima al modelo a encerrar su proceso de razonamiento dentro de etiquetas designadas (por ejemplo,
y
). Este formateo facilita la extracción y el análisis del proceso de pensamiento del modelo, fomentando la claridad y la coherencia de sus resultados.
Flujo de trabajo GRPO
Llegados a este punto, puede que te preguntes: ¿Dónde encaja GRPO en el flujo de trabajo de entrenamiento de un modelo?
¡Repasemos el proceso paso a paso!
- Envía una pregunta al LLM y haz un muestreo de las respuestas de varios candidatos.
- Escribe una o varias funciones programables que tomen los pares de pregunta y respuesta y asignen una puntuación a cada uno.
- Utiliza estas puntuaciones para actualizar las ponderaciones LLM, aumentando la probabilidad de producir respuestas con puntuaciones superiores a la media y disminuyéndola para las que tengan puntuaciones inferiores a la media.
Siguiendo este bucle, GRPO afina el modelo directamente basándose en los resultados de las funciones de recompensa, sin necesidad de recoger datos de preferencias.
Diagrama del flujo de trabajo GRPO con recompensas de puntuación calculadas por un actor externo.
Por último, es interesante señalar que la GRPO también aporta la ventaja de enseñar al modelo nuevas tareas, en lugar de sólo dirigir el aprendizaje hacia una preferencia, como en la PPO o la DPO.
Ventajas de la GRPO
Como podemos observar en el diagrama anterior, la mayor ventaja de GRPO es que no requiere datos etiquetados, sólo un medio para "verificar" la corrección, conseguido mediante el uso de funciones de recompensa programables.
Otra ventaja es que requiere muchos menos ejemplos que el ajuste fino, lo que convierte a esta técnica en una alternativa rentable.
Además, el modelo aprende activamente a partir de la retroalimentación en lugar de ejemplos etiquetados fijos, lo que reduce el riesgo de sobreajuste. Formar modelos con GRPO les permite descubrir orgánicamente mejores estrategias y mejorar su cadena de pensamiento.
Casos prácticos de GRPO
Como ya hemos dicho, el principal caso de uso de GRPO se plantea cuando no tienes datos etiquetados pero puedes verificar la corrección de la salida. También es muy eficaz cuando tienes pocos datos etiquetados, aunque no los suficientes para realizar el ajuste fino supervisado tradicional. Esto hace que la GRPO sea especialmente valiosa en situaciones en las que el etiquetado es costoso o poco práctico.
Algunos ámbitos en los que la GRPO ha demostrado ventajas significativas son:
- Habilidades matemáticas: Por ejemplo, en el caso del modelo DeepSeek-Math, GRPO mejoró eficazmente la capacidad del modelo para resolver problemas matemáticos complejos sin extensos conjuntos de datos etiquetados.
- Generación de código: GRPO ayuda a mejorar la precisión y fiabilidad del código generado, permitiendo que el sistema autoverifique los resultados y los refine iterativamente.
- Razonamiento en varios pasos: Se ha demostrado que la GRPO mejora el rendimiento de los modelos en tareas que requieren un razonamiento secuencial y la integración de múltiples pasos lógicos.
GRPO avanzado
Hay algunos consejos y trucos avanzados a la hora de aplicar GRPO en la práctica que debes conocer.
Funciones avanzadas de recompensa
Las funciones de recompensa proporcionan información al modelo sobre lo bien que está logrando su objetivo. Hay componentes críticos en este proceso:
- Diversidad en las respuestas: Generar una amplia gama de resultados candidatos aumenta las posibilidades de descubrir soluciones o estrategias de mayor calidad.
- Diversidad en las recompensas: Diseñar funciones de recompensa que puedan diferenciar entre distintos niveles de éxito o logros parciales, en lugar de una mera señal binaria de aprobado/no aprobado. Es lo que se conoce como recompensas de crédito parcial, que dan una respuesta más matizada asignando un crédito parcial a distintos aspectos de la respuesta. Algunos ejemplos son verificar que al menos el formato de salida es correcto, que el código generado se compila correctamente o que el código supera un subconjunto de pruebas unitarias. Este tipo de recompensa graduada anima al modelo a mejorar gradualmente, aunque la respuesta no sea del todo correcta.
Además, establecer una línea de base para todo el grupo puede desempeñar un papel importante para estabilizar y mejorar el proceso de entrenamiento. Al restar esta línea de base de las recompensas individuales, el modelo recibe una retroalimentación relativa al rendimiento global del grupo, lo que reduce la varianza en las estimaciones de recompensa y fomenta mejoras incrementales sobre la media.
Temperatura
En los LLM, el parámetro de temperatura controla la aleatoriedad del proceso de muestreo durante la generación de la salida. Ajustar la temperatura a 0 da lugar a un muestreo deterministalo que significa que el modelo siempre elige la siguiente ficha más probable.
Aunque esto garantiza la coherencia, a menudo lleva a generar repetidamente el mismo resultadolimitando la diversidad de las respuestas.
Por otra parte, aumentar la temperatura introduce más aleatoriedad, lo que permite al modelo explorar una gama más amplia de posibilidades. Esta diversidad puede ser beneficiosa para descubrir soluciones diferentes o inesperadas.
Sin embargo, las temperaturas más altas conllevan una contrapartida: la calidad de cada conjetura individual tiende a ser menor porque el modelo muestrea fichas menos probables con más frecuencia. Por ello, el proceso general de aprendizaje puede ralentizarse.
¡Elegir la temperatura adecuada es a veces un arte!
Recompensa por piratear
Los modelos son astutos y a veces explotan las funciones de recompensa de forma no intencionada para maximizar las recompensas sin alcanzar realmente el objetivo.
Como ejemplo, digamos que el modelo recibe una recompensa por producir pruebas para un fragmento de código determinado. Podría ser que el modelo proporcionara una función de prueba, pero sin probar realmente nada, eludiendo el objetivo real de verificar la corrección del código y obteniendo la recompensa de todos modos.
Hay que tener en cuenta estos trucos al escribir las funciones de recompensa. Por ejemplo, en el caso de la generación de pruebas, normalmente se requiere que el modelo genere al menos una declaración 'assert' dentro de la prueba. De lo contrario, será penalizado.
Conclusión
Para terminar, me gustaría aplicar la GRPO a un escenario del mundo real para asegurarme de que se entienden bien todos los conceptos.
Imagina que tú y tus amigos participáis en una competición de fitness en la que se dan recompensas en función del rendimiento en carrera, flexiones y remo. Inicialmente, el gimnasio recompensa sólo a la persona con los mejores resultados absolutos.
Así, si Alice corre más lejos y hace más flexiones que Ben, siempre gana, aunque Ben haya mostrado una mejora significativa.
Esto parece injusto para Ben, ¿verdad?
Para solucionar esto el gimnasio intenta un enfoque diferente: objetivos personales basados en el rendimiento pasado.
Ahora, sólo obtienes recompensas si superas tus propios récords anteriores. Aunque esto parece más justo, introduce nuevos problemas. Los nuevos miembros, como Charlie, no tienen datos anteriores con los que comparar, lo que dificulta su participación. Además, los formadores deben hacer un seguimiento constante de los progresos de cada uno, lo que resulta ineficaz.
Por último, el gimnasio ofrece una solución mejor: GRPO.
Antes de empezar el entrenamiento, el monitor del gimnasio activa un sistema que analiza las características de los participantes y los agrupa en función de condiciones similares. Durante el entrenamiento, el sistema hace un seguimiento del rendimiento de cada participante y calcula una puntuación media dentro de cada grupo para que sirva de referencia. Después, se dan recompensas en función de cuánto supere cada persona el rendimiento medio de su grupo de ese mismo día.
Por tanto, si Ben obtiene resultados significativamente mejores que los demás de su grupo, gana una recompensa, aunque Alice siga teniendo la puntuación global más alta. Este método también es justo para los recién llegados como Charlie, ya que se les evalúa en relación con sus compañeros de la misma sesión, no en función de su historial previo.
Un factor importante en este proceso es la temperatura, que controla con qué rigor se recompensan las mejoras. Si la temperatura es demasiado baja, sólo cuentan las grandes mejoras respecto a la línea de base. Si la temperatura es demasiado alta, se recompensan incluso las pequeñas mejoras, lo que fomenta la experimentación pero puede conducir a un progreso errático.
El objetivo de la GRPO es encontrar el equilibrio adecuado, garantizando una mejora constante y permitiendo al mismo tiempo la exploración.
Por último, está el riesgo de pirateo de recompensas. Eso significaría que los participantes encuentran formas de burlar el sistema sin mejorar realmente. Por ejemplo, Ben podría centrarse sólo en los ejercicios más fáciles para inflar su puntuación sin verdadero esfuerzo.
Para evitarlo, el gimnasio añade salvaguardias, como exigir una mezcla equilibrada de ejercicios o penalizar los ejercicios repetitivos y de poco esfuerzo. Estas limitaciones garantizan que las recompensas reflejen un progreso real.
Si quieres saber más sobre cómo funcionan los LLM y cómo desarrollar los tuyos propios, consulta nuestro curso, Desarrollo de grandes modelos lingüísticos.
Introducción a los agentes de IA
Preguntas frecuentes de la GRPO
¿Cuántos datos se necesitan para la GRPO?
Generalmente menos de 1000 ejemplos etiquetados.
¿Requiere la GRPO un seguimiento de los resultados anteriores?
No. GRPO sólo utiliza la información del paso de entrenamiento actual.
¿Qué es un Grupo en GRPO?
Un grupo es un conjunto de respuestas modelo a una misma pregunta.
¿Cómo evita GRPO el pirateo de recompensas?
Al incorporar restricciones, la GRPO disuade a los modelos de explotar caminos fáciles para inflar las recompensas.
¿Cómo se asignan las recompensas en GRPO?
Cada respuesta se recompensa en función de cuánto supere la línea de base del grupo, no en función de la recompensa absoluta.

Andrea Valenzuela trabaja actualmente en el experimento CMS en el acelerador de partículas (CERN) de Ginebra (Suiza). Con experiencia en ingeniería y análisis de datos durante los últimos seis años, sus funciones incluyen el análisis de datos y el desarrollo de software. Ahora trabaja para democratizar el aprendizaje de las tecnologías relacionadas con los datos a través de la publicación en Medium ForCode'Sake.
Es licenciada en Ingeniería Física por la Universidad Politécnica de Cataluña, así como Máster en Sistemas Interactivos Inteligentes por la Universidad Pompeu Fabra. Su experiencia investigadora incluye el trabajo profesional con algoritmos anteriores de OpenAI para la generación de imágenes, como Flujos Normalizadores.