tgoop.com/quant_prune_distill/276
Last Update:
Shortened LLaMA: A Simple Depth Pruning for Large Language Models
[Статья][Код]
Первая статья в хронологическом порядке и с открытым исходным кодом.
Метод
Хотим мы, значится, выбрасывать блоки целиком - но какие брать?
Авторы рассматривают 3 критерия
1️⃣ Среднюю величину весов (Magntude pruning)
2️⃣ Taylor (не Свифт, а норму градиента на вес, вдв кароч)
3️⃣ Изменение перплексии при выкидывании каждого блока по отдельности
В первых двух случаях временами выпиливаются первые и последние блоки, которые оказываются позарез важными, поэтому предлагается убрать их рассмотрения.
Чтобы восстановить качество модели после сжатия, навешивают LoRA на то, что выжило и дообучают на небольшом количестве данных.
Эксперименты
Берут LLama-1 и Vicuna-7B, 13B. Для калибровки (оценки важности блоков) берут 10 последовательностей длины 128 из BookCorpus, и потом дообучают на Alpaca.
Предложенный метод не хуже, а то и лучше LLM-Pruner и структурированный Wanda (где критерием важности параметра выступает норма веса на норму активации).
Просадка при 20% прореживания заметная, но все же довольно умеренная. На малых степенях сжатия лучше всего работает критерий по градиенту умножить на вес, при запрете на отбрасывание первых четырех и последних двух блоков, при больших - оценка важности по перплексии.
Файнтьюн с LoRA неплохо восстанавливает метрики после сжатия, особенно с увеличением степени сжатия. Тем не менее разрыв между исходной моделью и сжатой все еще существенен (просадки больше, чем при SOTA 2-битной квантизации).
Данных требуется совсем немного для калибровки, качество существенно не меняется если взять больше, чем 10 примеров. Запрещать сжимать для Taylor и Magnitude первые и последние блоки важно - иначе перплексия взлетает до нескольких тысяч.
Комментарий
Метод прост и логичен. Однако просадка, на самом деле несколько больше, чем декларируется. На собственных замерах с lm_eval=0.4.0
поверх дообученных чекпоинтов (26 блоков против исходных 32) замерил просадку в 3% по сравнению с исходной моделью.
BY КПД
Share with your friend now:
tgoop.com/quant_prune_distill/276