Simple Science

La science de pointe expliquée simplement

# Informatique# Architecture matérielle# Informatique distribuée, parallèle et en grappes# Apprentissage automatique

Adapter la conception des systèmes pour les grands modèles de langage

Méthodes pour optimiser la performance dans l'entraînement et l'inférence des grands modèles de langage.

― 11 min lire


Optimisation desOptimisation desperformances des systèmesLLMgrands modèles de langage.l'entraînement et l'inférence desTechniques pour améliorer
Table des matières

Aligner la conception future des systèmes avec les besoins en calcul croissants des grands modèles de langage (LLMs) est un défi important aujourd'hui. Une méthode générale est proposée pour la modélisation des Performances et l'analyse des charges de travail de l'entraînement et de l'Inférence des LLM distribués. Cette méthode prend en compte plusieurs facteurs, y compris les ressources de calcul, les systèmes de Mémoire, les capacités réseau et différentes manières de paralléliser les tâches. Ces méthodes de parallélisation incluent le Parallélisme de modèle, le parallélisme de données, le parallélisme de pipeline et le parallélisme de séquence.

Pour soutenir nos prévisions, nous validons nos résultats en utilisant des données d'études de recherche et des benchmarks industriels. Pour l'entraînement distribué, nous nous concentrons sur l'utilisation de la mémoire des LLM avec différentes méthodes de recomputation des activations. Nous examinons pourquoi il y a une augmentation de performance notable en passant des GPU A100 aux GPU B200 (un gain de 35x), ce qui suit de près les tendances données par NVIDIA. Nous menons également une étude à différents nœuds technologiques, allant de 12 nm à 1 nm, pour voir comment les améliorations en logique, mémoire et réseau affectent les performances. En ce qui concerne l'inférence, nous analysons l'équilibre entre les ressources de calcul et l'utilisation de la mémoire pour différentes opérations sur divers systèmes GPU et considérons comment les avancées dans la technologie de la mémoire DRAM influencent la vitesse d'inférence. En utilisant notre approche de modélisation des performances, nous pouvons identifier où surgissent les problèmes de performance tant pour l'entraînement que pour l'inférence des LLM à mesure que la technologie évolue. Cette information est essentielle pour concevoir des systèmes futurs axés sur l'entraînement et l'inférence des LLM.

Introduction et Contexte

L'architecture du transformeur est devenue un design de référence pour diverses applications en intelligence artificielle (IA). Les grands modèles de langage (LLMs), comme les modèles GPT et leurs variantes, illustrent l'échelle et la complexité des architectures de transformeurs. Entraîner ces modèles nécessite d'énormes quantités de données et de ressources de calcul, entraînant des coûts élevés et des émissions de carbone significatives. Par exemple, entraîner un modèle comme GPT-3 peut coûter environ 10 millions de dollars. Cependant, une grande partie du coût total peut provenir de l'inférence lorsque ces modèles servent de nombreux utilisateurs sur une longue période.

Pour comprendre les tendances actuelles des LLM et de leur matériel sous-jacent, il est crucial d'évaluer leurs performances par rapport au coût total d'exploitation (CTO) pour l'entraînement et l'inférence à grande échelle. Un examen approfondi des performances par rapport au CTO peut aider à identifier les défis et à prioriser les investissements dans les futurs systèmes et modèles de calcul.

L'Architecture du Transformeur

L'architecture du transformeur basée sur le décodeur se compose de couches qui comportent principalement un bloc d'attention multi-tête (MHA) et un bloc de perceptron multicouche (MLP). Cette structure cohérente permet d'analyser les performances des LLM à un niveau de centre de données. Le mécanisme d'attention est central dans le design du transformeur, où le succès des LLM dépend de leur longueur de séquence ou de contexte. Cependant, augmenter la longueur de la séquence entraîne des demandes croissantes en exécution et en mémoire.

Trois facteurs clés affectent les performances : le nombre d'opérations à virgule flottante (FLOPs), les accès à la mémoire et la communication des données. Des initiatives récentes, comme FlashAttention, ciblent les problèmes d'accès à la mémoire en optimisant la façon dont les données sont récupérées de la DRAM, potentiellement au détriment des FLOPs. De plus, l'utilisation de KV-cache est essentielle pour améliorer les performances d'inférence. Les défis de performance ne sont pas statiques ; ils évoluent à mesure que les LLM et le matériel informatique avancent. Des études indiquent que la communication peut représenter une part importante (40-75%) du temps d'exécution à mesure que les modèles et le matériel évoluent. Par conséquent, un cadre large qui met en évidence les compromis de performance pendant l'entraînement et l'inférence des LLM est nécessaire pour une collaboration efficace entre le matériel et le logiciel.

