Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab

Récemment, l' Amazon SageMakerStudio a lancé un moyen simple d'exécuter des blocs-notes sous forme de tâches par lots pouvant s'exécuter selon un calendrier récurrent. Laboratoire Amazon SageMaker Studio prend également en charge cette fonctionnalité, vous permettant d'exécuter les blocs-notes que vous développez dans SageMaker Studio Lab dans votre compte AWS. Cela vous permet de faire évoluer rapidement vos expériences de machine learning (ML) avec des ensembles de données plus volumineux et des instances plus puissantes, sans avoir à apprendre quoi que ce soit de nouveau ou à modifier une seule ligne de code.

Dans cet article, nous vous expliquons la condition préalable unique pour connecter votre environnement Studio Lab à un compte AWS. Après cela, nous vous guiderons à travers les étapes pour exécuter des notebooks en tant que tâche par lots à partir de Studio Lab.

Vue d'ensemble de la solution

Studio Lab a incorporé la même extension que Studio, qui est basée sur l'extension open source Jupyter pour cahiers programmés. Cette extension comporte des paramètres supplémentaires spécifiques à AWS, comme le type de calcul. Dans Studio Lab, un bloc-notes planifié est d'abord copié dans un Service de stockage simple Amazon (Amazon S3) dans votre compte AWS, puis exécutez-le à l'heure planifiée avec le type de calcul sélectionné. Une fois la tâche terminée, la sortie est écrite dans un compartiment S3 et le calcul AWS est complètement arrêté, évitant ainsi les coûts récurrents.

Pré-requis

Pour utiliser les tâches du notebook Studio Lab, vous avez besoin d'un accès administratif au compte AWS auquel vous allez vous connecter (ou de l'aide d'une personne disposant de cet accès). Dans la suite de cet article, nous supposons que vous êtes l'administrateur AWS. Si ce n'est pas le cas, demandez à votre administrateur ou propriétaire de compte de revoir ces étapes avec vous.

Créer un rôle d'exécution SageMaker

Nous devons nous assurer que le compte AWS dispose d'un Gestion des identités et des accès AWS (IAM) Rôle d'exécution de SageMaker. Ce rôle est utilisé par les ressources SageMaker au sein du compte et permet d'accéder depuis SageMaker à d'autres ressources du compte AWS. Dans notre cas, nos tâches de notebook s'exécutent avec ces autorisations. Si SageMaker a déjà été utilisé dans ce compte, un rôle peut déjà exister, mais il ne dispose peut-être pas de toutes les autorisations requises. Alors allons-y et créons-en un nouveau.

Les étapes suivantes ne doivent être effectuées qu'une seule fois, quel que soit le nombre d'environnements SageMaker Studio Lab qui accéderont à ce compte AWS.

  1. Sur la console IAM, choisissez Rôles dans le volet de navigation.
  2. Selectionnez Créer un rôle.
  3. Pour Type d'entité de confiance, sélectionnez Service AWS.
  4. Pour Cas d'utilisation pour d'autres services AWS, choisissez SageMaker.
  5. Sélectionnez SageMaker – Exécution.
  6. Selectionnez Suivant.
  7. Vérifiez les autorisations, puis choisissez Suivant.Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  8. Pour Nom de rôle, saisissez un nom (pour ce post, nous utilisons sagemaker-execution-role-notebook-jobs).
  9. Selectionnez Créer un rôle.
  10. Notez l’ARN du rôle.

L'ARN du rôle sera au format : arn:aws:iam::[account-number]:role/service-role/[role-name] et est requis dans la configuration de Studio Lab.

Créer un utilisateur IAM

Pour qu'un environnement Studio Lab puisse accéder à AWS, nous devons créer un utilisateur IAM dans AWS et lui accorder les autorisations nécessaires. Nous devons ensuite créer un ensemble de clés d'accès pour cet utilisateur et les fournir à l'environnement Studio Lab.

Cette étape doit être répétée pour chaque environnement SageMaker Studio Lab qui accédera à ce compte AWS.

Notez que les administrateurs et les propriétaires de comptes AWS doivent veiller à ce que, dans la mesure du possible, des pratiques de sécurité bien architecturées soient suivies. Par exemple, les autorisations des utilisateurs doivent toujours être limitées et les clés d'accès doivent être alternées régulièrement pour minimiser l'impact d'une compromission des informations d'identification.

Dans ce blog, nous montrons comment utiliser le AmazonSageMakerFullAccess politique gérée. Cette politique fournit un large accès à Amazon SageMaker qui peut aller au-delà de ce qui est requis. Détails sur AmazonSageMakerFullAccess peut être trouvé ici.

