Accélérer la formation des réseaux neuronaux à grande échelle sur les processeurs avec ThirdAI et AWS Graviton | Services Web Amazon

Accélérer la formation des réseaux neuronaux à grande échelle sur les processeurs avec ThirdAI et AWS Graviton | Services Web Amazon

Cet article invité est rédigé par Vihan Lakshman, Tharun Medini et Anshumali Shrivastava de ThirdAI.

L’apprentissage profond à grande échelle a récemment produit des avancées révolutionnaires dans un large éventail de domaines. Bien que ces progrès stupéfiants en matière d’intelligence artificielle restent remarquables, les coûts financiers et la consommation d’énergie nécessaires à la formation de ces modèles sont devenus un goulot d’étranglement critique en raison de la nécessité de matériel spécialisé comme les GPU. Traditionnellement, même les modèles neuronaux de taille modeste nécessitaient des accélérateurs matériels coûteux pour la formation, ce qui limite le nombre d'organisations disposant des moyens financiers nécessaires pour tirer pleinement parti de cette technologie.

Fondée en 2021, ThirdAI Corp. est une startup dédiée à la mission de démocratiser les technologies d'intelligence artificielle grâce à des innovations algorithmiques et logicielles qui changent fondamentalement l'économie du deep learning. Nous avons développé un moteur d'apprentissage profond clairsemé, connu sous le nom de BOLT, spécialement conçu pour la formation et le déploiement de modèles sur du matériel CPU standard, par opposition aux accélérateurs coûteux et énergivores comme les GPU. Beaucoup de nos clients ont a fait part d'une grande satisfaction grâce à la capacité de ThirdAI à former et à déployer des modèles d'apprentissage profond pour résoudre des problèmes commerciaux critiques sur une infrastructure CPU rentable.

Dans cet article, nous étudions le potentiel du processeur AWS Graviton3 pour accélérer la formation du réseau neuronal pour le moteur d'apprentissage en profondeur unique basé sur le processeur de ThirdAI.

Les avantages des processeurs hautes performances

Chez ThirdAI, nous réalisons ces avancées dans la formation efficace des réseaux neuronaux sur les processeurs grâce à des algorithmes dynamiques clairsemés propriétaires qui activent uniquement un sous-ensemble de neurones pour une entrée donnée (voir la figure suivante), évitant ainsi le besoin de calculs entièrement denses. Contrairement à d'autres approches de formation de réseaux neuronaux clairsemés, ThirdAI utilise hachage sensible à la localité pour sélectionner dynamiquement les neurones pour une entrée donnée, comme indiqué dans les lignes en gras ci-dessous. Dans certains cas, nous avons même constaté que nos modèles basés sur un processeur clairsemé s'entraîner plus rapidement que l'architecture dense comparable sur les GPU.

Architecture neuronale dense avec des lignes grasses indiquant quels neurones sont sélectionnés

Étant donné qu'un grand nombre de nos clients cibles opèrent dans le cloud (et parmi eux, la majorité utilise AWS), nous étions ravis d'essayer le processeur AWS Graviton3 pour voir si les améliorations impressionnantes en termes de prix et de performances de l'innovation silicium d'Amazon se traduiraient par notre charge de travail unique. de formation de réseaux neuronaux clairsemés et permettent ainsi des économies supplémentaires aux clients. Bien que la communauté des chercheurs et l'équipe AWS Graviton aient réalisé des avancées passionnantes en matière d'accélération inférence de réseau neuronal sur les instances CPU, chez ThirdAI, nous sommes, à notre connaissance, les premiers à étudier sérieusement comment entraîner efficacement des modèles neuronaux sur les CPU.

Comme le montrent nos résultats, nous avons observé une accélération significative de la formation avec AWS Graviton3 par rapport aux instances Intel et NVIDIA comparables sur plusieurs charges de travail de modélisation représentatives.

Types d'instances

Pour notre évaluation, nous avons considéré deux instances de processeur AWS comparables : une machine c6i.8xlarge alimentée par le processeur Ice Lake d'Intel et une c7g.8xlarge alimentée par AWS Graviton3. Le tableau suivant résume les détails de chaque instance.

