8 3090, 1 jour de compression trillion paramètre grand modèle ! 3,2 To chute à 160 Go, avec un taux de compression jusqu’à 20 fois

Source de l’article : New Zhiyuan

Récemment, des chercheurs de l’ISTA ont proposé une nouvelle méthode de quantification de modèle, QMoE, qui peut compresser un SwitchTransformer de 1,6 billion de paramètres à moins de 160 Go (0,8 bit par paramètre) avec peu de perte de précision.

Source de l’image : Généré par Unbounded AI

L’architecture de GPT-4 étant « open source » par des leaders bien connus de l’industrie, l’architecture experte hybride (MoE) est redevenue le centre de recherche.

GPT-4 dispose de 16 modèles experts avec un total de 1,8 billion de paramètres. Chaque génération de tokens nécessite environ 280 milliards de paramètres et 560 TFLOPs

Cependant, le coût d’un modèle plus rapide et plus précis est le grand nombre de paramètres et le coût élevé qui l’accompagne.

Par exemple, le modèle SwitchTransformer-c2048 de 1,6 billion de paramètres nécessite 3,2 To de mémoire GPU pour fonctionner efficacement.

Pour résoudre ce problème, des chercheurs de l’Institut autrichien de technologie (ISTA) ont proposé un tout nouveau cadre de compression et d’exécution – QMoE.

Adresse:

En utilisant un cœur de décodage GPU spécialement conçu, QMoE dispose d’une inférence de compression efficace de bout en bout, qui peut atteindre jusqu’à 20 fois la compression avec seulement une légère perte de précision.

Plus précisément, QMoE peut compresser le modèle SwitchTransformer-c2048 de 1,6 billion de paramètres à moins de 160 Go dans un seul serveur GPU en une seule journée, ce qui équivaut à seulement 0,8 bit par paramètre.

Cela vous permet de fonctionner sur 4 GPU NVIDIA RTX A6000 ou 8 GPU NVIDIA RTX 3090 avec moins de 5 % du coût d’inférence pour un modèle non compressé.

Quantification du modèle MoE

L’idée de base du modèle hybride (MoE) est d’augmenter le nombre de paramètres du modèle afin d’améliorer les capacités de modélisation du réseau, tout en maintenant le coût de calcul presque le même par rapport à l’architecture de rétroaction standard.

Étant donné que seule une petite fraction du réseau doit être appelée pour traiter chaque jeton d’entrée, cette conception peut tirer parti de 100 ou même 1 000 « experts » pour créer des modèles hyperscale pour un entraînement et une inférence efficaces.

Il a été prouvé que le MoE peut améliorer considérablement la précision et la vitesse d’apprentissage lorsque la vitesse d’inférence est comparable. Mais un volume aussi important signifie qu’il faut beaucoup de mémoire vidéo pour faire fonctionner le modèle.

L’un des principaux défis de la compression du MoE est la nécessité de maintenir un grand nombre d’activations.

À cet égard, les données intermédiaires qui doivent être calculées peuvent être contrôlées dans une petite partie en organisant soigneusement l’exécution du modèle. Cela décharge le stockage principal du GPU vers une mémoire CPU moins chère et plus chère.

Plus précisément, maintenez une grande mémoire tampon B et mettez à jour la partie dense du bloc Transformer comme suit :

  1. Du CPU au GPU, prenez un « échantillon » X contenant des centaines de jetons ;

  2. Grâce à la couche dense correspondante, le résultat Y est obtenu ;

  3. Calculer et stocker l’allocation experte de tokens dans Y ;

  4. Renvoyez Y au processeur et écrasez X dans B.

Pour les sections clairsemées :

  1. Du CPU au GPU, récupérez tous les jetons de B qui ont été attribués à l’expert E, représenté par X_E.

  2. Utilisez-les pour générer des E experts compressés (par exemple, à l’aide de GPTQ).

  3. Exécutez X_E à E' pour obtenir Y_E'.

  4. Renvoyez Y_E' au processeur et écrasez X_E en B.

Comme le montre la figure 2, ce processus minimise la consommation de mémoire et les coûts de transfert : une seule copie de B est nécessaire, et chaque jeton n’est lu et écrit que deux fois dans chaque bloc Transformer.

De plus, les chercheurs ont conçu un schéma d’encodage et un cœur CUDA pour obtenir une compression de moins de 1 bit par poids et minimiser la surcharge d’exécution du GPU pour l’inférence.

Effet de compression

Exactitude

Tout d’abord, les chercheurs ont quantifié tous les modèles SwitchTransformer avec une précision de 2 bits et ternaire, puis ont évalué leurs pertes de validation.

Pour 128 experts, la taille d’échantillon d’étalonnage par défaut est de 10 Ko ; Pour 2048 experts, la taille d’échantillon d’étalonnage par défaut est de 160 Ko. Dans le même temps, les chercheurs ont également testé des tailles d’échantillon de 0,5x et 2x.

Les résultats montrent que le modèle à 2 chiffres peut être réalisé avec une perte minimale (1,7 % par rapport à C2048) et une légère augmentation de la perte sous précision ternaire (6,7 % par rapport à C2048) en utilisant une quantification dépendante des données.

