LLM-FP4: Transformadores Quantizados com Ponto Flutuante de 4 Bits
LLM-FP4: 4-Bit Floating-Point Quantized Transformers
October 25, 2023
Autores: Shih-yang Liu, Zechun Liu, Xijie Huang, Pingcheng Dong, Kwang-Ting Cheng
cs.AI
Resumo
Propomos o LLM-FP4 para quantizar tanto os pesos quanto as ativações em grandes modelos de linguagem (LLMs) para valores de ponto flutuante de 4 bits, de maneira pós-treinamento. As soluções existentes de quantização pós-treinamento (PTQ) são principalmente baseadas em inteiros e enfrentam dificuldades com larguras de bits abaixo de 8 bits. Em comparação com a quantização inteira, a quantização de ponto flutuante (FP) é mais flexível e pode lidar melhor com distribuições de cauda longa ou em forma de sino, e emergiu como a escolha padrão em muitas plataformas de hardware. Uma característica da quantização FP é que seu desempenho depende em grande parte da escolha dos bits de expoente e da faixa de corte. Nesse sentido, construímos uma linha de base forte de FP-PTQ buscando os parâmetros de quantização ótimos. Além disso, observamos um padrão de alta variância inter-canal e baixa variância intra-canal nas distribuições de ativação, o que aumenta a dificuldade de quantização das ativações. Reconhecemos que esse padrão é consistente em uma variedade de modelos de transformadores projetados para diversas tarefas, como LLMs, BERT e modelos Vision Transformer. Para lidar com isso, propomos a quantização de ativação por canal e mostramos que esses fatores de escala adicionais podem ser reparametrizados como vieses exponenciais dos pesos, incorrendo em um custo insignificante. Nosso método, pela primeira vez, pode quantizar tanto os pesos quanto as ativações no LLaMA-13B para apenas 4 bits e alcança uma pontuação média de 63,1 nas tarefas de raciocínio zero-shot de senso comum, que é apenas 5,8 menor que o modelo de precisão total, superando significativamente o estado da arte anterior em 12,7 pontos. O código está disponível em: https://github.com/nbasyl/LLM-FP4.
English
We propose LLM-FP4 for quantizing both weights and activations in large
language models (LLMs) down to 4-bit floating-point values, in a post-training
manner. Existing post-training quantization (PTQ) solutions are primarily
integer-based and struggle with bit widths below 8 bits. Compared to integer
quantization, floating-point (FP) quantization is more flexible and can better
handle long-tail or bell-shaped distributions, and it has emerged as a default
choice in many hardware platforms. One characteristic of FP quantization is
that its performance largely depends on the choice of exponent bits and
clipping range. In this regard, we construct a strong FP-PTQ baseline by
searching for the optimal quantization parameters. Furthermore, we observe a
high inter-channel variance and low intra-channel variance pattern in
activation distributions, which adds activation quantization difficulty. We
recognize this pattern to be consistent across a spectrum of transformer models
designed for diverse tasks, such as LLMs, BERT, and Vision Transformer models.
To tackle this, we propose per-channel activation quantization and show that
these additional scaling factors can be reparameterized as exponential biases
of weights, incurring a negligible cost. Our method, for the first time, can
quantize both weights and activations in the LLaMA-13B to only 4-bit and
achieves an average score of 63.1 on the common sense zero-shot reasoning
tasks, which is only 5.8 lower than the full-precision model, significantly
outperforming the previous state-of-the-art by 12.7 points. Code is available
at: https://github.com/nbasyl/LLM-FP4.