ChatPaper.aiChatPaper

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

PDF192November 16, 2024