Noticias

Microsoft y la Universidad de Tsinghua muestran que un modelo de programación más pequeño puede superar a otros más grandes usando solo datos sintéticos

Un estudio de Microsoft y la U. de Tsinghua muestra que un modelo de programación pequeño puede rendir al entrenarse solo con datos sintéticos.

Compartir

El entrenamiento de modelos de programación enfrenta un límite cada vez más evidente: la escasez de datos de alta calidad. Un nuevo estudio desarrollado por investigadores de Microsoft y la Universidad de Tsinghua plantea una alternativa interesante: entrenar modelos exclusivamente con datos sintéticos puede no solo igualar, sino superar el rendimiento de modelos más grandes entrenados con datos reales.

El trabajo presenta a X-Coder, un modelo de 7 mil millones de parámetros que logra mejores resultados que competidores de 14 mil millones, utilizando únicamente tareas, soluciones y casos de prueba generados de forma sintética.

Datos sintéticos es información artificial creada por sistemas de IA mediante algoritmos de aprendizaje automático. Imitan características estadísticas de datos reales sin revelar información personal, utilizados para entrenar modelos, análisis y pruebas.

La diversidad de problemas es clave para mejorar el rendimiento de los modelos según el estudio de Microsoft y Tsinghua

Los experimentos muestran una relación directa entre el número de tareas distintas y el desempeño del modelo:

  • Con 32 mil tareas sintéticas, el modelo alcanza una tasa de aprobación de 43,7 %.
  • Con 64 mil tareas, la tasa de aprobación sube a 47 %,.
  • Con 128 mil, logra una tasa de aprobación de 54,1 %
  • Finalmente, con cerca de 200 mil tareas, logra una tasa de 62,7 %

Los resultados indican que, con el mismo presupuesto computacional, aumentar la variedad de tareas es más efectivo que generar múltiples soluciones para una misma tarea. Un conjunto con 64 mil tareas distintas y una sola solución supera a otros con menos tareas y más variantes de respuesta.

Escalamiento del rendimiento según la cantidad de tareas sintéticas. El desempeño mejora de forma sostenida al aumentar la diversidad de tareas. | Imagen: Wu et al.”

El análisis del estudio permite observar con mayor claridad cómo influye el tipo de datos en el desempeño del modelo:

  • Un conjunto con 64 mil tareas distintas y una sola solución por tarea obtiene mejores resultados generales.
  • Este enfoque supera a datasets con 16 mil tareas y cuatro soluciones por cada una.
  • También muestra mejor rendimiento que aquellos con 8 mil tareas y ocho soluciones por problema.
  • En todos los casos, el patrón se repite: contar con más problemas diferentes aporta más que repetir soluciones sobre los mismos desafíos.

Esta comparación refuerza una idea central del estudio: la variedad de problemas es el principal factor para mejorar la capacidad de generalización del modelo.

¿Cómo funciona SynthSmith, el sistema que genera los datos sintéticos según el estudio de Microsoft y Tsinghua?

Para construir estos conjuntos de entrenamiento, los investigadores de Microsoft y la U. de Tsinghua desarrollaron un sistema llamado SynthSmith. A diferencia de enfoques anteriores que reescriben tareas existentes, este sistema genera problemas desde cero.

El funcionamiento de SynthSmith se puede seguir paso a paso en el esquema, comenzando por la Generación de tareas:

  • Extracción de características (Extract Features): El sistema analiza 10 mil ejemplos de código y extrae elementos clave de programación competitiva, como algoritmos, estructuras de datos y técnicas de optimización.
  • Evolución y combinación (Evolve and Merge): Estas características se expanden y combinan de forma sistemática, aumentando el conjunto desde 27.400 hasta cerca de 177 mil componentes algorítmicos.
  • Selección y formulación (Select and Thinking): A partir de estos componentes, el sistema selecciona combinaciones coherentes y las integra en nuevas tareas de programación, definidas en distintos estilos y niveles de complejidad.
