ChatPaper.aiChatPaper

Arctic-SnowCoder : Démystification des données de haute qualité dans la préformation de code

Arctic-SnowCoder: Demystifying High-Quality Data in Code Pretraining

September 3, 2024
Auteurs: Yuxiang Wei, Hojae Han, Rajhans Samdani
cs.AI

Résumé

Des études récentes démontrent de plus en plus que des données de haute qualité sont cruciales pour un pré-entraînement efficace des modèles de langage. Cependant, la définition précise de "haute qualité" reste peu explorée. En se concentrant sur le domaine du code, nous introduisons Arctic-SnowCoder-1.3B, un modèle de code de base efficace en données pré-entraîné sur 555 milliards de jetons à travers trois phases de données progressivement affinées : (1) pré-entraînement général avec 500 milliards de jetons de code de qualité standard, prétraités par un filtrage de base, une déduplication et une décontamination, (2) poursuite du pré-entraînement avec 50 milliards de jetons de haute qualité, sélectionnés de la phase un par un annotateur de qualité de style BERT formé pour distinguer un bon code de données aléatoires, en utilisant des exemples positifs tirés de fichiers de code de haute qualité, ainsi que des données d'instructions de Magicoder et StarCoder2-Instruct, et (3) pré-entraînement amélioré avec 5 milliards de données synthétiques créées par Llama-3.1-70B en utilisant les données de la phase deux comme graines, en adaptant l'approche Magicoder pour le pré-entraînement. Malgré son entraînement sur un ensemble de données limité, Arctic-SnowCoder atteint des performances de pointe sur BigCodeBench, un banc d'essai de codage axé sur des tâches de programmation pratiques et difficiles, par rapport à des modèles de taille similaire entraînés sur pas plus de 1 billion de jetons, surpassant Phi-1.5-1.3B de 36%. Sur tous les bancs d'essai évalués, Arctic-SnowCoder-1.3B bat StarCoderBase-3B pré-entraîné sur 1 billion de jetons. De plus, il égale les performances des principaux petits modèles de code de base entraînés sur des billions de jetons. Par exemple, Arctic-SnowCoder-1.3B surpasse StarCoder2-3B, pré-entraîné sur plus de 3.3 billions de jetons, sur HumanEval+, un banc d'essai qui évalue la génération de code au niveau de la fonction, et reste compétitif sur BigCodeBench. Notre évaluation présente une analyse complète justifiant divers choix de conception pour Arctic-SnowCoder. Surtout, nous constatons que la clé de données de haute qualité est son alignement avec la distribution des applications en aval.
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

PDF192November 16, 2024