Création d'une tâche de bloc-notes avec le SDK SageMaker Python - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création d'une tâche de bloc-notes avec le SDK SageMaker Python

Pour exécuter un bloc-notes autonome à l'aide du SDK SageMaker Python, vous devez créer une étape Notebook Job, l'associer à un pipeline et utiliser les utilitaires fournis par SageMaker Pipelines pour exécuter votre tâche à la demande ou éventuellement planifier une ou plusieurs tâches futures.

Les sections suivantes décrivent les étapes de base pour créer une tâche de bloc-notes planifiée ou à la demande et suivre son exécution. En outre, reportez-vous à la discussion suivante si vous devez transmettre des paramètres à votre tâche de bloc-notes ou vous connecter à Amazon EMR depuis votre bloc-notes. Dans ces cas, une préparation supplémentaire de votre bloc-notes Jupyter est requise. Vous pouvez également appliquer des valeurs par défaut à un sous-ensemble des arguments de NotebookJobStep afin de ne pas avoir à les spécifier chaque fois que vous créez une étape Notebook Job.

Pour consulter des exemples de blocs-notes qui montrent comment planifier des tâches de bloc-notes à l'aide du SDK SageMaker Python, consultez la section Exemples de carnets de notes de blocs-notes.

Étapes pour créer une tâche de bloc-notes

Vous pouvez créer une tâche de bloc-notes qui s'exécute immédiatement ou selon un calendrier. Les instructions suivantes décrivent les deux méthodes.