Esquema del framework SynthSmith. El sistema genera tareas, soluciones y casos de prueba en cuatro etapas, incorporando un proceso de verificación dual para asegurar calidad. | Imagen: Wu et al.

En la franja inferior del esquema se muestra cómo, a partir de cada tarea, se generan los elementos necesarios para la validación:

  • Desde cada tarea, el sistema produce entradas de prueba (Test Inputs), apoyándose en herramientas (Tool) y prompts, tal como se indica en el diagrama.
  • En paralelo, un modelo de lenguaje (LLM) genera múltiples soluciones (Solutions) para el mismo problema mediante muestreo (Sampling).
  • Ambos flujos avanzan de forma conjunta hacia la etapa de verificación, donde las soluciones se evalúan usando los casos de prueba generados.

La última etapa, ubicada a la derecha del esquema, corresponde a la validación final:

  1. El proceso concluye con la selección de una solución final validada (Golden Solution), junto a su conjunto de casos de prueba confiables.
  2. Cada entrada de prueba (Test Input) se ejecuta sobre las distintas soluciones, generando múltiples salidas (Outputs).
  3. Estas salidas se comparan mediante votación mayoritaria (Major Voting), para definir el resultado más consistente.
  4. Luego, los casos de prueba se evalúan mediante un proceso de puntuación (Scoring), que permite identificar la solución con mejor desempeño.

Un modelo más pequeño que logra mejores resultados que otros más grandes

El rendimiento de X-Coder se puede resumir de forma directa a partir de los resultados reportados en el estudio:

  • En ambos casos, estos valores superan a modelos más grandes, con 14 mil millones de parámetros, como DeepCoder-14B-Preview y AReal-boba2-14B.
  • El modelo, con 7 mil millones de parámetros, alcanza una tasa promedio de aprobación de 62,9 en ocho intentos en LiveCodeBench v5.
  • En la versión más reciente del benchmark, LiveCodeBench v6, obtiene un resultado de 55,8.

El estudio explica que el mejor rendimiento del modelo no se debe solo a la cantidad de datos, sino al tipo de problemas con los que fue entrenado.

Según los autores, las tareas creadas con SynthSmith están pensadas para ser más largas y más difíciles de resolver paso a paso, lo que obliga al modelo a razonar durante más tiempo antes de llegar a una respuesta.

Dicho de forma simple, estos problemas hacen que el modelo tenga que pensar más. En promedio, necesita recorrer un proceso de razonamiento mucho más extenso que el requerido por otros conjuntos de datos usados para entrenar modelos similares.

El estudio observa que esta mayor exigencia al momento de resolver los problemas coincide con mejores resultados en las pruebas, sin afirmar que sea el único factor involucrado.

Comparación de rendimiento en LiveCodeBench v5 y v6. X-Coder-7B, entrenado solo con datos sintéticos, supera a modelos más grandes entrenados con datos reales. | Imagen: Wu et al

Después del entrenamiento inicial, el modelo pasa por una segunda etapa de ajuste, que le permite mejorar su rendimiento en 4,6 puntos porcentuales. Para ese proceso, los investigadores indican que se utilizaron grandes recursos de cómputo, con una fase inicial más larga y otra final de una semana dedicada a afinar el desempeño.

Una conclusión sobre el uso de datos sintéticos en modelos de programación

En conjunto, los resultados del estudio muestran que el uso de datos sintéticos bien diseñados puede convertirse en una alternativa real para entrenar modelos de programación más eficientes, incluso con menos tamaño y sin depender de datos reales reutilizados.

Ivan

Editor especializado en ciencia y tecnología, con foco en innovación, inteligencia artificial, telecomunicaciones y centros de datos. Trabajo con un enfoque riguroso y técnico, desarrollando contenidos sobre semiconductores, energía, ciberseguridad e infraestructura tecnológica.

Los comentarios de Disqus están cargando....
Publicado por
Ivan