Ces derniers temps, les « grands modèles » ont brillé dans divers scénarios d'application dans le domaine de l'IA. Parmi eux, le modèle de pré-formation à grande échelle basé sur Transformer est l'un des grands modèles les plus typiques et est devenu l'actuel. Modèle de fondation. ) architecture de base. Par exemple, les séries BERT et GPT dans le domaine PNL, les séries ViT et Swin Transformer dans le domaine CV, ainsi que le modèle hybride multi-expert récemment très populaire MoE et le modèle multimodal CLIP, etc., utilisent tous Transformer comme infrastructure de base. En conséquence, ces grands modèles denses ont des paramètres qui se chiffrent souvent en milliards, dizaines de milliards, voire milliards. Ils sont confrontés à des coûts élevés de calcul, de stockage et de communication, et posent également d'énormes défis à l'infrastructure de l'IA.
Afin de prendre en charge la formation de grands modèles, les gens ont développé de nombreux outils (tels que Megatron proposé par NVIDIA, DeepSpeed proposé par Microsoft, FairSeq proposé par Meta, etc.) pour implémenter diverses méthodes parallèles de données. , parallélisme de modèle tensoriel, parallélisme de pipeline, parallélisme de données fragmentées, etc. Ces systèmes fournissent une bonne encapsulation des méthodes parallèles ci-dessus et protègent les détails de mise en œuvre correspondants de l'extérieur, permettant aux utilisateurs de mettre en œuvre des stratégies parallèles hybrides en ajoutant des configurations.
Sur la base des idées ci-dessus, de nombreux travaux ont été consacrés à la manière d'exprimer diverses méthodes parallèles au niveau du tenseur ou de l'opérateur. L'"automatisation" de ce type de travail se reflète principalement dans le processus de conversion du. API parallèle à la couche d'exécution. Cependant, si elle se limite uniquement à la conception d’API parallèles ou d’expressions intermédiaires, ce type d’encapsulation d’ingénierie ne résout pas fondamentalement le problème de la formation distribuée. Le résultat le plus intuitif est que les utilisateurs ne peuvent toujours pas être libérés des problèmes du déploiement distribué. En fait, le déploiement distribué de grands modèles est un problème très complexe.La plupart des systèmes de formation distribués actuels reposent sur des tentatives manuelles répétées des utilisateurs et sur l'expérience d'experts en systèmes, ce qui pose de graves problèmes de faible efficacité d'utilisation des ressources. un écart considérable par rapport au véritable « parallélisme automatique ».
Sur cette base, l'équipe Beidahetu a proposé Galvatron, un artefact de formation distribué, pour réaliser une parallélisation automatique efficace de grands modèles. Le document de recherche a été sélectionné pour la plus grande conférence internationale VLDB 2023.
Les chercheurs estiment que la difficulté de la parallélisation automatique des grands modèles se reflète principalement dans les trois aspects suivants :
(1) Diversité : tout d'abord, en termes de méthodes parallèles, les méthodes parallèles actuelles des grands modèles fleurissent. Même pour le même opérateur, quelles que soient les méthodes parallèles mixtes, il existera des différences significatives entre les différentes méthodes parallèles de base, ce qui entraînera des différences significatives. Différents frais de mémoire, coûts de communication et efficacité de calcul. La figure suivante montre les quatre méthodes parallèles de base les plus importantes, à savoir le parallélisme des données, le parallélisme tenseur, le parallélisme pipeline et le parallélisme données fragmentées. Le processus d'exécution distribuée d'opérateurs de multiplication matricielle simples sur le GPU Zhang.
Comparaison de méthodes parallèles
Deuxièmement, en termes de modèles, diverses architectures de modèles ont émergé récemment dans un flux sans fin, qui sont souvent accompagnées de différentes configurations de modèles (telles que Différentes longueurs de séquence d'entrée, nombre de couches de modèle, largeur de couche cachée du modèle, etc.), entraînant des différences dans la charge de calcul. De plus, en termes de matériel, les utilisateurs sont souvent confrontés à des environnements de cluster très différenciés et peuvent être confrontés à des capacités de mémoire, des bandes passantes de communication, des capacités de calcul, etc. D'une manière générale, en raison de la diversité mentionnée ci-dessus, aucune technologie parallèle ne peut toujours atteindre la meilleure efficacité de formation, et le « parallélisme automatique » est devenu le principal défi de la formation distribuée.
(2) Complexité : L'analyse ci-dessus est relativement simple. En fait, même pour le même opérateur, plusieurs méthodes parallèles de base différentes peuvent être appliquées en même temps si l'on considère le parallélisme hybride composé de la combinaison de ces parallèles de base. méthodes, le problème deviendra très compliqué. Plus important encore, le graphique de calcul d'un grand modèle a souvent une très grande structure, ce qui nécessite un cluster plus grand (y compris la sélection des ressources informatiques appropriées dans le cluster et la conception de méthodes parallèles hybrides correspondantes) si chaque opérateur est exploré. d'explosion spatiale combinée, et il devient difficile de trouver le plan d'exécution distribué optimal pour l'ensemble du modèle.
(3) Praticité : De plus, la praticité est également une question très importante. D'une part, dans le processus de recherche parallèle automatique, pour diverses solutions d'exécution distribuées, une mémoire, une communication et une surcharge de calcul relativement précises doivent être fournies, sinon les résultats s'écarteront trop de l'exécution réelle, ce qui entraînera des solutions sous-optimales ou. étant incapable de le faire du tout. À cette fin, un modèle de coûts très précis est nécessaire pour modéliser différentes structures de modèle et conditions matérielles. D'un autre côté, le temps supplémentaire occasionné par les capacités parallèles automatiques du système doit rester dans une fourchette acceptable, et les coûts de recherche excessivement élevés sont également inacceptables.
Caractéristiques du système :
Afin de résoudre les problèmes ci-dessus, les chercheurs ont proposé une série de travaux pour explorer l'automatisation parallèle hybride recherche : un type de travail traite principalement de l'espace de recherche qui prend en compte à la fois le parallélisme des données et le parallélisme des modèles. Les travaux représentatifs incluent FlexFlow et Tofu. L'autre type de travail est généré à partir de scénarios parallèles de pipeline et le combine avec le parallélisme des données. TACHETER. Sur cette base, il existe également des travaux dérivés, comme Unity et Alpa, qui élargissent encore la portée de l'exploration parallèle automatique. Le système "Galvatron" proposé par l'équipe Beidahetu appartient également au domaine de recherche de la recherche parallèle automatique, mais par rapport aux travaux existants, ce système présente principalement les trois avantages suivants :
(1) En termes de diversité, le parallèle Les dimensions que les travaux existants peuvent prendre en charge sont encore relativement limitées, et Galvatron peut non seulement prendre en charge des dimensions plus parallèles, mais peut également modéliser avec précision la structure du modèle Transformer plus différenciée, et a été vérifié dans différentes conditions matérielles de cluster ses capacités de réglage adaptatif.
Schéma comparatif d'un système de formation distribué à grand modèle
(2) En termes de complexité, en raison de ses avantages en termes de diversité, Galvatron est confronté à un espace de recherche sans précédent. , les chercheurs ont exploré plusieurs observations importantes qui ont été vérifiées expérimentalement ou théoriquement dans le processus actuel de formation distribuée à grande échelle comme critères d'élagage de l'espace de recherche, obtenant ainsi une optimisation efficace du plan d'exécution distribué.
(3) En termes de praticité, cette recherche combine les avantages de la modélisation théorique et des mesures expérimentales pour obtenir des estimations précises de la surcharge de mémoire, de communication et de calcul, et prend même en compte la surcharge du GPU causée par le chevauchement des calculs. et la communication. Le problème de l'efficacité d'exécution réduite est éliminé pour garantir que des résultats d'optimisation parallèle automatique suffisamment précis peuvent être obtenus.
De plus, la couche inférieure de Galvatron choisit PyTorch comme moteur d'exécution, qui est compatible avec les implémentations courantes du modèle Transformer telles que Huggingface, de sorte qu'il n'apportera aucune charge supplémentaire aux utilisateurs de PyTorch en même temps ; Vous n'avez pas besoin de payer pour une installation ou un débogage supplémentaire du système. À faible coût, il vous suffit d'ajouter quelques lignes de code lors de son utilisation et vous pouvez facilement terminer l'ensemble du processus de parallélisation automatique.
Flux de travail Galvatron et affichage de l'interface utilisateur
1. Décomposition de l'espace de recherche basée sur l'arbre de décision
Galvatron est conçu pour rechercher automatiquement et efficacement dans un espace politique parallèle complexe et vaste et générer le plan d'exécution parallèle optimal pour un modèle Transformer et un environnement distribué donnés. En termes d'espace de recherche, Galvatron est le premier système de formation parallèle automatique du secteur qui prend en compte quatre méthodes parallèles courantes, notamment le parallélisme des données (DP), le parallélisme des données fragmentées (SDP) et le parallélisme tensoriel (parallélisme tenseur (TP)). et le parallélisme des pipelines (PP). Étant donné que la stratégie parallèle hybride inclura n'importe quelle combinaison des quatre algorithmes parallèles ci-dessus, l'espace de recherche apporté par cette combinaison est très vaste dans un scénario multi-GPU. Par exemple, dans un scénario à quatre cartes sur deux machines, une stratégie réalisable consiste à utiliser le TP bidirectionnel au sein de la machine et le PP bidirectionnel entre les machines. Une autre stratégie réalisable consiste à utiliser le PP bidirectionnel au sein de la machine et entre les machines. . Utilisez DP bidirectionnel. Lorsque le nombre de GPU dans un nœud est étendu à 8 cartes, il existe des centaines de stratégies candidates pour chaque couche du modèle. À mesure que le nombre de couches du modèle augmente, la taille de son espace de recherche augmente de façon exponentielle, ce qui rend difficile une exploration efficace.
Pour rechercher efficacement un espace de recherche aussi vaste, l'étude propose d'abord les observations suivantes à titre indicatif :
Sur la base des observations importantes ci-dessus, cette étude propose une méthode de construction d'espace de recherche basée sur des arbres de décision :
(1) Étant donné un modèle Transformer, basé sur Takeway#1 et Takeway#2, Galvatron utilise d'abord PP divise le modèle en plusieurs étapes et divise l'équipement en plusieurs groupes d'équipements de manière uniforme et continue. Par exemple, dans le scénario à 8 cartes, le modèle est divisé en PP 1/2/4/8 voies, correspondant à la taille du groupe de périphériques de 8/4/2/1 respectivement.
(2) Chaque segmentation PP correspond à un arbre de décision et à un sous-espace de recherche. Le nombre total de nœuds feuilles de décision est la taille du groupe d'équipements, et la hauteur de l'arbre de décision est le nombre de parallèles disponibles. méthodes, c'est-à-dire que chaque couche de l'arbre de décision Une stratégie parallèle peut être appliquée.
(3) Les stratégies parallèles ne peuvent pas être réutilisées entre différents niveaux de l'arbre de décision.
(4) Le degré de nœuds non-feuilles est sélectionné par défaut parmi la puissance exponentielle de 2 {2,4,8,…}.
Basé sur les règles de construction de l'arbre de décision ci-dessus, l'arbre de décision construit par Galvatron peut représenter n'importe quelle combinaison du parallélisme ci-dessus. Takeway#1 et Takeway#2 aident Galvatron à éviter les combinaisons parallèles inefficaces et à réduire l'espace de recherche. Pour le scénario de formation d'un modèle monocouche sur un GPU à 8 cartes, les règles ci-dessus produiront 34 stratégies parallèles hybrides candidates. De plus, après avoir utilisé le Takeway#3 pour élaguer la situation où DP et SDP apparaissent en même temps dans un arbre de décision, le nombre de stratégies candidates à 8 cartes est réduit à 22.
La figure suivante montre un diagramme schématique de l'arbre de décision sous différents parallélismes PP (8/4/2/1) dans le scénario GPU à 8 cartes.
Schéma schématique de l'arbre de décision sous différents parallélismes PP (8/4/2/1) dans un scénario GPU à 8 cartes
2 Algorithme d'optimisation parallèle basé sur la programmation dynamique
Systèmes existants tels que comme Megatron ou DeepSpeed exige généralement que les utilisateurs spécifient le schéma parallèle global et son degré de parallélisme correspondant, ce qui limite considérablement la capacité d'exprimer des plans d'exécution distribués. L'objectif d'optimisation de Galvatron est de générer automatiquement le plan d'exécution distribué optimal sans que l'utilisateur ne spécifie de configuration parallèle lorsque l'utilisateur reçoit une définition de modèle et un environnement distribué. Plus précisément, étant donné un modèle de couche L de dispositifs GPU M et N avec une capacité de mémoire E, l'objectif d'optimisation de Galvatron est de rechercher le débit système le plus élevé T_pt et de renvoyer la solution parallèle correspondante. La solution parallèle fait ici référence à la couche (ou à l'opérateur). ) comme unité de base d’une stratégie parallèle hybride à granularité fine.
Algorithme 1 : Processus d'optimisation du Galvatron
Processus d'optimisation : Le processus d'optimisation du Galvatron est présenté dans l'algorithme 1. La boucle la plus externe de Galvatron augmente progressivement la taille du lot de recherche jusqu'à ce qu'elle dépasse la mémoire de l'appareil ; étant donné la taille de chaque lot candidat B, Galvatron divise d'abord le modèle PP selon le point à retenir n°1 et recherche différents degrés de parallélisme P (ligne 4), après avoir sélectionné P. -way PP, le modèle est divisé en P étapes (ligne 6), et tous les équipements correspondants sont divisés en P groupes, chaque groupe contenant des équipements N/P, puis Galvatron construit l'arbre de décision correspondant, qui peut représenter n'importe quelle combinaison de DP ; , SDP et TP sans duplication ni omission, obtenant ainsi l'ensemble de stratégies S puis pour chaque étape du modèle M_i, sous la limite de mémoire du dispositif E, Galvatron utilise une recherche par programmation dynamique pour obtenir chaque couche la stratégie parallèle hybride optimale et renvoie le temps minimum. coût (ligne 9) enfin, Galvatron sélectionne la stratégie avec le débit le plus élevé parmi tous les parallélismes PP et tailles de lots possibles et la renvoie (ligne 15).
Recherche de programmation dynamique : ce qui suit présente l'algorithme de recherche de programmation dynamique dans le flux de travail d'optimisation parallèle Galvatron. Pour une étape de modèle donnée contenant L couches, la fonction de coût C(L,E) est utilisée pour représenter le temps d'exécution total du modèle de couche L sous la limite de mémoire du périphérique E, et représente le temps d'exécution de la couche L en utilisant la stratégie S_j, où la stratégie S_j est la stratégie de l'ensemble candidat de stratégie parallèle S. En définissant la valeur initiale
, la recherche de programmation dynamique de Galvatron suit l'équation de transition d'état suivante (Formule 1) :
où, est la mémoire de la couche L en utilisant la stratégie S_j La surcharge, , est la surcharge de conversion causée par la L-ème couche utilisant la stratégie S_j et la couche précédente utilisant la stratégie S_i. Pendant le processus de transfert d'état, lorsque la surcharge de mémoire dépasse la limite de mémoire du périphérique E, la fonction de surcharge C renvoie l'infini.
Analyse de complexité : La complexité informatique de la recherche de programmation dynamique (Formule 1) utilisée par Galvatron est O(LE|S|). On peut voir que la taille de l'espace de recherche S de chaque couche est très importante pour la complexité globale de la recherche. La décomposition de l'espace de recherche basée sur l'arbre de décision proposé par Galvatron peut réduire considérablement l'espace de recherche et contrôler la surcharge de recherche dans un délai raisonnable. gamme.
3. Méthode d'estimation du coût d'exécution basée sur une modélisation hybride
Galvatron utilise un module d'estimation des coûts de politique pour estimer les coûts de calcul, de communication et de mémoire des stratégies parallèles hybrides. Les méthodes d'estimation des coûts existantes incluent principalement la mesure (profilage) et la simulation (simulation). Galvatron s'appuie sur les atouts des deux et conçoit une méthode d'estimation des coûts rentable, efficace et précise. Plus précisément, pour la surcharge de mémoire, Galvatron utilise la forme et le type de données du tenseur pour compléter l'estimation ; pour le temps de calcul, Galvatron mesure le temps de calcul échantillon par échantillon via le profilage sur un seul appareil, combinant la taille du lot et la fonction d'ajustement pour estimer le calcul global. Temps pour le temps de communication, Galvatron obtient le temps de communication estimé en divisant le volume de communication par la bande passante de communication de l'appareil, où le volume de communication est calculé théoriquement et la bande passante de communication est mesurée par profilage.
Sur la base des résultats d'estimation ci-dessus, Galvatron calcule le coût c(l,s) d'une couche donnée en utilisant une stratégie donnée via le processus d'exécution de simulation. Différent du modèle de coût des systèmes de formation distribués existants, Galvatron considère pour la première fois dans la modélisation l'impact du chevauchement du calcul et de la communication sur la dégradation des performances du GPU. Cette étude a montré expérimentalement que la dégradation des performances du GPU due au chevauchement peut affecter de manière significative l'efficacité d'exécution du système, ce qui a été ignoré dans les travaux précédents. En conséquence, les estimations des frais généraux de Galvatron sont plus précises et l'optimisation parallèle est meilleure.
Paramètres expérimentaux : Dans l'expérience, les chercheurs ont comparé Galvatron à quatre systèmes de base (DP, SDP, TP, PP) en utilisant une seule stratégie parallèle et le parallélisme 3D DeepSpeed défini par des experts, tandis qu'en plus deux des versions affaiblies de Galvatron ont été mises en place comme lignes de base auxiliaires pour lancer des recherches parallèles automatiques dans un espace de combinaison de stratégies parallèles limité (c'est-à-dire TP+DP, PP+DP). Cette étude a sélectionné les modèles NLP Transformer BERT et T5, ainsi que les modèles CV Transformer ViT et Swin Transformer comme sujets expérimentaux.
Comparaison du débit entre Galvatron et les systèmes de base sous 8 GPU 20G de mémoire vidéo
Effet de comparaison expérimentale : Cette étude a d'abord mené des expériences dans un environnement Nvidia RTX TITAN 24 Go à huit cartes. Les expériences montrent que sous différentes tailles de modèle et différentes contraintes de mémoire, Galvatron atteint toujours le débit optimal, et par rapport aux méthodes parallèles uniques et aux méthodes parallèles hybrides de pointe existantes, le débit de formation est considérablement amélioré. Plus précisément, sur le modèle ViT, le taux d'accélération du débit de Galvatron peut atteindre jusqu'à 338 % par rapport à une stratégie unique, et son taux d'accélération du débit peut atteindre jusqu'à 55 % par rapport aux autres stratégies parallèles hybrides dans les trois autres modèles par rapport à une stratégie unique ; et la stratégie mixte existante, Galvatron a un taux d'accélération allant jusqu'à 200 %-334 % et 28 %-52 %.
Diagramme schématique de certaines des stratégies parallèles optimales obtenues par la recherche Galvatron
Expérience d'interprétabilité : Cette étude a sélectionné certaines stratégies parallèles optimales obtenues par la recherche Galvatron pour l'affichage. Pour le modèle BERT dans le cas de 8 Go (cas A), Galvatron a choisi deux stratégies parallèles hybrides PP-TP-DP et PP-TP-SDP. Lorsque la mémoire vidéo disponible est passée à 12 Go, Galvatron a abandonné PP et a choisi d'en utiliser davantage. Plusieurs DP et SDP sont introduits pour économiser de l'espace mémoire vidéo. La situation est légèrement différente sur Swin Transformer. Les différentes couches du modèle présentent une hétérogénéité évidente lorsque la mémoire est relativement rare (cas C), le parallélisme du SDP superficiel est plus élevé, et l'activation de chaque couche devient plus petite. et les paramètres deviennent plus nombreux, donc TP remplace progressivement SDP. Lorsque la mémoire vidéo augmente (cas D), non seulement PP est réactivé pour remplacer une partie du SDP inefficace, mais la couche peu profonde a tendance à utiliser DP de manière plus évidente.
Expérience d'évolutivité : L'étude a ensuite testé Galvatron sur des clusters plus grands, y compris un environnement avec des GPU Nvidia RTX TITAN à 16 cartes et un environnement avec des GPU Nvidia A100 à 64 cartes. Dans l'environnement à 16 cartes, Galvatron a toujours le débit le plus élevé par rapport aux autres stratégies. Par rapport aux résultats expérimentaux de 8 cartes avec la même limite de mémoire, en raison de la stratégie parallèle hybride plus diversifiée, Galvatron peut obtenir un débit plus de 2 fois supérieur. sur 16 cartes. Dans l’expérience de 64 cartes, Galvatron avait également le débit le plus élevé parmi les autres stratégies. Cela montre que Galvatron a une bonne évolutivité. Des résultats détaillés peuvent être trouvés dans l'article original.
L'équipe de développement Hetu est issue du laboratoire de recherche sur les données et l'intelligence de l'Université de Pékin (ci-après dénommé le laboratoire est dirigé par Cui Cui de l'École d'informatique de Pékin). Université dirigée par le professeur Bin, il mène depuis de nombreuses années des recherches de pointe dans les domaines de l'intelligence artificielle et du big data. Il a réalisé de nombreuses réalisations en matière d'innovation théorique et technologique et de recherche et développement de systèmes. articles académiques dans les meilleures conférences et revues universitaires internationales.
Le système Hetu est un système d'apprentissage profond distribué pour les très grands modèles. Par rapport à l'ancien cadre d'apprentissage profond distribué existant, il présente de nombreuses contributions innovantes en termes de fonctionnalité du système, de complexité du système et de facilité d'utilisation du système. stratégie parallèle, cohérence du protocole et de l'architecture de communication, optimisation des opérateurs GPU, etc. L'équipe Hetu a actuellement réalisé des innovations académiques dans une variété de scénarios d'apprentissage automatique distribué ou d'apprentissage profond, et les résultats pertinents ont été inclus dans les plus grandes conférences internationales telles que SIGMOD, VLDB, ICML, KDD, etc. Parmi eux, le grand modèle clairsemé Le système de formation distribué HET a remporté le prix du meilleur article VLDB 2022 Jia Ke Scalable Data Science. Galvatron, l'article accepté cette fois par le VLDB 2023, est une autre percée réalisée par l'équipe Hetu dans les scénarios de formation distribués à grand modèle dense. Il a été intégré au système Hetu et est open source. À l'heure actuelle, l'équipe Hetu a mené une coopération en matière de recherche scientifique et de mise en œuvre d'applications avec de nombreuses entreprises bien connues telles que Tencent, Alibaba, Kuaishou et ByteDance.
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!