FlatQuant: плоскость имеет значение для квантования LLM
FlatQuant: Flatness Matters for LLM Quantization
October 12, 2024
Авторы: Yuxuan Sun, Ruikang Liu, Haoli Bai, Han Bao, Kang Zhao, Yuening Li, Jiaxin Hu, Xianzhi Yu, Lu Hou, Chun Yuan, Xin Jiang, Wulong Liu, Jun Yao
cs.AI
Аннотация
В последнее время квантование широко используется для сжатия и ускорения больших языковых моделей~(LLM). Из-за выбросов в LLM крайне важно выравнивать веса и активации для минимизации ошибки квантования с равномерно распределенными точками квантования. Предыдущие исследования исследуют различные преобразования перед квантованием для подавления выбросов, такие как масштабирование по каналам и преобразование Хадамара. Однако мы замечаем, что преобразованные веса и активации все еще могут оставаться крутыми и распространенными. В данной статье мы предлагаем FlatQuant (Быстрое и Обучаемое Аффинное Преобразование), новый подход к посттренировочному квантованию для улучшения плоскости весов и активаций. Наш подход определяет оптимальные аффинные преобразования, настроенные для каждого линейного слоя, калибруемые за несколько часов с помощью легкой целевой функции. Для снижения накладных расходов времени выполнения мы применяем декомпозицию Кронекера к матрицам преобразования и объединяем все операции в FlatQuant в одно ядро. Обширные эксперименты показывают, что FlatQuant устанавливает новый стандартный показатель квантования. Например, он достигает менее 1% падения точности для квантования W4A4 на модели LLaMA-3-70B, превосходя SpinQuant на 7.5%. Для задержки вывода FlatQuant снижает замедление, вызванное преобразованием перед квантованием, с 0.26x у QuaRot до всего лишь 0.07x, обеспечивая ускорение до 2.3x для предварительной загрузки и до 1.7x для декодирования соответственно. Код доступен по ссылке: https://github.com/ruikangliu/FlatQuant.
English
Recently, quantization has been widely used for the compression and
acceleration of large language models~(LLMs). Due to the outliers in LLMs, it
is crucial to flatten weights and activations to minimize quantization error
with the equally spaced quantization points. Prior research explores various
pre-quantization transformations to suppress outliers, such as per-channel
scaling and Hadamard transformation. However, we observe that these transformed
weights and activations can still remain steep and outspread. In this paper, we
propose FlatQuant (Fast and Learnable Affine Transformation), a new
post-training quantization approach to enhance flatness of weights and
activations. Our approach identifies optimal affine transformations tailored to
each linear layer, calibrated in hours via a lightweight objective. To reduce
runtime overhead, we apply Kronecker decomposition to the transformation
matrices, and fuse all operations in FlatQuant into a single kernel. Extensive
experiments show that FlatQuant sets up a new state-of-the-art quantization
benchmark. For instance, it achieves less than 1% accuracy drop for
W4A4 quantization on the LLaMA-3-70B model, surpassing SpinQuant by
7.5%. For inference latency, FlatQuant reduces the slowdown induced
by pre-quantization transformation from 0.26x of QuaRot to merely
0.07x, bringing up to 2.3x speedup for prefill and
1.7x speedup for decoding, respectively. Code is available at:
https://github.com/ruikangliu/FlatQuant.Summary
AI-Generated Summary