Bien que Studio Lab utilise la sécurité d'entreprise, il convient de noter que les informations d'identification utilisateur de Studio Lab ne font pas partie de votre compte AWS et ne sont donc, par exemple, pas soumises à votre mot de passe AWS ou à vos politiques MFA.

Pour limiter autant que possible les autorisations, nous créons un profil utilisateur spécifiquement pour cet accès.

  1. Sur la console IAM, choisissez Utilisateurs dans le volet de navigation.
  2. Selectionnez Ajouter des utilisateurs.
  3. Pour nom d'utilisateur, saisissez un nom. Il est recommandé d'utiliser un nom lié à une personne individuelle qui utilisera ce compte ; cela est utile lors de l'examen des journaux d'audit.
  4. Pour Sélectionnez le type d'accès AWS, sélectionnez Clé d'accès – Accès par programmation.
  5. Selectionnez Suivant: Autorisations.Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  6. Selectionnez Joindre directement les politiques existantes.
  7. Rechercher et sélectionner AmazonSageMakerFullAccess.Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  8. Rechercher et sélectionner AmazonEventBridgeFullAccess.Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  9. Selectionnez Suivant: Tags.
  10. Selectionnez Suivant: Examen.
  11. Confirmez vos politiques, puis choisissez Créer un utilisateur.Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.La dernière page du processus de création d'utilisateur devrait vous montrer les clés d'accès de l'utilisateur. Laissez cet onglet ouvert, car nous ne pouvons pas revenir ici et nous avons besoin de ces détails.
  12. Ouvrez un nouvel onglet de navigateur dans Studio Lab.
  13. Sur le Déposez votre dernière attestation menu, choisissez Nouveau lanceur, Puis choisissez terminal.Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  14. Sur la ligne de commande, saisissez le code suivant :
    aws configure

  15. Entrez le code suivant:
    1. Entrez les valeurs de la page de la console IAM pour votre ID de clé d'accès et votre clé d'accès secrète.
    2. Pour Default region name, Entrer us-west-2.
    3. Laisser Default output format as text.
      (studiolab) studio-lab-user@default:~$ aws configure 
      AWS Access Key ID []: 01234567890
      AWS Secret Access Key []: ABCDEFG1234567890ABCDEFG
      Default region name []: us-west-2
      Default output format [text]: 
      
      (studiolab) studio-lab-user@default:~$

Félicitations, votre environnement Studio Lab doit maintenant être configuré pour accéder au compte AWS. Pour tester la connexion, exécutez la commande suivante :

aws sts get-caller-identity

Cette commande doit renvoyer des détails sur l'utilisateur IAM que vous avez configuré pour utiliser.

Créer une tâche de bloc-notes

Les tâches de notebook sont créées à l'aide de notebooks Jupyter dans Studio Lab. Si votre notebook s'exécute dans Studio Lab, il peut alors s'exécuter en tant que tâche de notebook (avec plus de ressources et un accès aux services AWS). Cependant, il y a quelques points à surveiller.

Si vous avez installé des packages pour faire fonctionner votre notebook, ajoutez des commandes pour charger ces packages dans une cellule en haut de votre notebook. En utilisant un symbole & au début de chaque ligne, le code sera envoyé à la ligne de commande pour être exécuté. Dans l'exemple suivant, la première cellule utilise pip pour installer les bibliothèques PyTorch :

%%capture
%pip install torch
%pip install torchvision

Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Notre notebook générera un modèle PyTorch entraîné. Avec notre code habituel, nous enregistrons le modèle dans le système de fichiers de Studio Labs.

Lorsque nous exécutons cela en tant que tâche de bloc-notes, nous devons enregistrer le modèle à un endroit où nous pourrons y accéder ultérieurement. Le moyen le plus simple de procéder consiste à enregistrer le modèle dans Amazon S3. Nous avons créé un compartiment S3 pour enregistrer nos modèles et utilisé une autre cellule de ligne de commande pour copier l'objet dans le compartiment.

Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï. Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Nous utilisons les Interface de ligne de commande AWS (AWS CLI) ici pour copier l'objet. On pourrait aussi utiliser le AWS SDK pour Python (Boto3) si nous voulions avoir un contrôle plus sophistiqué ou automatisé du nom du fichier. Pour l'instant, nous veillerons à modifier le nom du fichier à chaque fois que nous exécutons le notebook afin que les modèles ne soient pas écrasés.

