L'entraînement distribué d'Amazon SageMaker

Entraînement distribué jusqu'à 40 % plus rapide

Amazon SageMaker offre les méthodes les plus rapides et les plus simples pour entraîner de grands modèles et ensembles de données de deep learning. En utilisant des algorithmes de partitionnement, l'entraînement distribué de SageMaker répartit automatiquement les grands modèles de deep learning et les ensembles de données d'entraînement entre les différentes instances AWS GPU beaucoup plus rapidement que la méthode de répartition manuelle. SageMaker réaliser ces gains d'efficacité grâce à deux techniques : le parallélisme de données et le parallélisme de modèle. Le parallélisme de modèle divise les modèles trop volumineux pour tenir sur un seul GPU en parties plus petites avant de les distribuer sur plusieurs GPU pour les entraîner. Le parallélisme de données divise de grands ensembles de données pour les entraîner simultanément afin d'améliorer la vitesse d'entraînement.

Les cas d'utilisation de ML, tels que la classification d'images et la synthèse vocale, ont des exigences en matière de calcul et d'ensembles de données de plus en plus grandes. Par exemple, BERT, un modèle de traitement du langage naturel dernière génération sorti en 2018, utilise 340 millions de paramètres. Désormais, les modèles de traitement du langage naturel dernière génération, tels que T5, GPT-3, Turing-NLG et Megatron, ont défini de nouveaux enregistrements de précision, mais nécessitent des dizaines voire des centaines de milliards de paramètres. L'entraînement de modèles tels que T5 ou GPT-3 sur une instance GPU unique peut prendre plusieurs jours, ce qui ralentit votre capacité à déployer en production les dernières itérations. De plus, la mise en œuvre manuelle de vos propres stratégies de parallélisme de modèle et de parallélisme de données peut nécessiter des semaines d'expérimentation.

Rien qu'avec quelques lignes de code supplémentaires, vous pouvez ajouter soit un parallélisme de données soit un parallélisme de modèle à vos scripts d'entraînement PyTorch et TensorFlow. De plus, Amazon SageMaker applique à votre place la méthode sélectionnée. SageMaker détermine également la meilleure approche pour diviser votre modèle en utilisant des algorithmes de partitionnement des graphiques pour équilibrer le calcul de chaque GPU tout en minimisant la communication entre les instances GPU. En outre, SageMaker optimise vos tâches d'entraînement distribuées grâce à des algorithmes conçus pour utiliser intégralement l'infrastructure réseau et de calcul d'AWS afin d'obtenir une efficacité de mise à l'échelle quasi-linéaire. Cela vous permet de terminer la formation plus rapidement qu'avec des implémentations manuelles.

Avantages

Parallélisme des données d'Amazon SageMaker

Réduire le temps d'entraînement

Amazon SageMaker réduit le temps d'entraînement en permettant de répartir facilement les données d'entraînement entre les GPU. Par exemple, l'entraînement de Mask R-CNN sur des instances p3dn.24xlarge s'exécute 25 % plus rapidement sur SageMaker par rapport aux solutions de parallélisme de données open source comme Horovod. La réduction du temps d'entraînement est possible car SageMaker gère les GPU qui s'exécutent en parallèle pour obtenir une synchronisation optimale.

Optimisé pour AWS

Le parallélisme des données de SageMaker fournit des algorithmes de communication qui sont conçus pour utiliser pleinement le réseau et l'infrastructure AWS afin d'obtenir une efficacité de mise à l'échelle quasi linéaire. Par exemple, BERT sur les instances p3dn.24xlarge atteint une efficacité de mise à l'échelle de 90 % en utilisant SageMaker, une amélioration de 26 % par rapport au même modèle en utilisant Horovod.

Utilisez vos API de framework existantes

SageMaker fournit des optimisations de parallélisme des données à travers les mêmes API qui sont déjà courantes pour l'entraînement distribué, de sorte que vous n'avez pas besoin d'apprendre une nouvelle bibliothèque. Pour activer le parallélisme des données, vous pouvez utiliser l'API DistributedDataParallel (DDP) pour PyTorch et l'API Horovod pour TensorFlow.

Parallélisme de modèle d'Amazon SageMaker

Partitionnement automatique et efficace des modèles

Le partitionnement manuel de grands modèles peut prendre des semaines d'efforts, même pour les équipes de science des données les plus expérimentées. Amazon SageMaker peut diviser votre modèle en quelques secondes en le profilant avec SageMaker Debugger et en trouvant la manière la plus efficace de le répartir sur plusieurs GPU.

Changements de code minimes

Amazon SageMaker nécessite de modifier moins de 10 lignes de code dans vos scripts d'entraînement TensorFlow ou PyTorch pour répartir vos modèles sur plusieurs GPU. Vous pouvez réutiliser les API existantes de TensorFlow et PyTorch pour être rapidement opérationnel.

