tgoop.com/quant_prune_distill/426
Last Update:
Метод
MatQuant по постановке ,поверх оптимизируемых методов квантизации, с обучаемыми непрерывными или дискретными параметрами.
Основная идея работы в том, что для целочисленных типов данных отстругивая младшие биты от представления с максимальной бытностью, возможно получать приближения разной точности, вложенные друг в друга, как матрешка.
Но если просто огрублять, скажем , int8 квантизацию, работает не очень, поэтому предлагается совместно оптимизировать разные битности одновременно в одном батче с разными весами.
MatQuant применяют поверх OmniQuant, в котором оптимизируются скейлы и biasы в квантизации через поблочную дистилляцию, и QAT, которая суть просто обучение (с кроссэнтропийным лоссом) с STE через недифференцируемую операцию квантизации.
Эксперименты
Метод валидируют преимущественно на Gemma 2 (2b и 9b) моделях и Мистрале 7b. Полагаю, что 🦙 и Квены не рассматривают из политических соображений (негоже поганых парнокопытных от Меты лапать, как и китайскую продукцию).
OmniQuant оптимизируют на 10, 20M токенах из C4, QAT на 100 M токенах. Причем в большинстве экспериментов квантизуют только FFN.
Качество оценивают по перплексии и 0—shots на lm-eval.
Наивное стругание из высокой битности работает сильно плохо на 2 битах, оптимизация под конкретную битность получше (когда храним много моделей), но все равно не очень, предложенный подход еще чуть получше.
Просадки довольно значительные — 13, 15% для 2b, 6-12% для 9b Gemma 2 модели. Если бы квантизовались все слои, 2 бита были бы Парето—оптимальными (ибо точность квантизованной 9b модели равна несжатой 2b), но, увы, нет.
Полагаю, что подобный результат можно выжать более дешевыми QuIP (без решетки) и 1—мерным HIGGS, как и EfficientQAT.
В ablation показывают, что совместная оптимизация в разными битностями накидывает немного в качестве. Веса лоссов при разных битностых перебирают по сетке.
При квантизации Attention слоев метод тоже лучше бейзлайнов, но просадки становятся еще значительнее с 74 до 47% (остальные методы работают чуть лучше рандома в 2 битах).
Выводы
Название работы красивое, и мотивация хорошая — но результаты все же не слишком впечатляют. Также утверждение, что они первые, кто об этом задумался, не соответствует действительности — была такая работа Any Precision LLM (Oral прошлого ICLR), где разные битности получали через SqueezeLLM. Кроме того, вложенные представления разной точности можно получать через Residual Quantization.
BY КПД
Share with your friend now:
tgoop.com/quant_prune_distill/426