Хотя модель Transformer уже продемонстрировала значительные результаты в различных областях, её огромные вычислительные и память потребности ограничивают её применение, особенно при развертывании на устройствах с ограниченными ресурсами на периферии. Квантизация как эффективный метод сжатия модели может существенно сократить время работы Transformer на периферийных устройствах. Следует отметить, что по сравнению с сверточными нейронными сетями (CNN), активационные значения Transformer имеют более выраженные выбросы, что приводит к неравномерному распределению признаков между различными каналами и токенами. Для решения этой проблемы предлагается метод адаптивной калибровки выбросов квантизации (AOCQ), который значительно снижает негативное влияние этих выбросов. AOCQ регулирует значительные различия между каналами и токенами на трёх уровнях: операторном; структурном; и уровне потерь. Введён новый оператор, который эквивалентно уравновешивает активационные значения между каналами, а на уровне структуры добавлена дополнительная стадия для оптимизации шага квантизации активаций. Кроме того, на уровне потерь переносится дисбаланс активационных значений между токенами и каналами в процесс оптимизации весов модели. Теоретический анализ показывает, что этот метод эффективно уменьшает ошибку квантизации. Эффективность предложенного метода подтверждена на различных базовых моделях и задачах. Модель DeiT-B после квантизации с обучением в 8 бит достигает точности 81,57% с потерей всего 0,28 процентных пункта, а также обеспечивает 4-кратное ускорение вывода. Кроме того, в ряде задач, включая классификацию изображений и детекцию объектов, веса Swin Transformer и DeiT можно квантизировать до 4 бит с потерей точности всего 2%, при этом требуемая память составляет лишь 1/8 от исходной.
Keywords
Transformer;сжатие и ускорение моделей;квантизация после обучения;выбросы