Компактные языковые модели с помощью обрезки и дистилляции знаний.
Compact Language Models via Pruning and Knowledge Distillation
July 19, 2024
Авторы: Saurav Muralidharan, Sharath Turuvekere Sreenivas, Raviraj Joshi, Marcin Chochowski, Mostofa Patwary, Mohammad Shoeybi, Bryan Catanzaro, Jan Kautz, Pavlo Molchanov
cs.AI
Аннотация
Большие языковые модели (LLM), ориентированные на различные масштабы и размеры развертывания, в настоящее время создаются путем обучения каждой варианте с нуля; это требует значительных вычислительных ресурсов. В данной статье мы исследуем, может ли обрезка существующей LLM с последующим повторным обучением на долю (<3%) исходных данных обучения стать подходящей альтернативой повторному полному обучению. Для этого мы разрабатываем набор практических и эффективных методов сжатия для LLM, объединяющих обрезку глубины, ширины, внимания и MLP с повторным обучением на основе дистилляции знаний; мы приходим к этим методам через детальное эмпирическое исследование стратегий обрезки для каждой оси, методов комбинирования осей, стратегий дистилляции и методов поиска оптимальных сжатых архитектур. Мы используем этот руководство для сжатия семейства LLM Nemotron-4 в 2-4 раза, и сравниваем их производительность с моделями схожего размера на различных задачах языкового моделирования. Получение моделей 8B и 4B из уже предварительно обученной модели 15B с использованием нашего подхода требует до 40 раз меньшего количества обучающих токенов на модель по сравнению с обучением с нуля; это приводит к экономии вычислительных затрат в 1.8 раза для обучения полного семейства моделей (15B, 8B и 4B). Модели Minitron показывают улучшение показателей MMLU до 16% по сравнению с обучением с нуля, выполняют сопоставимо с другими моделями сообщества, такими как Mistral 7B, Gemma 7B и Llama-3 8B, и превосходят передовые техники сжатия из литературы. Мы предоставили в открытый доступ веса модели Minitron на Huggingface, а также соответствующий дополнительный материал, включая примеры кода, доступные на 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.Summary
AI-Generated Summary