Программирование каждого примера: повышение качества данных предварительного обучения как у экспертов в масштабе
Programming Every Example: Lifting Pre-training Data Quality like Experts at Scale
September 25, 2024
Авторы: Fan Zhou, Zengzhi Wang, Qian Liu, Junlong Li, Pengfei Liu
cs.AI
Аннотация
Предварительное обучение больших языковых моделей традиционно полагалось на ученых-экспертов для разработки эвристик с целью улучшения качества корпусов, что привело к созданию множества правил до настоящего времени. Однако эти правила не обладают гибкостью для эффективного учета уникальных характеристик отдельных примеров. В то же время применение настраиваемых правил к каждому примеру является непрактичным для человеческих экспертов. В данной статье мы демонстрируем, что даже небольшие языковые модели, с количеством параметров всего 0.3B, могут обладать значительными возможностями по очистке данных, сравнимыми с возможностями человеческих экспертов. Мы представляем Программирование Каждого Примера (ProX), новую методику, которая рассматривает очистку данных как задачу программирования, позволяя моделям улучшать корпусы путем создания и выполнения тонких операций, таких как нормализация строк, для каждого отдельного примера в масштабе. Экспериментальные результаты показывают, что модели, предварительно обученные на данных, отфильтрованных с помощью ProX, превосходят как исходные данные, так и данные, отфильтрованные другими методами отбора, более чем на 2% по различным последующим бенчмаркам. Его эффективность охватывает различные размеры моделей и корпусы предварительного обучения, включая C4, RedPajama-V2 и FineWeb. Более того, ProX проявляет значительный потенциал в предварительном обучении, специфичном для области: без конкретного проектирования для области, модели, обученные на OpenWebMath и улучшенные с помощью ProX, превосходят методы, основанные на правилах, созданные людьми, улучшая среднюю точность на 7.6% по сравнению с Mistral-7B, на 14.6% для Llama-2-7B и на 20.3% для CodeLlama-7B, все это при количестве токенов 10B для сравнения с моделями, такими как Llemma-7B, обученными на 200B токенах. Дальнейший анализ подчеркивает, что ProX значительно экономит FLOPs обучения, предлагая многообещающий путь для эффективного предварительного обучения LLM. Мы открываем исходный код ProX с корпусом >100B, моделями и предоставляем все детали обучения и реализации для воспроизводимого исследования и будущих инноваций. Код: https://github.com/GAIR-NLP/ProX
English
Large language model pre-training has traditionally relied on human experts
to craft heuristics for improving the corpora quality, resulting in numerous
rules developed to date. However, these rules lack the flexibility to address
the unique characteristics of individual example effectively. Meanwhile,
applying tailored rules to every example is impractical for human experts. In
this paper, we demonstrate that even small language models, with as few as 0.3B
parameters, can exhibit substantial data refining capabilities comparable to
those of human experts. We introduce Programming Every Example (ProX), a novel
framework that treats data refinement as a programming task, enabling models to
refine corpora by generating and executing fine-grained operations, such as
string normalization, for each individual example at scale. Experimental
results show that models pre-trained on ProX-curated data outperform either
original data or data filtered by other selection methods by more than 2%
across various downstream benchmarks. Its effectiveness spans various model
sizes and pre-training corpora, including C4, RedPajama-V2, and FineWeb.
Furthermore, ProX exhibits significant potential in domain-specific continual
pre-training: without domain specific design, models trained on OpenWebMath
refined by ProX outperform human-crafted rule-based methods, improving average
accuracy by 7.6% over Mistral-7B, with 14.6% for Llama-2-7B and 20.3% for
CodeLlama-7B, all within 10B tokens to be comparable to models like Llemma-7B
trained on 200B tokens. Further analysis highlights that ProX significantly
saves training FLOPs, offering a promising path for efficient LLM
pre-training.We are open-sourcing ProX with >100B corpus, models, and sharing
all training and implementation details for reproducible research and future
innovation. Code: https://github.com/GAIR-NLP/ProX