tgoop.com/quant_prune_distill/115
Last Update:
Эксперименты
В первой части исследования авторы смотрят на норму разницы между исходными и сжатыми весами, или если быть точнее, log SNR разницы.
Сначала рассматривают аналитические распределения - нормальное и обрезанное t-распределение Стьюдента, чтобы моделировать тяжелые хвосты.
Для нормального распределения квадратичная ошибка, нормированная на плотность распределения для квантизации возрастает между узлами решетки, но при этом существенно ниже, чем максимальная ошибка у прунинга при той же степени сжатия. При уменьшении модели в фиксированное число раз ошибка квантизации всегда ниже таковой у прунинга.
Для t-распределения Стьюдента при сильном сжатии и kurtosis (меры тяжести хвостов распределения) прунинг может быть лучше квантизации, однако такое распределение редко встречается на практике.
Затем авторы берут 46 моделек из torchvision и вновь смотрят на ошибку приближения весов и почти все оказывается, что при заданном сжатии у квантизации ошибка меньше.
Далее авторы смотрят на ошибку уже на выходе слоя и рассматривают более продвинутые алгоритмы прунинга и квантизации в сценарии post-training compression (то есть без дообучения), оптимизирующие ошибку на уровне слоя. Выводы, тем не менее, те же, что и раньше.
Но сохраняется ли преимущество квантования после обучения сжатой модели?
Оказывается, что да. Авторы берут несколько архитектур - ResNet, MobileNet, EfficientNet, ViT и прогоняют sparse training / quantization aware training, соотвественно, сжатых моделей на ряде задач компьютерного зрения - классификации, сегментации, детекции, и почти всегда квантованная модель оказывается лучше запруненной. Гиперпараметры процедуры обучения одинаковы в обоих случаях для честного сравнения.
Здесь стоить важную ремарку, что модели сжимают за один раз, в то время как для прунинга куда оптимальнее сжимать итеративно (и тот же MobileNet-V3 вполне реально сжать до 87.5% с умеренной просадкой в качестве).
Вывод
Довольно интересное, хоть и сравнительно короткое исследование. Наверное, основной вывод естественен, что небольшие пертурбации всех весов влияют на качество модели меньше, чем большие у части. Вероятно, результат зависит еще от деталей процедуры обучения, в особенности, weight decay. И было бы интересно посмотреть на аналогичное исследования для языковых моделей. Кроме того, прунинг можно комбинировать с квантованием и можно поставить задачу поиска оптимального соотношения между прунингом и квантованием. Тем для будущих исследований предостаточно…
BY КПД
Share with your friend now:
tgoop.com/quant_prune_distill/115