Maison >Périphériques technologiques >IA >Prend en charge de manière transparente la communauté Hugging Face, Colossal-AI accélère facilement les grands modèles à faible coût
Les grands modèles sont devenus une tendance dans le cercle de l'IA, balayant non seulement les principales listes de performances, mais générant également de nombreuses applications intéressantes. Par exemple, Copilot, un outil de complétion automatique de suggestions de code développé par Microsoft et OpenAI, devient le meilleur assistant pour les programmeurs et améliore l'efficacité du travail.
OpenAI vient de publier DALL-E 2, un modèle d'image capable de générer du texte faux et réel, et Google a immédiatement publié Imagen En termes de grands modèles, les grandes entreprises sont également assez impressionnantes, pas pire que les classements de CV. .
Exemple de génération de texte en image "Une statue grecque trébuchée par un chat" (les deux colonnes de gauche sont Imagen, les deux colonnes de droite sont DALL·E 2) La performance magique provoquée par le augmentation des marques de modèles L'ampleur des modèles pré-entraînés a explosé ces dernières années. Cependant, la formation ou même la mise au point de grands modèles nécessitent des coûts matériels très élevés, impliquant souvent des dizaines, voire des centaines de GPU. En outre, les frameworks d'apprentissage profond existants tels que PyTorch et TensorFlow sont également difficiles à gérer efficacement de très grands modèles, et des ingénieurs système d'IA professionnels sont généralement nécessaires pour adapter et optimiser des modèles spécifiques. Plus important encore, tous les laboratoires et équipes de R&D n'ont pas la possibilité d'appeler à tout moment des clusters GPU à grande échelle pour utiliser de grands modèles, sans parler des développeurs individuels qui ne disposent que d'une seule carte graphique. Ainsi, même si le grand modèle a attiré beaucoup d’attention, les barrières élevées à l’entrée l’ont rendu « hors de portée » du public.
La principale raison de l'augmentation du coût d'utilisation des grands modèles est la limitation de la mémoire vidéo. Bien que le calcul GPU soit rapide, sa capacité mémoire est limitée et ne peut pas accueillir de gros modèles. Pour résoudre ce problème, Colossal-AI utilise un système de mémoire hétérogène pour utiliser efficacement à la fois la mémoire GPU et la mémoire CPU bon marché. Il peut entraîner jusqu'à 18 milliards de paramètres GPT sur un PC personnel avec un seul GPU, ce qui peut augmenter la capacité du modèle. dixIl réduit considérablement le seuil des tâches en aval et du déploiement d'applications telles que le réglage fin et l'inférence de grands modèles d'IA, et peut facilement s'étendre à une distribution à grande échelle. Hugging Face a fourni à la communauté du deep learning la mise en œuvre de plus de 50 000 modèles d'IA, y compris de grands modèles comme GPT et OPT, et est devenue l'une des bibliothèques d'IA les plus populaires.
Colossal-AI prend en charge de manière transparente le modèle communautaire Hugging Face, créant de grands modèles à la portée de chaque développeur. Ensuite, nous prendrons comme exemple le grand modèle OPT publié par Meta pour montrer comment utiliser Colossal-AI pour réaliser une formation à faible coût et affiner les grands modèles en ajoutant simplement quelques lignes de code.
Adresse Open source : https://github.com/hpcaitech/ColossalAI Grand modèle accéléré à faible coût OPTOPT Le nom complet du modèle OPT est Open Pretrained Transformer, qui est une grande version du benchmark GPT-3 publié par Modèle de transformateur à l'échelle Meta (Facebook) AI Lab. Par rapport à GPT-3, dont OpenAI n'a pas divulgué les poids de modèle, Meta AI a généreusement ouvert tous les codes et poids de modèle, ce qui a grandement favorisé la démocratisation des grands modèles d'IA, et chaque développeur peut développer sa personnalité sur la base de ces tâches en aval. Ensuite, nous utiliserons les poids pré-entraînés du modèle OPT fourni par Hugging Face pour affiner la modélisation du langage occasionnel. Ajout d'un fichier de configuration Pour utiliser les fonctions puissantes de Colossal-AI, les utilisateurs n'ont pas besoin de modifier la logique de formation du code. Il leur suffit d'ajouter un simple fichier de configuration pour donner au modèle les fonctions souhaitées, telles que la précision mixte, l'accumulation de gradient, formation parallèle multidimensionnelle, optimisation de la mémoire redondante, etc. Sur un GPU, en prenant comme exemple la formation hétérogène, il suffit d'ajouter les éléments de configuration pertinents au fichier de configuration. Parmi eux, tensor_placement_policy détermine notre stratégie de formation hétérogène. Ce paramètre peut être cuda, cpu et auto. Chaque stratégie présente des avantages différents :
Pour les utilisateurs généraux, il leur suffit de sélectionner la stratégie automatique, et Colossal-AI sélectionnera automatiquement et dynamiquement la meilleure stratégie hétérogène en temps réel pour maximiser l'efficacité informatique.
from colossalai.zero.shard_utils import TensorShardStrategy<br><br><br>zero = dict(model_config=dict(shard_strategy=TensorShardStrategy(),<br>tensor_placement_policy="auto"),<br>optimizer_config=dict(gpu_margin_mem_ratio=0.8)
Run Start Une fois le fichier de configuration prêt, il suffit d'insérer quelques lignes de code pour démarrer la nouvelle fonction déclarée. Tout d'abord, via une ligne de code, utilisez le fichier de configuration pour démarrer Colossal-AI. Colossal-AI initialisera automatiquement l'environnement distribué, lira la configuration appropriée, puis injectera automatiquement les fonctions de la configuration dans le modèle, l'optimiseur et d'autres composants. .
colossalai.launch_from_torch(config='./configs/colossalai_zero.py')
Ensuite, les utilisateurs peuvent définir des ensembles de données, des modèles, des optimiseurs, des fonctions de perte, etc. comme d'habitude, par exemple directement en utilisant le code natif de PyTorch. Lors de la définition du modèle, placez simplement le modèle sous ZeroInitContext et initialisez-le. Dans l'exemple, nous utilisons le modèle OPTForCausalLM et les poids pré-entraînés fournis par Hugging Face pour affiner l'ensemble de données Wikitext.
with ZeroInitContext(target_device=torch.cuda.current_device(), <br>shard_strategy=shard_strategy,<br>shard_param=True):<br>model = OPTForCausalLM.from_pretrained(<br>'facebook/opt-1.3b'<br>config=config<br>)
Ensuite, appelez simplement colossalai.initialize pour injecter uniformément les fonctions de mémoire hétérogènes définies dans le fichier de configuration dans le moteur de formation et démarrer les fonctions correspondantes.
engine, train_dataloader, eval_dataloader, lr_scheduler = colossalai.initialize(model=model,<br> optimizer=optimizer,<br> criterion=criterion,<br> train_dataloader=train_dataloader,<br> test_dataloader=eval_dataloader,<br> lr_scheduler=lr_scheduler)
L'avantage est significatif dans un seul GPU Par rapport à Microsoft DeepSpeed, Colossal-AI utilise une stratégie automatique automatisée et présente des avantages significatifs dans différentes tailles de modèle par rapport à la stratégie de déchargement ZeRO de DeepSpeed. possible. Les frameworks d'apprentissage profond traditionnels tels que PyTorch ne sont plus capables d'exécuter des modèles aussi volumineux sur un seul GPU.
Pour un entraînement parallèle utilisant 8 GPU, Colossal-AI n'a besoin que d'ajouter - nprocs 8 à la commande de démarrage pour y parvenir ! Le secret de ces améliorations significatives vient du sous-système efficace de gestion de la mémoire hétérogène de Colossal-AI, Gemini. Pour faire simple, pendant la formation du modèle, Gemini préchauffe dans les premières étapes et collecte les informations sur la consommation de mémoire dans le graphique de calcul dynamique de PyTorch ; une fois l'échauffement terminé et avant de calculer un opérateur, il utilise les enregistrements d'utilisation de la mémoire collectés. réservera le pic de mémoire requis par cet opérateur sur le périphérique informatique, et en même temps déplacera certains tenseurs de modèle de la mémoire GPU vers la mémoire CPU.
Le gestionnaire de mémoire intégré de Gemini marque chaque tenseur avec des informations d'état, notamment HOLD, COMPUTE, FREE, etc. Ensuite, sur la base de l'utilisation de la mémoire interrogée dynamiquement, il convertit de manière dynamique et continue l'état du tenseur et ajuste la position du tenseur. Par rapport à la division statique du déchargement ZeRO de DeepSpeed, Colossal-AI Gemini peut utiliser plus efficacement la mémoire GPU et la mémoire CPU pour atteindre le modèle Maximize. capacité et vitesse d’entraînement d’équilibre dans des conditions matérielles extrêmement limitées.
Pour le GPT représentatif des grands modèles, utiliser Colossal-AI sur un ordinateur portable de jeu ordinaire équipé de RTX 2060 6 Go suffit pour entraîner jusqu'à 1,5 milliard de modèles de paramètres pour un ordinateur personnel équipé de RTX3090 24 Go, il peut directement ; former 180 modèles avec des centaines de millions de paramètres ; Colossal-AI peut également montrer des améliorations significatives pour les cartes informatiques professionnelles telles que Tesla V100. Aller plus loin : une expansion parallèle pratique et efficace La technologie distribuée parallèle est un moyen important pour accélérer encore la formation des modèles. Si vous souhaitez former le modèle d'IA le plus grand et le plus avancé au monde dans les plus brefs délais, vous ne pouvez toujours pas vous en passer. expansion parallèle distribuée efficace. Compte tenu des problèmes des solutions existantes tels que les dimensions parallèles limitées, la faible efficacité, la faible polyvalence, le déploiement difficile et le manque de maintenance, Colossal-AI permet aux utilisateurs de déployer efficacement et rapidement avec seulement des modifications minimes grâce à des technologies telles que des solutions multi-fonctionnelles efficaces. parallélisme dimensionnel et parallélisme hétérogène. Par exemple, des stratégies parallèles complexes qui utilisent le parallélisme des données, le parallélisme des pipelines, le parallélisme des tenseurs à 2,5 dimensions, etc. peuvent être automatiquement mises en œuvre avec de simples déclarations. Colossal-AI n'a pas besoin de s'immiscer dans le code et de gérer manuellement la logique sous-jacente complexe comme d'autres systèmes. et les cadres.
Python<br>parallel = dict(<br>pipeline=2,<br>tensor=dict(mode='2.5d', depth = 1, size=4)<br>)
Plus précisément, pour les très gros modèles d'IA comme GPT-3, Colossal-AI n'a besoin que de la moitié des ressources informatiques pour démarrer l'entraînement par rapport à la solution NVIDIA si les mêmes ressources informatiques sont utilisées, la vitesse peut être augmentée de 11 ; %, ce qui peut réduire les coûts de formation GPT-3 de plus d'un million de dollars américains. Les solutions liées à Colossal-AI ont été mises en œuvre avec succès par des fabricants renommés dans les secteurs de la conduite autonome, du cloud computing, de la vente au détail, de la médecine, des puces et d'autres secteurs, et ont été largement saluées.
Par exemple, pour l'application de prédiction de la structure des protéines AlphaFold2, FastFold basé sur la solution d'accélération de Colossal-AI a surpassé avec succès les solutions de Google et de l'Université de Columbia, réduisant le temps de formation d'AlphaFold2 de 11 jours à 67 heures, et le coût total était de plus bas, il permet également d'augmenter la vitesse de 9,3 à 11,6 fois dans le raisonnement en séquence longue.
Colossal-AI se concentre sur la création de communautés open source, fournit des tutoriels en chinois, ouvre des communautés d'utilisateurs et des forums, effectue une communication efficace et des mises à jour itératives pour les commentaires des utilisateurs, et ajoute continuellement des applications de pointe telles que PaLM et AlphaFold. Depuis son open source naturel, Colossal-AI s'est classé à plusieurs reprises au premier rang mondial sur les listes chaudes de GitHub et Papers With Code, et a attiré l'attention au pays et à l'étranger avec de nombreux projets open source vedettes avec des dizaines de milliers d'étoiles !
Adresse du projet de portail : https://github.com/hpcaitech/ColossalAI
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!