Compacte Taalmodellen via Snoeien en Kennisdistillatie
Compact Language Models via Pruning and Knowledge Distillation
July 19, 2024
Auteurs: Saurav Muralidharan, Sharath Turuvekere Sreenivas, Raviraj Joshi, Marcin Chochowski, Mostofa Patwary, Mohammad Shoeybi, Bryan Catanzaro, Jan Kautz, Pavlo Molchanov
cs.AI
Samenvatting
Grote taalmodellen (LLM's) die gericht zijn op verschillende implementatieschalen en groottes worden momenteel geproduceerd door elke variant vanaf nul te trainen; dit is extreem rekenintensief. In dit artikel onderzoeken we of het snoeien van een bestaand LLM en het vervolgens opnieuw trainen met een fractie (<3%) van de oorspronkelijke trainingsdata een geschikt alternatief kan zijn voor herhaalde, volledige hertraining. Hiertoe ontwikkelen we een set praktische en effectieve compressiebest practices voor LLM's die diepte-, breedte-, aandacht- en MLP-snoei combineren met hertraining op basis van kennisdistillatie; we komen tot deze best practices door een gedetailleerde empirische verkenning van snoeistrategieën voor elke as, methoden om assen te combineren, distillatiestrategieën en zoektechnieken om optimale gecomprimeerde architecturen te vinden. We gebruiken deze handleiding om de Nemotron-4-familie van LLM's met een factor 2-4x te comprimeren en vergelijken hun prestaties met vergelijkbaar grote modellen op een verscheidenheid aan taalmodelleringstaken. Het afleiden van 8B- en 4B-modellen van een reeds voorgetraind 15B-model met onze aanpak vereist tot 40x minder trainings tokens per model in vergelijking met trainen vanaf nul; dit resulteert in rekenkostenbesparingen van 1.8x voor het trainen van de volledige modelfamilie (15B, 8B en 4B). Minitron-modellen vertonen tot 16% verbetering in MMLU-scores in vergelijking met trainen vanaf nul, presteren vergelijkbaar met andere communitymodellen zoals Mistral 7B, Gemma 7B en Llama-3 8B, en overtreffen state-of-the-art compressietechnieken uit de literatuur. We hebben de Minitron-modelgewichten open source gemaakt op Huggingface, met bijbehorend aanvullend materiaal inclusief voorbeeldcode beschikbaar op GitHub.
English
Large language models (LLMs) targeting different deployment scales and sizes
are currently produced by training each variant from scratch; this is extremely
compute-intensive. In this paper, we investigate if pruning an existing LLM and
then re-training it with a fraction (<3%) of the original training data can be
a suitable alternative to repeated, full retraining. To this end, we develop a
set of practical and effective compression best practices for LLMs that combine
depth, width, attention and MLP pruning with knowledge distillation-based
retraining; we arrive at these best practices through a detailed empirical
exploration of pruning strategies for each axis, methods to combine axes,
distillation strategies, and search techniques for arriving at optimal
compressed architectures. We use this guide to compress the Nemotron-4 family
of LLMs by a factor of 2-4x, and compare their performance to similarly-sized
models on a variety of language modeling tasks. Deriving 8B and 4B models from
an already pretrained 15B model using our approach requires up to 40x fewer
training tokens per model compared to training from scratch; this results in
compute cost savings of 1.8x for training the full model family (15B, 8B, and
4B). Minitron models exhibit up to a 16% improvement in MMLU scores compared to
training from scratch, perform comparably to other community models such as
Mistral 7B, Gemma 7B and Llama-3 8B, and outperform state-of-the-art
compression techniques from the literature. We have open-sourced Minitron model
weights on Huggingface, with corresponding supplementary material including
example code available on GitHub.