nouvelles

La formation GPU Llama 3.1 plante comme un fou. Existe-t-il un fabricant majeur utilisant un serveur CPU pour exécuter un grand modèle avec des centaines de milliards de paramètres ?

2024-08-01

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Nouveau rapport de sagesse

Editeur : Service éditorial

[Introduction à la nouvelle sagesse]Il est temps d’utiliser un serveur universel CPU pour exécuter de grands modèles avec des centaines de milliards de paramètres !

Musk a construit le plus grand supercalculateur au monde composé de 100 000 H100 connectés en 19 jours et s'est entièrement consacré à la formation de Grok 3.

Dans le même temps, des médias étrangers ont annoncé que le prochain cluster de calcul intensif construit conjointement par OpenAI et Microsoft serait composé de 100 000 Go200.

Dans cette compétition d'IA, les grandes entreprises technologiques s'efforcent d'augmenter leurs investissements dans les GPU, ce qui semble impliquer que le fait de disposer de GPU de plus en plus puissants les rendra invincibles.

Cependant, cette quête fanatique de GPU haut de gamme n’est pas une solution parfaite dans toutes les situations.


Le père de Pytorch a déclaré que le rapport technique contenait de nombreux détails intéressants sur l'infrastructure, notamment comment paralléliser, comment rendre le système plus fiable, etc.

En prenant la stabilité comme exemple, au cours des 54 jours de formation Llama 3.1, le cluster H100 de 16 000 blocs de Meta a rencontré un total de 419 interruptions inattendues, ce qui équivaut à une moyenne d'une toutes les 3 heures.

Parmi ceux-ci, 148 fois (30,1 %) étaient causés par diverses pannes de GPU.

En revanche, il n’y a eu que 2 interruptions causées par des pannes de processeur.


En revanche, si vous souhaitez exécuter Llama 3.1 405B, vous devez le coupler avec deux postes de travail 8×H100 DGX, soit 1280 Go de mémoire vidéo.

Un guerrier a essayé un jour de le faire fonctionner avec un 4090, mais après avoir attendu 30 minutes, le modèle a lentement craché "Le".


Une réponse complète a pris 20 heures complètes

Les amis qui connaissent la formation et l'inférence de modèles savent que ces choses ne sont pas du tout surprenantes.

La construction du cluster (configuration GPU, conception du réseau, optimisation des pistes, etc.), la gestion du cluster (surveillance en temps réel, dépannage, etc.)... sont autant de « pierres d'achoppement ».

Qu’est-ce qu’une entreprise qui manque d’expérience et de capitaux pertinents ?


Récemment, les ingénieurs R&D d'Inspur Information n'ont utilisé que 4 processeurs pour exécuter « Source 2.0 » avec des centaines de milliards de paramètres sur un serveur à usage général !

Face à la tâche de codage consistant à écrire un programme en Java, "Source 2.0" donne des résultats très rapidement.


Posez-lui une autre question de raisonnement : une échelle est accrochée sur le côté du bateau, à 2 mètres au-dessus de la mer. Si l'eau de mer monte d'un demi-mètre par heure, combien d'heures faudra-t-il pour que l'eau de mer submerge l'échelle ?

De même, l’IA fournit des étapes détaillées de résolution de problèmes et des réponses dans un délai presque nul.



Il est sans précédent d'utiliser un serveur à usage général pour exécuter de grands modèles avec des centaines de milliards de paramètres. L'accumulation dans ce domaine est complètement vide et il n'y a aucune expérience sur laquelle s'appuyer.

Comment Inspur Information procède-t-il ?

Utilisez 4 processeurs pour exploiter de grands modèles avec des centaines de milliards de paramètres

Pour parvenir à l'inférence d'un grand modèle avec des centaines de milliards de paramètres sur un seul serveur, il y a deux étapes principales, qui imposent toutes deux des exigences strictes en matière de puissance de calcul.

Il y a d’abord l’étape de pré-remplissage, également appelée étape de propagation vers l’avant.

Cette étape implique le traitement des données d'entrée et la première lecture des paramètres du modèle.

