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écution sélective des étapes d’un pipeline
Lorsque vous utilisez Pipelines pour créer des flux de travail et orchestrer vos étapes d’entraînement ML, vous pouvez avoir besoin d’entreprendre plusieurs phases d’expérimentation. Au lieu d’exécuter le pipeline complet à chaque fois, vous souhaiterez peut-être répéter certaines étapes. Avec Pipelines, vous pouvez exécuter des étapes de pipeline de manière sélective. Cela permet d’optimiser votre entraînement ML. L’exécution sélective est utile dans les scénarios suivants :
Vous souhaitez redémarrer une étape spécifique avec un type d’instance, des hyperparamètres ou d’autres variables mis à jour tout en conservant les paramètres des étapes en amont.
Votre pipeline échoue à une étape intermédiaire. Les étapes précédentes de l’exécution, telles que la préparation des données ou l’extraction des caractéristiques, sont coûteuses à réexécuter. Il se peut que vous deviez introduire une correction ou réexécuter certaines étapes manuellement pour terminer le pipeline.
En utilisant l’exécution sélective, vous pouvez choisir d’exécuter n’importe quel sous-ensemble d’étapes à condition qu’elles soient connectées dans le graphe orienté acyclique (DAG) de votre pipeline. Par exemple, le graphe DAG suivant montre un exemple de flux de travail de pipeline :
Vous pouvez sélectionner les étapes AbaloneTrain et AbaloneEval d’une exécution sélective, mais vous ne pouvez pas sélectionner uniquement les étapes AbaloneTrain et AbaloneMSECond, car ces étapes ne sont pas connectées dans le graphe DAG. Pour les étapes non sélectionnées du flux de travail, l’exécution sélective réutilise les sorties d’une exécution de pipeline de référence au lieu de réexécuter les étapes. De même, les étapes non sélectionnées situées en aval des étapes sélectionnées ne sont pas exécutées dans le cadre d’une exécution sélective.
Si vous choisissez d'exécuter un sous-ensemble d'étapes intermédiaires dans votre pipeline, vos étapes peuvent dépendre des étapes précédentes. SageMaker L'IA a besoin d'une exécution de pipeline de référence à partir de laquelle financer ces dépendances. Par exemple, si vous choisissez d’exécuter les étapes AbaloneTrain et AbaloneEval, vous avez besoin des résultats de l’étape AbaloneProcess. Vous pouvez soit fournir un ARN d'exécution de référence, soit demander à l' SageMaker IA d'utiliser la dernière exécution du pipeline, qui est le comportement par défaut. Si vous avez une exécution de référence, vous pouvez également générer les paramètres d’exécution à partir de votre exécution de référence et les fournir à votre exécution sélective avec des remplacements. Pour en savoir plus, consultez Réutiliser les valeurs des paramètres d’exécution à partir d’une exécution de référence.
En détail, vous fournissez une configuration pour votre exécution de pipeline d’exécution sélective en utilisant l’élément SelectiveExecutionConfig. Si vous incluez un ARN pour l'exécution d'un pipeline de référence (avec l'source_pipeline_execution_arnargument), SageMaker AI utilise les dépendances de l'étape précédente par rapport à l'exécution du pipeline que vous avez fournie. Si vous n'incluez pas d'ARN et qu'une dernière exécution de pipeline existe, SageMaker AI l'utilise comme référence par défaut. Si vous n'incluez pas d'ARN et que vous ne souhaitez pas que l' SageMaker IA utilise la dernière exécution de votre pipeline, définissez reference_latest_execution surFalse. L'exécution du pipeline que l' SageMaker IA utilise en fin de compte comme référence, qu'elle soit la plus récente ou spécifiée par l'utilisateur, doit être en Success cours Failed d'exécution.
Le tableau suivant résume la manière dont l' SageMaker IA choisit une exécution de référence.
Valeur de l’argument source_pipeline_execution_arn |
Valeur de l’argument reference_latest_execution |
Exécution de référence utilisée |
|---|---|---|
| Un ARN de pipeline |
|
L’ARN de pipeline spécifié |
| Un ARN de pipeline |
|
L’ARN de pipeline spécifié |
null ou non spécifiée |
|
La dernière exécution du pipeline |
null ou non spécifiée |
|
Aucune : dans ce cas, sélectionnez des étapes sans dépendances en amont |
Pour plus d'informations sur les exigences de configuration de l'exécution sélective, consultez le document sagemaker.workflow.selective_execution_config. SelectiveExecutionConfig
La discussion suivante inclut des exemples pour les cas où vous souhaitez spécifier une exécution de référence de pipeline, utiliser la dernière exécution de pipeline comme référence ou exécuter une exécution sélective sans exécution de pipeline de référence.
Exécution sélective avec une référence de pipeline spécifiée par l’utilisateur
L’exemple suivant illustre une exécution sélective des étapes AbaloneTrain et AbaloneEval à l’aide d’une exécution de pipeline de référence.
from sagemaker.workflow.selective_execution_config import SelectiveExecutionConfig selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-west-2:123123123123:pipeline/abalone/execution/123ab12cd3ef", selected_steps=["AbaloneTrain", "AbaloneEval"] ) selective_execution = pipeline.start( execution_display_name=f"Sample-Selective-Execution-1", parameters={"MaxDepth":6, "NumRound":60}, selective_execution_config=selective_execution_config, )
Exécution sélective avec la dernière exécution du pipeline comme référence
L’exemple suivant illustre une exécution sélective des étapes AbaloneTrain et AbaloneEval à l’aide de la dernière exécution du pipeline comme référence. Étant donné que l' SageMaker IA utilise par défaut la dernière exécution du pipeline, vous pouvez éventuellement définir l'reference_latest_executionargument surTrue.
# Prepare a new selective execution. Select only the first step in the pipeline without providing source_pipeline_execution_arn. selective_execution_config = SelectiveExecutionConfig( selected_steps=["AbaloneTrain", "AbaloneEval"], # optional reference_latest_execution=True ) # Start pipeline execution without source_pipeline_execution_arn pipeline.start( execution_display_name=f"Sample-Selective-Execution-1", parameters={"MaxDepth":6, "NumRound":60}, selective_execution_config=selective_execution_config, )
Exécution sélective sans pipeline de référence
L'exemple suivant montre une exécution sélective des étapesAbaloneProcess, AbaloneTrain sans fournir d'ARN de référence et en désactivant l'option permettant d'utiliser le dernier pipeline exécuté comme référence. SageMaker L'IA autorise cette configuration car ce sous-ensemble d'étapes ne dépend pas des étapes précédentes.
# Prepare a new selective execution. Select only the first step in the pipeline without providing source_pipeline_execution_arn. selective_execution_config = SelectiveExecutionConfig( selected_steps=["AbaloneProcess", "AbaloneTrain"], reference_latest_execution=False ) # Start pipeline execution without source_pipeline_execution_arn pipeline.start( execution_display_name=f"Sample-Selective-Execution-1", parameters={"MaxDepth":6, "NumRound":60}, selective_execution_config=selective_execution_config, )
Réutiliser les valeurs des paramètres d’exécution à partir d’une exécution de référence
Vous pouvez générer les paramètres à partir de l’exécution de votre pipeline de référence à l’aide de build_parameters_from_execution, et fournir le résultat à votre pipeline d’exécution sélective. Vous pouvez utiliser les paramètres d’origine de l’exécution de référence ou appliquer des remplacements à l’aide de l’argument parameter_value_overrides.
L’exemple suivant montre comment générer des paramètres à partir d’une exécution de référence et appliquer un remplacement pour le paramètre MseThreshold.
# Prepare a new selective execution. selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-west-2:123123123123:pipeline/abalone/execution/123ab12cd3ef", selected_steps=["AbaloneTrain", "AbaloneEval", "AbaloneMSECond"], ) # Define a new parameters list to test. new_parameters_mse={ "MseThreshold": 5, } # Build parameters from reference execution and override with new parameters to test. new_parameters = pipeline.build_parameters_from_execution( pipeline_execution_arn="arn:aws:sagemaker:us-west-2:123123123123:pipeline/abalone/execution/123ab12cd3ef", parameter_value_overrides=new_parameters_mse ) # Start pipeline execution with new parameters. execution = pipeline.start( selective_execution_config=selective_execution_config, parameters=new_parameters )