EfficientQAT: Addestramento Efficiente con Quantizzazione per Modelli Linguistici di Grandi Dimensioni
EfficientQAT: Efficient Quantization-Aware Training for Large Language Models
July 10, 2024
Autori: Mengzhao Chen, Wenqi Shao, Peng Xu, Jiahao Wang, Peng Gao, Kaipeng Zhang, Yu Qiao, Ping Luo
cs.AI
Abstract
I grandi modelli linguistici (LLM) sono fondamentali per l'elaborazione del linguaggio naturale e l'intelligenza artificiale moderna. Tuttavia, affrontano sfide nella gestione dei loro significativi requisiti di memoria. Sebbene l'addestramento con consapevolezza della quantizzazione (QAT) offra una soluzione riducendo il consumo di memoria attraverso rappresentazioni a basso numero di bit con una minima perdita di accuratezza, richiede risorse di addestramento sostanziali per ottimizzare i pesi del modello e i parametri di quantizzazione. Per affrontare questo problema, proponiamo Efficient Quantization-Aware Training (EfficientQAT), una nuova tecnica di quantizzazione per comprimere gli LLM. EfficientQAT prevede due fasi consecutive: l'addestramento a blocchi di tutti i parametri (Block-AP) e l'addestramento end-to-end dei parametri di quantizzazione (E2E-QP). Block-AP esegue sequenzialmente l'addestramento con consapevolezza della quantizzazione per tutti i parametri in ciascun blocco del trasformatore con ricostruzione a blocchi, mantenendo l'efficienza evitando di addestrare l'intero LLM. Inizializzato con il modello quantizzato, E2E-QP addestra quindi solo i parametri di quantizzazione (dimensioni dei passi) end-to-end, migliorando l'efficienza con un backbone quantizzato fisso e un numero ridotto di parametri addestrabili. Esperimenti estesi dimostrano che EfficientQAT supera i precedenti metodi di quantizzazione su una gamma di modelli, inclusi LLM di base, LLM ottimizzati per istruzioni e LLM multimodali, con scale da 7B a 70B parametri a vari bit di quantizzazione. Ad esempio, EfficientQAT ottiene un modello Llama-2-70B a 2 bit su un singolo GPU A100-80GB in 41 ore, con una degradazione dell'accuratezza inferiore al 3% rispetto alla precisione completa (69,48 vs. 72,41). È degno di nota che questo modello quantizzato INT2 da 70B ottiene un guadagno di accuratezza di 1,67 rispetto al modello Llama-2-13B (69,48 vs. 67,81) richiedendo meno memoria (19,2GB vs. 24,2GB). Il codice è disponibile all'indirizzo https://github.com/OpenGVLab/EfficientQAT.
English
Large language models (LLMs) are integral to modern natural language
processing and artificial intelligence. However, they face challenges in
managing their significant memory requirements. Although quantization-aware
training (QAT) offers a solution by reducing memory consumption through low-bit
representations with minimal accuracy loss, it demands substantial training
resources to optimize model weights and quantization parameters. To address
this, we propose Efficient Quantization-Aware Training (EfficientQAT), a novel
quantization technique for compressing LLMs. EfficientQAT involves two
consecutive phases: Block-wise training of all parameters (Block-AP) and
end-to-end training of quantization parameters (E2E-QP). Block-AP sequentially
conducts quantization-aware training for all parameters in each transformer
block with block-wise reconstruction, maintaining efficiency by avoiding
training the entire LLM. Initialized with quantized model, E2E-QP then trains
only quantization parameters (step sizes) end-to-end, enhancing efficiency with
a fixed quantized backbone and reduced trainable parameter count. Extensive
experiments demonstrate that EfficientQAT outperforms previous quantization
methods across a range of models, including base LLMs, instruction-tuned LLMs,
and multimodal LLMs, with scales from 7B to 70B parameters at various
quantization bits. For instance, EfficientQAT obtains a 2-bit Llama-2-70B model
on a single A100-80GB GPU in 41 hours, with less than 3\% accuracy degradation
compared to the full precision (69.48 vs. 72.41). Notably, this INT2 quantized
70B model obtains a 1.67 accuracy gain over the Llama-2-13B model (69.48 vs.
67.81) while requiring less memory (19.2GB vs. 24.2GB). Code is available at
https://github.com/OpenGVLab/EfficientQAT.