Arctic-SnowCoder: Расшифровка высококачественных данных в предварительном обучении кода
Arctic-SnowCoder: Demystifying High-Quality Data in Code Pretraining
September 3, 2024
Авторы: Yuxiang Wei, Hojae Han, Rajhans Samdani
cs.AI
Аннотация
Последние исследования все чаще демонстрируют, что высококачественные данные играют решающую роль в эффективном предварительном обучении языковых моделей. Однако точное определение "высокого качества" остается малоизученным. Сосредотачиваясь на области кода, мы представляем Arctic-SnowCoder-1.3B, базовую модель кода, обученную на 555 млрд токенов через три этапа постепенно улучшенных данных: (1) общее предварительное обучение с 500 млрд стандартных токенов кода, предварительно обработанных через базовую фильтрацию, удаление дубликатов и очистку от загрязнений, (2) продолжение предварительного обучения с 50 млрд токенов высокого качества, отобранных из фазы один с помощью аннотатора качества в стиле BERT, обученного различать хороший код от случайных данных, используя положительные примеры из файлов высококачественного кода, а также инструкционные данные от Magicoder и StarCoder2-Instruct, и (3) улучшенное предварительное обучение с 5 млрд синтетических данных, созданных Llama-3.1-70B с использованием данных фазы два в качестве исходных, адаптируя подход Magicoder для предварительного обучения. Несмотря на обучение на ограниченном наборе данных, Arctic-SnowCoder достигает передовых результатов на BigCodeBench, бенчмарке по программированию, сосредоточенном на практических и сложных задачах, по сравнению с моделями схожего размера, обученными не более чем на 1 трлн токенов, превосходя Phi-1.5-1.3B на 36%. На всех оцениваемых бенчмарках Arctic-SnowCoder-1.3B обгоняет StarCoderBase-3B, предварительно обученную на 1 трлн токенов. Кроме того, он соответствует результатам ведущих небольших базовых моделей кода, обученных на триллионах токенов. Например, Arctic-SnowCoder-1.3B превосходит StarCoder2-3B, предварительно обученную на более чем 3.3 трлн токенов, на HumanEval+, бенчмарке, оценивающем генерацию кода на уровне функций, и остается конкурентоспособным на BigCodeBench. Наша оценка представляет собой всесторонний анализ, обосновывающий различные проектные решения для Arctic-SnowCoder. Наиболее важным является то, что ключом к высококачественным данным является их соответствие распределению прикладных задач.
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.