Par exemple, lorsque vous entrez l'invite « Écrivez-moi un article sur l'IA », l'étape de pré-remplissage entrera simultanément tous les jetons et paramètres de modèle de la question dans le calcul.

Parfois, cette contribution peut consister en quelques mots, ou en milliers de mots, ou encore en un livre.

La complexité de calcul de la première étape dépend principalement de la longueur de notre entrée.

Lors du calcul du premier jeton, puisque le modèle est chargé pour la première fois, tous les paramètres de poids, ainsi que le KV Cache et d'autres données seront stockés dans la mémoire.

Cela représente 2 à 3 fois l'espace mémoire occupé par les paramètres du modèle eux-mêmes.

Pour des centaines de milliards de modèles de paramètres, un grand nombre de paramètres et d’entrées de données doivent être traités par de puissantes unités de calcul. Pour cela, il doit prendre en charge le jeu d’instructions de vectorisation et le jeu d’instructions de calcul matriciel pour mettre en œuvre un grand nombre d’opérations de multiplication matricielle et de tenseur.

Deuxièmement, il y a l’étape de décodage, c’est-à-dire l’étape où le modèle commence à produire des résultats une fois toutes les questions saisies.

A ce stade, la seule exigence pour les grands modèles est de produire le plus rapidement possible. Dans le même temps, le défi n’est plus un défi de puissance de calcul, mais un défi de « transfert de données ».

Il contient deux parties de « transfert de données » :

  • La grande quantité de cache KV générée lors de l'étape de pré-remplissage doit être déplacée de la mémoire vidéo/mémoire vers l'unité de calcul (la charge de travail est très lourde)

  • Transfert des paramètres du modèle eux-mêmes

Ces transferts jouent un rôle déterminant dans la vitesse de calcul et d’inférence des grands modèles. Le transfert de données est très rapide et la vitesse d'énonciation du LLM sera également rapide.

La sortie LLM génère principalement des jetons un par un via KV Catch et stocke le vecteur clé-valeur du nouveau morceau de mot après chaque étape de génération.

Par conséquent, pour l'inférence en temps réel de centaines de milliards de grands modèles, le serveur doit disposer d'une puissance de calcul élevée et d'une efficacité de transfert de données élevée des unités de stockage vers les unités de calcul.

Au total, les deux étapes du raisonnement sur grands modèles ont des caractéristiques informatiques complètement différentes, qui nécessitent une optimisation collaborative en termes de logiciel et de matériel.

Le GPU ne fait pas tout

Traditionnellement, le GPU est devenu le premier choix pour la formation et l’inférence de l’IA en raison de ses capacités supérieures de traitement parallèle.

coût

Cependant, les serveurs GPU haut de gamme sont souvent rares sur le marché et extrêmement difficiles à obtenir.

Seuls les géants technologiques bien financés, tels que Microsoft et Google, peuvent se permettre ce coût.

D’un autre côté, c’est non seulement inabordable, mais aussi inabordable.

La location de services cloud basés sur GPU coûte cher en tâches d'inférence. Pour les chercheurs scientifiques et les fabricants d’applications, s’ils veulent obtenir une meilleure rentabilité, ils doivent trouver un autre moyen.

Mémoire vidéo

De plus, l’un des plus gros inconvénients du GPU est que la capacité de la mémoire vidéo est limitée.

L'architecture réseau actuelle du LLM dans l'industrie est progressivement passée du GPT au MoE. L’échelle des paramètres des grands modèles menant à l’AGI ne fera qu’augmenter de façon exponentielle.

Cela signifie que la taille des modèles grand public fermés/open source ne fera que devenir de plus en plus grande, et que les modèles comportant des centaines de milliards de paramètres, voire des milliards de paramètres, deviendront courants.

Pour des dizaines de milliards de modèles de paramètres, 20 à 30 Go de mémoire vidéo suffisent. Cependant, si vous souhaitez exécuter 100 milliards de paramètres, vous aurez besoin d'environ 200 à 300 Go d'espace mémoire vidéo.

