Nous Research lanza NousCoder-14B: un modelo de programación de olimpíadas competitivas entrenado posteriormente en Qwen3-14B mediante aprendizaje por refuerzo

Nous Research ha presentado NousCoder-14B, un modelo de programación de olimpiadas competitivas que se entrena posteriormente en Qwen3-14B mediante aprendizaje por refuerzo (RL) con recompensas verificables. En el punto de referencia LiveCodeBench v6, que cubre problemas del 01/08/2024 al 01/05/2025, el modelo alcanza una precisión Pass@1 del 67,87 por ciento. Esto es 7,08 puntos porcentuales más que la base de referencia Qwen3-14B de 60,79 por ciento en el mismo punto de referencia. El equipo de investigación entrenó el modelo en problemas de codificación verificables de 24k utilizando 48 GPU B200 durante 4 días y publicó los pesos bajo la licencia Apache 2.0 en Hugging Face.

https://nousresearch.com/nouscoder-14b-a-competitive-olympiad-programming-model/

Enfoque de referencia y lo que significa Pass@1

LiveCodeBench v6 está diseñado para una evaluación de programación competitiva. La división de prueba utilizada aquí contiene 454 problemas. El conjunto de capacitación utiliza la misma receta que el proyecto DeepCoder-14B de Agentica y Together AI. Combina problemas de TACO Verified, PrimeIntellect SYNTHETIC 1 y LiveCodeBench creados antes del 31/07/2024.

El punto de referencia solo incluye tareas de estilo de programación competitivas. Para cada problema, una solución debe respetar límites estrictos de tiempo y memoria y debe pasar un gran conjunto de pruebas de entrada y salida ocultas. Pass@1 es la fracción de problemas en los que el primer programa generado pasa todas las pruebas, incluidas las limitaciones de tiempo y memoria.

https://nousresearch.com/nouscoder-14b-a-competitive-olympiad-programming-model/

Construcción de conjuntos de datos para RL basada en ejecución

Todos los conjuntos de datos utilizados para la capacitación se componen de problemas de generación de código verificables. Cada problema tiene una implementación de referencia y muchos casos de prueba. El conjunto de entrenamiento contiene 24k problemas extraídos de:

Problemas de TACO Verified PrimeIntellect SYNTHETIC 1 LiveCodeBench anteriores al 31/07/2024

El conjunto de prueba es LiveCodeBench v6, que tiene 454 problemas entre el 01/08/2024 y el 01/05/2025.

Cada problema es una tarea de programación competitiva completa con una descripción, formato de entrada, formato de salida y casos de prueba. Esta configuración es importante para RL porque proporciona una señal de recompensa binaria que es económica de calcular una vez que se ha ejecutado el código.

Entorno RL con Atropos y Modal

El entorno RL se construye utilizando el marco Atropos. NousCoder-14B se solicita utilizando el formato de solicitud estándar LiveCodeBench y genera código Python para cada problema. Cada implementación recibe una recompensa escalar que depende de los resultados del caso de prueba:

Recompensa 1 cuando el código generado pasa todos los casos de prueba para ese problema Recompensa −1 cuando el código genera una respuesta incorrecta, excede un límite de tiempo de 15 segundos o excede un límite de memoria de 4 GB en cualquier caso de prueba

Para ejecutar código que no es de confianza de forma segura y a escala, el equipo utiliza Modal como un entorno limitado de escalado automático. El sistema lanza un contenedor modal por implementación en el diseño principal que el equipo de investigación describe como la configuración utilizada. Cada contenedor ejecuta todos los casos de prueba para esa implementación. Esto evita mezclar el cálculo de entrenamiento con el cálculo de verificación y mantiene estable el bucle RL.

El equipo de investigación también canaliza la inferencia y la verificación. Cuando un trabajador de inferencia finaliza una generación, envía la finalización a un verificador modal e inmediatamente comienza una nueva generación. Con muchos trabajadores de inferencia y un grupo fijo de contenedores modales, este diseño mantiene vinculado el cálculo de inferencia del bucle de entrenamiento en lugar de vinculado a la verificación.

El equipo analiza tres estrategias de paralelización de verificación. Exploran un contenedor por problema, uno por implementación y uno por caso de prueba. Finalmente, evitan la configuración por caso de prueba debido a la sobrecarga del lanzamiento del contenedor y utilizan un enfoque en el que cada contenedor evalúa muchos casos de prueba y se centra primero en un pequeño conjunto de los casos de prueba más difíciles. Si alguno de estos falla, el sistema puede detener la verificación antes de tiempo.

Objetivos GRPO, DAPO, GSPO y GSPO+

NousCoder-14B utiliza la optimización de políticas relativas al grupo (GRPO) que no requiere un modelo de valor separado. Además de GRPO, el equipo de investigación prueba 3 objetivos: optimización de políticas de muestreo dinámico (DAPO), optimización de políticas de secuencia de grupo (GSPO) y una variante de GSPO modificada llamada GSPO+.