Nous sommes maintenant prêts à créer le travail de notebook.

  1. Choisissez (clic droit) le nom du bloc-notes, puis choisissez Créer une tâche de bloc-notes.Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
    Si cette option de menu est manquante, vous devrez peut-être actualiser votre environnement Studio Lab. Pour ce faire, ouvrez Terminal depuis le lanceur et exécutez le code suivant :
    conda deactivate && conda env remove —name studiolab

  2. Ensuite, redémarrez votre instance JupyterLab en choisissant Laboratoire Amazon SageMaker Studio dans le menu supérieur, puis choisissez Redémarrer JupyterLab.Vous pouvez également accéder à la page du projet, puis arrêter et redémarrer le runtime.
  3. Sur le Créer un emploi page, pour Type de calcul, choisissez le type de calcul qui convient à votre travail.

    Pour plus d'informations sur les différents types de capacité de calcul, y compris leur coût, voir Tarification d'Amazon SageMaker (choisir Tarification à la demande et naviguer vers le Formation languette. Vous devrez peut-être également vérifier la disponibilité du quota du type de calcul dans votre compte AWS. Pour plus d’informations sur les quotas de service, consultez : Quotas de service AWS.Pour cet exemple, nous avons sélectionné une instance ml.p3.2xlarge, qui offre 8 vCPU, 61 Go de mémoire et un GPU Tesla V100.Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

    S'il n'y a aucun avertissement sur cette page, vous devriez être prêt à partir. S'il y a des avertissements, vérifiez que l'ARN de rôle correct est spécifié dans Options additionelles. Ce rôle doit correspondre à l'ARN du rôle d'exécution SageMaker que nous avons créé précédemment. L'ARN est au format arn:aws:iam::[account-number]:role/service-role/[role-name].

    Il existe d'autres options disponibles dans Options additionelles; par exemple, vous pouvez sélectionner une image et un noyau particuliers qui peuvent déjà avoir la configuration dont vous avez besoin sans avoir besoin d'installer des bibliothèques supplémentaires.

  4. Si vous souhaitez exécuter ce notebook selon une planification, sélectionnez Exécuter selon un calendrier et spécifiez la fréquence à laquelle vous souhaitez que le travail soit exécuté.Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Nous voulons que ce notebook s'exécute une fois, nous sélectionnons donc Cours maintenant.
  5. Selectionnez Création.
    Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Liste des tâches du bloc-notes

La Tâches de bloc-notes La page répertorie toutes les tâches en cours d'exécution et celles qui ont été exécutées dans le passé. Vous pouvez trouver cette liste depuis le Launcher (choisissez, Déposez votre dernière attestation , Nouveau lanceur), Alors choisi Tâches de bloc-notes dans l' Autre .

Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Une fois le travail du notebook terminé, vous verrez le statut passer à Completed (Utilisez le Recharger option si nécessaire). Vous pouvez ensuite choisir l'icône de téléchargement pour accéder aux fichiers de sortie.

Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Une fois les fichiers téléchargés, vous pouvez consulter le bloc-notes ainsi que la sortie du code et le journal de sortie. Dans notre cas, comme nous avons ajouté du code pour chronométrer l'exécution de la cellule de formation, nous pouvons voir combien de temps la tâche de formation a duré : 16 minutes et 21 secondes, ce qui est beaucoup plus rapide que si le code avait été exécuté dans Studio Lab (1 heure , 38 minutes et 55 secondes). En fait, l'ensemble du portable a fonctionné en 1,231 20 secondes (un peu plus de 1.30 minutes) pour un coût inférieur à XNUMX $ (USD).

Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

W peut désormais augmenter le nombre d'époques et ajuster les hyperparamètres pour améliorer la valeur de perte du modèle, et soumettre un autre travail de notebook.

Conclusion

Dans cet article, nous avons montré comment utiliser les tâches de notebook Studio Lab pour faire évoluer le code que nous avons développé dans Studio Lab et l'exécuter avec plus de ressources dans un compte AWS.

En ajoutant les informations d'identification AWS à notre environnement Studio Lab, nous pouvons non seulement accéder aux tâches des notebooks, mais nous pouvons également accéder à d'autres ressources à partir d'un compte AWS directement depuis nos notebooks Studio Lab. Jetez un œil au kit SDK AWS pour Python.

Cette fonctionnalité supplémentaire de Studio Lab repousse les limites des types et de la taille des projets que vous pouvez réaliser. Faites-nous savoir ce que vous construisez avec cette nouvelle fonctionnalité !


À propos des auteurs

Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Mike Chambres est Developer Advocate pour l'IA et le ML chez AWS. Il a passé les 7 dernières années à aider les constructeurs à apprendre le cloud, la sécurité et le ML. Originaire du Royaume-Uni, Mike est un buveur de thé passionné et un constructeur de Lego.

Exécutez des blocs-notes en tant que tâches par lots dans Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Recherche verticale. Aï. Michèle Monclova est chef de produit principal chez AWS au sein de l'équipe SageMaker. Elle est originaire de New York et d'une vétéran de la Silicon Valley. Elle est passionnée par les innovations qui améliorent notre qualité de vie.

Horodatage:

Plus de Apprentissage automatique AWS