Les paramètres des modèles d’IA ont radicalement changé au cours des dernières années. You Yang a souligné que de 2016 à janvier 2021, le nombre de paramètres du modèle d'IA a augmenté de 40 fois tous les 18 mois ; de janvier 2018 à janvier 2021, le nombre de paramètres du modèle d'IA le modèle de langage a augmenté tous les 18 mois 340 fois. En revanche, entre janvier 2016 et janvier 2021, la mémoire des GPU n’augmentera que de 1,7 fois tous les 18 mois.
On peut constater que le coût élevé de la formation et la longueur du cycle sont les problèmes les plus difficiles à surmonter lors du développement de grands modèles.
En réponse à ce problème, You Yang a proposé le système Colossal-AI, à partir des trois niveaux de système de mémoire à haute efficacité, de système parallèle à N dimensions et d'optimisation à grande échelle, afin de minimiser le mouvement des données dans les mêmes conditions d'équipement et maximiser le débit du GPU jusqu'à son point le plus élevé.
You Yang a également souligné que le nombre de paramètres du modèle à ce stade a été multiplié par 100 000, mais que le nombre de couches n'a pas beaucoup augmenté, ce qui peut signifier que le développement de l'IA aujourd'hui n'est peut-être plus un apprentissage en profondeur, mais est entré. l’ère de l’apprentissage étendu. À mesure que le modèle s'élargit, face aux tâches de formation GPU à grande échelle et à long terme, le cœur du système de formation des grands modèles sera de savoir comment mettre en œuvre le calcul parallèle GPU pour atteindre l'objectif d'un grand modèle plus rapide et plus rentable. entraînement.
Voici le contenu du discours en direct de You Yang, que Leifeng.com a édité et organisé sans changer l'intention initiale :
Opportunités et défis des grands modèles d'IA
Montrez d’abord une image. L'abscisse sur le graphique est le temps et l'ordonnée est la quantité de paramètres du modèle d'IA.
De 2016 à janvier 2021, le volume des paramètres du grand modèle IA augmentera environ 40 fois tous les 18 mois ; de janvier 2018 à janvier 2021, le volume des paramètres du modèle IA augmentera 340 fois tous les 18 mois.
En 2016, le meilleur modèle au monde à l'époque était ResNet-50, et le meilleur modèle aujourd'hui est le GPT-4. Du point de vue de l'architecture, bien qu'OpenAI n'ait pas annoncé l'architecture de GPT-4, mais par rapport au réseau neuronal à 50 couches de ResNet-50 et à l'architecture de GPT-3, qui compte moins de 100 couches, on peut dire que le nombre de couches du modèle d'IA n'a pas été produit au cours des dernières années et qu'il y a trop de changements.
De ResNet-50 à GPT-4, bien que le nombre de paramètres ait augmenté d'environ 100 000 fois, chaque couche est en réalité devenue plus large. Y compris la version LLaMA-65B, c'est aussi un réseau avec des dizaines de couches.
Nous ne sommes donc peut-être pas en train d’apprendre en profondeur, mais nous sommes entrés dans une ère d’apprentissage étendu.
On peut voir que depuis 2019, l'architecture Transformer a fondamentalement unifié la piste des modèles d'IA à grande échelle, et les modèles d'IA à grande échelle les plus efficaces actuels sont tous des architectures Transformer. Les deux lignes pointillées dans la figure ci-dessus montrent non seulement la tendance aux changements des grands paramètres du modèle, mais montrent également la tendance aux changements du GPU.
Bien que le cours de l'action de Nvidia ait augmenté à plusieurs reprises maintenant, le taux de croissance de la mémoire GPU des fabricants, dont Nvidia, est loin derrière la vitesse de développement des grands modèles.
Par rapport au taux de croissance des paramètres du modèle au cours des six dernières années, de janvier 2016 à janvier 2021, le taux de croissance informatique des GPU NVIDIA n'a augmenté que de 1,7 fois tous les 18 mois.
Prenons l'exemple de l'A100 80G pour calculer la quantité de mémoire requise pour l'entraînement GPT-3. GPT-3 possède environ 175 milliards de paramètres. Pour faciliter le calcul, prenons un nombre entier de 200 milliards, ce qui équivaut à 200 fois 10 à la 9ème puissance, et chaque précision occupe 4 octets, les paramètres occupent à eux seuls 800 Go de mémoire, et le dégradé occupe également 800 Go de mémoire. Selon la méthode d'optimisation actuelle, les informations telles que le premier moment et le deuxième moment sont stockées en 800G. En d'autres termes, si vous entraînez un gros modèle qui ne fait rien, vous avez besoin d'au moins quelques téraoctets de mémoire. Un seul GPU A100 avec seulement 80 Go de mémoire est loin d'être suffisant. De plus, plus la taille du lot des résultats intermédiaires est grande. , plus la surcharge de mémoire est importante.
C'est pourquoi, du point de vue de la mémoire, la formation de grands modèles nécessite d'abord des milliers de GPU.
Donnez un exemple quantifiable. PaLM est un modèle de 540 milliards de dollars. Selon le prix actuel du marché du cloud computing, la formation PaLM doit contracter au moins 1 000 GPU, et le coût est d'environ plus de 9 millions de dollars américains. Meta a clairement mentionné précédemment que LLaMA doit utiliser 2 000 GPU A100 et qu'il faut trois semaines pour terminer une session de formation. De ce calcul, on peut conclure que le coût d'une seule session de formation de LLaMA est de 5 millions de dollars américains.
Cependant, étant donné que l'affinement d'un grand modèle ne se limite pas à une seule session de formation, cela peut prendre au moins cinq ou six itérations d'un bon produit de grand modèle, et la première étape est constituée d'essais et d'erreurs. Par conséquent, selon l'analyse de la chaîne publique, le coût d'une seule session de formation GPT-4 est d'environ 60 millions de dollars américains et la formation prend au moins plusieurs mois. C'est pourquoi même si ChatGPT a été mis à niveau vers la dernière version, sa couche inférieure est toujours le modèle de la version de septembre 2021. En d'autres termes, de septembre 2021 à aujourd'hui, OpenAI n'a pas essentiellement amélioré ses produits.La raison fondamentale est que le coût de chaque modèle de formation est non seulement élevé, mais que le cycle de formation est également très long, d'où le coût élevé de la formation sur les grands modèles est très élevée, sérieuse.
Imaginez un problème. Aujourd'hui, il existe un grand modèle avec 1 000 milliards de paramètres et 100 milliards de paramètres. Pouvons-nous utiliser une méthode pour détecter si le grand modèle avec 1 000 milliards de paramètres est meilleur que le grand modèle avec 100 milliards de paramètres ? Autrement dit, quelle est l’ampleur de l’augmentation du nombre de paramètres du modèle ?
À l’heure actuelle, j’estime qu’il n’est pas encore possible de répondre scientifiquement à cette question. Il existe plusieurs raisons.
Tout d'abord, il y a un problème d'optimisation non convexe dans la formation des réseaux de neurones.À l'heure actuelle, la plupart des points convergents par la formation sont des solutions optimales locales plutôt que des solutions optimales globales. Par conséquent, nous devons vérifier dans quelle mesure le réseau neuronal est entraîné, ce qui ne peut être vérifié avec les ressources informatiques existantes.
La deuxième difficulté est que la formation sur un grand modèle n'entraîne souvent qu'une ou deux époques, alors que dans le modèle CNN précédent, la formation ResNet comporte 90 époques, et même la formation d'apprentissage auto-supervisée comporte 1 000 époques, de sorte que le grand modèle n'entraîne qu'une ou deux époques. La méthode équivaut à ne parcourir l'ensemble des données qu'une ou deux fois, et la convergence est encore plus insuffisante. Par conséquent, dans le cas d’un coût de formation aussi élevé, il nous est difficile de vérifier si un modèle avec 1 000 milliards de paramètres ou un modèle avec 2 000 milliards de paramètres est meilleur, car leur potentiel n’a pas été pleinement exploité par des expériences. Par conséquent, je pense que le grand modèle d'IA d'aujourd'hui est un sujet expérimental et que la manière d'améliorer efficacement l'efficacité de cette expérience et de réduire les coûts jouera un rôle fondamental dans la vulgarisation de l'ensemble de l'industrie.
Revenons à la réalité, pourquoi tout le monde recherche-t-il les grands modèles aujourd'hui ? Du point de vue de la logique mathématique, plus les paramètres du modèle sont grands, meilleur est l’effet, qui est absolu.
Dans le même temps, les coûts ont continué à augmenter. À l'heure actuelle, la formation de grands modèles nécessite des centaines, des milliers, voire des dizaines de milliers de GPU. Comment réduire davantage le coût de dizaines de milliers de GPU est un très grand défi.
Il y a 20 ans, parce qu'à l'époque il reposait sur la fréquence principale, tous les programmes étaient en série. En supposant que la vitesse du matériel soit augmentée de 10 fois, la vitesse d'exécution peut également être augmentée de 10 fois sans changer une seule ligne de code. Mais aujourd'hui, si vous souhaitez accélérer votre code 10 fois, en supposant que le matériel est déjà 10 fois plus rapide, mais si vous n'optimisez pas le code, il sera probablement plus lent à la place. La raison en est que dans le cas d'une machine plus grande, comme à l'intérieur du GPU, le mouvement des données entre la mémoire du GPU et le CPU, ou le mouvement des données entre les GPU, plus le mouvement des données mis en œuvre par le serveur, occupera la majeure partie du temps. l'ensemble du temps du système, la plupart du temps est consacré au mouvement des données et l'évolutivité du modèle deviendra médiocre.
Je pense qu'à l'avenir, un bon logiciel distribué et un mauvais logiciel distribué pourront avoir une différence de vitesse de 10 fois sur des milliers de GPU, voire 500 GPU.
**Comment fonctionne Colossal-AI ? **
Sur la base des défis ci-dessus, nous proposons un grand système de formation de modèles Colossal-AI, qui fournit des méthodes d'optimisation, réduit le coût du mouvement des données et maximise l'efficacité de l'évolutivité du modèle.
Une donnée spécifique est que l'utilisation du PyTorch le plus simple pour entraîner GPT-3 coûte 10 millions de dollars américains. Une fois Nvidia optimisé, le coût peut être réduit à 3 millions de dollars américains avec Megatron, et après avoir utilisé Colossal-AI, le coût peut être réduit. à 1,3 million de dollars. On peut voir que dans les mêmes conditions d'équipement, la minimisation du mouvement des données réduit la proportion de mouvement de données au niveau le plus bas et peut augmenter le débit du GPU au point le plus élevé.
En réponse aux problèmes ci-dessus, Colossal-AI propose trois niveaux. D'autres logiciels similaires incluent également ces trois niveaux.
La première couche consiste à optimiser la mémoire. Tout d'abord, s'assurer que l'efficacité de la mémoire d'un seul GPU et d'un seul serveur est la plus élevée. C'est la base.
Le deuxième niveau est le parallélisme à N dimensions. Lorsque nous utilisons actuellement des milliers ou des dizaines de milliers de GPU, la technologie de base est le Parallel Computing (informatique parallèle). De 1 GPU à 10 GPU, en raison de son échelle relativement petite, nous pouvons facilement obtenir une accélération de 7x ; de 10 à 100 GPU, nous pouvons n'obtenir qu'une accélération de 4x, car l'échelle parallèle devient plus grande et sa communication Le prix a disparu en haut. Et de 100 GPU à 1 000 GPU, étant donné que le coût de communication est encore plus élevé, il est probable que l’accélération ne sera que deux fois supérieure. Et en passant de 1 000 GPU à 10 000 GPU, si le logiciel fonctionne mal, non seulement il peut ne pas accélérer, mais il peut même être plus lent car l'appareil passe tout son temps dans une communication à plus haute densité.
Le deuxième est le problème d'optimisation. Je pense qu'il y a deux niveaux dans l'orientation du développement des grands modèles d'IA à l'avenir. Le premier niveau est de rendre le modèle plus intelligent et de concevoir une meilleure structure. Par exemple, de BERT à GPT, ou de ResNet à BERT, etc. Il essaie constamment de changer la structure du modèle.
De plus, il y a des améliorations dans les méthodes d'optimisation. Depuis la transition de SGD vers MOMENTUM, ADAGRAD et ADAM maintenant, il est également très important de disposer de meilleures méthodes d'optimisation qui peuvent multiplier par 10 l'efficacité à l'avenir.
Spécifique au problème parallèle de la formation pratique de grands modèles.
La première est le parallélisme des données, qui est la méthode parallèle la plus simple et la plus efficace. Le parallélisme des données signifie qu'en supposant qu'il y a 10 000 images, 1 000 images sont traitées dans chaque cycle. S'il y a 10 machines, chaque machine se voit attribuer 100 images et toutes les images peuvent être traitées en 10 cycles.
Dans le processus de parallélisme des données, il faut les résumer. Chaque machine utilise des données différentes pour obtenir différents gradients. La machine apprend différents changements sur différentes données, met à jour le gradient des paramètres et calcule enfin le gradient global. Actuellement, la méthode de sommation et la moyenne est utilisée. De cette façon, l'effet a été très bon. Auparavant, la méthode LARS de Colossal-AI en matière de parallélisme des données réduisait le temps de formation d'ImageNet d'une heure à une minute pour Google, Meta, Tencent, Sony et d'autres sociétés.
Le parallélisme des données est le plus basique et le plus stable. Après avoir divisé les données, en supposant qu'il y aura 10 000 GPU dans le futur, il est facile d'arriver que quatre ou cinq GPU tombent en panne toutes les quelques heures. Il est difficile de faire fonctionner et de maintenir un cluster de 10 000 GPU, mais la stabilité du parallélisme des données Le fait est que même si 10 000 GPU plantent une douzaine environ, le résultat général ne changera pas, car il s'agit d'une somme de gradient et d'une moyenne.
Sur la base de cette considération, je pense que le parallélisme des données est une infrastructure fondamentale.
Bien entendu, le parallélisme des données à lui seul ne suffit pas, car le parallélisme des données suppose que le modèle doit être copié sur chaque GPU ou serveur, et que le serveur ou le GPU échangera des gradients. Cependant, si le GPU ne dispose que de 80 Go de mémoire, un modèle avec des milliards de paramètres nécessite des dizaines de téraoctets de mémoire, qui ne peuvent pas être stockés dans le GPU. Il est nécessaire de découper le modèle sur différents GPU puis de résumer les résultats. Cette approche est appelée parallélisme de modèles. Il existe deux types de parallélisme de modèles : le premier est le parallélisme tensoriel, c'est-à-dire le parallélisme de modèles au sein d'une couche. Par exemple, le nombre de couches de GPT-3 est d'environ 80 ou 90 couches. Le modèle est découpé une fois pour chaque couche et le calcul dans la couche est divisé en plusieurs parties. Une fois qu'une couche est calculée, la couche suivante est calculée. , et ainsi de suite. C’est le parallélisme tensoriel.
Une autre méthode est le parallélisme pipeline (Pipeline Parallelism), un parallélisme de modèle entre le parallélisme des données et le parallélisme tensoriel. En construisant plusieurs canaux de données (pipelines), les points de données de chaque canal de données sont différents, ce qui équivaut à diviser une grande taille en plusieurs petites tailles, et le calcul du canal est effectué de cette manière. S'il y a 10 tuyaux, 10 tuyaux représentent dix ensembles de données différents, le premier tuyau calcule les données de la première couche et le deuxième tuyau calcule la deuxième couche... parallèlement de cette manière, semblable à notre bâtiment De même, 10 tuyaux d'ingénierie les équipes construisent 1 000 étages, lorsque la première équipe d'ingénieurs construit le premier étage du premier bâtiment, la deuxième équipe d'ingénieurs construit le deuxième étage du deuxième bâtiment, et ainsi de suite.
Plus il y a de bâtiments, plus le ratio entre bâtiments et équipes d'ingénierie est élevé, et plus l'efficacité est élevée, ce qui équivaut à 10 équipes d'ingénierie travaillant en même temps. Chaque équipe d'ingénierie équivaut à un GPU, chaque bâtiment équivaut à un tuyau et le nombre de couches du bâtiment est équivalent au nombre de couches du réseau neuronal, qui est la logique fondamentale du parallélisme des pipelines.
À l'heure actuelle, l'industrie a réalisé des travaux connexes : outre Colossal-AI, il existe également TensorRT de NVIDIA et DeepSpeed de Microsoft, qui sont également les deux sociétés présentant les barrières techniques les plus élevées.
Mais ce qui différencie Colossal-AI, c'est que Colossal-AI se concentre sur l'orientation du développement des grands modèles à l'avenir. On peut voir que le modèle actuel devient encore plus large, pas plus profond, et que le parallélisme tensoriel sera plus important, mais son plus gros inconvénient est que, parce qu'il coupe toute la couche, la surcharge de communication est trop importante. C'est pourquoi le PDG de Nvidia a spécifiquement expliqué le problème d'une surcharge de communication excessive lors de l'introduction du parallélisme 3D au sommet GTC pour la première fois, et cela ne peut être fait que sur un seul serveur. Par conséquent, Colossal-AI se concentre sur le parallélisme tenseur 2D et le parallélisme tenseur 2,5D, ce qui réduit le coût de calcul d'un ordre de grandeur.
Cela signifie qu'avec le parallélisme tenseur unidimensionnel, chaque machine doit traiter 9 999 machines parmi 10 000 machines, tandis que le parallélisme tenseur 2D le divise en sous-unités, et chaque machine n'a besoin de traiter que 96 machines. Sa logique fondamentale est d'utiliser une certaine synchronisation locale (synchronisation locale) pour remplacer la synchronisation globale (synchronisation globale), et davantage de communication locale pour remplacer la communication globale.Dans ce processus, la planification de la conception est la plus difficile.
Il en va de même pour le parallélisme tenseur 3D : chaque fois qu'une dimension est augmentée, sa complexité de conception augmentera d'un ordre de grandeur et la complexité de la communication finira par diminuer.
En termes d'optimisation de la mémoire, la formation actuelle des grands modèles d'IA nécessite beaucoup de mémoire. Même si vous ne faites rien, vous avez toujours besoin de quelques téraoctets de mémoire. Si vous n'effectuez pas d'intervention manuelle, une fois que vous l'utilisez , vous aurez peut-être besoin de dizaines, voire de centaines de téraoctets de mémoire.
Afin d'améliorer l'effet de prédiction du modèle, nous avons souvent besoin de données de séquence longue. L'essence du grand modèle actuel est de prédire la probabilité du mot suivant à travers la sortie d'un mot, et les données de séquence longue sont simplement nécessaire. À cet égard, Colossal-AI a également lancé Sequence Parallelism (parallélisme de séquence).
Plus précisément, après avoir coupé la séquence, vous serez confronté à un problème sérieux : lors de l'exécution du score d'attention, chaque jeton doit être évalué avec d'autres jetons dans la séquence globale, et seule une partie des jetons est sur le serveur après la division, et différents jetons le seront. être distribué sur d'autres serveurs, de sorte que chaque serveur doit gérer d'autres serveurs pour fonctionner.
C'est-à-dire qu'en supposant que 200 personnes dans la salle aient chacune pris un paquet de collations aujourd'hui, j'espère que tout le monde pourra goûter les collations des autres, et qu'il faudra au moins 200 échanges carrés pour permettre à chacun de goûter les collations des autres. des collations. Ensuite, le plus simple est : tout le monde forme un cercle, chacun passe les snacks qu'il a mangés à la personne de droite, et récupère les snacks de sa gauche, seulement n-1 fois, soit 199 passes Terminer. Réduisant ainsi le coût global de la communication.
Pour résumer, la pile technologique de base actuelle pour la formation de grands modèles d’IA est en fait le calcul parallèle, car nous devons traiter des centaines de milliers de cœurs GPU et utiliser tous les GPU en parallèle. Le parallélisme des données, le parallélisme des tenseurs, le parallélisme des pipelines et le parallélisme des séquences de données sont les modules de base du parallélisme.
En termes d'optimisation de la mémoire, nous sommes actuellement dans un environnement où il n'y a pas beaucoup de choix : le GPU Nvidia est le meilleur et nous ne semblons pas avoir d'autres meilleures solutions pour le remplacer. Mais le problème est que la mémoire du GPU Nvidia est limitée. Dans ce cas, pouvons-nous réfléchir à la façon d'utiliser la mémoire CPU et la mémoire NVMe ? L'idée de base est que si la mémoire du GPU ne peut pas être stockée, elle sera déplacée. au CPU, et si le CPU ne peut pas être stocké, il sera placé sur NVMe. En général, lors de la construction d'un bâtiment, les matières premières nécessaires ne peuvent pas être déposées sur le chantier en bas, nous les mettons donc dans l'usine d'à côté . Le cœur de sa technologie est également de minimiser le mouvement des données, c'est-à-dire de minimiser le mouvement des données entre le CPU et le GPU, et de renforcer le mouvement des données entre le CPU et le NVMe, augmentant ainsi la vitesse de débit au maximum.
Passer à l'Open Source
Colossal-AI est un logiciel open source. En même temps, nous avons également construit une plateforme commerciale. Pour les utilisateurs sans GPU, ils peuvent directement former et déployer leurs propres grands modèles sur la plateforme. Nous proposons également divers modèles tels que LLaMA, PaLM et GPT, et cela ne prend que deux ou trois jours pour finaliser un modèle le plus rapidement possible. Par rapport aux utilisateurs précédents qui pouvaient avoir besoin de semaines, voire de mois, pour gérer des infrastructures telles que le matériel et les logiciels, l'efficacité a été considérablement améliorée. Dans le même temps, Colossal-AI protège également la vie privée des utilisateurs. La plateforme ne conservera ni n'accédera aux données des utilisateurs. C'est la différence essentielle entre Colossal-AI et OpenAI ChatGPT. Lorsque nous téléchargeons des données sur Google Cloud, Google ne touche pas nos données dans de nombreux cas, mais OpenAI GPT les analysera, et les risques tels que des modèles d'IA ininterprétables et une formation incomplète sont courants. Par conséquent, à l'avenir, de nombreuses entreprises formeront leurs propres grands modèles. Ce que Colossal-AI fait, c'est maximiser la protection de la vie privée des utilisateurs tout en fournissant des outils pour la formation de grands modèles.
En termes de performances, Colossal-AI peut former un modèle 24 fois plus grand sur le même matériel, ce qui est 3 fois plus rapide que DeepSpeed. Même un serveur bas de gamme peut utiliser Colossal-AI pour terminer la formation du modèle correspondant. Par exemple, pour la formation de LLaMA-65B, l'utilisation du même code sur Colossal-AI peut obtenir directement une efficacité d'accélération d'environ 50 %.
Une analogie simple, par exemple, maintenant le grand modèle est destiné à creuser de l'or, et Nvidia vend des pelles, puis nous vendons des gants et des vêtements, et maximisons l'efficacité de l'extraction de l'or.
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
You Yang, Université nationale de Singapour : Comment l'IA haute performance peut-elle percer ?
Source : Lei FengNet
Auteur : Huang Nan
On peut constater que le coût élevé de la formation et la longueur du cycle sont les problèmes les plus difficiles à surmonter lors du développement de grands modèles.
En réponse à ce problème, You Yang a proposé le système Colossal-AI, à partir des trois niveaux de système de mémoire à haute efficacité, de système parallèle à N dimensions et d'optimisation à grande échelle, afin de minimiser le mouvement des données dans les mêmes conditions d'équipement et maximiser le débit du GPU jusqu'à son point le plus élevé.
You Yang a également souligné que le nombre de paramètres du modèle à ce stade a été multiplié par 100 000, mais que le nombre de couches n'a pas beaucoup augmenté, ce qui peut signifier que le développement de l'IA aujourd'hui n'est peut-être plus un apprentissage en profondeur, mais est entré. l’ère de l’apprentissage étendu. À mesure que le modèle s'élargit, face aux tâches de formation GPU à grande échelle et à long terme, le cœur du système de formation des grands modèles sera de savoir comment mettre en œuvre le calcul parallèle GPU pour atteindre l'objectif d'un grand modèle plus rapide et plus rentable. entraînement.
Voici le contenu du discours en direct de You Yang, que Leifeng.com a édité et organisé sans changer l'intention initiale :
Opportunités et défis des grands modèles d'IA
Montrez d’abord une image. L'abscisse sur le graphique est le temps et l'ordonnée est la quantité de paramètres du modèle d'IA.
En 2016, le meilleur modèle au monde à l'époque était ResNet-50, et le meilleur modèle aujourd'hui est le GPT-4. Du point de vue de l'architecture, bien qu'OpenAI n'ait pas annoncé l'architecture de GPT-4, mais par rapport au réseau neuronal à 50 couches de ResNet-50 et à l'architecture de GPT-3, qui compte moins de 100 couches, on peut dire que le nombre de couches du modèle d'IA n'a pas été produit au cours des dernières années et qu'il y a trop de changements.
De ResNet-50 à GPT-4, bien que le nombre de paramètres ait augmenté d'environ 100 000 fois, chaque couche est en réalité devenue plus large. Y compris la version LLaMA-65B, c'est aussi un réseau avec des dizaines de couches.
Nous ne sommes donc peut-être pas en train d’apprendre en profondeur, mais nous sommes entrés dans une ère d’apprentissage étendu.
On peut voir que depuis 2019, l'architecture Transformer a fondamentalement unifié la piste des modèles d'IA à grande échelle, et les modèles d'IA à grande échelle les plus efficaces actuels sont tous des architectures Transformer. Les deux lignes pointillées dans la figure ci-dessus montrent non seulement la tendance aux changements des grands paramètres du modèle, mais montrent également la tendance aux changements du GPU.
Bien que le cours de l'action de Nvidia ait augmenté à plusieurs reprises maintenant, le taux de croissance de la mémoire GPU des fabricants, dont Nvidia, est loin derrière la vitesse de développement des grands modèles.
Par rapport au taux de croissance des paramètres du modèle au cours des six dernières années, de janvier 2016 à janvier 2021, le taux de croissance informatique des GPU NVIDIA n'a augmenté que de 1,7 fois tous les 18 mois.
Prenons l'exemple de l'A100 80G pour calculer la quantité de mémoire requise pour l'entraînement GPT-3. GPT-3 possède environ 175 milliards de paramètres. Pour faciliter le calcul, prenons un nombre entier de 200 milliards, ce qui équivaut à 200 fois 10 à la 9ème puissance, et chaque précision occupe 4 octets, les paramètres occupent à eux seuls 800 Go de mémoire, et le dégradé occupe également 800 Go de mémoire. Selon la méthode d'optimisation actuelle, les informations telles que le premier moment et le deuxième moment sont stockées en 800G. En d'autres termes, si vous entraînez un gros modèle qui ne fait rien, vous avez besoin d'au moins quelques téraoctets de mémoire. Un seul GPU A100 avec seulement 80 Go de mémoire est loin d'être suffisant. De plus, plus la taille du lot des résultats intermédiaires est grande. , plus la surcharge de mémoire est importante.
C'est pourquoi, du point de vue de la mémoire, la formation de grands modèles nécessite d'abord des milliers de GPU.
Cependant, étant donné que l'affinement d'un grand modèle ne se limite pas à une seule session de formation, cela peut prendre au moins cinq ou six itérations d'un bon produit de grand modèle, et la première étape est constituée d'essais et d'erreurs. Par conséquent, selon l'analyse de la chaîne publique, le coût d'une seule session de formation GPT-4 est d'environ 60 millions de dollars américains et la formation prend au moins plusieurs mois. C'est pourquoi même si ChatGPT a été mis à niveau vers la dernière version, sa couche inférieure est toujours le modèle de la version de septembre 2021. En d'autres termes, de septembre 2021 à aujourd'hui, OpenAI n'a pas essentiellement amélioré ses produits.La raison fondamentale est que le coût de chaque modèle de formation est non seulement élevé, mais que le cycle de formation est également très long, d'où le coût élevé de la formation sur les grands modèles est très élevée, sérieuse.
À l’heure actuelle, j’estime qu’il n’est pas encore possible de répondre scientifiquement à cette question. Il existe plusieurs raisons.
Tout d'abord, il y a un problème d'optimisation non convexe dans la formation des réseaux de neurones.À l'heure actuelle, la plupart des points convergents par la formation sont des solutions optimales locales plutôt que des solutions optimales globales. Par conséquent, nous devons vérifier dans quelle mesure le réseau neuronal est entraîné, ce qui ne peut être vérifié avec les ressources informatiques existantes.
La deuxième difficulté est que la formation sur un grand modèle n'entraîne souvent qu'une ou deux époques, alors que dans le modèle CNN précédent, la formation ResNet comporte 90 époques, et même la formation d'apprentissage auto-supervisée comporte 1 000 époques, de sorte que le grand modèle n'entraîne qu'une ou deux époques. La méthode équivaut à ne parcourir l'ensemble des données qu'une ou deux fois, et la convergence est encore plus insuffisante. Par conséquent, dans le cas d’un coût de formation aussi élevé, il nous est difficile de vérifier si un modèle avec 1 000 milliards de paramètres ou un modèle avec 2 000 milliards de paramètres est meilleur, car leur potentiel n’a pas été pleinement exploité par des expériences. Par conséquent, je pense que le grand modèle d'IA d'aujourd'hui est un sujet expérimental et que la manière d'améliorer efficacement l'efficacité de cette expérience et de réduire les coûts jouera un rôle fondamental dans la vulgarisation de l'ensemble de l'industrie.
Revenons à la réalité, pourquoi tout le monde recherche-t-il les grands modèles aujourd'hui ? Du point de vue de la logique mathématique, plus les paramètres du modèle sont grands, meilleur est l’effet, qui est absolu.
Dans le même temps, les coûts ont continué à augmenter. À l'heure actuelle, la formation de grands modèles nécessite des centaines, des milliers, voire des dizaines de milliers de GPU. Comment réduire davantage le coût de dizaines de milliers de GPU est un très grand défi.
Il y a 20 ans, parce qu'à l'époque il reposait sur la fréquence principale, tous les programmes étaient en série. En supposant que la vitesse du matériel soit augmentée de 10 fois, la vitesse d'exécution peut également être augmentée de 10 fois sans changer une seule ligne de code. Mais aujourd'hui, si vous souhaitez accélérer votre code 10 fois, en supposant que le matériel est déjà 10 fois plus rapide, mais si vous n'optimisez pas le code, il sera probablement plus lent à la place. La raison en est que dans le cas d'une machine plus grande, comme à l'intérieur du GPU, le mouvement des données entre la mémoire du GPU et le CPU, ou le mouvement des données entre les GPU, plus le mouvement des données mis en œuvre par le serveur, occupera la majeure partie du temps. l'ensemble du temps du système, la plupart du temps est consacré au mouvement des données et l'évolutivité du modèle deviendra médiocre.
Je pense qu'à l'avenir, un bon logiciel distribué et un mauvais logiciel distribué pourront avoir une différence de vitesse de 10 fois sur des milliers de GPU, voire 500 GPU.
**Comment fonctionne Colossal-AI ? **
Sur la base des défis ci-dessus, nous proposons un grand système de formation de modèles Colossal-AI, qui fournit des méthodes d'optimisation, réduit le coût du mouvement des données et maximise l'efficacité de l'évolutivité du modèle.
Une donnée spécifique est que l'utilisation du PyTorch le plus simple pour entraîner GPT-3 coûte 10 millions de dollars américains. Une fois Nvidia optimisé, le coût peut être réduit à 3 millions de dollars américains avec Megatron, et après avoir utilisé Colossal-AI, le coût peut être réduit. à 1,3 million de dollars. On peut voir que dans les mêmes conditions d'équipement, la minimisation du mouvement des données réduit la proportion de mouvement de données au niveau le plus bas et peut augmenter le débit du GPU au point le plus élevé.
La première couche consiste à optimiser la mémoire. Tout d'abord, s'assurer que l'efficacité de la mémoire d'un seul GPU et d'un seul serveur est la plus élevée. C'est la base.
Le deuxième niveau est le parallélisme à N dimensions. Lorsque nous utilisons actuellement des milliers ou des dizaines de milliers de GPU, la technologie de base est le Parallel Computing (informatique parallèle). De 1 GPU à 10 GPU, en raison de son échelle relativement petite, nous pouvons facilement obtenir une accélération de 7x ; de 10 à 100 GPU, nous pouvons n'obtenir qu'une accélération de 4x, car l'échelle parallèle devient plus grande et sa communication Le prix a disparu en haut. Et de 100 GPU à 1 000 GPU, étant donné que le coût de communication est encore plus élevé, il est probable que l’accélération ne sera que deux fois supérieure. Et en passant de 1 000 GPU à 10 000 GPU, si le logiciel fonctionne mal, non seulement il peut ne pas accélérer, mais il peut même être plus lent car l'appareil passe tout son temps dans une communication à plus haute densité.
Le deuxième est le problème d'optimisation. Je pense qu'il y a deux niveaux dans l'orientation du développement des grands modèles d'IA à l'avenir. Le premier niveau est de rendre le modèle plus intelligent et de concevoir une meilleure structure. Par exemple, de BERT à GPT, ou de ResNet à BERT, etc. Il essaie constamment de changer la structure du modèle.
De plus, il y a des améliorations dans les méthodes d'optimisation. Depuis la transition de SGD vers MOMENTUM, ADAGRAD et ADAM maintenant, il est également très important de disposer de meilleures méthodes d'optimisation qui peuvent multiplier par 10 l'efficacité à l'avenir.
Spécifique au problème parallèle de la formation pratique de grands modèles.
La première est le parallélisme des données, qui est la méthode parallèle la plus simple et la plus efficace. Le parallélisme des données signifie qu'en supposant qu'il y a 10 000 images, 1 000 images sont traitées dans chaque cycle. S'il y a 10 machines, chaque machine se voit attribuer 100 images et toutes les images peuvent être traitées en 10 cycles.
Dans le processus de parallélisme des données, il faut les résumer. Chaque machine utilise des données différentes pour obtenir différents gradients. La machine apprend différents changements sur différentes données, met à jour le gradient des paramètres et calcule enfin le gradient global. Actuellement, la méthode de sommation et la moyenne est utilisée. De cette façon, l'effet a été très bon. Auparavant, la méthode LARS de Colossal-AI en matière de parallélisme des données réduisait le temps de formation d'ImageNet d'une heure à une minute pour Google, Meta, Tencent, Sony et d'autres sociétés.
Sur la base de cette considération, je pense que le parallélisme des données est une infrastructure fondamentale.
Bien entendu, le parallélisme des données à lui seul ne suffit pas, car le parallélisme des données suppose que le modèle doit être copié sur chaque GPU ou serveur, et que le serveur ou le GPU échangera des gradients. Cependant, si le GPU ne dispose que de 80 Go de mémoire, un modèle avec des milliards de paramètres nécessite des dizaines de téraoctets de mémoire, qui ne peuvent pas être stockés dans le GPU. Il est nécessaire de découper le modèle sur différents GPU puis de résumer les résultats. Cette approche est appelée parallélisme de modèles. Il existe deux types de parallélisme de modèles : le premier est le parallélisme tensoriel, c'est-à-dire le parallélisme de modèles au sein d'une couche. Par exemple, le nombre de couches de GPT-3 est d'environ 80 ou 90 couches. Le modèle est découpé une fois pour chaque couche et le calcul dans la couche est divisé en plusieurs parties. Une fois qu'une couche est calculée, la couche suivante est calculée. , et ainsi de suite. C’est le parallélisme tensoriel.
Plus il y a de bâtiments, plus le ratio entre bâtiments et équipes d'ingénierie est élevé, et plus l'efficacité est élevée, ce qui équivaut à 10 équipes d'ingénierie travaillant en même temps. Chaque équipe d'ingénierie équivaut à un GPU, chaque bâtiment équivaut à un tuyau et le nombre de couches du bâtiment est équivalent au nombre de couches du réseau neuronal, qui est la logique fondamentale du parallélisme des pipelines.
À l'heure actuelle, l'industrie a réalisé des travaux connexes : outre Colossal-AI, il existe également TensorRT de NVIDIA et DeepSpeed de Microsoft, qui sont également les deux sociétés présentant les barrières techniques les plus élevées.
Mais ce qui différencie Colossal-AI, c'est que Colossal-AI se concentre sur l'orientation du développement des grands modèles à l'avenir. On peut voir que le modèle actuel devient encore plus large, pas plus profond, et que le parallélisme tensoriel sera plus important, mais son plus gros inconvénient est que, parce qu'il coupe toute la couche, la surcharge de communication est trop importante. C'est pourquoi le PDG de Nvidia a spécifiquement expliqué le problème d'une surcharge de communication excessive lors de l'introduction du parallélisme 3D au sommet GTC pour la première fois, et cela ne peut être fait que sur un seul serveur. Par conséquent, Colossal-AI se concentre sur le parallélisme tenseur 2D et le parallélisme tenseur 2,5D, ce qui réduit le coût de calcul d'un ordre de grandeur.
Il en va de même pour le parallélisme tenseur 3D : chaque fois qu'une dimension est augmentée, sa complexité de conception augmentera d'un ordre de grandeur et la complexité de la communication finira par diminuer.
Afin d'améliorer l'effet de prédiction du modèle, nous avons souvent besoin de données de séquence longue. L'essence du grand modèle actuel est de prédire la probabilité du mot suivant à travers la sortie d'un mot, et les données de séquence longue sont simplement nécessaire. À cet égard, Colossal-AI a également lancé Sequence Parallelism (parallélisme de séquence).
Plus précisément, après avoir coupé la séquence, vous serez confronté à un problème sérieux : lors de l'exécution du score d'attention, chaque jeton doit être évalué avec d'autres jetons dans la séquence globale, et seule une partie des jetons est sur le serveur après la division, et différents jetons le seront. être distribué sur d'autres serveurs, de sorte que chaque serveur doit gérer d'autres serveurs pour fonctionner.
C'est-à-dire qu'en supposant que 200 personnes dans la salle aient chacune pris un paquet de collations aujourd'hui, j'espère que tout le monde pourra goûter les collations des autres, et qu'il faudra au moins 200 échanges carrés pour permettre à chacun de goûter les collations des autres. des collations. Ensuite, le plus simple est : tout le monde forme un cercle, chacun passe les snacks qu'il a mangés à la personne de droite, et récupère les snacks de sa gauche, seulement n-1 fois, soit 199 passes Terminer. Réduisant ainsi le coût global de la communication.
En termes d'optimisation de la mémoire, nous sommes actuellement dans un environnement où il n'y a pas beaucoup de choix : le GPU Nvidia est le meilleur et nous ne semblons pas avoir d'autres meilleures solutions pour le remplacer. Mais le problème est que la mémoire du GPU Nvidia est limitée. Dans ce cas, pouvons-nous réfléchir à la façon d'utiliser la mémoire CPU et la mémoire NVMe ? L'idée de base est que si la mémoire du GPU ne peut pas être stockée, elle sera déplacée. au CPU, et si le CPU ne peut pas être stocké, il sera placé sur NVMe. En général, lors de la construction d'un bâtiment, les matières premières nécessaires ne peuvent pas être déposées sur le chantier en bas, nous les mettons donc dans l'usine d'à côté . Le cœur de sa technologie est également de minimiser le mouvement des données, c'est-à-dire de minimiser le mouvement des données entre le CPU et le GPU, et de renforcer le mouvement des données entre le CPU et le NVMe, augmentant ainsi la vitesse de débit au maximum.
Passer à l'Open Source
Colossal-AI est un logiciel open source. En même temps, nous avons également construit une plateforme commerciale. Pour les utilisateurs sans GPU, ils peuvent directement former et déployer leurs propres grands modèles sur la plateforme. Nous proposons également divers modèles tels que LLaMA, PaLM et GPT, et cela ne prend que deux ou trois jours pour finaliser un modèle le plus rapidement possible. Par rapport aux utilisateurs précédents qui pouvaient avoir besoin de semaines, voire de mois, pour gérer des infrastructures telles que le matériel et les logiciels, l'efficacité a été considérablement améliorée. Dans le même temps, Colossal-AI protège également la vie privée des utilisateurs. La plateforme ne conservera ni n'accédera aux données des utilisateurs. C'est la différence essentielle entre Colossal-AI et OpenAI ChatGPT. Lorsque nous téléchargeons des données sur Google Cloud, Google ne touche pas nos données dans de nombreux cas, mais OpenAI GPT les analysera, et les risques tels que des modèles d'IA ininterprétables et une formation incomplète sont courants. Par conséquent, à l'avenir, de nombreuses entreprises formeront leurs propres grands modèles. Ce que Colossal-AI fait, c'est maximiser la protection de la vie privée des utilisateurs tout en fournissant des outils pour la formation de grands modèles.
En termes de performances, Colossal-AI peut former un modèle 24 fois plus grand sur le même matériel, ce qui est 3 fois plus rapide que DeepSpeed. Même un serveur bas de gamme peut utiliser Colossal-AI pour terminer la formation du modèle correspondant. Par exemple, pour la formation de LLaMA-65B, l'utilisation du même code sur Colossal-AI peut obtenir directement une efficacité d'accélération d'environ 50 %.
Une analogie simple, par exemple, maintenant le grand modèle est destiné à creuser de l'or, et Nvidia vend des pelles, puis nous vendons des gants et des vêtements, et maximisons l'efficacité de l'extraction de l'or.