Los 3 objetivos comparten la misma definición de ventaja. La ventaja de cada lanzamiento es la recompensa por ese lanzamiento normalizada por la media y la desviación estándar de las recompensas dentro del grupo. DAPO aplica ponderación y recorte de importancia a nivel de token e introduce tres cambios principales en relación con GRPO:

Una regla de clip más alto que aumenta la exploración de tokens de baja probabilidad. Una política de pérdida de gradiente a nivel de token que le da a cada token el mismo peso. Muestreo dinámico, donde los grupos que son todos correctos o incorrectos se descartan porque no tienen ventaja.

GSPO traslada la ponderación de importancia al nivel de secuencia. Define una relación de importancia de secuencia que agrega proporciones de tokens en todo el programa. GSPO+ mantiene la corrección del nivel de secuencia, pero cambia la escala de los gradientes para que los tokens tengan el mismo peso independientemente de la longitud de la secuencia.

En LiveCodeBench v6, las diferencias entre estos objetivos son modestas. Con una longitud de contexto de 81.920 tokens, DAPO alcanza un Pass@1 del 67,87 por ciento, mientras que GSPO y GSPO+ alcanzan el 66,26 por ciento y el 66,52 por ciento. Con 40,960 tokens, los 3 objetivos se agrupan alrededor del 63 por ciento de Pass@1.

Extensión de contexto iterativa y filtrado demasiado largo.

Qwen3-14B admite un contexto prolongado y la capacitación sigue un programa de extensión de contexto iterativo. El equipo primero entrena el modelo con una ventana de contexto de 32k y luego continúa entrenando en la ventana de contexto Qwen3-14B máxima de 40k. En cada etapa, seleccionan el punto de control con la mejor puntuación de LiveCodeBench en un contexto de 40k y luego usan la extensión de contexto YaRN en el momento de la evaluación para alcanzar 80k tokens, es decir, 81,920 tokens.

Un truco clave es el filtrado demasiado largo. Cuando un programa generado excede la ventana de contexto máxima, restablecen su ventaja a cero. Esto elimina ese despliegue de la señal de gradiente en lugar de penalizarlo. El equipo de investigación informa que este enfoque evita impulsar el modelo hacia soluciones más cortas por razones puramente de optimización y ayuda a mantener la calidad cuando escalan la longitud del contexto en el momento de la prueba.

Conclusiones clave

NousCoder 14B es un modelo de programación competitivo basado en Qwen3-14B entrenado con RL basado en ejecución; alcanza un 67,87 por ciento de Pass@1 en LiveCodeBench v6, una ganancia de 7,08 puntos porcentuales sobre la línea base de Qwen3-14B del 60,79 por ciento en el mismo punto de referencia. El modelo se entrena en problemas de codificación verificables de 24k de TACO Verified, PrimeIntellect SYNTHETIC-1 y tareas de LiveCodeBench anteriores al 31 de julio de 2024, y se evalúa en un conjunto de pruebas disjunto de LiveCodeBench v6 de 454 problemas del 01/08/2024 al 01/05/2025. La configuración de RL utiliza Atropos, con soluciones Python ejecutadas en contenedores de espacio aislado, una recompensa simple de 1 por resolver todos los casos de prueba y menos 1 por cualquier falla o incumplimiento del límite de recursos, y un diseño canalizado donde la inferencia y la verificación se ejecutan de forma asincrónica. Los objetivos de optimización de políticas relativas al grupo DAPO, GSPO y GSPO+ se utilizan para el código de contexto largo RL, todos operan con recompensas normalizadas del grupo y muestran un rendimiento similar, con DAPO alcanzando el mejor Pass@1 en el contexto más largo de 81,920 tokens. La capacitación utiliza una extensión de contexto iterativa, primero a 32 000 y luego a 40 000 tokens, junto con una extensión basada en YaRN en el momento de la evaluación a 81 920 tokens, incluye un filtrado de implementación demasiado largo para mayor estabilidad y se envía como una pila abierta totalmente reproducible con pesos Apache 2.0 y código de canalización RL.

Consulte los pesos del modelo y los detalles técnicos. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 100.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.

Asif Razzaq es el director ejecutivo de Marktechpost Media Inc.. Como emprendedor e ingeniero visionario, Asif está comprometido a aprovechar el potencial de la inteligencia artificial para el bien social. Su esfuerzo más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, Marktechpost, que se destaca por su cobertura en profundidad del aprendizaje automático y las noticias sobre aprendizaje profundo que es técnicamente sólida y fácilmente comprensible para una amplia audiencia. La plataforma cuenta con más de 2 millones de visitas mensuales, lo que ilustra su popularidad entre el público.