Instance Processeur virtuel RAM (Go) Processeur Prix ​​à la demande (us-east-1)
c7g.8xlarge 32 64 AWSGraviton3 $ 1.1562 / h
c6i.8xlarge 32 64 Intel Ice Lake $ 1.36 / h
g5g.8xlarge (GPU) 32 64 avec 16 Go de mémoire GPU Processeurs AWS Graviton2 avec 1 GPU NVIDIA T4G $ 1.3720 / h

Évaluation 1 : Classement extrême

Pour notre première évaluation, nous nous concentrons sur le problème de la classification multi-étiquettes extrême (XMC), un paradigme d'apprentissage automatique (ML) de plus en plus populaire avec un certain nombre d'applications pratiques en matière de recherche et de recommandations (y compris à Amazon). Pour notre évaluation, nous nous concentrons sur le public Tâche de recommandation de produits Amazon-670K, qui, à partir d'un produit d'entrée, identifie les produits similaires à partir d'une collection de plus de 670,000 XNUMX éléments.

Dans cette expérience, nous comparons le moteur BOLT de ThirdAI à TensorFlow 2.11 et PyTorch 2.0 sur les choix matériels susmentionnés : Intel Ice Lake, AWS Graviton3 et un GPU NVIDIA T4G. Pour nos expérimentations sur Intel et AWS Graviton, nous utilisons l'AMI AWS Deep Learning (Ubuntu 18.04) version 59.0. Pour notre évaluation GPU, nous utilisons le AMI Arm64 optimisée pour le GPU NVIDIA, disponible via AWS Marketplace. Pour cette évaluation, nous utilisons le Architecture du modèle SLIDE, qui permet d'obtenir à la fois des performances compétitives sur cette tâche de classification extrême et de solides performances de formation sur les processeurs. Pour nos comparaisons TensorFlow et PyTorch, nous implémentons la version analogue de l'architecture perceptron multicouche (MLP) SLIDE avec des multiplications matricielles denses. Nous entraînons chaque modèle pendant cinq époques (passages complets dans l'ensemble de données d'entraînement) avec une taille de lot fixe de 256 et un taux d'apprentissage de 0.001. Nous avons observé que tous les modèles atteignaient la même précision de test de 33.6 %.

Le tableau suivant compare le temps de formation de BOLT de ThirdAI à TensorFlow 2.11 et PyTorch 2.0 sur le benchmark de classification extrême Amazon670k. Tous les modèles atteignent la même précision de test. Nous observons qu'AWS Graviton3 accélère considérablement les performances de BOLT dès le départ, sans aucune personnalisation nécessaire, d'environ 40 %. Le BOLT de ThirdAI sur AWS Graviton3 permet également une formation considérablement plus rapide que les modèles TensorFlow ou PyTorch formés sur le GPU. Notez qu'il n'y a pas de résultat ThirdAI sur le benchmark NVIDIA GPU car BOLT est conçu pour fonctionner sur des processeurs. Nous n'incluons pas les benchmarks CPU TensorFlow et PyTorch en raison du temps de formation prohibitif.

Graphique à barres de temps de formation Amazon 670 6 comparant les instances c8i.7xlarge et c8g.XNUMXxlarge

Le tableau suivant résume le temps de formation et la précision des tests pour chaque processeur/processeur spécialisé (GPU).

Processeur Moteur Temps de formation (s) Test de précision
Intel Ice Lake (c6i.8xlarge) BOLT 1470 33.6
AWS Graviton3 (c7g.8xlarge) BOLT 935 33.6
NVIDIA T4G (g5g.8xlarge) TensorFlow 7550 33.6
NVIDIA T4G (g5g.8xlarge) PyTorch 5130 33.6

Évaluation 2 : Analyse des sentiments de Yelp Polarity

Pour notre deuxième évaluation, nous nous concentrons sur le populaire Polarité de Yelp référence d'analyse des sentiments, qui consiste à classer un avis comme positif ou négatif. Pour cette évaluation, nous comparons les résultats de ThirdAI Transformateurs profonds universels (UDT) modèle par rapport à un modèle affiné DistilBERT network, un modèle de langage compressé pré-entraîné qui atteint des performances proches de l'état de l'art avec une latence d'inférence réduite. Étant donné que le réglage fin des modèles DistilBERT sur un processeur prendrait un temps prohibitif (au moins plusieurs jours), nous comparons les modèles basés sur le processeur de ThirdAI à ceux de DistilBERT réglés avec précision sur un GPU. Nous formons tous les modèles avec une taille de lot de 256 pour un seul passage dans les données (une époque). Nous notons que nous pouvons obtenir une précision légèrement supérieure avec BOLT avec des passages supplémentaires dans les données, mais nous nous limitons à un seul passage dans cette évaluation par souci de cohérence.

