Étapes des pipelines - Amazon SageMaker AI

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.

Étapes des pipelines

Les pipelines sont composés d'étapes. Ces étapes définissent les actions effectuées par le pipeline et les relations entre les étapes utilisant les propriétés. La page suivante décrit les types d'étapes, leurs propriétés et les relations entre elles.

Propriétés de l'étape

Utilisez l'propertiesattribut pour ajouter des dépendances de données entre les étapes du pipeline. Les pipelines utilisent ces dépendances de données pour les construire à DAG partir de la définition du pipeline. Ces propriétés peuvent être référencées en tant que valeurs d'espace réservé et sont résolues lors de l'exécution.

L'propertiesattribut d'une étape Pipelines correspond à l'objet renvoyé par un Describe appel pour le type de tâche SageMaker AI correspondant. Pour chaque type de tâche, l'appel Describe renvoie l'objet de réponse suivant :

Pour vérifier quelles propriétés peuvent être référencées pour chaque type d'étape lors de la création de dépendances de données, consultez Data Dependency - Property Reference dans Amazon Python SageMaker . SDK

Parallélisme par étapes

Lorsqu'une étape ne dépend d'aucune autre étape, elle s'exécute immédiatement après l'exécution du pipeline. Toutefois, l'exécution en parallèle d'un trop grand nombre d'étapes du pipeline peut rapidement épuiser les ressources disponibles. Contrôlez le nombre d'étapes simultanées pour une exécution de pipeline avec ParallelismConfiguration.

L'exemple suivant utilise ParallelismConfiguration pour définir la limite des étapes simultanées à cinq.

pipeline.create( parallelism_config=ParallelismConfiguration(5), )

Dépendance des données entre les étapes

Vous définissez la structure de votre DAG en spécifiant les relations entre les données entre les étapes. Pour créer des dépendances de données entre les étapes, transmettez les propriétés d'une étape comme entrée à une autre étape du pipeline. L'étape recevant l'entrée n'est démarrée qu'après l'étape fournissant l'entrée a terminé l'exécution.

Une dépendance de données utilise une JsonPath notation au format suivant. Ce format traverse le fichier de JSON propriétés. Cela signifie que vous pouvez ajouter autant d'<property>instances que nécessaire pour atteindre la propriété imbriquée souhaitée dans le fichier. Pour plus d'informations sur la JsonPath notation, consultez le JsonPath dépôt.

<step_name>.properties.<property>.<property>

Ce qui suit montre comment spécifier un compartiment Amazon S3 à l'aide de la propriété ProcessingOutputConfig d'une étape de traitement.

step_process.properties.ProcessingOutputConfig.Outputs["train_data"].S3Output.S3Uri

Pour créer la dépendance des données, transmettez le compartiment à une étape d'entraînement comme suit.

from sagemaker.workflow.pipeline_context import PipelineSession sklearn_train = SKLearn(..., sagemaker_session=PipelineSession()) step_train = TrainingStep( name="CensusTrain", step_args=sklearn_train.fit(inputs=TrainingInput( s3_data=step_process.properties.ProcessingOutputConfig.Outputs[ "train_data"].S3Output.S3Uri )) )

Pour vérifier quelles propriétés peuvent être référencées pour chaque type d'étape lors de la création de dépendances de données, consultez Data Dependency - Property Reference dans Amazon Python SageMaker . SDK

Dépendance personnalisée entre les étapes

Lorsque vous spécifiez une dépendance aux données, Pipelines fournit la connexion de données entre les étapes. Une étape peut également accéder aux données d'une étape précédente sans utiliser directement les pipelines. Dans ce cas, vous pouvez créer une dépendance personnalisée qui indique à Pipelines de ne pas démarrer une étape avant la fin de l'exécution d'une autre étape. Vous créez une dépendance personnalisée en spécifiant l'attribut DependsOn d'une étape.

À titre d'exemple, ce qui suit définit une étape C qui démarre seulement après que les deux étapes A et B terminent leur exécution.

{ 'Steps': [ {'Name':'A', ...}, {'Name':'B', ...}, {'Name':'C', 'DependsOn': ['A', 'B']} ] }

Pipelines émet une exception de validation si la dépendance crée une dépendance cyclique.

L'exemple suivant crée une étape d'entraînement qui démarre après l'exécution d'une étape de traitement.

processing_step = ProcessingStep(...) training_step = TrainingStep(...) training_step.add_depends_on([processing_step])

L'exemple suivant crée une étape d'entraînement qui ne démarre pas tant que l'exécution de deux étapes de traitement différentes n'est pas terminée.

processing_step_1 = ProcessingStep(...) processing_step_2 = ProcessingStep(...) training_step = TrainingStep(...) training_step.add_depends_on([processing_step_1, processing_step_2])

Ce qui suit fournit un autre moyen de créer la dépendance personnalisée.

training_step.add_depends_on([processing_step_1]) training_step.add_depends_on([processing_step_2])

L'exemple suivant crée une étape d'entraînement qui reçoit les entrées d'une étape de traitement et attend que l'exécution d'une autre étape de traitement se termine.

processing_step_1 = ProcessingStep(...) processing_step_2 = ProcessingStep(...) training_step = TrainingStep( ..., inputs=TrainingInput( s3_data=processing_step_1.properties.ProcessingOutputConfig.Outputs[ "train_data" ].S3Output.S3Uri ) training_step.add_depends_on([processing_step_2])

L'exemple suivant montre comment extraire une liste de chaînes des dépendances personnalisées d'une étape.

custom_dependencies = training_step.depends_on

Des images personnalisées en une étape

Vous pouvez utiliser n'importe laquelle des images SageMaker AI Deep Learning Container disponibles lorsque vous créez une étape dans votre pipeline.

Vous pouvez également utiliser votre propre conteneur avec des étapes de pipeline. Comme vous ne pouvez pas créer d'image depuis Studio Classic, vous devez créer votre image à l'aide d'une autre méthode avant de l'utiliser avec Pipelines.

Pour utiliser votre propre conteneur lors de la création des étapes de votre pipeline, incluez l'image URI dans la définition de l'estimateur. Pour plus d'informations sur l'utilisation de votre propre conteneur avec l' SageMaker IA, consultez la section Utilisation de conteneurs Docker avec l' SageMaker IA.