En el desarrollo de modelos de lenguaje a gran escala, mejorar la calidad depende de la cantidad, la calidad y la especificidad de los datos. Aunque los conjuntos de datos de preentrenamiento abarcan una amplia gama de información, a menudo carecen de un enfoque conceptual que fortalezca habilidades específicas, como el razonamiento o la competencia en programación.
Para abordar este desafío, diseñamos un enfoque para la generación de datos sintéticos impulsada por conceptos. Este flujo de trabajo permite a los investigadores generar datos alineados con las capacidades deseadas del modelo. Como aplicación inicial, construimos un conjunto de datos sintético de preentrenamiento que consta de 15 millones de problemas de programación en Python, lanzado como el subconjunto Nemotron-Pretraining-Code-Concepts del conjunto de datos Nemotron-Pretraining-Specialized-v1.1.
Generación de datos sintéticos
Mostramos que incluir estos datos en los últimos 100 mil millones de tokens de Nemotron-Nano-v3 resulta en una mejora de seis puntos en el benchmark HumanEval. Nuestro flujo de trabajo se basa en una taxonomía curada del conocimiento de programación, derivada de una anotación a gran escala de los conjuntos de datos Nemotron‑Pretraining‑Code‑{v1,v2}.
Esta taxonomía organiza miles de conceptos de programación de manera jerárquica, desde constructos fundamentales, como cadenas y recursión, hasta patrones avanzados de algoritmos y estructuras de datos. Mediante esta taxonomía, los desarrolladores pueden realizar una generación de datos específica mediante la combinación y destilación de conceptos seleccionados, lo que permite controlar la dificultad, diversidad y equilibrio conceptual en los datos generados.
Evaluación y resultados
Para evaluar este flujo de trabajo, generamos un conjunto de datos sintético que mejora las habilidades fundamentales de programación en Python para el preentrenamiento de LLM. Identificamos 91 conceptos clave más relevantes para el benchmark HumanEval, clasificando sus indicaciones de finalización de código dentro de nuestra taxonomía. Guiados por combinaciones de estos conceptos, generamos aproximadamente 15 millones de problemas sintéticos de programación en Python, cada uno validado para consistir en código Python funcional.
La 
Figura 1: Generación de datos impulsada por conceptos utilizada para crear el conjunto de datos Code Concepts. Usando una taxonomía construida a partir de los conjuntos de datos Nemotron-Pretraining-Code-{v1,v2}, extraemos conceptos de programación de los prompts de HumanEval y los utilizamos para generación abierta.
La 
Figura 2: Representación visual de la generación de problemas de programación en Python como parte de nuestro flujo de trabajo de generación de datos impulsada por conceptos.
Impacto en el modelo
Para validar los datos generados, incluimos 10 mil millones de tokens del conjunto de datos Code Concepts en los últimos 100 mil millones de tokens de Nemotron Nano‑v3. Tras el entrenamiento y la evaluación, observamos que el modelo resultante muestra una mejora de seis puntos en la precisión de HumanEval, pasando del 73% al 79%. La Figura 3 muestra una comparación de las evaluaciones del modelo base entre Nemotron-Nano-v3 y Nemotron-Nano-v3 entrenado con el conjunto de datos Code Concepts.
Más allá de las mejoras cuantitativas, la evaluación cualitativa revela un rendimiento más sólido en diversos conceptos de programación y una mejor gestión de casos extremos y razonamiento de ejecución. Consideramos este conjunto de datos como una validación del flujo de generación impulsado por conceptos en lugar de un artefacto aislado.
Al liberar tanto el conjunto de datos como la taxonomía subyacente bajo una licencia abierta permisiva (CC‑BY‑4.0), esperamos habilitar a la comunidad para extender este método a otros dominios y casos de uso en el preentrenamiento de LLM de manera escalable y específica.

Figura 3: Resultados de evaluación del modelo base obtenidos tras realizar un experimento de ablación de datos de 100 mil millones de tokens utilizando ~10 mil millones de tokens del conjunto de datos Code Concepts.