Comme le montre la figure suivante, AWS Graviton3 accélère à nouveau considérablement la formation du modèle UDT de ThirdAI. De plus, UDT est capable d'atteindre une précision de test comparable à celle de DistilBERT avec une fraction du temps de formation et sans avoir besoin d'un GPU. Nous notons qu'il y a également eu des travaux récents dans optimiser la mise au point de la polarité Yelp sur les processeurs. Cependant, nos modèles permettent toujours de réaliser des gains d'efficacité plus importants et d'éviter le coût de pré-formation, qui est important et nécessite l'utilisation d'accélérateurs matériels comme les GPU.

Temps d'entraînement sur Yelp Polarity C7g vs c6i

Le tableau suivant résume le temps de formation, la précision des tests et la latence d'inférence.

Processeur Moteur Modèle Temps de formation (s) Test de précision Latence d'inférence (ms)
Intel Icelake (c6i.8xlarge) BOLT DEHORS 47 93.2 <1
Graviton3 (c7g.8xlarge) BOLT DEHORS 29 92.9 <1
GPU T4G (g5g.8xlarge) TensorFlow DistilBERT 4200 93.3 8.7
GPU T4G (g5g.8xlarge) PyTorch DistilBERT 3780 93.4 8.3

Évaluation 3 : Classification de texte multi-classes (DBPedia)

Pour notre évaluation finale, nous nous concentrons sur le problème de la classification de texte multi-classes, qui implique l'attribution d'une étiquette à un texte d'entrée donné à partir d'un ensemble de plus de deux classes de sortie. Nous nous concentrons sur le DBPedia benchmark, qui se compose de 14 classes de sortie possibles. Encore une fois, nous constatons qu'AWS Graviton3 accélère les performances UDT par rapport à l'instance Intel comparable d'environ 40 %. Nous constatons également que BOLT obtient des résultats comparables à ceux du modèle basé sur un transformateur DistilBERT, affiné sur un GPU, tout en atteignant une latence inférieure à la milliseconde.

Temps de formation ThirdAI BOLT sur c7g vs c6i

Le tableau suivant résume le temps de formation, la précision des tests et la latence d'inférence.

Processeur Moteur Modèle Temps de formation (s) Test de précision Latence d'inférence (ms)
Intel Icelake (c6i.8xlarge) BOLT DEHORS 23 98.23 <1
Graviton3 (c7g.8xlarge) BOLT DEHORS 14 98.10 <1
GPU T4G (g5g.8xlarge) TensorFlow DistilBERT 4320 99.23 8.6
GPU T4G (g5g.8xlarge) PyTorch DistilBERT 3480 99.29 8

Démarrez avec ThirdAI sur AWS Graviton

Nous avons conçu notre logiciel BOLT pour qu'il soit compatible avec toutes les principales architectures de processeur, y compris AWS Graviton3. En fait, nous n'avons pas eu besoin de personnaliser notre code pour l'exécuter sur AWS Graviton3. Par conséquent, vous pouvez utiliser ThirdAI pour la formation et le déploiement de modèles sur AWS Graviton3 sans effort supplémentaire. De plus, comme détaillé dans notre récent livre blanc sur la recherche, nous avons développé un ensemble de nouvelles techniques mathématiques pour ajuster automatiquement les hyperparamètres spécialisés associés à nos modèles clairsemés, permettant à nos modèles de bien fonctionner immédiatement.

Nous notons également que nos modèles fonctionnent principalement bien pour les tâches de recherche, de recommandation et de traitement du langage naturel qui comportent généralement de grands espaces de sortie de grande dimension et une exigence de latence d'inférence extrêmement faible. Nous travaillons activement à l'extension de nos méthodes à des domaines supplémentaires, tels que la vision par ordinateur, mais sachez que nos améliorations d'efficacité ne se traduisent pas pour le moment dans tous les domaines du ML.

