Arctic-SnowCoder: Desmitificando Datos de Alta Calidad en el Preentrenamiento de Código
Arctic-SnowCoder: Demystifying High-Quality Data in Code Pretraining
September 3, 2024
Autores: Yuxiang Wei, Hojae Han, Rajhans Samdani
cs.AI
Resumen
Estudios recientes han demostrado cada vez más que los datos de alta calidad son cruciales para el preentrenamiento efectivo de modelos de lenguaje. Sin embargo, la definición precisa de "alta calidad" sigue siendo poco explorada. Enfocándonos en el dominio del código, presentamos Arctic-SnowCoder-1.3B, un modelo base de código eficiente en datos preentrenado en 555B tokens a través de tres fases de datos progresivamente refinados: (1) preentrenamiento general con 500B tokens de código de calidad estándar, preprocesados mediante filtrado básico, deduplicación y descontaminación, (2) continuación del preentrenamiento con 50B tokens de alta calidad, seleccionados de la fase uno por un anotador de calidad estilo BERT entrenado para distinguir buen código de datos aleatorios, utilizando ejemplos positivos extraídos de archivos de código de alta calidad, junto con datos de instrucción de Magicoder y StarCoder2-Instruct, y (3) preentrenamiento mejorado con 5B de datos sintéticos creados por Llama-3.1-70B utilizando los datos de la fase dos como semillas, adaptando el enfoque de Magicoder para el preentrenamiento. A pesar de ser entrenado en un conjunto de datos limitado, Arctic-SnowCoder logra un rendimiento de vanguardia en BigCodeBench, un banco de pruebas de codificación centrado en tareas de programación prácticas y desafiantes, en comparación con modelos de tamaño similar entrenados en no más de 1T tokens, superando a Phi-1.5-1.3B en un 36%. En todos los bancos de pruebas evaluados, Arctic-SnowCoder-1.3B supera a StarCoderBase-3B preentrenado en 1T tokens. Además, iguala el rendimiento de los principales modelos base de código pequeños entrenados en billones de tokens. Por ejemplo, Arctic-SnowCoder-1.3B supera a StarCoder2-3B, preentrenado en más de 3.3T tokens, en HumanEval+, un banco de pruebas que evalúa la generación de código a nivel de función, y se mantiene competitivo en BigCodeBench. Nuestra evaluación presenta un análisis exhaustivo que justifica varias decisiones de diseño para Arctic-SnowCoder. Lo más importante, encontramos que la clave para datos de alta calidad es su alineación con la distribución de las aplicaciones posteriores.
English
Recent studies have been increasingly demonstrating that high-quality data is
crucial for effective pretraining of language models. However, the precise
definition of "high-quality" remains underexplored. Focusing on the code
domain, we introduce Arctic-SnowCoder-1.3B, a data-efficient base code model
pretrained on 555B tokens through three phases of progressively refined data:
(1) general pretraining with 500B standard-quality code tokens, preprocessed
through basic filtering, deduplication, and decontamination, (2) continued
pretraining with 50B high-quality tokens, selected from phase one by a
BERT-style quality annotator trained to distinguish good code from random data,
using positive examples drawn from high-quality code files, along with
instruction data from Magicoder and StarCoder2-Instruct, and (3) enhanced
pretraining with 5B synthetic data created by Llama-3.1-70B using phase two
data as seeds, adapting the Magicoder approach for pretraining. Despite being
trained on a limited dataset, Arctic-SnowCoder achieves state-of-the-art
performance on BigCodeBench, a coding benchmark focusing on practical and
challenging programming tasks, compared to similarly sized models trained on no
more than 1T tokens, outperforming Phi-1.5-1.3B by 36%. Across all evaluated
benchmarks, Arctic-SnowCoder-1.3B beats StarCoderBase-3B pretrained on 1T
tokens. Additionally, it matches the performance of leading small base code
models trained on trillions of tokens. For example, Arctic-SnowCoder-1.3B
surpasses StarCoder2-3B, pretrained on over 3.3T tokens, on HumanEval+, a
benchmark that evaluates function-level code generation, and remains
competitive on BigCodeBench. Our evaluation presents a comprehensive analysis
justifying various design choices for Arctic-SnowCoder. Most importantly, we
find that the key to high-quality data is its alignment with the distribution
of downstream applications.Summary
AI-Generated Summary