Maison  >  Article  >  Périphériques technologiques  >  Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

WBOY
WBOYoriginal
2024-05-29 09:29:50666parcourir
Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16
La rubrique AIxiv est une rubrique où des contenus académiques et techniques sont publiés sur ce site. Au cours des dernières années, la rubrique AIxiv de ce site a reçu plus de 2 000 rapports, couvrant les meilleurs laboratoires des principales universités et entreprises du monde entier, favorisant efficacement les échanges et la diffusion académiques. Si vous souhaitez partager un excellent travail, n'hésitez pas à contribuer ou à nous contacter pour un rapport. E-mail de soumission : liyazhou@jiqizhixin.com ; zhaoyunfeng@jiqizhixin.com

À mesure que les grands modèles de langage d'apprentissage en profondeur deviennent de plus en plus populaires, les grands modèles de langage deviennent de plus en plus grands, ce qui fait également augmenter leurs coûts d'inférence. La quantification des modèles est devenue un sujet de recherche populaire.

Récemment, ByteDance a lancé une nouvelle idée de quantification, abandonnant le paradigme de quantification traditionnel et modélisant les tâches de quantification du point de vue de l'optimisation mathématique. L'article est publié sur arXiv et le code est open source. Tous les résultats de l'article peuvent être reproduits en un seul clic. Cette idée de quantification est basée sur l'optimisation mathématique, modélisant la tâche de quantification du point de vue de l'optimisation mathématique et trouvant la solution optimale en maximisant la fonction objectif ou en minimisant la fonction de perte. Cette idée a obtenu de bons résultats dans les expériences et a obtenu des résultats satisfaisants.

Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

  • Lien papier : https://arxiv.org/abs/2404.12759

  • Lien du projet : https://github.com/bytedance/decoupleQ

  • Opérateur W2 : https:// /github.com/NVIDIA/TensorRT-LLM/pull/1568

1 Contexte

Le développement rapide de la technologie à grande échelle a rendu le coût de l'inférence de plus en plus élevé. La quantification de modèles, en tant que solution technique pour réduire les coûts d'inférence, fait l'objet de plus en plus d'attention et de recherches. Cependant, dans le cadre du paradigme de quantification traditionnel, la précision du modèle chute rapidement à des bits très faibles. Sur cette base, les auteurs ont proposé une nouvelle idée de quantification, découplant les paramètres du modèle en une partie entière et une partie en virgule flottante, et modélisant la tâche de quantification du point de vue de l'optimisation mathématique, afin que le modèle puisse toujours conserver une plus grande précision. L'avantage de ceci est évident. Nous n'avons plus besoin de nous concentrer sur des questions spécifiques à la quantification, telles que la manière de traiter les canaux sensibles, la manière de gérer les valeurs aberrantes, etc. Au lieu de cela, il nous suffit de modéliser mathématiquement le problème de quantification, de trouver un fonction objectif d'optimisation appropriée, puis de résoudre cette fonction.

2. Quantification traditionnelle

Traditionnellement, notre idée de quantification pour un modèle est la suivante :

Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

où, Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16 sont les poids à virgule flottante du modèle avant quantification s et z sont des coefficients de transformation linéaire, représentant l'échelle et ; point zéro ; α et β sont les limites supérieure et inférieure de la plage de représentation entière. Par exemple, pour la quantification int4, α = -8, β = 7 peut être pris comme la fonction d'arrondi, qui est généralement arrondie au plus proche ; entier. Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

Concernant les valeurs de s et z, d'une manière générale, pour une quantification asymétrique, on peut prendre :

Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

De cette façon, un poids à virgule flottante distribué dans

sera mappé linéairement sur la plage d'intervalle de Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16. Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

Dans la quantification inverse, la formule suivante est généralement utilisée :

Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

Dans ce schéma de quantification traditionnel, nous devons prêter attention à de nombreux problèmes détaillés propres à la quantification. Par exemple, pour les canaux sensibles, nous avons des méthodes de traitement des canaux sensibles. ; Pour les valeurs aberrantes, nous avons une méthode de traitement des valeurs aberrantes. Ce paradigme de traitement consistant à traiter les maux de tête et à traiter les maux de tête est difficile à gérer dans des scénarios commerciaux complexes et en constante évolution. Les chercheurs de Bytedance tentent de faire abstraction de ces problèmes et d’examiner les problèmes de quantification d’un point de vue macro. Il suffit d'établir une fonction objectif d'optimisation abstraite puis de résoudre cette fonction objectif.

3.decoupleQ

En observant le rôle des équations (1) ~ (3) dans la quantification, si nous changeons notre façon de penser, nous constaterons que nous n'avons en fait pas besoin de connaître les équations (1) et (2). Après avoir quantifié un grand modèle et l'avoir livré aux étudiants en moteurs en aval, il nous suffit de connaître Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16 et (s, z) dans l'équation (3). En d’autres termes, (s,z) dans l’équation (3) peut être considéré comme le coefficient d’une transformation affine ordinaire, et il n’est pas nécessaire de conserver sa signification dans l’équation (2). Le coefficient de transformation affine peut être obtenu grâce à des méthodes d'optimisation mathématique.

