Arctic-SnowCoder: Entmystifizierung von hochwertigen Daten beim Code-Vortraining
Arctic-SnowCoder: Demystifying High-Quality Data in Code Pretraining
September 3, 2024
Autoren: Yuxiang Wei, Hojae Han, Rajhans Samdani
cs.AI
Zusammenfassung
Aktuelle Studien zeigen zunehmend, dass hochwertige Daten für eine effektive Vorabtrainierung von Sprachmodellen entscheidend sind. Die genaue Definition von "hochwertig" bleibt jedoch weitgehend unerforscht. Im Fokus des Code-Bereichs stellen wir Arctic-SnowCoder-1.3B vor, ein dateneffizientes Basismodell, das auf 555B Tokens vorabtrainiert wurde, durch drei Phasen von progressiv verfeinerten Daten: (1) allgemeine Vorabtrainierung mit 500B Standardqualitäts-Code-Tokens, vorverarbeitet durch grundlegende Filterung, Deduplizierung und Entkontamination, (2) fortgesetzte Vorabtrainierung mit 50B hochwertigen Tokens, aus Phase eins ausgewählt durch einen BERT-ähnlichen Qualitätsannotator, der darauf trainiert ist, guten Code von zufälligen Daten zu unterscheiden, unter Verwendung von positiven Beispielen aus hochwertigen Code-Dateien sowie Anweisungsdaten von Magicoder und StarCoder2-Instruct, und (3) verbesserte Vorabtrainierung mit 5B synthetischen Daten, erstellt von Llama-3.1-70B unter Verwendung von Phase zwei Daten als Ausgangspunkt, wobei der Magicoder-Ansatz für die Vorabtrainierung adaptiert wird. Trotz des Trainings auf einem begrenzten Datensatz erzielt Arctic-SnowCoder Spitzenleistungen auf BigCodeBench, einem Codier-Benchmark, der sich auf praktische und anspruchsvolle Programmieraufgaben konzentriert, im Vergleich zu ähnlich großen Modellen, die auf nicht mehr als 1T Tokens trainiert wurden, und übertrifft Phi-1.5-1.3B um 36%. Über alle evaluierten Benchmarks hinweg schlägt Arctic-SnowCoder-1.3B StarCoderBase-3B, der auf 1T Tokens vorabtrainiert wurde. Darüber hinaus erreicht es die Leistung führender kleiner Basismodelle für Code, die auf Billionen von Tokens trainiert wurden. Zum Beispiel übertrifft Arctic-SnowCoder-1.3B StarCoder2-3B, der auf über 3,3T Tokens vorabtrainiert wurde, auf HumanEval+, einem Benchmark, der die Generierung von Code auf Funktionsebene bewertet, und bleibt auf BigCodeBench wettbewerbsfähig. Unsere Evaluation präsentiert eine umfassende Analyse, die verschiedene Designentscheidungen für Arctic-SnowCoder rechtfertigt. Am wichtigsten ist, dass wir feststellen, dass der Schlüssel zu hochwertigen Daten in ihrer Ausrichtung auf die Verteilung von Anwendungen nachgelagerter Prozesse liegt.
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