Conclusion

Dans cet article, nous avons étudié le potentiel du processeur AWS Graviton3 pour accélérer la formation du réseau neuronal pour le moteur d'apprentissage en profondeur unique basé sur le processeur de ThirdAI. Nos tests de référence en matière de recherche, de classification de texte et de recommandations suggèrent qu'AWS Graviton3 peut accélérer les charges de travail de formation de modèles de ThirdAI de 30 à 40 % par rapport aux instances x86 comparables avec une amélioration prix-performance de près de 50 %. De plus, étant donné que les instances AWS Graviton3 sont disponibles à un coût inférieur à celui des machines Intel et NVIDIA analogues et permettent des temps de formation et d'inférence plus courts, vous pouvez libérer davantage la valeur du modèle d'utilisation AWS avec paiement à l'utilisation en utilisant des solutions à moindre coût. machines pour des durées plus courtes.

Nous sommes très enthousiasmés par les économies de prix et de performances d'AWS Graviton3 et nous chercherons à transmettre ces améliorations à nos clients afin qu'ils puissent profiter d'une formation et d'une inférence ML plus rapides avec des performances améliorées sur des processeurs à faible coût. En tant que clients d'AWS nous-mêmes, nous sommes ravis de la rapidité avec laquelle AWS Graviton3 nous permet d'expérimenter nos modèles, et nous sommes impatients d'utiliser davantage d'innovations de pointe en matière de silicium d'AWS à l'avenir. Guide technique Graviton est une bonne ressource à prendre en compte lors de l'évaluation de vos charges de travail ML à exécuter sur Graviton. Vous pouvez également essayer les instances Graviton t4g essai gratuit.

Le contenu et les opinions de cet article sont ceux de l'auteur tiers et AWS n'est pas responsable du contenu ou de l'exactitude de cet article. Au moment de la rédaction de ce blog, l'instance la plus récente était c6i et la comparaison a donc été effectuée avec les instances c6i.


À propos de l’auteur

Vihan Lakshman – Vihan Lakshman est un chercheur scientifique chez ThirdAI Corp. qui se concentre sur le développement de systèmes d'apprentissage en profondeur économes en ressources. Avant ThirdAI, il a travaillé comme scientifique appliqué chez Amazon et a obtenu un diplôme de premier cycle et une maîtrise de l'Université de Stanford. Vihan est également récipiendaire d'une bourse de recherche de la National Science Foundation.

Tharun Médini – Tharun Medini est le co-fondateur et CTO de ThirdAI Corp. Il a obtenu son doctorat en « Algorithmes de hachage pour la recherche et la récupération d'informations » à l'Université Rice. Avant ThirdAI, Tharun a travaillé chez Amazon et Target. Tharun est récipiendaire de nombreux prix pour ses recherches, notamment la bourse BP du Ken Kennedy Institute, la bourse de l'American Society of Indian Engineers et une bourse d'études supérieures de l'Université Rice.

Anshumali Shrivastava – Anshumali Shrivastava est professeur agrégé au département d'informatique de l'Université Rice. Il est également le fondateur et PDG de ThirdAI Corp, une entreprise qui démocratise l'IA au profit du matériel de base grâce à des innovations logicielles. Ses vastes intérêts de recherche incluent les algorithmes probabilistes pour l’apprentissage profond économe en ressources. En 2018, Science News l'a nommé l'un des 10 meilleurs scientifiques de moins de 40 ans à surveiller. Il est récipiendaire du National Science Foundation CAREER Award, d'un Young Investigator Award de l'Air Force Office of Scientific Research, d'un prix de recherche en apprentissage automatique d'Amazon et d'un Data Science Research Award d'Adobe. Il a remporté de nombreux prix d'article, notamment les prix du meilleur article aux NIPS 2014 et MLSys 2022, ainsi que le prix du papier le plus reproductible au SIGMOD 2019. Ses travaux sur les technologies efficaces d'apprentissage automatique sur les processeurs ont été couverts par la presse populaire, notamment le Wall Street Journal, New York Times, TechCrunch, NDTV, etc.

Horodatage:

Plus de Apprentissage automatique AWS