Le 12 septembre, Taotian Group et Aicheng Technology ont officiellement ouvert le cadre de formation pour grands modèles - Megatron-LLaMA, visant à permettre aux développeurs technologiques d'améliorer plus facilement les performances de formation des grands modèles de langage, de réduire les coûts de formation et de maintenir la compatibilité avec le LLaMA. communauté. Les tests montrent que dans une formation à 32 cartes, Megatron-LLaMA peut atteindre une accélération de 176 % par rapport à la version de code directement obtenue de HuggingFace ; dans une formation à grande échelle, Megatron-LLaMA a une évolutivité presque linéaire par rapport à 32 cartes et montre une tolérance élevée. pour l'instabilité du réseau. Actuellement, Megatron-LLaMA est en ligne dans la communauté open source.
Adresse Open source : https://github.com/alibaba/Megatron-LLaMA
Les performances exceptionnelles des grands modèles de langage ont dépassé à maintes reprises l’imagination des gens. Au cours des derniers mois, LLaMA et LLaMA2 ont été entièrement ouverts à la communauté open source, offrant ainsi un bon choix aux personnes souhaitant former leurs propres grands modèles de langage. Dans la communauté open source, il existe de nombreux modèles basés sur les résultats de LLaMA, y compris la formation continue/SFT (tels que Alpaca, Vicuna, WizardLM, Platypus, StableBegula, Orca, OpenBuddy, Linly, Ziya, etc.) et la formation à partir de zéro ( Baichuan , QWen, InternLM, OpenLLaMA). Ces travaux fonctionnent non seulement bien sur les listes d'évaluation objectives actuelles de diverses capacités de grands modèles, mais démontrent également d'excellentes performances dans des scénarios pratiques tels que la compréhension de textes longs, la génération de textes longs, l'écriture de code et la résolution mathématique. Par ailleurs, de nombreux produits intéressants sont apparus dans l'industrie, comme LLaMA combiné au robot de chat vocal de Whisper, LLaMA combiné au logiciel de peinture de Stable Diffusion, des robots de consultation auxiliaires dans le domaine médical/juridique, etc. Bien que vous puissiez obtenir le code du modèle LLaMA auprès de HuggingFace, former un modèle LLaMA avec vos propres données n'est pas une tâche simple et peu coûteuse pour les utilisateurs individuels ou les petites et moyennes organisations. Le volume des grands modèles et l'ampleur des données rendent impossible une formation efficace sur des ressources informatiques ordinaires, et la puissance et le coût de calcul sont devenus de sérieux goulots d'étranglement. Les utilisateurs de la communauté Megatron-LM ont des demandes très urgentes à cet égard. Taotian Group et Aicheng Technology disposent de scénarios d'application très larges pour les applications de grands modèles et ont beaucoup investi dans une formation efficace des grands modèles. L'avènement de LLaMA a donné à de nombreuses entreprises, dont Taotian Group et Aicheng Technology, beaucoup d'inspiration en termes de traitement des données, de conception de modèles, de réglage fin et d'ajustement du retour d'apprentissage par renforcement, et a également contribué à réaliser de nouvelles percées dans les scénarios d'applications métier. . Par conséquent, afin de redonner à l'ensemble de la communauté open source LLaMA et de promouvoir le développement de la communauté open source chinoise de grands modèles pré-entraînés, afin que les développeurs puissent plus facilement améliorer les performances de formation des grands modèles de langage et réduire les coûts de formation, Taotian Le groupe et Aicheng Technology combineront certaines technologies internes pour optimiser la technologie et l'ouvrir en source libre, publieront Megatron-LLaMA et seront impatients de construire l'écosystème Megatron et LLaMA avec chaque partenaire. Megatron-LLaMA fournit un ensemble de LLaMA standard implémentés par Megatron-LM, et fournit des outils de commutation gratuite au format HuggingFace pour faciliter la compatibilité avec les outils écologiques de la communauté. Megatron-LLaMA a repensé le processus inverse de Megatron-LM, afin qu'il puisse être réalisé peu importe où le nombre de nœuds est petit et où une grande agrégation de gradient (GA) doit être activée, ou lorsque le nombre de nœuds est grand et un petit GA doit être utilisé. Excellentes performances d’entraînement.
- Dans une formation de 32 cartes, par rapport à la version de code directement obtenue de HuggingFace, Megatron-LLaMA peut atteindre 176% d'accélération même avec la version optimisée par DeepSpeed et FlashAttention, Megatron-LLaMA peut toujours ; atteindre Réduire le temps de formation d'au moins 19 %.
- Dans une formation à grande échelle, Megatron-LLaMA a une évolutivité presque linéaire par rapport à 32 cartes. Par exemple, en utilisant 512 A100 pour reproduire la formation de LLaMA-13B, le mécanisme inverse de Megatron-LLaMA peut gagner au moins deux jours par rapport au DistributedOptimizer du Megatron-LM natif sans aucune perte de précision.
-
Megatron-LLaMA présente une haute tolérance à l'instabilité du réseau. Même sur le cluster de formation économique actuel 8xA100-80GB avec une bande passante de communication de 4x200Gbps (cet environnement est généralement un environnement de déploiement mixte, le réseau ne peut utiliser que la moitié de la bande passante, la bande passante du réseau constitue un sérieux goulot d'étranglement, mais le prix de location est relativement élevé). faible), Megatron-LLaMA peut encore atteindre une capacité d'expansion linéaire de 0,85, mais Megatron-LM ne peut atteindre que moins de 0,7 sur cet indicateur. -La technologie MEGATRON-LM offre des opportunités de formation LAMA hautes performances
Llama est une tâche importante dans la communauté open source du grand modèle de langage. LLaMA introduit des technologies d'optimisation telles que le codage de caractères BPE, le codage de position RoPE, la fonction d'activation SwiGLU, la régularisation RMSNorm et l'intégration non liée dans la structure de LLM, et a obtenu d'excellents résultats dans de nombreuses évaluations objectives et subjectives. LLaMA propose des versions 7B, 13B, 30B, 65B/70B, adaptées à divers scénarios nécessitant de grands modèles et également privilégiées par les développeurs. Comme beaucoup de grands modèles open source, étant donné que le responsable ne fournit que la version d'inférence du code, il n'existe pas de paradigme standard sur la manière de réaliser une formation efficace au moindre coût.
Megatron-LM est une solution d'entraînement élégante et performante.Megatron-LM fournit le parallélisme tensoriel (Tensor Parallel, TP, qui alloue de grandes multiplications à plusieurs cartes pour le calcul parallèle), le parallélisme pipeline (Pipeline Parallel, PP, qui alloue différentes couches du modèle à différentes cartes pour le traitement) et le parallélisme séquentiel ( Sequence Parallel, SP, différentes parties de la séquence sont traitées par différentes cartes, économisant ainsi la mémoire vidéo), l'optimisation DistributedOptimizer (similaire à DeepSpeed Zero Stage-2, répartissant les paramètres de gradient et d'optimisation sur tous les nœuds informatiques) et d'autres technologies peuvent réduire considérablement l'utilisation de la mémoire vidéo et améliorer l'utilisation du GPU. Megatron-LM exploite une communauté open source active, et de nouvelles technologies d'optimisation et conceptions fonctionnelles continuent d'être intégrées dans le cadre. Cependant, le développement basé sur Megatron-LM n'est pas simple, et le débogage et la vérification fonctionnelle sur des machines multi-cartes coûteuses sont encore plus coûteux. Megatron-LLaMA fournit d'abord un ensemble de codes de formation LLaMA basés sur le framework Megatron-LM, prend en charge des versions de modèles de différentes tailles et peut être facilement adapté pour prendre en charge diverses variantes de LLaMA, y compris la prise en charge directe du Tokenizer au format HuggingFace. Par conséquent, Megatron-LLaMA peut être facilement appliqué aux liens de formation hors ligne existants sans adaptation excessive. Dans le scénario de formation/mise au point à petite et moyenne échelle de LLaMA-7b et LLaMA-13b, Megatron-LLaMA peut facilement atteindre une utilisation matérielle (MFU) de pointe de 54 % et plus.
Optimisation du processus inverse de Megatron-LLaMA Optimisation des processus inversés DeepSpeed ZeRO est un ensemble de frameworks de formation distribués lancés par Microsoft. La technologie qui y est proposée a été cruciale pour de nombreux frameworks ultérieurs. atteindre l’impact. DeepSpeed ZeRO Stage-2 (ci-après dénommé ZeRO-2) est une technologie dans le cadre qui économise l'utilisation de la mémoire sans ajouter de charge de travail de calcul et de communication supplémentaire. Comme le montre la figure ci-dessus, en raison des exigences de calcul, chaque rang doit avoir tous les paramètres. Mais pour l’état de l’optimiseur, chaque Rang n’en est responsable que d’une partie, et il n’est pas nécessaire que tous les Rangs effectuent des opérations complètement répétées en même temps. Par conséquent, ZeRO-2 propose de diviser uniformément l'état de l'optimiseur dans chaque rang (notez qu'il n'est pas nécessaire de garantir que chaque variable est divisée de manière égale ou complètement conservée dans un certain rang). Chaque rang ne doit être utilisé que pendant le processus de formation. . Responsable de la mise à jour de l'état de l'optimiseur et des paramètres du modèle de la pièce correspondante. Dans ce paramètre, les dégradés peuvent également être divisés de cette manière. Par défaut, ZeRO-2 utilise la méthode Réduire pour agréger les gradients entre tous les rangs à l'envers, puis chaque rang n'a besoin de conserver que la partie des paramètres dont il est responsable, ce qui non seulement élimine les calculs répétés redondants, mais réduit également la mémoire. utilisation. Megatron-LM DistributedOptimizer
Le Megatron-LM natif implémente la segmentation de l'état et du gradient de type ZeRO-2 via Distributor tedOptimizer pour réduire l'utilisation de la mémoire pendant l'entraînement. Comme le montre la figure ci-dessus, DistributedOptimizer utilise l'opérateur RéduireScatter pour distribuer tous les dégradés précédemment accumulés aux différents rangs après avoir obtenu tous les dégradés agrégés par le dégradé prédéfini. Chaque Rank n'obtient qu'une partie du gradient qu'il doit traiter, puis met à jour l'état de l'optimiseur et les paramètres correspondants. Enfin, chaque rang obtient les paramètres mis à jour des autres nœuds via AllGather et obtient enfin tous les paramètres. Les résultats réels de la formation montrent que la communication du gradient et des paramètres du Megatron-LM est effectuée en série avec d'autres calculs. Pour les tâches de pré-formation à grande échelle, afin de garantir que la taille totale des données du lot reste inchangée, il est généralement impossible de le faire. ouvrir une GA plus grande. Par conséquent, la proportion de communication augmentera avec l’augmentation du nombre de machines. À l’heure actuelle, les caractéristiques de la communication série conduisent à une très faible évolutivité. Au sein de la communauté, le besoin est également criant.
Megatron-LLaMA OverlappedDistributedOptimizer
Afin de résoudre ce problème, Megatron-LLaMA améliore le DistributedOpt de l'imizer natif Megatron-LM, afin que son opérateur de communication de gradient puisse être parallélisé avec le calcul. En particulier, par rapport à la mise en œuvre de ZeRO, Megatron-LLaMA utilise une méthode de communication collective plus évolutive pour améliorer l'évolutivité grâce à une optimisation intelligente de la stratégie de partitionnement de l'optimiseur sous le principe du parallélisme.La conception principale d'OverlappedDistributedOptimizer garantit les points suivants : a) Le volume de données d'un seul opérateur de communication est suffisamment important pour utiliser pleinement la bande passante de communication. b) La quantité de données de communication requise par la nouvelle méthode de segmentation doit être égale au minimum ; volume de données de communication requis pour le parallélisme des données ; c) Pendant le processus de conversion de paramètres ou gradients complets et de paramètres ou gradients segmentés, un trop grand nombre de copies de mémoire vidéo ne peuvent pas être introduites. Plus précisément, Megatron-LLaMA améliore le mécanisme de DistributedOptimizer et propose OverlappedDistributedOptimizer, qui est utilisé pour optimiser le processus inverse en formation en combinaison avec la nouvelle méthode de segmentation. Comme le montre la figure ci-dessus, lorsque OverlappedDistributedOptimizer est initialisé, tous les paramètres seront pré-attribués au bucket auquel ils appartiennent. Les paramètres d'un Bucket sont complets. Un paramètre n'appartient qu'à un seul Bucket. Il peut y avoir plusieurs paramètres dans un Bucket. Logiquement, chaque compartiment sera continuellement divisé en P (P est le nombre de groupes parallèles de données) parties égales, et chaque rang du groupe parallèle de données est responsable de l'une d'entre elles. Bucket est placé dans une file d'attente locale (file d'attente locale des diplômés) pour garantir l'ordre des communications. Pendant la formation et le calcul, les groupes parallèles de données échangent les gradients dont ils ont besoin grâce à une communication collective dans les unités Bucket. L'implémentation de Bucket dans Megatron-LLaMA utilise autant que possible l'indexation des adresses et n'alloue de l'espace que lorsque la valeur requise change, évitant ainsi le gaspillage de mémoire vidéo. La conception ci-dessus, combinée à un grand nombre d'optimisations techniques, permet à Megatron-LLaMA d'utiliser pleinement le matériel lors d'une formation à grande échelle, obtenant une meilleure accélération que le Megatron-LM natif. Lors de la formation de 32 cartes A100 à 512 cartes A100, Megatron-LLaMA peut toujours atteindre un taux d'extension de 0,85 dans un environnement réseau mixte couramment utilisé. -Le plan futur de Megatron-Llama
Megatron-Llama est un cadre de formation communément ouvert par Tao Tian Group et Ai Orange Technology et qui fournit un support de maintenance ultérieur. Il a des applications internes largement utilisées. Alors que de plus en plus de développeurs affluent vers la communauté open source de LLaMA et apportent des expériences qui peuvent être apprises les uns des autres, je pense qu'il y aura plus de défis et d'opportunités au niveau du cadre de formation à l'avenir. Megatron-LLaMA accordera une attention particulière au développement de la communauté et travaillera avec les développeurs pour promouvoir les orientations suivantes :
Sélection de configuration optimale adaptative
Prise en charge de davantage de structures de modèles ou de modifications de conception locales
- Plus de formation de performance ultime solution sous différents environnements matérielsAdresse du projet : https://github.com/alibaba/Megatron-LLaMA
-
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!