FlatQuant: A Planura Importa para a Quantização LLM
FlatQuant: Flatness Matters for LLM Quantization
October 12, 2024
Autores: 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
Resumo
Recentemente, a quantização tem sido amplamente utilizada para a compressão e aceleração de grandes modelos de linguagem (LLMs). Devido aos valores atípicos nos LLMs, é crucial nivelar os pesos e ativações para minimizar o erro de quantização com pontos de quantização igualmente espaçados. Pesquisas anteriores exploram várias transformações pré-quantização para suprimir os valores atípicos, como escalonamento por canal e transformação de Hadamard. No entanto, observamos que esses pesos e ativações transformados ainda podem permanecer íngremes e dispersos. Neste artigo, propomos o FlatQuant (Transformação Afim Rápida e Aprendível), uma nova abordagem de quantização pós-treinamento para melhorar a planicidade dos pesos e ativações. Nossa abordagem identifica transformações afins ótimas adaptadas a cada camada linear, calibradas em horas por meio de um objetivo leve. Para reduzir o overhead de tempo de execução, aplicamos a decomposição de Kronecker às matrizes de transformação e fundimos todas as operações no FlatQuant em um único kernel. Experimentos extensivos mostram que o FlatQuant estabelece um novo referencial de quantização de ponta. Por exemplo, ele alcança menos de 1% de queda de precisão para a quantização W4A4 no modelo LLaMA-3-70B, superando o SpinQuant em 7,5%. Para latência de inferência, o FlatQuant reduz a desaceleração induzida pela transformação pré-quantização de 0,26x do QuaRot para apenas 0,07x, proporcionando até 2,3x de aceleração para preenchimento e 1,7x de aceleração para decodificação, respectivamente. O código está disponível em: 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.