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.
Exécuter un pipeline
Après avoir défini les étapes de votre pipeline sous forme de graphe acyclique dirigé (DAG), vous pouvez exécuter votre pipeline, qui exécute les étapes définies dans votre. DAG Les procédures pas à pas suivantes vous montrent comment exécuter un SageMaker pipeline Amazon à l'aide de l'éditeur drag-and-drop visuel d'Amazon SageMaker Studio ou d'Amazon Python SageMaker . SDK
Pour démarrer une nouvelle exécution de votre pipeline, procédez comme suit :
Après avoir créé une définition de pipeline à l'aide de SageMaker PythonSDK, vous pouvez la soumettre SageMaker pour démarrer votre exécution. Le tutoriel suivant montre comment envoyer un pipeline, lancer une exécution, examiner les résultats de cette exécution et supprimer votre pipeline.
Rubriques
Prérequis
Pour suivre ce tutoriel, vous devez disposer de la configuration suivante :
-
Une instance de SageMaker bloc-notes.
-
Une définition du pipeline Pipelines. Ce tutoriel suppose que vous utilisez la définition de pipeline créée en suivant le tutoriel Définition d'un pipeline.
Étape 1 : démarrer le pipeline
Tout d'abord, vous devez démarrer le pipeline.
Pour démarrer le pipeline
-
Examinez la définition du JSON pipeline pour vous assurer qu'elle est bien formée.
import json json.loads(pipeline.definition())
-
Soumettez la définition du pipeline au service Pipelines pour créer un pipeline s'il n'existe pas, ou mettez-le à jour s'il en existe un. Le rôle transmis est utilisé par Pipelines pour créer toutes les tâches définies dans les étapes.
pipeline.upsert(role_arn=role)
-
Démarrez l'exécution d'un pipeline.
execution = pipeline.start()
Étape 2 : examiner l'exécution d'un pipeline
Ensuite, vous devez examiner l'exécution du pipeline.
Pour examiner l'exécution d'un pipeline
-
Décrivez le statut d'exécution du pipeline pour vous assurer qu'il a été créé et démarré avec succès.
execution.describe()
-
Attendez que l'exécution soit terminée.
execution.wait()
-
Répertoriez les étapes d'exécution et leur état.
execution.list_steps()
Le résultat doit être similaire à ce qui suit :
[{'StepName': 'AbaloneTransform', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 27, 870000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 45, 50, 492000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'TransformJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:transform-job/pipelines-cfvy1tjuxdq8-abalonetransform-ptyjoef3jy'}}}, {'StepName': 'AbaloneRegisterModel', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 929000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 28, 15000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'RegisterModel': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:model-package/abalonemodelpackagegroupname/1'}}}, {'StepName': 'AbaloneCreateModel', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 895000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 27, 708000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'Model': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:model/pipelines-cfvy1tjuxdq8-abalonecreatemodel-jl94rai0ra'}}}, {'StepName': 'AbaloneMSECond', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 25, 558000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 329000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'Condition': {'Outcome': 'True'}}}, {'StepName': 'AbaloneEval', 'StartTime': datetime.datetime(2020, 11, 21, 2, 37, 34, 767000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 18, 80000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:processing-job/pipelines-cfvy1tjuxdq8-abaloneeval-zfraozhmny'}}}, {'StepName': 'AbaloneTrain', 'StartTime': datetime.datetime(2020, 11, 21, 2, 34, 55, 867000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 37, 34, 34000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'TrainingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:training-job/pipelines-cfvy1tjuxdq8-abalonetrain-tavd6f3wdf'}}}, {'StepName': 'AbaloneProcess', 'StartTime': datetime.datetime(2020, 11, 21, 2, 30, 27, 160000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 34, 48, 390000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:processing-job/pipelines-cfvy1tjuxdq8-abaloneprocess-mgqyfdujcj'}}}]
-
Une fois l'exécution de votre pipeline terminée, téléchargez le fichier
evaluation.json
résultant d'Amazon S3 pour examiner le rapport.evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format( step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"] )) json.loads(evaluation_json)
Étape 3 : remplacer les paramètres par défaut d'une exécution de pipeline
Vous pouvez exécuter d'autres exécutions du pipeline en spécifiant différents paramètres de pipeline pour remplacer les valeurs par défaut.
Pour remplacer les paramètres par défaut
-
Créez l'exécution du pipeline. Cela démarre une autre exécution de pipeline avec le statut d'approbation de modèle défini sur « Approuvé ». Cela signifie que la version du package modèle générée par l'
RegisterModel
étape est automatiquement prête à être déployée via des pipelines CI/CD, tels que Projects. SageMaker Pour de plus amples informations, veuillez consulter MLOpsAutomatisation avec des SageMaker projets.execution = pipeline.start( parameters=dict( ModelApprovalStatus="Approved", ) )
-
Attendez que l'exécution soit terminée.
execution.wait()
-
Répertoriez les étapes d'exécution et leur état.
execution.list_steps()
-
Une fois l'exécution de votre pipeline terminée, téléchargez le fichier
evaluation.json
résultant d'Amazon S3 pour examiner le rapport.evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format( step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"] )) json.loads(evaluation_json)
Étape 4 : arrêter et supprimer une exécution de pipeline
Lorsque vous n'avez plus besoin de votre pipeline, vous pouvez arrêter toutes les exécutions en cours et supprimer le pipeline.
Pour arrêter et supprimer une exécution de pipeline
-
Arrêtez l'exécution du pipeline.
execution.stop()
-
Supprimez le pipeline.
pipeline.delete()