QUANT_PRUNE_DISTILL Telegram 336
Isomorphic Pruning for Vision Models
[Статья] [Код]
Введение

Полагаю, что уже немного помнят, но когда-то выбить SOTA или создать мега эффективную по параметрам/флопсам на ImageNet-1k было модно и престижно.

В данной статье авторы предлагают метод структурированного прунинга, который достигает хорошего качества на ряде ViTов, СNN и их гибридов.

Метод

При структурированном прунинге отбрасываются целые каналы, слои или размерности в сети. Однако ранжировать конструкции разной топологии между собой непонятно как, потому предлагается ранжировать только среди структурных элементов одинаковой топологии.

Каждому нейрону сопоставляется некий граф зависимости из входящих и выходящих в него ребер, кои погибнут, если выдернем нейрон. Собираем все изоморфные графы в соответствующие кучки (например с одинаковым числом входных/выходных ребер для прунинга нейрона из MLP) считаем для них некоторый importance score, и для тех у кого он меньше - выбрасываем.

Для случая трансформера естественные структуры следующие:
1️⃣ Внутренние каналы в MLP
2️⃣ Головы трансформера
3️⃣ Размерности голов трансформера
4️⃣ Размерность признаков во всей сети
Пробегаемся по всем возможным структурам и везде выбрасываем одну и ту же долю самых маловажных.

То, что получилось потом дообучаем дабы восстановить качество.

Эксперименты

Валидируют метод на ConvNext, DeiT, ResNet-ах и MobileNet-v2. В плане критерия не шибко парятся, берут просто |w dw| - модуль веса на градиент, посчитанный на 100 батчах из 64 сэмплов (не то, что я пол ImageNet-а пихал в свое время).

Прунят довольно агрессивно, в 1.5 - 4 раза, восстанавливаться надо достаточно долго и основательно, потому обучают 300 эпох с дистилляцией на RegNetY.

В результате, удается добиться небольшой просадки на ResNet-ах по сравнению с базовой моделью. Правда, протокол сомнительный - берут модели обученные по старым рецептам без аугментаций на 90 эпох, а сами тратят гораздо больше вычислений с использованием современных методик выжимания качества на ImageNet.

На DeiT и ConvNext стартуя с DeiT-Base/ConvNext-Base удается получить запруненные сети с лучшим качеством, чем Small- и Tiny- модели с тем же количеством параметров и FLOPs (т.е достичь Парето-оптимальности).

По качеству на процент-два превосходят в среднем бейзлайны из литературы.

Вывод

Нравится идея с ранжированием структур с одинаковой топологией, но такое ощущение, что хороший результат обусловлен преимущественно дистилляцией с длительным обучением. На LLMки, к сожалению, масштабировать будет тяжко простым смертным. Но всякие там NVIDIA могут позволить для условного Minitron.
👍8



tgoop.com/quant_prune_distill/336
Create:
Last Update:

Isomorphic Pruning for Vision Models
[Статья] [Код]
Введение

Полагаю, что уже немного помнят, но когда-то выбить SOTA или создать мега эффективную по параметрам/флопсам на ImageNet-1k было модно и престижно.

В данной статье авторы предлагают метод структурированного прунинга, который достигает хорошего качества на ряде ViTов, СNN и их гибридов.

Метод

При структурированном прунинге отбрасываются целые каналы, слои или размерности в сети. Однако ранжировать конструкции разной топологии между собой непонятно как, потому предлагается ранжировать только среди структурных элементов одинаковой топологии.

Каждому нейрону сопоставляется некий граф зависимости из входящих и выходящих в него ребер, кои погибнут, если выдернем нейрон. Собираем все изоморфные графы в соответствующие кучки (например с одинаковым числом входных/выходных ребер для прунинга нейрона из MLP) считаем для них некоторый importance score, и для тех у кого он меньше - выбрасываем.

Для случая трансформера естественные структуры следующие:
1️⃣ Внутренние каналы в MLP
2️⃣ Головы трансформера
3️⃣ Размерности голов трансформера
4️⃣ Размерность признаков во всей сети
Пробегаемся по всем возможным структурам и везде выбрасываем одну и ту же долю самых маловажных.

То, что получилось потом дообучаем дабы восстановить качество.

Эксперименты

Валидируют метод на ConvNext, DeiT, ResNet-ах и MobileNet-v2. В плане критерия не шибко парятся, берут просто |w dw| - модуль веса на градиент, посчитанный на 100 батчах из 64 сэмплов (не то, что я пол ImageNet-а пихал в свое время).

Прунят довольно агрессивно, в 1.5 - 4 раза, восстанавливаться надо достаточно долго и основательно, потому обучают 300 эпох с дистилляцией на RegNetY.

В результате, удается добиться небольшой просадки на ResNet-ах по сравнению с базовой моделью. Правда, протокол сомнительный - берут модели обученные по старым рецептам без аугментаций на 90 эпох, а сами тратят гораздо больше вычислений с использованием современных методик выжимания качества на ImageNet.

На DeiT и ConvNext стартуя с DeiT-Base/ConvNext-Base удается получить запруненные сети с лучшим качеством, чем Small- и Tiny- модели с тем же количеством параметров и FLOPs (т.е достичь Парето-оптимальности).

По качеству на процент-два превосходят в среднем бейзлайны из литературы.

Вывод

Нравится идея с ранжированием структур с одинаковой топологией, но такое ощущение, что хороший результат обусловлен преимущественно дистилляцией с длительным обучением. На LLMки, к сожалению, масштабировать будет тяжко простым смертным. Но всякие там NVIDIA могут позволить для условного Minitron.

BY КПД


Share with your friend now:
tgoop.com/quant_prune_distill/336

View MORE
Open in Telegram


Telegram News

Date: |

Avoid compound hashtags that consist of several words. If you have a hashtag like #marketingnewsinusa, split it into smaller hashtags: “#marketing, #news, #usa. As of Thursday, the SUCK Channel had 34,146 subscribers, with only one message dated August 28, 2020. It was an announcement stating that police had removed all posts on the channel because its content “contravenes the laws of Hong Kong.” Telegram channels fall into two types: A vandalised bank during the 2019 protest. File photo: May James/HKFP. The best encrypted messaging apps
from us


Telegram КПД
FROM American