Goulots d'Étranglement de Performance

Les opérations de transformeur se répartissent en trois grandes catégories : les contractions de tenseurs (comme GEMM ou GEMV), la normalisation (comme softmax ou normalisation de couche) et les opérations élémentaires (y compris des fonctions comme les non-linéarités ou les biais). L'opération la plus critique est souvent GEMM ou GEMV, qui peut avoir un impact significatif sur la performance globale d'un modèle de transformeur.

La performance de GEMM peut être analysée en comparant le temps de calcul avec les accès à la mémoire. Si le temps de calcul prédomine, l'opération est considérée comme liée au calcul, tandis que si le temps d'accès à la mémoire est plus important, l'opération est classée comme liée à la mémoire. L'intensité arithmétique est une mesure qui indique si une tâche est liée au calcul ou liée à la mémoire en fonction du nombre d'opérations arithmétiques liées aux transferts de mémoire.

Dans l'entraînement distribué, les contractions de tenseurs ont tendance à être intensives en calcul en raison de GEMMs volumineux. En revanche, pendant la phase d'inférence, les opérations ont tendance à être liées à la mémoire à cause de la nature moins intensive de la génération de tokens, ce qui donne lieu à des GEMMs plus fins. La fusion de noyaux est une technique courante pour améliorer l'intensité arithmétique des opérations liées à la mémoire.

Le deuxième aspect essentiel à l'entraînement ou à l'inférence des LLM est le transfert de données à travers le réseau. À mesure que l'entraînement et l'inférence se développent, les coûts de communication deviennent critiques, en particulier dans les systèmes avec plusieurs GPU.

Stratégies de Parallélisation

L'entraînement distribué utilise diverses stratégies de parallélisme telles que le parallélisme de données (DP), le parallélisme de modèle de tenseur (TP), le parallélisme de pipeline (PP) et le parallélisme de séquence (SP). Dans le DP, chaque GPU traite une partie des données tout en partageant les mêmes paramètres de modèle pour calculer les gradients locaux. Ces gradients sont ensuite agrégés pour mettre à jour les paramètres du modèle.

Les exigences en mémoire dans le DP dépendent de facteurs comme la taille du lot, la longueur de la séquence et les dimensions du modèle. Le TP aide à réduire les besoins en mémoire liés aux paramètres du modèle en répartissant les opérations de tenseur sur plusieurs dispositifs, permettant à chaque dispositif de traiter seulement une partie d'une matrice.

Le parallélisme de pipeline divise les couches entre les dispositifs, où chacun traite un ensemble de couches et passe les résultats. Cette approche peut entraîner des temps d'inactivité, également appelés bulles de pipeline, qui peuvent être atténués par des techniques de planification avancées. Le parallélisme de séquence utilise une approche similaire pour paralléliser certaines opérations, réduisant leur empreinte mémoire sans subir de délais de communication.

L'entraînement des LLM nécessite souvent des combinaisons de ces stratégies de parallélisation, tandis que l'inférence utilise généralement le TP sur moins de dispositifs en raison de la taille de données limitée.

Cadre pour la Modélisation de Performance

Notre cadre construit une approche générale pour modéliser et analyser les performances dans les charges de travail d'entraînement et d'inférence des LLM distribués. Il prend en compte des facteurs comme les systèmes de calcul et de mémoire ainsi que la communication réseau.

Après une validation approfondie contre des ensembles de données liés à GEMM, GEMV, à l'entraînement et à l'inférence, nous pouvons fournir des perspectives sur les gains de performance réalisés en passant des GPU A100 aux GPU B200. Nous explorons également les options de conception à différents nœuds technologiques, en regardant comment les avancées dans les technologies DRAM impactent les performances.

Analyse de l'Empreinte Mémoire

Lors de l'entraînement de grands LLM, une préoccupation majeure est le débordement de mémoire. Comprendre les caractéristiques d'utilisation de la mémoire est crucial pour planifier des stratégies d'entraînement efficaces. Notre profilage mémoire examine trois méthodes différentes de recomputation d'activation pour optimiser l'efficacité de l'entraînement : pas de recomputation, recomputation sélective et recomputation complète.

En profilant la mémoire pour divers modèles GPT avec ces méthodes de recomputation, nous observons les implications sur l'utilisation de la mémoire. Sans recomputation, faire tenir un LLM dans la mémoire d'un dispositif s'avère souvent impossible à moins d'utiliser des tailles de batch extrêmement petites ou un haut degré de parallélisme. Les options de recomputation sélective peuvent offrir une efficacité mémoire légèrement meilleure avec un minimum de surcharge computationnelle.