En approfondissant davantage (3), nous pouvons découpler les paramètres d'un grand modèle en la partie entière Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16 et la partie à virgule flottante (s,z). Après un tel découplage, le processus de quantification du modèle peut être considéré comme un processus de résolution de la partie entière Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16 et de la partie virgule flottante (s,z) du modèle. Nous pouvons alternativement optimiser la solution. Pour cela, la fonction objectif d’optimisation et ses contraintes doivent être déterminées.

Pour une couche linéaire, on peut construire la fonction objectif d'optimisation suivante :

Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

où, Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16 est l'entrée de la couche, Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16 est une matrice symétrique (si les colonnes de X ne sont pas toutes nulles, alors H est une matrice symétrique définie positive ).

D'une manière générale, afin d'améliorer la précision de la quantification, nous pouvons utiliser une quantification par canal sur les poids du modèle. Dans la quantification par canal, lors de l'optimisation de l'équation (4), chaque colonne de Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16 est optimisée indépendamment. Il suffit donc de se concentrer sur une seule des colonnes.

A ce stade, l'objectif d'optimisation peut s'écrire comme suit : (Par souci de simplicité de notation, les symboles sont redéfinis dans l'article) :

Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

où est la fonction objectif d'optimisation

Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

où , w est une certaine colonne de Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16, et b est dans Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16 colonne correspondante. Les définitions des autres symboles sont les mêmes que précédemment.

En fait, la fonction objectif d'optimisation (6) est tout à fait cohérente avec (4), Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16est le processus de quantification inverse.

La conversion d'un problème quantitatif en un problème d'optimisation mathématique de la forme (5) est la clé pour distinguer decoupleQ des articles quantitatifs traditionnels. Cette transformation nous permet de nous concentrer uniquement sur la résolution de l'équation (5) et de ne plus avoir à nous soucier des détails de la quantification elle-même, comme les valeurs aberrantes, etc.

La solution de l'équation (5) n'est pas facile car il y a des contraintes sur Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16, notamment la contrainte non convexe Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16. Dans l'article, l'auteur donne une idée de solution alternative, c'est-à-dire qu'après avoir obtenu une bonne initialisation sur (s,z) et w, résoudre itérativement (s,z) et w alternativement. Lors de la résolution de (s,z), notez que l'équation (5) est une forme quadratique sans contrainte par rapport à (s,z). Vous pouvez directement dériver la fonction objectif et rendre la dérivée nulle pour obtenir la solution analytique. Lors de la résolution de w, l'auteur adopte deux niveaux d'approximation. L'approximation du premier niveau a une convergence plus élevée, mais la solution est lente ; l'approximation du deuxième niveau échantillonne l'idée de GPTQ [1], qui a une convergence légèrement plus faible, mais la solution. est plus rapide.

Afin d'améliorer encore la précision du modèle quantifié, l'auteur a souligné qu'en plus de faire une minimisation mse au niveau de la couche, la minimisation mse peut également être effectuée au niveau du bloc, c'est-à-dire :

Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

Dans cette étape, l'auteur au niveau du bloc de transformateur, après avoir quantifié chaque couche linéaire, fixe leur partie entière Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16 et affine la partie à virgule flottante (s, z) et les paramètres associés de la norme de couche. Les résultats expérimentaux montrent que cette étape de réglage fin peut encore améliorer la précision du modèle.

4. Implémentation de l'opérateur W2

Pour déduire le modèle quantifié, la prise en charge de l'opérateur quantifié est nécessaire. Il n'existe pas d'opérateur w2a16 prêt à l'emploi disponible dans l'industrie. Les auteurs sont basés sur l'opérateur w4 dans Tensorrt-. LLM Développement du noyau Gemm cuda de w2 pour obtenir une inférence efficace du modèle w2a16.

Le modèle de quantification lui-même est chargé et stocké dans la mémoire vidéo sous forme de poids de 2 bits, il occupera donc une quantité relativement petite de mémoire vidéo. Notre noyau cuda charge le poids de 2 bits dans le registre au moment de l'exécution, puis utilise les instructions matérielles pour le convertir efficacement au format bf16 et effectuer des opérations gemm avec activation. Étant donné que notre scénario est limité par la latence, la taille du lot lors de l'étape de génération est relativement petite. À l'heure actuelle, la multiplication matricielle est limitée par le poids de l'accès à la mémoire. Cette implémentation réduira considérablement la quantité d'accès à la mémoire et améliorera les performances du modèle. Au cours du processus de mise en œuvre, la recherche d'algorithme et SpiltK Parallel Reduction sont combinées pour améliorer encore les performances du modèle. Selon les mesures réelles, lorsque la taille du lot = 1, les performances de w2a16 Gemm sur la carte L peuvent être améliorées de 1,4x à 1,7x. par rapport à w4a16.

Lien opérateur : https://github.com/NVIDIA/TensorRT-LLM/pull/1568

Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

                                                                                                                    5. L'auteur dans l'article Les résultats expérimentaux ASR internes de ByteDance sont donnés. , et les résultats de comparaison avec des expériences open source sont donnés :