Les puces IA grand public actuelles ne disposent généralement que de quelques dizaines de Go de mémoire vidéo, ce qui ne peut évidemment pas accueillir un modèle aussi volumineux. (La puce AI la plus puissante n'a actuellement pas atteint 200 Go)


Serveur à usage général sous-estimé

Si le GPU ne fonctionne pas, commencez par le CPU.

Bien que la formation de modèles à grande échelle ne soit actuellement pas possible, les serveurs à usage général présentent étonnamment des avantages considérables dans les tâches d'inférence.

Au cours d'une pratique spécifique, les ingénieurs d'Inspur Information sont partis des ressources matérielles et des niveaux d'algorithmes pour surmonter chaque « pierre d'achoppement ».

Mémoire ultra-large + bande passante haut débit

En termes de puissance de calcul,Actuellement, les principaux processeurs de serveur disposent déjà de capacités d’accélération de l’IA.

Semblable au cœur Tensor du GPU, l'extension matricielle avancée AMX peut accélérer les calculs de faible précision, compiler un jeu d'instructions sur le cœur du processeur et utiliser un cœur dédié pour l'accélération.

En termes d'algorithmes,Le serveur universel d'Inspur Information peut prendre en charge simultanément les frameworks d'IA grand public tels que PyTorch et TensorFlow, ainsi que les outils de développement populaires tels que DeepSpeed, répondant ainsi aux besoins des utilisateurs en faveur d'un écosystème ouvert plus mature, facile à déployer et plus pratique.

En termes de communication,La conception de l’interconnexion de bus UPI (Ultra Path Interconnect) à liaison complète permet une transmission efficace des données entre les processeurs :

  1. Permet le transfert direct de données entre deux processeurs, réduisant ainsi les délais de communication

  2. Fournit des taux de transfert élevés, jusqu'à 16 GT/s (Giga transferts par seconde)


De plus, les ingénieurs R&D d'Inspur Information ont également optimisé les chemins de câblage et la continuité d'impédance entre les processeurs et entre les processeurs et la mémoire.

Sur la base des résultats de la simulation tridimensionnelle, ils ont ajusté la disposition des vias pour réduire la diaphonie du signal en dessous de -60 dB, soit 50 % de moins que la génération précédente.

De plus, grâce à la simulation active matricielle DOE, la solution optimale pour la combinaison de tous les coins du canal est trouvée, permettant d'utiliser pleinement les performances de la puissance de calcul.

En termes de mémoire,On peut dire que c'est le plus grand avantage des serveurs à usage général.

  • capacité

Pour un serveur à 4 sockets, il vous suffit de brancher 8 clés USB de 32 Go sur chaque processeur pour atteindre facilement 1 To. Une fois entièrement inséré, il peut même être étendu jusqu’à 16 To et prendre en charge des modèles comportant jusqu’à mille milliards de paramètres.

  • bande passante

Associé à la mémoire DDR5, une bande passante théorique de 4 800 MHz × 8 bits × 8 canaux × 4 ÷ 1 024 = 1 200 Go/s peut être atteinte.

Les résultats de mesure réels montrent que la bande passante de lecture est de 995 Go/s, la bande passante d'écriture est de 423 Go/s et la bande passante de lecture et d'écriture est de 437 Go/s.

Ces données sont comparables à certains GPU ou cartes accélératrices équipées de mémoire GDDR.


Mais le matériel seul ne suffit pas

S'appuyer uniquement sur l'innovation matérielle ne suffit pas. Il est difficile pour le processeur d'effectuer des calculs parallèles à grande échelle sur des algorithmes de grands modèles.

Comme mentionné au début, les grands modèles ont des exigences très élevées en matière de bande passante de communication, qu'il s'agisse de calcul de données, entre unités de calcul ou entre unités de calcul et mémoire.

Si elle est calculée selon la précision BF16, si vous souhaitez que le délai d'exécution d'un grand modèle de 100 milliards soit inférieur à 100 ms, la bande passante de communication entre la mémoire et l'unité de calcul doit être d'au moins 2 To/s.

De plus, les processeurs de serveur à usage général ne conviennent pas aux grands modèles d’IA basés sur des conceptions de cartes accélératrices qui conviennent au calcul parallèle à grande échelle.

La raison est évidente : bien que ce dernier dispose d’un cœur de calcul très polyvalent et performant, il ne dispose pas d’environnement de travail parallèle.

D'une manière générale, un serveur à usage général transférera d'abord le poids du modèle vers un processeur, puis le laissera se connecter à d'autres processeurs en série pour réaliser la transmission des données de poids.

Cependant, étant donné que les grands modèles doivent fréquemment transférer des poids d'algorithme entre la mémoire et le processeur pendant le fonctionnement, cela a pour conséquence que l'utilisation de la bande passante entre le processeur et la mémoire n'est pas élevée et que la surcharge de communication est extrêmement élevée.


Comment résoudre le problème?Innover avec des algorithmes

En réponse aux problèmes ci-dessus, Inspur Information a proposé deux innovations technologiques, « Tensor Parallel » (Tensor Parallel) et « NF4 Quantification », et a réalisé avec succès l'inférence en temps réel des centaines de milliards de grands modèles Yuan2.0-102B.

Selon les résultats de l'analyse des performances, la répartition du temps de calcul des différentes parties du modèle est clairement visible——

Le temps d'exécution de la couche linéaire représente 50 %, le temps d'exécution de la convolution représente 20 %, le temps de communication d'agrégation représente 20 % et les autres calculs représentent 10 %.

A noter que pendant tout le processus d'inférence, le temps de calcul représente 80% !

Cela contraste fortement avec l'utilisation de plusieurs cartes accélératrices PCIe AI : la surcharge de communication de ces dernières peut atteindre 50 %, ce qui entraîne un important gaspillage de puissance de calcul.


Tableau des résultats de l'analyse des performances d'inférence du modèle Yuan2.0-102B

parallélisme tensoriel

Le soi-disant parallélisme tensoriel divise d'abord l'opérateur de convolution en tenseurs, puis calcule les poids des matrices de la couche d'attention et de la couche de rétroaction dans le grand modèle et les entre dans la mémoire de plusieurs processeurs.

De cette façon, les quatre processeurs du serveur général peuvent obtenir des poids d'algorithme en même temps pour accélérer les calculs.

Cependant, le parallélisme tensoriel divise les paramètres du modèle en granularités plus fines, obligeant le processeur à effectuer une synchronisation des données après chaque calcul tensoriel.

Pour cette exigence, la technologie d'interconnexion de bus UPI full-link mentionnée ci-dessus peut répondre pleinement à cette exigence (la bande passante de communication peut atteindre 16 GT/s).

Au final, ce travail collaboratif parallèle a directement multiplié par 4 l’efficacité informatique !


Dosage de NF4

Quant au problème de la bande passante mémoire insuffisante, le modèle doit être « allégé » sans affecter la précision, c'est-à-dire quantifié.

L'avantage est que d'une part, les paramètres LLM peuvent être quantifiés en données à bits faibles et les poids deviendront plus petits. D’un autre côté, une fois le poids réduit, la quantité de données transmises pendant le calcul deviendra également plus petite.

Ici, Inspur Information adopte une méthode de quantification quantile rare – NF4 (NormalFloat à 4 chiffres).


La méthode de quantification NF4 peut compresser la taille de Yuan2.0-102B à 1/4 de la taille d'origine.

Plus précisément, l'idée principale de NF4 est de garantir que le nombre de valeurs du tenseur d'entrée dans l'intervalle de quantification est égal.

Cette fonctionnalité est très adaptée pour présenter des poids LLM avec une distribution approximativement normale.

Étant donné que l'écart type peut être ajusté pour s'adapter à la plage du type de données quantifiées, NF4 peut atteindre une précision plus élevée que la quantification traditionnelle d'entiers 4 bits ou de virgule flottante 4 bits.

De cette manière, le modèle quantifié peut non seulement répondre aux exigences de précision, mais également réduire considérablement la quantité de données d'accès à la mémoire pour le calcul parallèle à grande échelle, répondant ainsi aux exigences de décodage du raisonnement en temps réel.


Les intervalles de données pour les méthodes de quantification en nombres entiers ou en virgule flottante sont généralement distribués uniformément ou de manière exponentielle.

Afin de compresser davantage les paramètres de poids du modèle, l’équipe a également utilisé la technologie de quantification imbriquée (Double Quant).

Il s'agit d'une quantification secondaire basée sur la quantification NF4.

Étant donné que NF4 générera un grand nombre de paramètres d'échelle après quantification, si des nombres à virgule flottante de 32 bits (FP32) sont utilisés pour les stocker, une grande quantité de mémoire sera occupée.

Pour un LLM avec des centaines de milliards de paramètres, si tous les 64 paramètres sont calculés sous forme de bloc de quantification (taille du bloc = 64), seul le stockage des paramètres d'échelle nécessite 6 Go de mémoire supplémentaires : (100B ÷ 64) × 4 = 6 Go.

L'équipe a considérablement réduit l'espace de stockage requis en quantifiant ces paramètres d'échelle en nombres à virgule flottante de 8 bits (FP8).

Lorsque vous utilisez 256 comme taille de bloc de quantification (taille de bloc = 256), l'espace supplémentaire requis pour stocker tous les paramètres d'échelle n'est que de 1,57 Go : (100B ÷ 64 ÷ 256) × 4 + (100B ÷ 64) × 1 = 1,57 Go.

Grâce à la quantification imbriquée, chaque paramètre de poids du modèle finit par occuper seulement 4 octets d'espace mémoire, économisant ainsi beaucoup d'espace mémoire par rapport au FP32 d'origine.

Dans le même temps, il améliore de 4 fois l'efficacité du transfert de données de la mémoire vers le CPU.

Une telle optimisation atténue considérablement la limitation de la bande passante mémoire sur l'efficacité d'inférence et de décodage du modèle Yuan2.0-102B, améliorant ainsi encore les performances d'inférence du modèle.

Le soi-disant universel signifie que tout le monde peut l'utiliser.

À ce stade, les informations Inspur ont été soumises avec succès !

Grâce à l'optimisation du système, le NF8260G7 d'Inspur Information est le premier du secteur à prendre en charge le fonctionnement de grands modèles avec des centaines de milliards de paramètres basés uniquement sur des processeurs à usage général.

Jusqu'à présent, l'échelle des paramètres des grands modèles d'IA pris en charge par la puissance de calcul générale a dépassé les 100 milliards, comblant complètement le vide du secteur et devenant un nouveau point de départ pour que les entreprises possèdent l'IA.

Le déploiement de modèles d'IA avec des centaines de milliards de paramètres offre désormais un choix offrant des performances plus élevées et des coûts plus économiques ; les applications de grands modèles d'IA peuvent réaliser une intégration plus étroite avec le cloud, le big data et les bases de données.


Le but ultime du progrès scientifique et technologique doit être de tomber dans le monde des mortels.

À l’heure actuelle, l’AIGC a pénétré des milliers d’industries. L’IA a pénétré tous les appareils informatiques à un rythme alarmant.

De janvier à avril 2024, le nombre d'offres gagnantes pour les grands modèles nationaux a dépassé le total pour toute l'année 2023, et le montant divulgué des offres gagnantes a atteint 77 % de celui pour toute l'année 2023.

Les praticiens du secteur financier, les services ambulatoires des hôpitaux et les services informatiques des entreprises l’ont tous découvert : l’infrastructure de puissance de calcul des industries traditionnelles ne suffit plus !

Aujourd’hui, les grands modèles comportant des centaines de milliards de paramètres sont la clé de l’émergence de l’intelligence dans des milliers d’industries. La question de savoir si la puissance de calcul générale peut exécuter de grands modèles avec des centaines de milliards de paramètres est la clé pour mesurer si elle peut soutenir l’émergence de l’intelligence dans des milliers d’industries.

L'initiative d'Inspur Information permet aux clients des secteurs Internet, financier, médical et autres de réaliser un déploiement efficace et d'économiser plus de 80 % des coûts de construction sur le premier investissement.

Qu'il s'agisse de prévention de la fraude financière, d'analyse de données financières, d'informations marketing CRM d'entreprise, de diagnostic médical intelligent, de diagnostics et de plans de traitement personnalisés, d'éducation et de formation, etc., nous assisterons à une application généralisée de l'IA.

Désormais, tous les calculs sont de l’IA.

Les références:

https://mp.weixin.qq.com/s/1wYt7dfoVy2J1FFkOJjRTg