Vous voulez gagner de l’argent avec de grands modèles ? Ce nouveau visage puissant a décidé de faire baisser le coût du raisonnement en premier.
Source originale : Heart of the Machine
Source de l’image : Généré par Unbounded AI
Combien d’argent l’entreprise de modèles réduits à grande échelle brûle-t-elle ? Il y a quelque temps, un article du Wall Street Journal a donné une réponse de référence.
Selon le rapport, l’activité GitHub Copilot de Microsoft (soutenue par le modèle GPT d’OpenAI) facture 10 dollars par mois, mais elle coûte toujours en moyenne 20 dollars par utilisateur. Les fournisseurs de services d’IA sont confrontés à d’importants défis économiques – ces services sont non seulement coûteux à construire, mais aussi très coûteux à exploiter.
Quelqu’un l’a comparé à « utiliser l’IA pour résumer un e-mail, c’est comme demander à une Lamborghini de livrer une pizza ».
OpenAI a calculé un compte rendu plus détaillé de cela : lorsque la longueur du contexte est de 8 Ko, le coût de chaque jeton d’entrée de 1 K est de 3 cents et le coût de sortie est de 6 cents. Actuellement, OpenAI compte 180 millions d’utilisateurs et reçoit plus de 10 millions de requêtes par jour. De cette façon, pour faire fonctionner un modèle comme ChatGPT, OpenAI doit investir environ 7 millions de dollars par jour dans le matériel informatique nécessaire, ce qui peut être considéré comme effroyablement coûteux.
Il est impératif de réduire le coût de l’inférence pour les LLM, et l’augmentation de la vitesse d’inférence est un chemin critique qui a fait ses preuves. **
En fait, la communauté des chercheurs a proposé un certain nombre de technologies pour accélérer les tâches d’inférence LLM, notamment DeepSpeed, FlexGen, vLLM, OpenPPL, FlashDecoding et TensorRT-LLM. Naturellement, ces technologies ont aussi leurs propres avantages et inconvénients. Parmi eux, FlashDecoding est une méthode de pointe proposée par les auteurs de FlashAttention et Tri Dao et al. de l’équipe de l’Université de Stanford le mois dernier, qui améliore considérablement la vitesse d’inférence des LLM en chargeant des données en parallèle, et est considérée comme ayant un grand potentiel. Mais en même temps, cela introduit une surcharge de calcul inutile, il y a donc encore beaucoup de place pour l’optimisation.
Pour résoudre davantage le problème, une équipe conjointe d’Infinigence-AI, de l’Université Tsinghua et de l’Université Jiao Tong de Shanghai a récemment proposé une nouvelle méthode, FlashDecoding++, qui non seulement apporte plus d’accélération que la méthode précédente (peut accélérer l’inférence GPU de 2 à 4 fois), mais plus important encore, prend en charge les GPU NVIDIA et AMD ! Son idée de base est d’obtenir un véritable parallélisme dans le calcul de l’attention grâce à une approche asynchrone, et d’accélérer le calcul à l’étape de décodage pour l’optimisation des produits matriciels « chunky ». **
Adresse:
Accélère l’inférence GPU de 2 à 4 fois,
Comment FlashDecoding++ s’y prend-il ? **
La tâche d’inférence LLM consiste généralement à saisir un morceau de texte (jeton) et à continuer à générer du texte ou d’autres formes de contenu via le calcul du modèle LLM.
Le calcul d’inférence de LLM peut être divisé en deux étapes : le pré-remplissage et le décodage, où l’étape de pré-remplissage génère le premier jeton en comprenant le texte d’entrée ; Dans la phase de décodage, les jetons suivants sont sortis de manière séquentielle. Dans les deux étapes, le calcul de l’inférence LLM peut être divisé en deux parties principales : le calcul de l’attention et le calcul de la multiplication matricielle.
Pour le calcul de l’attention, les travaux existants, tels que FlashDecoding, implémentent le chargement parallèle des données avec l’opérateur softmax dans le calcul de l’attention de partitionnement. Cette méthode introduit une surcharge de calcul de 20 % dans les calculs d’attention en raison de la nécessité de synchroniser les valeurs maximales dans différentes parties de softmax. Pour les calculs de multiplication matricielle, à l’étape de décodage, les matrices de multiplication à gauche apparaissent principalement sous forme de matrices « volumineuses », c’est-à-dire que le nombre de lignes n’est généralement pas grand (par exemple, < = 8), et le moteur d’inférence LLM existant étend le nombre de lignes à 64 en complétant 0 pour l’accélérer par une architecture telle que les cœurs tensoriels, ce qui entraîne un grand nombre de calculs non valides (multipliés par 0).
Afin de résoudre les problèmes ci-dessus, l’idée de base de « FlashDecoding++ » est de réaliser le véritable parallélisme du calcul de l’attention par des méthodes asynchrones, et d’accélérer le calcul dans l’étape de décodage pour l’optimisation de la multiplication matricielle « Humpty Dumpty ». **
Calculs Softmax partiels parallèles asynchrones
*Figure 1 Calcul Softmax de section parallèle asynchrone
Dans le cadre des travaux précédents, nous avons entré la valeur maximale pour chaque partie du calcul softmax comme facteur d’échelle afin d’éviter le débordement de l’exposant e dans le calcul softmax, ce qui a entraîné la surcharge de synchronisation des différentes parties du calcul softmax (Figure 1(a)(b)).
Figure 2 Distribution statistique des valeurs d’entrée Softmax
« FlashDecoding++ » souligne que pour la plupart des LLM, la distribution d’entrée softmax est plus concentrée. Comme le montre la figure 2, plus de 99,99 % de l’entrée softmax pour Llama2-7B est concentrée dans la plage [-16,8, 6,5]. Par conséquent, « FlashDecoding++ » propose d’utiliser une valeur maximale fixe pour certains calculs softmax (Fig. 1 ©), évitant ainsi les synchronisations fréquentes entre les différents calculs softmax. Lorsque l’entrée avec une faible probabilité est en dehors de la plage donnée, le calcul softmax de cette partie de « FlashDecoding++ » dégénère en méthode de calcul d’origine.
Optimisation du produit Humpty Dumpty Matrix
Fig.3 Fragment de multiplication de la matrice Humpty Dumpty et mécanisme de double mise en cache
Étant donné que l’entrée de l’étape de décodage est constituée d’un ou de plusieurs vecteurs de jetons, le produit matriciel de cette étape se comporte sous une forme « épaisse ». Prenons l’exemple de la matrice A×B=C, où la forme des matrices A et B est M×K et K×N, et la matrice « Humpty Dumpty » multiplie M lorsque M est plus petit. « FlashDecoding++ » souligne que la matrice « Humpty Dumpty » est limitée par le cache général, et propose des méthodes d’optimisation telles que le mécanisme de double cache pour l’accélérer (Fig. 3).
Figure 4 Mise en œuvre de la multiplication de matrice adaptative
De plus, « FlashDecoding++ » souligne en outre que dans l’étape d’inférence LLM, les valeurs de N et K sont fixées pour un modèle spécifique. Par conséquent, « FlashDecoding++ » sélectionne de manière adaptative la mise en œuvre optimale du produit matriciel en fonction de l’amplitude de M.
Accélère l’inférence du GPU de 2 à 4 fois
Fig. 5 « FlashDecoding++ » Inférence LLM de la plate-forme NVIDIA par rapport à AMD (modèle Llama2-7B, taille de lot = 1)
Actuellement, FlashDecoding++ peut accélérer l’inférence LLM sur le backend de plusieurs GPU, tels que NVIDIA et AMD (Figure 5). En accélérant la génération du premier jeton dans la phase de pré-remplissage et la vitesse de génération de chaque jeton dans la phase de décodage, « FlashDecoding++ » peut accélérer la génération de textes longs et courts. **FlashDecoding++ accélère l’inférence de 37 % en moyenne sur NVIDIA A100 par rapport à FlashDecoding, et jusqu’à 2 à 4 fois plus rapidement que Hugging Face sur les backends multi-GPU de NVIDIA et AMD. **
Recrue de l’entrepreneuriat de grand modèle d’IA : Wuwen Core Dome
Les trois co-auteurs de l’étude sont le Dr Dai Guohao, scientifique en chef du Wuwen Core Dome et professeur agrégé de l’Université Jiao Tong de Shanghai, Hong Ke, stagiaire de recherche du Wuwen Core Dome et étudiant à la maîtrise de l’Université Tsinghua, et Xu Jiaming, stagiaire de recherche du Wuwen Core Dome et doctorant de l’Université Jiao Tong de Shanghai. Les auteurs correspondants sont le professeur Dai Guohao de l’Université Jiao Tong de Shanghai et le professeur Wang Yu, doyen du département d’ingénierie électronique de l’Université Tsinghua.
Fondée en mai 2023, l’objectif est de créer la meilleure solution pour l’intégration de logiciels et de matériel pour les grands modèles, et FlashDecoding++ a été intégré dans le moteur de calcul des grands modèles « Infini-ACC ». Avec le soutien de « Infini-ACC », Wuwen Core Dome développe une série de solutions d’intégration logicielle et matérielle à grande échelle, y compris le modèle à grande échelle « Infini-Megrez », la machine tout-en-un logicielle et matérielle, etc.
Il est entendu que « Infini-Megrez » s’est très bien comporté dans la gestion des textes longs, augmentant la longueur du texte pouvant être traité à un jeton record de 256k **, et le traitement réel d’environ 400 000 mots de l’ensemble du « Three-Body Problem 3 : Death Eternal » n’est pas un problème. Il s’agit de la plus longue longueur de texte pouvant être traitée par un grand modèle aujourd’hui.
De plus, le grand modèle « Infini-Megrez » a atteint des performances d’algorithme de premier niveau sur des ensembles de données tels que C (MEDIUM), MMLU (ENGLISH), CMMLU (medium) et AGI, et évolue continuellement sur la base du moteur de calcul « Infini-ACC ».