Pour planifier une tâche dans un bloc-notes, suivez les étapes de base suivantes :
  1. Créer une instance NotebookJobStep. Pour plus de détails sur les NotebookJobStep paramètres, consultez sagemaker.workflow.steps. NotebookJobÉtape. Au minimum, vous pouvez fournir les arguments suivants, comme indiqué dans l'extrait de code suivant :

    Important

    Si vous planifiez votre tâche de bloc-notes à l'aide du SDK SageMaker Python, vous ne pouvez spécifier que certaines images pour exécuter votre tâche de bloc-notes. Pour plus d’informations, consultez Contraintes d'image pour les SageMaker tâches de bloc-notes du SDK Python.

    notebook_job_step = NotebookJobStep( input_notebook=input-notebook, image_uri=image-uri, kernel_name=kernel-name )
  2. Créez un pipeline NotebookJobStep en une seule étape, comme indiqué dans l'extrait suivant :

    pipeline = Pipeline( name=pipeline-name, steps=[notebook_job_step], sagemaker_session=sagemaker-session, )
  3. Exécutez le pipeline à la demande ou planifiez éventuellement les futurs cycles du pipeline. Pour lancer une exécution immédiate, utilisez la commande suivante :

    execution = pipeline.start( parameters={...} )

    Vous pouvez éventuellement planifier une seule future exécution de pipeline ou plusieurs exécutions à un intervalle prédéterminé. Vous spécifiez votre calendrier dans, PipelineSchedule puis vous transmettez l'objet du calendrier à votre pipeline avecput_triggers. Pour plus d'informations sur la planification du pipeline, consultezPlanifier un pipeline avec le SDK SageMaker Python.

    L'exemple suivant planifie l'exécution unique de votre pipeline le 12 décembre 2023 à 10:31:32 UTC.

    my_schedule = PipelineSchedule( name="my-schedule“, at=datetime(year=2023, month=12, date=25, hour=10, minute=31, second=32) ) pipeline.put_triggers(triggers=[my_schedule])

    L'exemple suivant planifie le fonctionnement de votre pipeline à 10 h 15 UTC le dernier vendredi de chaque mois entre 2022 et 2023. Pour plus de détails sur la planification basée sur Cron, consultez la section Programmations basées sur Cron.

    my_schedule = PipelineSchedule( name="my-schedule“, cron="15 10 ? * 6L 2022-2023" ) pipeline.put_triggers(triggers=[my_schedule])
  4. (Facultatif) Consultez les tâches de votre bloc-notes dans le tableau de bord des tâches du SageMaker bloc-notes. Les valeurs que vous fournissez pour l'tagsargument de votre étape Notebook Job contrôlent la manière dont l'interface utilisateur de Studio capture et affiche le travail. Pour plus d’informations, consultez Consultez les tâches de votre bloc-notes dans le tableau de bord de l'interface utilisateur de Studio.

Consultez les tâches de votre bloc-notes dans le tableau de bord de l'interface utilisateur de Studio

Les tâches de bloc-notes que vous créez sous forme d'étapes de pipeline apparaissent dans le tableau de bord des tâches de bloc-notes de Studio si vous spécifiez certaines balises.

Note

Seules les tâches de bloc-notes créées dans Studio ou dans des JupyterLab environnements locaux créent des définitions de tâches. Par conséquent, si vous créez votre tâche de bloc-notes avec le SDK SageMaker Python, les définitions de tâches ne s'affichent pas dans le tableau de bord des tâches de bloc-notes. Vous pouvez toutefois consulter les tâches de votre bloc-notes comme décrit dansAfficher les tâches de bloc-notes.

Vous pouvez contrôler quels membres de l'équipe peuvent consulter les tâches de votre bloc-notes à l'aide des balises suivantes :

  • Pour afficher le bloc-notes sur tous les profils utilisateur ou espaces d'un domaine, ajoutez la balise de domaine avec votre nom de domaine. Voici un exemple :

    • clé :sagemaker:domain-name, valeur : d-abcdefghij5k

  • Pour afficher la tâche du bloc-notes sur un certain profil utilisateur d'un domaine, ajoutez à la fois le profil utilisateur et les balises de domaine. Voici un exemple de balise de profil utilisateur :

    • clé :sagemaker:user-profile-name, valeur : studio-user

  • Pour afficher la tâche du bloc-notes dans un espace, ajoutez à la fois les balises d'espace et de domaine. Voici un exemple de balise d'espace :

    • clé :sagemaker:shared-space-name, valeur : my-space-name

  • Si vous n'attachez aucun domaine, profil utilisateur ou balise d'espace, l'interface utilisateur de Studio n'affiche pas le travail de bloc-notes créé par étape de pipeline. Dans ce cas, vous pouvez consulter le travail de formation sous-jacent dans la console des tâches de formation ou vous pouvez consulter le statut dans la liste des exécutions du pipeline.

Une fois que vous avez configuré les balises nécessaires pour afficher vos tâches dans le tableau de bord, consultez Afficher les tâches de bloc-notes les instructions sur la façon de consulter vos tâches et de télécharger les sorties.

Afficher le graphique de votre pipeline dans Studio

Comme l'étape de travail de votre bloc-notes fait partie d'un pipeline, vous pouvez consulter le graphe du pipeline (DAG) dans Studio. Dans le graphique du pipeline, vous pouvez afficher l'état de l'exécution du pipeline et suivre le lignage. Pour plus de détails, consultez Afficher l'exécution d'un pipeline.

Transmission de paramètres à votre bloc-notes

Si vous souhaitez transmettre des paramètres à votre tâche de bloc-notes (en utilisant l'parametersargument deNotebookJobStep), vous devez préparer votre bloc-notes d'entrée pour recevoir les paramètres.

L'exécuteur de tâches de bloc-notes basé sur Papermill recherche une cellule Jupyter étiquetée avec la parameters balise et applique les nouveaux paramètres ou les remplacements de paramètres immédiatement après cette cellule. Pour plus de détails, consultez Paramétrer votre bloc-notes.

Une fois que vous avez effectué cette étape, transmettez vos paramètres à votreNotebookJobStep, comme indiqué dans l'exemple suivant :

notebook_job_parameters = { "company": "Amazon" } notebook_job_step = NotebookJobStep( image_uri=image-uri, kernel_name=kernel-name, role=role-name, input_notebook=input-notebook, parameters=notebook_job_parameters, ... )

Connexion à un cluster Amazon EMR dans votre carnet de saisie

Si vous vous connectez à un cluster Amazon EMR depuis votre bloc-notes Jupyter dans Studio, vous devrez peut-être modifier davantage votre bloc-notes Jupyter. Vérifiez Connectez-vous à un cluster Amazon EMR depuis votre bloc-notes si vous devez effectuer l'une des tâches suivantes dans votre bloc-notes :

  • Transmettez des paramètres à votre commande de connexion Amazon EMR. Studio utilise Papermill pour exécuter des blocs-notes. Dans SparkMagic les noyaux, les paramètres que vous transmettez à votre commande de connexion Amazon EMR peuvent ne pas fonctionner comme prévu en raison de la manière dont Papermill transmet les informations. SparkMagic

  • Transmission des informations d'identification utilisateur aux clusters Amazon EMR authentifiés par Kerberos, LDAP ou HTTP Basic Auth. Vous devez transmettre les informations d'identification de l'utilisateur via le AWS Secrets Manager.

Configurer les options par défaut

Le SageMaker SDK vous permet de définir des valeurs par défaut pour un sous-ensemble de paramètres afin que vous n'ayez pas à les spécifier à chaque fois que vous créez une instance. NotebookJobStep Ces paramètres sont roles3_root_uri,s3_kms_key,volume_kms_key,subnets, etsecurity_group_ids. Utilisez le fichier de SageMaker configuration pour définir les valeurs par défaut de l'étape. Pour plus d'informations sur le fichier SageMaker de configuration, consultez Configuration et utilisation des valeurs par défaut avec le SDK SageMaker Python. .

Pour configurer les valeurs par défaut des tâches du bloc-notes, appliquez vos nouvelles valeurs par défaut à la section des tâches du bloc-notes du fichier de configuration, comme indiqué dans l'extrait suivant :

SageMaker: PythonSDK: Modules: NotebookJob: RoleArn: 'arn:aws:iam::555555555555:role/IMRole' S3RootUri: 's3://my-bucket/my-project' S3KmsKeyId: 's3kmskeyid' VolumeKmsKeyId: 'volumekmskeyid1' VpcConfig: SecurityGroupIds: - 'sg123' Subnets: - 'subnet-1234'