SliceGPT : Compresser les grands modèles de langage en supprimant des lignes et des colonnes
SliceGPT: Compress Large Language Models by Deleting Rows and Columns
January 26, 2024
Auteurs: Saleh Ashkboos, Maximilian L. Croci, Marcelo Gennari do Nascimento, Torsten Hoefler, James Hensman
cs.AI
Résumé
Les grands modèles de langage sont devenus la pierre angulaire du traitement du langage naturel, mais leur utilisation s'accompagne de coûts substantiels en termes de ressources de calcul et de mémoire. La sparsification offre une solution pour atténuer ces contraintes de ressources, et des travaux récents ont montré que les modèles entraînés peuvent être sparsifiés a posteriori. Les techniques de sparsification existantes rencontrent des défis, car elles nécessitent des structures de données supplémentaires et offrent une accélération limitée avec le matériel actuel. Dans cet article, nous présentons SliceGPT, un nouveau schéma de sparsification post-entraînement qui remplace chaque matrice de poids par une matrice plus petite (dense), réduisant ainsi la dimension d'embedding du réseau. Grâce à des expérimentations approfondies, nous montrons que SliceGPT peut supprimer jusqu'à 25 % des paramètres du modèle (y compris les embeddings) pour les modèles LLAMA2-70B, OPT 66B et Phi-2 tout en maintenant respectivement 99 %, 99 % et 90 % des performances en tâche zero-shot du modèle dense. Nos modèles découpés fonctionnent sur moins de GPU et sont plus rapides sans aucune optimisation de code supplémentaire : sur des GPU grand public de 24 Go, nous réduisons le calcul total pour l'inférence sur LLAMA2-70B à 64 % de celui du modèle dense ; sur des GPU A100 de 40 Go, nous le réduisons à 66 %. Nous proposons une nouvelle perspective, l'invariance computationnelle dans les réseaux de transformateurs, qui permet à SliceGPT de fonctionner, et nous espérons qu'elle inspirera et permettra de futures voies pour réduire les exigences en mémoire et en calcul des modèles pré-entraînés. Le code est disponible à l'adresse suivante : https://github.com/microsoft/TransformerCompression
English
Large language models have become the cornerstone of natural language
processing, but their use comes with substantial costs in terms of compute and
memory resources. Sparsification provides a solution to alleviate these
resource constraints, and recent works have shown that trained models can be
sparsified post-hoc. Existing sparsification techniques face challenges as they
need additional data structures and offer constrained speedup with current
hardware. In this paper we present SliceGPT, a new post-training sparsification
scheme which replaces each weight matrix with a smaller (dense) matrix,
reducing the embedding dimension of the network. Through extensive
experimentation, we show that SliceGPT can remove up to 25% of the model
parameters (including embeddings) for LLAMA2-70B, OPT 66B and Phi-2 models
while maintaining 99%, 99% and 90% zero-shot task performance of the dense
model respectively. Our sliced models run on fewer GPUs and run faster without
any additional code optimization: on 24GB consumer GPUs we reduce the total
compute for inference on LLAMA2-70B to 64% of that of the dense model; on 40GB
A100 GPUs we reduce it to 66%. We offer a new insight, computational invariance
in transformer networks, which enables SliceGPT and we hope it will inspire and
enable future avenues to reduce memory and computation demands for pre-trained
models. Code is available at:
https://github.com/microsoft/TransformerCompression