tgoop.com/quant_prune_distill/146
Last Update:
QUIK: Towards End-to-End 4-Bit Inference on Generative Large Language Models
[Статья] [Код]
Вряд ли кто станет оспаривать утверждение, что сжатие и ускорение больших языковых моделей является одной из наиболее приоритетных задач для человечества. Большинство современных работ посвящего квантованию только весов сети, так как в случае инференса с батчом размера 1 основную часть времени занимают операции с памятью, а не вычисления. Однако, в некоторых сценариях пользователи могут быть заинтересованы в том, чтобы прогонять несколько последовательностей одновременно, как в случае обработки промптов. Тогда ускорение математических операций начинает приобретать смысл.
Метод
В этой статье авторы квантуют и веса, и активации в 4 бита. Для квантования весов используется симметричное квантование GPTQ, а для активаций динамическое (границы квантования определяются по время инференса) по токенам. Как известно, существуют отдельные размерности, где малые изменения значений весов и активаций могут существенно исказить выход. Потому предлагается их хранить в исходной точности. Определять их во время инференса неэффективно, но оказывается, что они находятся на тех же позициях, потому их можно определить заранее.
В этом по существу заключается и основная суть метода. Кроме того, для моделей семейcтва Llama-2 оказывается предпочтительным квантовать Down проекцию в MLP в 8 бит вместо 4-х, так как ее квантование сильно просаживает качество .
Ускорение вычислений достигается за счет того, что матричные операции проводятся в INT4. Название QUIK расшифровывается как QUantization to INT4 with GPU Kernel support.
При числе токенов от 1 до 16 операции матричное перемножение memory-bound, с большим количеством вычисления начинают доминировать.
BY КПД
Share with your friend now:
tgoop.com/quant_prune_distill/146