Les résultats expérimentaux internes sont :

Dans ce tableau, l'auteur utilise le taux d'erreur de mot (WER) pour mesurer l'exactitude de l'ASR. Les auteurs ont tenté de quantifier le modèle W2A16g64 en utilisant différentes méthodes. Le wer du modèle à virgule flottante avant quantification est de 6,68 %. Après quantification à l'aide de GPTQ [1], il est de 6,83 %. Le wer de decoupleQ avec minimisation de bloc après quantification est de 6,70 %. modèle à virgule flottante avant quantification proche. Il indique également le temps nécessaire à la quantification. Le prix d’une précision de quantification élevée est que la quantification prend beaucoup de temps. Dans les affaires réelles, après avoir utilisé decoupleQ pour quantifier le modèle, la partie entière est fixe et l'ensemble de données étiqueté est utilisé pour affiner l'échelle et le zéro, et la précision du modèle est encore améliorée.

Les résultats de l'expérience de comparaison open source sont :

Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

Ce tableau est une comparaison des résultats quantitatifs de decoupleQ et d'autres méthodes sur Llama-1/2. La perplexité (PPL) est utilisée comme indice d'évaluation. On peut voir que sous la même configuration de quantification, le PPL de deoucpleQ sera la plupart du temps inférieur à celui des autres méthodes.

6. Avantages commerciaux

La technologie de quantification decoupleQ est désormais largement utilisée dans le département vocal de ByteDance. Il a été lancé dans des modèles de génération vocale (Text-to-Speech), des modèles de reconnaissance vocale (reconnaissance vocale automatique), etc., et a été implémenté dans des produits tels que Doubao, Feishu et Douyin. Un grand nombre d'entreprises en ligne montrent que, sur la base de la quantification decoupleQ, la précision de l'inférence de W4A16 est tout à fait comparable à celle de l'inférence fp16/bf16 ; la précision est au même niveau que fp16/bf16) ). Bien que le document n'introduise que la quantification du poids uniquement, dans la pratique, une fois le poids bien quantifié, la quantification d'activation peut être beaucoup plus simple.

Par rapport aux fp16, w8fp16 et w4fp16, il a obtenu de bons effets d'accélération en termes d'accélération matérielle. En petits lots, les performances de multiplication matricielle w2 sont 5 à 6 fois supérieures à celles de fp16 et 1,5 à 1,7 fois supérieures à celles de w4. . En termes de modèles commerciaux internes, w2fp16 a une amélioration des performances de 3 à 5 fois par rapport au fp16 et une amélioration des performances de 1,25 à 1,4 fois par rapport à w4fp16. Il réduira également considérablement la mémoire occupée par le poids du modèle, offrant une meilleure mémoire. utilisation pour l'exécution. Beaucoup d'espace.

Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16

7. Résumé et discussion

Dans la section résumé et discussion, l'auteur a également souligné deux risques que decoupleQ présente actuellement :

1 decoupleQ vise à utiliser des méthodes d'optimisation mathématique pour quantifier L2. la perte avant et après est minimisée. Cependant, minimiser la perte L2 au niveau de la couche ou du bloc ne représente pas nécessairement la précision optimale du modèle final

2. Dans le processus d'optimisation des équations (5) et (7), lors de la résolution de Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16 et (s,z ; ), seule une petite partie des données d'étalonnage est résolue, ce qui permet à decoupleQ de surajuster facilement les données d'étalonnage.

Néanmoins, l'auteur a également souligné que l'idée de découpler les paramètres du modèle en partie entière et en partie virgule flottante est très significative. Si un ensemble de données étiquetées existe, nous pouvons corriger la partie entière après quantification et utiliser l'ensemble de données étiquetées pour entraîner spécifiquement (s, z) afin d'améliorer encore la précision du modèle. Cela garantit non seulement les performances de généralisation du modèle (grâce à la partie entière fixe Nouvelles idées pour la quantification des grands modèles open source en octets, la précision du modèle de quantification à 2 bits est comparable à celle du fp16), mais peut également exercer sa capacité sur des sous-tâches spécifiques (grâce à la partie virgule flottante de réglage fin). Dans le métier actuel de ByteDance, une fois la version précédente du modèle quantifiée et mise en ligne, lorsque la version suivante est mise à jour, seule la partie flottante du modèle peut être entraînée.

Références :

【1】Elias Frantar, Saleh Ashkboos, Torsten Hoefler et Dan Alistarh : Quantification précise pour les transformateurs pré-entraînés génératifs, 2022. .

【2】Wenqi Shao, Mengzhao Chen, Zhaoyang Zhang, Peng Xu, Lirui Zhao, Zhiqian Li, Kaipeng Zhang, Peng Gao, Yu Qiao et Ping Luo : quantification omnidirectionnelle pour les grands modèles de langage. arXiv : 2308.13137, 2023

【3】Ji Lin, Jiaming Tang, Haotian Tang, Shang Yang, Xingyu Dang et Song Han Awq : quantification du poids prenant en compte l'activation pour la compression et l'accélération arXiv. 2306.00978, 2023.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn