Aujourd'hui, nous sommes heureux d'annoncer l'aperçu de Profileur Amazon SageMaker, une capacité de Amazon Sage Maker qui fournit une vue détaillée des ressources de calcul AWS fournies lors de la formation des modèles d'apprentissage en profondeur sur SageMaker. Avec SageMaker Profiler, vous pouvez suivre toutes les activités sur les CPU et les GPU, telles que les utilisations des CPU et des GPU, les exécutions du noyau sur les GPU, les lancements du noyau sur les CPU, les opérations de synchronisation, les opérations de mémoire sur les GPU, les latences entre les lancements du noyau et les exécutions correspondantes, et le transfert de données. entre les CPU et les GPU. Dans cet article, nous vous présentons les capacités de SageMaker Profiler.
SageMaker Profiler fournit des modules Python pour annoter les scripts de formation PyTorch ou TensorFlow et activer SageMaker Profiler. Il propose également une interface utilisateur (UI) qui visualise le profil, un résumé statistique des événements profilés et la chronologie d'une tâche de formation pour suivre et comprendre la relation temporelle des événements entre les GPU et les CPU.
La nécessité de profiler les emplois de formation
Avec l'essor du deep learning (DL), le machine learning (ML) est devenu gourmand en calcul et en données, nécessitant généralement des clusters multi-nœuds et multi-GPU. À mesure que la taille des modèles de pointe augmente de l’ordre de milliards de paramètres, leur complexité de calcul et leur coût augmentent également rapidement. Les praticiens du ML doivent faire face aux défis courants d’une utilisation efficace des ressources lors de la formation de modèles aussi volumineux. Cela est particulièrement évident dans les grands modèles de langage (LLM), qui comportent généralement des milliards de paramètres et nécessitent donc de grands clusters GPU multi-nœuds afin de les entraîner efficacement.
Lors de la formation de ces modèles sur de grands clusters de calcul, nous pouvons rencontrer des problèmes d'optimisation des ressources de calcul tels que des goulots d'étranglement d'E/S, des latences de lancement du noyau, des limites de mémoire et une faible utilisation des ressources. Si la configuration des tâches de formation n'est pas optimisée, ces défis peuvent entraîner une utilisation inefficace du matériel et des durées de formation plus longues ou des sessions de formation incomplètes, ce qui augmente les coûts globaux et les délais du projet.
Pré-requis
Voici les conditions préalables pour commencer à utiliser SageMaker Profiler :
- Un domaine SageMaker dans votre compte AWS – Pour obtenir des instructions sur la configuration d'un domaine, voir Intégration au domaine Amazon SageMaker à l'aide d'une configuration rapide. Vous devez également ajouter des profils d'utilisateur de domaine pour que les utilisateurs individuels puissent accéder à l'application SageMaker Profiler UI. Pour plus d'informations, voir Ajouter et supprimer des profils utilisateur de domaine SageMaker.
- Permissions – La liste suivante constitue l'ensemble minimum d'autorisations qui doivent être attribuées au rôle d'exécution pour utiliser l'application SageMaker Profiler UI :
sagemaker:CreateApp
sagemaker:DeleteApp
sagemaker:DescribeTrainingJob
sagemaker:SearchTrainingJobs
s3:GetObject
s3:ListBucket
Préparer et exécuter une tâche de formation avec SageMaker Profiler
Pour commencer à capturer les exécutions du noyau sur les GPU pendant l'exécution de la tâche de formation, modifiez votre script de formation à l'aide des modules Python de SageMaker Profiler. Importez la bibliothèque et ajoutez le start_profiling()
et les stop_profiling()
méthodes pour définir le début et la fin du profilage. Vous pouvez également utiliser des annotations personnalisées facultatives pour ajouter des marqueurs dans le script de formation afin de visualiser les activités matérielles lors d'opérations particulières à chaque étape.
Vous pouvez adopter deux approches pour profiler vos scripts de formation avec SageMaker Profiler. La première approche est basée sur le profilage de fonctions complètes ; la deuxième approche est basée sur le profilage de lignes de code spécifiques dans les fonctions.
Pour profiler par fonctions, utilisez le gestionnaire de contexte smppy.annotate
pour annoter des fonctions complètes. L'exemple de script suivant montre comment implémenter le gestionnaire de contexte pour encapsuler la boucle de formation et les fonctions complètes à chaque itération :
Vous pouvez également utiliser smppy.annotation_begin()
et les smppy.annotation_end()
pour annoter des lignes de code spécifiques dans les fonctions. Pour plus d'informations, reportez-vous à Documentation.
Configurer le lanceur de tâches de formation SageMaker
Une fois que vous avez fini d'annoter et de configurer les modules d'initiation du profileur, enregistrez le script de formation et préparez l'estimateur du framework SageMaker pour la formation à l'aide du SDK SageMaker Python.
- Mettre en place un
profiler_config
objet en utilisant leProfilerConfig
et lesProfiler
modules comme suit : - Créez un estimateur SageMaker avec le
profiler_config
objet créé à l’étape précédente. Le code suivant montre un exemple de création d'un estimateur PyTorch :
Si vous souhaitez créer un estimateur TensorFlow, importez sagemaker.tensorflow.TensorFlow
à la place, et spécifiez l'une des versions de TensorFlow prises en charge par SageMaker Profiler. Pour plus d'informations sur les frameworks et les types d'instances pris en charge, consultez Cadres pris en charge.
- Démarrez la tâche d'entraînement en exécutant la méthode fit :
Lancez l'interface utilisateur de SageMaker Profiler
Une fois la tâche de formation terminée, vous pouvez lancer l'interface utilisateur de SageMaker Profiler pour visualiser et explorer le profil de la tâche de formation. Vous pouvez accéder à l'application SageMaker Profiler UI via la page d'accueil de SageMaker Profiler sur la console SageMaker ou via le domaine SageMaker.
Pour lancer l'application SageMaker Profiler UI sur la console SageMaker, procédez comme suit :
- Sur la console SageMaker, choisissez Profiler dans le volet de navigation.
- Sous Commencez, sélectionnez le domaine dans lequel vous souhaitez lancer l'application SageMaker Profiler UI.
Si votre profil utilisateur n'appartient qu'à un seul domaine, vous ne verrez pas l'option de sélection d'un domaine.
- Sélectionnez le profil utilisateur pour lequel vous souhaitez lancer l'application SageMaker Profiler UI.
S'il n'y a pas de profil utilisateur dans le domaine, choisissez Créer un profil utilisateur. Pour plus d'informations sur la création d'un nouveau profil utilisateur, voir Ajouter et supprimer des profils utilisateur.
- Selectionnez Ouvrir le profileur.
Vous pouvez aussi vous lancez l'interface utilisateur de SageMaker Profiler à partir de la page de détails du domaine.
Obtenez des informations grâce au profileur SageMaker
Lorsque vous ouvrez l'interface utilisateur de SageMaker Profiler, le Sélectionner et charger un profil La page s'ouvre, comme indiqué dans la capture d'écran suivante.
Vous pouvez afficher une liste de toutes les tâches de formation qui ont été soumises à SageMaker Profiler et rechercher une tâche de formation particulière par son nom, son heure de création et son statut d'exécution (En cours, Terminé, Échec, Arrêté ou Arrêt). Pour charger un profil, sélectionnez l'emploi de formation que vous souhaitez consulter et choisissez Charge. Le nom du travail doit apparaître dans le Profil chargé section en haut.
Choisissez le nom du travail pour générer le tableau de bord et la chronologie. Notez que lorsque vous choisissez le travail, l'interface utilisateur ouvre automatiquement le tableau de bord. Vous pouvez charger et visualiser un profil à la fois. Pour charger un autre profil, vous devez d'abord décharger le profil précédemment chargé. Pour décharger un profil, choisissez l'icône de la corbeille dans le Profil chargé .
Pour cet article, nous consultons le profil d'un ALBEF travail de formation sur deux instances ml.p4d.24xlarge.
Une fois le chargement et la sélection de la tâche de formation terminés, l'interface utilisateur ouvre le Tableau de bord page, comme illustré dans la capture d'écran suivante.
Vous pouvez voir les tracés des métriques clés, à savoir la durée d'activité du GPU, l'utilisation du GPU au fil du temps, la durée d'activité du CPU et l'utilisation du CPU au fil du temps. Le graphique circulaire du temps d'activité du GPU montre le pourcentage de temps d'activité du GPU par rapport au temps d'inactivité du GPU, ce qui nous permet de vérifier si les GPU sont plus actifs qu'inactifs tout au long de la tâche de formation.. Le graphique chronologique de l'utilisation du GPU au fil du temps montre le taux d'utilisation moyen du GPU au fil du temps par nœud, en regroupant tous les nœuds dans un seul graphique. Vous pouvez vérifier si les GPU ont une charge de travail déséquilibrée, des problèmes de sous-utilisation, des goulots d'étranglement ou des problèmes d'inactivité pendant certains intervalles de temps.. Pour plus de détails sur l'interprétation de ces métriques, reportez-vous à Documentation.
Le tableau de bord vous fournit des graphiques supplémentaires, notamment le temps passé par tous les noyaux GPU, le temps passé par les 15 principaux noyaux GPU, le nombre de lancements de tous les noyaux GPU et le nombre de lancements des 15 principaux noyaux GPU, comme indiqué dans la capture d'écran suivante.
Enfin, le tableau de bord vous permet de visualiser des métriques supplémentaires, telles que la distribution du temps d'étape, qui est un histogramme qui montre la répartition des durées d'étape sur les GPU, et le diagramme circulaire de distribution de précision du noyau, qui montre le pourcentage de temps passé à exécuter les noyaux. dans différents types de données tels que FP32, FP16, INT32 et INT8.
Vous pouvez également obtenir un diagramme circulaire sur la répartition des activités du GPU qui montre le pourcentage de temps consacré aux activités du GPU, telles que l'exécution des noyaux, la mémoire (memcpy
et les memset
) et la synchronisation (sync
). Vous pouvez visualiser le pourcentage de temps consacré aux opérations de mémoire GPU à partir du diagramme circulaire de répartition des opérations de mémoire GPU.
Vous pouvez également créer vos propres histogrammes basés sur une métrique personnalisée que vous avez annotée manuellement comme décrit plus haut dans cet article. Lorsque vous ajoutez une annotation personnalisée à un nouvel histogramme, sélectionnez ou saisissez le nom de l'annotation que vous avez ajoutée dans le script de formation.
Interface de chronologie
L'interface utilisateur de SageMaker Profiler comprend également une interface chronologique, qui vous fournit une vue détaillée des ressources de calcul au niveau des opérations et des noyaux planifiés sur les processeurs et exécutés sur les GPU. La chronologie est organisée sous forme d'arborescence, vous donnant des informations du niveau de l'hôte au niveau de l'appareil, comme le montre la capture d'écran suivante.
Pour chaque processeur, vous pouvez suivre les compteurs de performances du processeur, tels que clk_unhalted_ref.tsc
et les itlb_misses.miss_causes_a_walk
. Pour chaque GPU sur l'instance 2x p4d.24xlarge, vous pouvez voir une chronologie d'hôte et une chronologie de périphérique. Les lancements du noyau se trouvent sur la chronologie de l'hôte et les exécutions du noyau se trouvent sur la chronologie du périphérique.
Vous pouvez également zoomer sur les différentes étapes. Dans la capture d'écran suivante, nous avons zoomé sur l'étape_41. La bande de chronologie sélectionnée dans la capture d'écran suivante est la AllReduce
opération, une étape essentielle de communication et de synchronisation dans la formation distribuée, exécutée sur GPU-0. Dans la capture d'écran, notez que le lancement du noyau dans l'hôte GPU-0 se connecte au noyau exécuté dans le flux de périphérique GPU-0 1, indiqué par la flèche en cyan.
Disponibilité et considérations
SageMaker Profiler est disponible dans PyTorch (versions 2.0.0 et 1.13.1) et TensorFlow (versions 2.12.0 et 2.11.1). Le tableau suivant fournit les liens vers les versions prises en charge Conteneurs AWS Deep Learning pour SageMaker.
Framework | Version | URI de l'image DLC AWS |
PyTorch | 2.0.0 | 763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:2.0.0-gpu-py310-cu118-ubuntu20.04-sagemaker |
PyTorch | 1.13.1 | 763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:1.13.1-gpu-py39-cu117-ubuntu20.04-sagemaker |
TensorFlow | 2.12.0 | 763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.12.0-gpu-py310-cu118-ubuntu20.04-sagemaker |
TensorFlow | 2.11.1 | 763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.11.1-gpu-py39-cu112-ubuntu20.04-sagemaker |
SageMaker Profiler est actuellement disponible dans les régions suivantes : USA Est (Ohio, Virginie du Nord), USA Ouest (Oregon) et Europe (Francfort, Irlande).
SageMaker Profiler est disponible dans les types d'instances de formation ml.p4d.24xlarge, ml.p3dn.24xlarge et ml.g4dn.12xlarge.
Pour la liste complète des frameworks et versions pris en charge, reportez-vous à Documentation.
SageMaker Profiler encourt des frais après la fin de l'offre gratuite SageMaker ou de la période d'essai gratuite de la fonctionnalité. Pour plus d'informations, voir Tarification d'Amazon SageMaker.
Performances du profileur SageMaker
Nous avons comparé la surcharge de SageMaker Profiler à celle de divers profileurs open source. La référence utilisée pour la comparaison a été obtenue en exécutant la tâche de formation sans profileur.
Notre principale conclusion a révélé que SageMaker Profiler entraînait généralement une durée de formation facturable plus courte, car il impliquait moins de temps système sur les exécutions de formation de bout en bout. Il a également généré moins de données de profilage (jusqu'à 10 fois moins) par rapport aux alternatives open source. Les artefacts de profilage plus petits générés par SageMaker Profiler nécessitent moins de stockage, ce qui permet également de réaliser des économies.
Conclusion
SageMaker Profiler vous permet d'obtenir des informations détaillées sur l'utilisation des ressources de calcul lors de la formation de vos modèles d'apprentissage en profondeur. Cela peut vous permettre de résoudre les points chauds et les goulots d'étranglement de performances pour garantir une utilisation efficace des ressources qui, à terme, réduirait les coûts de formation et réduirait la durée globale de la formation.
Pour démarrer avec SageMaker Profiler, reportez-vous à Documentation.
À propos des auteurs
Roy Allela est architecte principal de solutions spécialisées en IA/ML chez AWS basé à Munich, en Allemagne. Roy aide les clients AWS, des petites startups aux grandes entreprises, à former et à déployer efficacement de grands modèles de langage sur AWS. Roy est passionné par les problèmes d'optimisation informatique et l'amélioration des performances des charges de travail d'IA.
Sushant Lune est Data Scientist chez AWS, Inde, spécialisé dans le guidage des clients dans leurs efforts d'IA/ML. Fort d'une expérience diversifiée couvrant les domaines de la vente au détail, de la finance et de l'assurance, il propose des solutions innovantes et sur mesure. Au-delà de sa vie professionnelle, Sushant trouve son rajeunissement dans la natation et s'inspire de ses voyages dans divers endroits.
Diksha Sharma est un architecte de solutions spécialisées en IA/ML au sein de l’organisation spécialisée mondiale. Elle travaille avec des clients du secteur public pour les aider à concevoir des applications d'apprentissage automatique efficaces, sécurisées et évolutives, notamment des solutions d'IA générative sur AWS. Dans ses temps libres, Diksha aime lire, peindre et passer du temps avec sa famille.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoData.Network Ai générative verticale. Autonomisez-vous. Accéder ici.
- PlatoAiStream. Intelligence Web3. Connaissance Amplifiée. Accéder ici.
- PlatonESG. Automobile / VE, Carbone, Technologie propre, Énergie, Environnement, Solaire, La gestion des déchets. Accéder ici.
- PlatoHealth. Veille biotechnologique et essais cliniques. Accéder ici.
- GraphiquePrime. Élevez votre jeu de trading avec ChartPrime. Accéder ici.
- Décalages de bloc. Modernisation de la propriété des compensations environnementales. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/announcing-the-preview-of-amazon-sagemaker-profiler-track-and-visualize-detailed-hardware-performance-data-for-your-model-training-workloads/
- :possède
- :est
- :ne pas
- $UP
- 1
- 10
- 100
- 11
- 12
- 125
- 13
- 15%
- 17
- 20
- 7
- 9
- a
- A Propos
- accès
- à travers
- activation
- infection
- d'activités
- activité
- ajouter
- ajoutée
- ajoutant
- Supplémentaire
- Après
- à opposer à
- agréger
- AI
- AI / ML
- Tous
- aussi
- des alternatives
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- an
- et les
- Annoncer
- Annoncer
- Une autre
- tous
- apparaître
- Application
- applications
- une approche
- approches
- SONT
- AS
- attribué
- At
- automatiquement
- disponibles
- moyen
- AWS
- fond
- basé
- Baseline
- BE
- car
- devenez
- était
- Début
- appartient
- jusqu'à XNUMX fois
- Au-delà
- milliards
- BIN
- by
- CAN
- capacités
- aptitude
- Capturer
- certaines
- globaux
- des charges
- Graphique
- vérifier
- Selectionnez
- code
- Commun
- Communication
- par rapport
- Comparaison
- complet
- Complété
- complexité
- calcul
- configuration
- connecte
- Console
- Conteneurs
- contexte
- Correspondant
- Prix
- Costs
- services
- engendrent
- créée
- La création
- création
- Lecture
- Customiser
- Clients
- cyan
- tableau de bord
- données
- Data Scientist
- profond
- l'apprentissage en profondeur
- Vous permet de définir
- offre
- déployer
- décrit
- détaillé
- détails
- dispositif
- différent
- distribué
- formation distribuée
- distribution
- plusieurs
- domaine
- domaines
- fait
- down
- motivation
- durée
- pendant
- chacun
- Plus tôt
- Est
- efficace
- efficacement
- permettre
- permet
- fin
- end-to-end
- efforts
- se termine
- assurer
- Entrer
- Tout
- entrée
- époque
- époques
- essential
- Europe
- événements
- évident
- exemple
- exécution
- explorez
- Échoué
- famille
- Fonctionnalité
- finance
- trouver
- trouve
- finition
- Prénom
- s'adapter
- Abonnement
- suit
- Pour
- Avant
- Framework
- cadres
- gratuitement ici
- essai gratuit
- De
- plein
- fonctions
- généralement
- générer
- généré
- génératif
- IA générative
- Allemagne
- obtenez
- Don
- GPU
- GPU
- graphique
- Croître
- ait eu
- Matériel
- Vous avez
- he
- vous aider
- aide
- ici
- sa
- hôte
- Comment
- How To
- HTML
- http
- HTTPS
- i
- ICON
- Idle
- if
- image
- Mettre en oeuvre
- importer
- l'amélioration de
- in
- inclut
- Y compris
- Améliore
- Inde
- indiqué
- individuel
- inefficace
- d'information
- technologie innovante
- entrées
- idées.
- Inspiration
- instance
- plutôt ;
- Des instructions
- Assurance
- Interfaces
- développement
- Irlande
- vous aider à faire face aux problèmes qui vous perturbent
- IT
- itération
- SES
- Emploi
- Emplois
- jpg
- ACTIVITES
- Etiquettes
- atterrissage
- langue
- gros
- lancer
- lance
- apprentissage
- moins
- Niveau
- Bibliothèque
- VIE
- limites
- lignes
- Gauche
- Liste
- charge
- chargement
- plus long
- perte
- aime
- Faible
- click
- machine learning
- manager
- manuellement
- Mémoire
- méthode
- méthodes
- métrique
- Métrique
- minimum
- ML
- modèle
- numériques jumeaux (digital twin models)
- modifier
- Modules
- PLUS
- must
- prénom
- à savoir
- Navigation
- Besoin
- Nouveauté
- aucune
- nœud
- nœuds
- objet
- obtenir
- obtenu
- of
- Offres Speciales
- Ohio
- on
- ONE
- uniquement
- ouvert
- open source
- ouvre
- opération
- Opérations
- à mettre en œuvre pour gérer une entreprise rentable. Ce guide est basé sur trois décennies d'expérience
- optimisé
- Option
- or
- de commander
- Oregon
- organisation
- Organisé
- plus de
- global
- propre
- page
- pain
- paramètres
- particulier
- particulièrement
- passionné
- /
- pourcentage
- performant
- période
- autorisations
- Platon
- Intelligence des données Platon
- PlatonDonnées
- heureux
- Point
- Post
- La précision
- Préparer
- conditions préalables
- Aperçu
- précédent
- précédemment
- d'ouvrabilité
- professionels
- Profil
- Profils
- profilage
- Progrès
- Projet
- fournit
- public
- Python
- pytorch
- Rapide
- rapidement
- Tarif
- Lire
- réduire
- régions
- rajeunissement
- relation amoureuse
- supprimez
- exigent
- ressource
- Resources
- résultat
- détail
- Révélé
- Augmenter
- Rôle
- roy
- Courir
- pour le running
- fonctionne
- sagemaker
- Épargnez
- économie
- évolutive
- prévu
- Scientifique
- scripts
- Sdk
- Rechercher
- Deuxièmement
- Section
- secteur
- sécurisé
- sur le lien
- Cherche
- choisi
- la sélection
- supérieur
- Services
- set
- mise
- elle
- devrait
- montré
- Spectacles
- unique
- Taille
- petit
- faibles
- Solutions
- Identifier
- enjambant
- spécialiste
- spécialisation
- groupe de neurones
- passer
- dépensé
- Commencer
- j'ai commencé
- Startups
- state-of-the-art
- statistique
- Statut
- étapes
- Étapes
- arrêté
- arrêt
- storage
- courant
- structure
- soumis
- tel
- RÉSUMÉ
- Appareils
- synchronisation
- table
- Prenez
- tensorflow
- que
- qui
- Le
- leur
- Les
- Là.
- ainsi
- donc
- Ces
- this
- Avec
- tout au long de
- étage
- fiable
- calendrier
- échéanciers
- fois
- à
- top
- suivre
- Tracking
- Train
- Formation
- transférer
- voyage
- arbre
- procès
- trillions
- deux
- types
- typiquement
- ui
- En fin de compte
- compréhension
- us
- utilisé
- d'utiliser
- Utilisateur
- Interface utilisateur
- utilisateurs
- en utilisant
- divers
- version
- versions
- Voir
- Virginie
- vs
- souhaitez
- était
- we
- web
- services Web
- Ouest
- quand
- qui
- tout en
- sera
- comprenant
- sans
- vos contrats
- partout dans le monde
- pourra
- envelopper
- Vous n'avez
- Votre
- zéphyrnet
- zoom