Optimiser les ressources

Amazon SageMaker permet une utilisation maximale de vos instances GPU en fractionnant vos lots d'entraînement en micro lots plus petits. Les micro lots plus petits sont envoyés aux GPU dans un pipeline efficace pour maintenir tous les GPU actifs simultanément.

Cas d'utilisation

Cadre de délimitation autour d'un objet indiquant la détection de l'objet

Détection d'objets

Pour la détection d'objets, le temps d'entraînement des modèles est souvent un goulot d'étranglement, ce qui ralentit les équipes de science des données qui doivent attendre les résultats pendant plusieurs jours ou semaines. Par exemple, les modèles de détection d'objets de véhicules autonomes doivent s'entraîner sur des milliers de gigaoctets de données pour améliorer la perception des véhicules. Le parallélisme des données de SageMaker peut aider les équipes de science des données à fractionner efficacement les données d'entraînement et à passer rapidement à des centaines, voire des milliers de GPU, réduisant ainsi le temps d'entraînement de quelques jours à quelques minutes.  

Bulle de texte avec traduction linguistique, montrant le traitement du langage naturel

Traitement du langage naturel

Dans la compréhension du langage naturel, les scientifiques des données améliorent souvent la précision des modèles en augmentant le nombre de couches et la taille du réseau de neurones, ce qui donne des modèles comportant des milliards de paramètres tels que GPT-2, GPT-3, T5 et Megatron. La répartition des couches et des opérations de modèle sur les GPU peut prendre des semaines, mais le parallélisme de modèle de SageMaker analyse et répartit automatiquement le modèle de manière efficace pour permettre aux équipes de science des données de commencer l'entraînement de grands modèles en quelques minutes.

Icône de l'œil avec des flux de données, décrivant une aide visuelle par ordinateur

Aide visuelle par ordinateur

Dans le domaine de l'aide visuelle par ordinateur, les contraintes matérielles obligent souvent les scientifiques des données à choisir des tailles de lots ou des tailles d'entrée plus petites qu'ils ne le souhaiteraient. Par exemple, des entrées plus grandes peuvent améliorer la précision du modèle mais peuvent causer des erreurs de mémoire insuffisante et des performances médiocres avec des tailles de lots plus petites. De même, des tailles de lots plus grandes améliorent l'utilisation et les performances des GPU, mais peuvent nuire à la précision du modèle. L'entraînement distribué de SageMaker offre la possibilité d'entraîner facilement et efficacement des modèles avec des tailles de lots plus faibles ou d'entraîner avec des entrées plus grandes.

Clients

« Chez Latent Space, nous sommes en train de créer un moteur de jeu à rendu neural où chacun peut créer à la vitesse de la pensée. Poussés par les progrès de la modélisation du langage, nous travaillons à intégrer la compréhension sémantique des textes et des images pour déterminer ce qu'il faut générer. Notre objectif actuel est d'utiliser l'extraction d'informations pour améliorer l'entraînement des modèles à grande échelle, pour lequel nous disposons de pipelines de ML sophistiqués. Cette configuration présente un défi en plus de l'entraînement distribué, car plusieurs sources de données et modèles sont entraînés en même temps. C'est pourquoi nous tirons parti des nouvelles capacités d'entraînement distribué d'Amazon SageMaker afin d'adapter efficacement l'entraînement aux grands modèles génératifs. »

Sarah Jane Hong, co-fondatrice et directrice scientifique, Latent Space

turbine_logo
« Turbine est une société de découverte de médicaments par simulation qui propose aux patients des thérapies ciblées contre le cancer. Nous utilisons le machine learning pour entraîner notre modèle de cellule humaine in silico, appelé Simulated Cell (Cellule simulée), basé sur une architecture de réseau propriétaire. En prédisant avec précision diverses interventions au niveau moléculaire, Simulated Cell nous aide à découvrir de nouveaux médicaments contre le cancer et à trouver des partenaires de combinaison pour les thérapies existantes. L'entraînement de notre simulation est une chose que nous itérons continuellement, mais sur une seule machine, chaque entraînement prend des jours, ce qui entrave notre capacité d'itérer rapidement sur de nouvelles idées. Nous sommes très enthousiastes à propos de l'entraînement distribué sur Amazon SageMaker, qui devrait réduire nos temps d'entraînement de 90 % et nous aider à nous concentrer sur notre tâche principale : écrire la meilleure base de code possible pour l'entraînement du modèle de cellule. SageMaker nous permet, en fin de compte, de devenir plus efficaces dans notre mission principale : identifier et développer de nouveaux médicaments contre le cancer pour les patients. »

Kristóf Szalay, directeur technique, Turbine

Démarrer avec l'entraînement distribué d'Amazon SageMaker