Cela prouve non seulement l’efficacité de la méthode de quantification avancée proposée, mais montre également que la compression de largeur de bit extrêmement faible est effectivement adaptée au MoE à grande échelle.

En outre, les chercheurs ont évalué les données d’arXiv de RedPajama, de GitHub, de StackExchange et de Wikipédia.

Bien que seulement <0,01 % des données d’étalonnage proviennent de ces sites, le modèle compressé conserve presque les mêmes performances que la distribution de base.

Dans le cas des données d’étalonnage, l’augmentation de la taille de l’échantillon améliore généralement légèrement les performances et est plus perceptible dans la quantification ternaire. Mais il y a aussi un peu de bruit dans le processus, surtout à 2 bits.

### Compression

Dans le test, les chercheurs ont pris en compte à la fois la compression du module MoE seul, ainsi que la compression relative à l’ensemble du modèle et à toutes ses métadonnées.

Pour MoE seul, une compression >16x est obtenue à toutes les échelles, ce qui équivaut à 1 bit d’espace de stockage < pour chaque paramètre.

Sur le c2048, le taux de compression global est de 19,81 fois, ce qui équivaut à 0,807 bits par paramètre, même en incluant toutes les couches denses non compressées, réduisant la taille du point de contrôle de 3142 Go à 158,6 Go.

De plus, on peut observer que le taux de compression augmente avec la taille du modèle pour deux raisons :

(a) la parcimonie naturelle augmente, et les chercheurs ont optimisé le dictionnaire de codage pour C2048 ;

b) Plus la couche est grande, plus la répartition du poids est proche de l’indépendance.

### Temps d’exécution

Enfin, les chercheurs ont évalué le temps qu’il faudrait pour générer un modèle compressé sur un seul GPU A6000 pour différentes quantités de données d’étalonnage.

Les résultats montrent que les modèles plus petits peuvent être compressés en moins d’une heure, et même c2048 peut être complété en moins d’une journée, ce qui confirme la grande efficacité de QMoE.

De large128 à c2048, l’augmentation du temps d’exécution est essentiellement proportionnelle à la différence de taille, bien que cette dernière utilise 16 fois plus d’échantillons. En effet, la taille de l’échantillon par expert reste la même, tandis que la taille de l’expert n’augmente que légèrement.

### Résultat en cours

Tout d’abord, une comparaison directe (isolée) du noyau de produit matriciel-vecteur compressé avec le noyau cuBLAS bfloat16 (non compressé) de la norme PyTorch.

La figure 5 (à gauche) montre le temps qu’il faut à MoE pour découvrir des formes de matrice sur deux GPU différents par rapport aux cœurs bfloat16.

Bien que les chercheurs aient utilisé des performances de stockage médiocres, il a fallu moins de temps pour exécuter le noyau de compression que la ligne de base bfloat16 presque idéale. Jusqu’à 35 % plus rapide dans une forme de matrice donnée.

La latence de ces opérations est également très faible, la plus petite matrice prenant < 0,02 ms et la plus grande < 0,05 ms.

Par la suite, les chercheurs ont effectué un benchmark de bout en bout du noyau dans HuggingFace en utilisant les poids réels du modèle MoE compressé.

Comme le montre la figure 5 (à droite), l’exécution de bout en bout du modèle compressé n’est que <5 % plus lente que celle du modèle standard (non compressé).

Bien que la synchronisation de chaque couche soit plus rapide, il y a toujours une légère diminution de la vitesse car l’encodeur achemine parfois plusieurs jetons vers le même expert.

L’implémentation actuelle consiste à effectuer un produit vectoriel matriciel distinct pour chaque jeton, tandis que la ligne de base effectue une multiplication matricielle conjointe plus efficace.

Dans certaines applications, il s’agit d’un gros goulot d’étranglement. Cela peut être fait en introduisant une boucle dans le noyau ou, dans le cas d’un grand nombre de jetons, en effectuant une décompression complète avant d’effectuer la multiplication matricielle standard.

Discussion et limitations

En résumé, QMoE est un framework open source de compression et d’inférence de bout en bout pour résoudre le problème de la surcharge de mémoire excessive dans le processus d’inférence de MoE.

Pour la première fois, des chercheurs ont démontré qu’un modèle à mille milliards de paramètres comme le SwitchTransformer c2048 peut être compressé avec précision à moins de 1 bit par paramètre, avec un taux de compression de près de 20 fois. Et, pour la première fois, l’exécution efficace de bout en bout de ces modèles est réalisée sur un seul serveur GPU grand public.

Cependant, comme seul un petit nombre de MoE à grande échelle et précis sont accessibles au public, l’ensemble des modèles étudiés est limité.

De plus, en raison de leur taille, la plupart des MoE sont formés et déployés dans différents cadres personnalisés, ce qui nécessite une intégration manuelle complexe pour des recherches plus approfondies.

Pourtant, les chercheurs ont couvert certains des MoE les plus grands et les plus précis, notamment le SwitchTransformer.

Ressources:

Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)