Création d'une tâche de bloc-notes avec SageMaker Python SDK - 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 SageMaker Python SDK

Pour exécuter un bloc-notes autonome à l'aide de SageMaker PythonSDK, 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 depuis votre bloc-notes. EMR 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 avec SageMaker PythonSDK, 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. NotebookJobStep. 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 de SageMaker PythonSDK, vous ne pouvez spécifier que certaines images pour exécuter votre tâche de bloc-notes. Pour de plus amples informations, veuillez consulter Contraintes d'image pour les tâches liées aux SDK blocs-notes en SageMaker Python.

    notebook_job_step = NotebookJobStep( input_notebook=input-notebook, image_uri=image-uri, kernel_name=kernel-name )
  2. Créez un pipeline avec NotebookJobStep le vôtre 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 SageMaker Python SDK.

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

    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 UTC 15 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 de plus amples informations, veuillez consulter 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 SageMaker PythonSDK, 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 graphique 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 EMR cluster Amazon dans votre carnet de saisie

Si vous vous connectez à un EMR cluster Amazon depuis votre bloc-notes Jupyter dans Studio, vous devrez peut-être modifier davantage votre bloc-notes Jupyter. Vérifiez Connectez-vous à un EMR cluster Amazon 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 EMR connexion Amazon. Studio utilise Papermill pour exécuter des blocs-notes. Dans SparkMagic les noyaux, les paramètres que vous transmettez à votre commande de EMR connexion Amazon 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 à Kerberos ou à des clusters LDAP Amazon authentifiés par HTTP Basic Auth. EMR Vous devez transmettre les informations d'identification de l'utilisateur via le AWS Secrets Manager.

Configurer les options par défaut

SageMaker SDKCela vous permet de définir des valeurs par défaut pour un sous-ensemble de paramètres afin de ne pas avoir à les spécifier à chaque fois que vous créez une NotebookJobStep instance. Ces paramètres sont roles3_root_uri,s3_kms_key, volume_kms_keysubnets, 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 SageMaker Python SDK. .

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'