tgoop.com/quant_prune_distill/14
Last Update:
Группы для квантования могут быть различного размера - можно зафиксировать один масштаб на весь тензор, но так как разные измерения тензора могут сильно отличаться масштабом, то шаг квантования (разность между ближайшими возможными значениями) может быть слишком велик для точного представления весов, посему выгодно брать меньшие группы, фиксируя масштаб для одной размености, скажем, либо даже для меньшей группы соседних весов. Однако, если брать слишком маленькие группы - то память, выделяемая на хранение scale, cтановится довольно существенной. Скажем, если хранить scale в fp32, то для при квантовании в группы из 64 весов, скейлы уже будут давать дополнительные 32 / 64 = 0.5 бита в среднем.
Возникает идея - а почему бы и не заквантовать сами скейлы (и так до бесконечности, но авторы решили ограничиться двумя квантованиями). В данной работе scale квантуется группами по 256 весов в 8 бит, что снижает накладные расходы на их использование до 8 / 64 + 32 / (64 * 256) = 0.127 бит в среднем на параметр. Данная процедура не приводит к просадке качества, но дает существенную экономию по памяти.
BY КПД
Share with your friend now:
tgoop.com/quant_prune_distill/14