Snowflake AI Research presenta Arctic-SnowCoder-1.3B: un nuevo modelo 1.3B que se encuentra entre los modelos de lenguaje pequeños para código

Los modelos de aprendizaje automático, especialmente aquellos diseñados para la generación de código, dependen en gran medida de datos de alta calidad durante el preentrenamiento. Este campo ha experimentado un rápido avance, con modelos de lenguaje grandes (LLM) entrenados en conjuntos de datos extensos que contienen código de varias fuentes. El desafío para los investigadores es garantizar que los datos utilizados sean abundantes y de alta calidad, ya que esto afecta significativamente la capacidad del modelo para manejar tareas complejas. En aplicaciones relacionadas con el código, los datos bien estructurados, anotados y limpios garantizan que los modelos puedan generar resultados precisos, eficientes y confiables para tareas de programación del mundo real.

Un problema importante en el desarrollo de modelos de código es la falta de definiciones precisas de datos de “alta calidad”. Si bien hay disponibles grandes cantidades de datos de código, muchos contienen ruido, redundancia o información irrelevante, que puede degradar el rendimiento del modelo. Depender de datos sin procesar, incluso después de filtrarlos, a menudo conduce a ineficiencias. Este problema se hace evidente cuando los modelos entrenados en grandes conjuntos de datos tienen un rendimiento inferior al esperado en los puntos de referencia prácticos. Para abordar esto, se ha puesto mayor énfasis no solo en adquirir grandes cantidades de datos, sino también en seleccionar datos que se alineen bien con las aplicaciones posteriores, mejorando las capacidades predictivas del modelo y su utilidad general.

Históricamente, el preentrenamiento de los modelos de código implicaba extraer información de grandes repositorios como GitHub y procesar datos sin procesar mediante técnicas básicas de filtrado y deduplicación. Luego, los investigadores aplicaban clasificadores de bosque aleatorio o filtros de calidad simples para identificar código con valor educativo, como se ve en modelos como Phi-1. Si bien estos métodos mejoraron la calidad de los datos hasta cierto punto, no fueron suficientes para lograr un rendimiento óptimo en tareas de codificación más desafiantes. Los enfoques más nuevos han adoptado herramientas más sofisticadas, como los anotadores basados ​​en BERT, para clasificar la calidad del código y seleccionar datos que contribuirían de manera más efectiva al éxito del modelo.

El equipo de investigación de Snowflake AI Research, la Universidad de Illinois en Urbana-Champaign y la Universidad Nacional de Seúl presentó Codificador de nieve ártica 1.3B Un nuevo enfoque para el preentrenamiento de modelos de código mediante el refinamiento progresivo de la calidad de los datos en tres fases distintas. Este método combina el preentrenamiento general, el preentrenamiento continuo con datos de alta calidad y el preentrenamiento final con datos sintéticos. Los investigadores aprovecharon los conjuntos de datos existentes, como los rastreos de The Stack v1 y GitHub, y los datos artificiales generados con Llama-3.1-70B para construir un modelo más pequeño y eficiente. Este proceso se centró en optimizar los datos utilizados en cada fase para garantizar que el modelo pudiera superar a sus competidores.

En la primera fase, Arctic-SnowCoder se entrenó con 500 mil millones de tokens de código derivados de fuentes de datos sin procesar, como The Stack v1 y GitHub. Estos datos se sometieron a pasos básicos de preprocesamiento, incluido el filtrado y la deduplicación, lo que dio como resultado aproximadamente 400 mil millones de tokens únicos. Durante esta fase, el modelo se entrenó sin filtros de calidad avanzados y los datos se agruparon por lenguaje de programación y repositorio. Este enfoque aseguró una amplia base de conocimiento del código, pero requirió un mayor refinamiento. En la segunda fase, el equipo de investigación seleccionó 50 mil millones de tokens de este conjunto de datos inicial, centrándose en datos de alta calidad. Se empleó un anotador de calidad basado en BERT para clasificar los archivos de código, y los 12,5 mil millones de tokens principales se repitieron cuatro veces para entrenar aún más el modelo. Esta fase mejoró significativamente la calidad de los datos, ya que el anotador se entrenó específicamente para seleccionar tokens alineados con las aplicaciones posteriores del modelo.

La fase final implicó un preentrenamiento mejorado con 5 mil millones de tokens sintéticos generados por Llama-3.1-70B. Estos tokens se crearon utilizando los datos de alta calidad de la fase dos como semillas, transformando los datos de menor calidad en documentos sintéticos de alta calidad. Esta fase refinó aún más la capacidad del modelo para generar código preciso al garantizar que los datos de entrenamiento fueran relevantes y representativos de las tareas de codificación del mundo real. El resultado fue un modelo que se había sometido a un entrenamiento progresivamente más riguroso, en el que cada fase contribuía a mejorar su rendimiento.

La eficacia de este enfoque es evidente en los resultados de Arctic-SnowCoder-1.3B. A pesar de haber sido entrenado con solo 555 mil millones de tokens, superó significativamente a otros modelos de tamaño similar, como Phi-1.5-1.3B y StarCoderBase-3B, que fueron entrenados con más de 1 billón de tokens. En el benchmark BigCodeBench, que se centra en tareas de programación prácticas y desafiantes, Arctic-SnowCoder superó el rendimiento de Phi-1.5-1.3B en un 36%. Superó a StarCoder2-3B, entrenado con más de 3 billones de tokens, en HumanEval+, logrando una puntuación de 28,0 en comparación con los 27,4 de StarCoder2-3B. A pesar de haber sido entrenado con menos tokens, la capacidad del modelo para funcionar bien destaca la importancia de la calidad de los datos sobre la cantidad.

En conclusión, Arctic-SnowCoder-1.3B ilustra el papel fundamental de los datos de alta calidad refinados progresivamente en el preentrenamiento de los modelos de código. Al adoptar un enfoque de tres fases, los investigadores mejoraron significativamente el rendimiento del modelo en comparación con modelos más grandes entrenados con muchos más tokens. Este método demuestra la importancia de alinear los datos de preentrenamiento con las tareas posteriores y proporciona pautas prácticas para el desarrollo futuro de modelos. El éxito de Arctic-SnowCoder es un testimonio del valor de los datos de alta calidad, que muestra que la conservación cuidadosa de los datos y la generación de datos sintéticos pueden conducir a mejoras sustanciales en los modelos de generación de código.


Echa un vistazo a la Papel. Todo el crédito por esta investigación corresponde a los investigadores de este proyecto. Además, no olvides seguirnos en Gorjeo y LinkedInÚnete a nuestro Canal de Telegram.

Si te gusta nuestro trabajo, te encantará nuestro hoja informativa..

No olvides unirte a nuestro Subreddit con más de 50 000 millones de usuarios


Asif Razzaq es el director ejecutivo de Marktechpost Media Inc. Como ingeniero y emprendedor visionario, Asif está comprometido con aprovechar el potencial de la inteligencia artificial para el bien social. Su iniciativa más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, Marktechpost, que se destaca por su cobertura en profundidad de noticias sobre aprendizaje automático y 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.