Évolutivité des Performances à Travers les Générations de GPU

Le besoin de traitement accéléré dans les charges de travail d'IA a conduit à des avancées significatives dans la technologie des GPU NVIDIA. En utilisant notre modèle de performance, nous pouvons projeter comment le temps d'entraînement pour un modèle substantiel, comme GPT-3, varie à travers différentes générations de GPU.

Il existe une tendance claire démontrant l'évolutivité des performances des GPU A100 aux H100, puis des H100 aux B200, avec des améliorations largement liées aux avancées en capacité DRAM et en puissance de traitement. Chaque nouvelle génération a introduit des fonctionnalités qui améliorent la capacité de calcul et la bande passante mémoire, entraînant des réductions notables du temps d'entraînement.

Évolutivité de la Technologie Mémoire

À mesure que la technologie de la mémoire s'améliore, nous analysons comment ces avancées affectent la vitesse d'inférence, notamment dans les systèmes multi-GPU. En étudiant comment différentes technologies DRAM impactent les performances, nous pouvons faire des observations sur la corrélation entre la bande passante mémoire et le temps d'inférence.

Nos résultats indiquent que, jusqu'à un certain point, les performances s'améliorent linéairement avec l'augmentation de la bande passante DRAM. Cependant, au fur et à mesure que les technologies avancent, cette évolutivité linéaire peut diminuer, et d'autres facteurs tels que la capacité et la bande passante de la mémoire sur puce deviennent des composants critiques influençant les performances globales.

Conclusion

En résumé, nous avons examiné les charges de travail d'entraînement et d'inférence des LLM à travers un cadre de modélisation des performances détaillé. L'approche nous permet d'analyser divers cas de test et d'évaluer l'impact de l'évolutivité de la technologie de calcul et de mémoire sur les performances.

En évaluant ces paramètres, nous atteignons des prévisions précises pour l'entraînement et l'inférence et pouvons identifier les principaux goulets d'étranglement de performance qui surgissent avec les avancées en technologie et en architecture. Les efforts futurs incluent le perfectionnement de notre approche pour mieux comprendre l'utilisation de la mémoire dans des scénarios plus intensifs en mémoire et l'incorporation de simulations réseau pour explorer l'impact du trafic de données sur la performance globale. De plus, nous prévoyons d'évaluer les architectures et technologies système à venir pour l'entraînement et l'inférence des LLM, en mettant l'accent sur l'efficacité énergétique et l'analyse du coût total d'exploitation.

Cette recherche vise à fournir des perspectives précieuses sur l'optimisation de la conception et de l'implémentation des systèmes d'entraînement et d'inférence des LLM, garantissant qu'ils répondent efficacement aux demandes computationnelles croissantes.

Source originale

Titre: Performance Modeling and Workload Analysis of Distributed Large Language Model Training and Inference

Résumé: Aligning future system design with the ever-increasing compute needs of large language models (LLMs) is undoubtedly an important problem in today's world. Here, we propose a general performance modeling methodology and workload analysis of distributed LLM training and inference through an analytical framework that accurately considers compute, memory sub-system, network, and various parallelization strategies (model parallel, data parallel, pipeline parallel, and sequence parallel). We validate our performance predictions with published data from literature and relevant industry vendors (e.g., NVIDIA). For distributed training, we investigate the memory footprint of LLMs for different activation re-computation methods, dissect the key factors behind the massive performance gain from A100 to B200 ($\sim$ 35x speed-up closely following NVIDIA's scaling trend), and further run a design space exploration at different technology nodes (12 nm to 1 nm) to study the impact of logic, memory, and network scaling on the performance. For inference, we analyze the compute versus memory boundedness of different operations at a matrix-multiply level for different GPU systems and further explore the impact of DRAM memory technology scaling on inference latency. Utilizing our modeling framework, we reveal the evolution of performance bottlenecks for both LLM training and inference with technology scaling, thus, providing insights to design future systems for LLM training and inference.

Auteurs: Joyjit Kundu, Wenzhe Guo, Ali BanaGozar, Udari De Alwis, Sourav Sengupta, Puneet Gupta, Arindam Mallik

Dernière mise à jour: 2024-07-19 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2407.14645

Source PDF: https://arxiv.org/pdf/2407.14645

Licence: https://creativecommons.org/licenses/by/4.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Plus d'auteurs

Articles similaires