HyperAIHyperAI
il y a 2 mois

LLM.int8() : Multiplication matricielle à 8 bits pour les Transformers à grande échelle

Tim Dettmers; Mike Lewis; Younes Belkada; Luke Zettlemoyer
LLM.int8() : Multiplication matricielle à 8 bits pour les Transformers à grande échelle
Résumé

Les grands modèles de langage ont été largement adoptés mais nécessitent une mémoire GPU importante pour l'inférence. Nous avons développé une procédure de multiplication matricielle en Int8 pour les couches de projection d'attention et de propagation avant dans les transformateurs, ce qui réduit la mémoire nécessaire pour l'inférence de moitié tout en conservant des performances à précision complète. Avec notre méthode, un modèle avec 175 milliards de paramètres et un checkpoint en 16/32 bits peut être chargé, converti en Int8 et utilisé immédiatement sans dégradation des performances. Cela est rendu possible grâce à la compréhension et au contournement des propriétés des caractéristiques émergentes hautement systématiques dans les modèles de langage basés sur les transformateurs, qui dominent les performances d'attention et de prédiction des transformateurs. Pour gérer ces caractéristiques, nous avons développé une procédure de quantification en deux parties, LLM.int8(). Tout d'abord, nous utilisons une quantification vectorielle avec des constantes de normalisation distinctes pour chaque produit scalaire dans la multiplication matricielle, afin de quantifier la majorité des caractéristiques. Cependant, pour les valeurs aberrantes émergentes, nous incluons également un nouveau schéma de décomposition mixte-précision, qui isole les dimensions des caractéristiques aberrantes dans une multiplication matricielle en 16 bits tout en maintenant plus de 99,9 % des valeurs multipliées en 8 bits. En utilisant LLM.int8(), nous montrons empiriquement qu'il est possible d'effectuer l'inférence dans les grands modèles de langage (LLMs) comportant jusqu'à 175 milliards de paramètres sans aucune dégradation des performances. Ce résultat rend ces modèles beaucoup plus accessibles, par exemple en permettant l'utilisation du OPT-175B/BLOOM sur un seul serveur équipé de GPU grand public. Nous mettons notre logiciel à disposition sous licence open source.