Amazon SageMaker expérimente l'intégration - 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.

Amazon SageMaker expérimente l'intégration

Amazon SageMaker Model Building Pipelines est étroitement intégré à Amazon SageMaker Experiments. Par défaut, lorsque SageMaker Pipelines crée et exécute un pipeline, les entités SageMaker Experiments suivantes sont créées si elles n'existent pas :

  • Une expérience pour le pipeline

  • Un groupe d'exécution pour chaque exécution du pipeline

  • Une exécution ajoutée au groupe d'exécution pour chaque SageMaker tâche créée lors d'une étape d'exécution du pipeline

Vous pouvez comparer des indicateurs tels que la précision de l'entraînement des modèles entre plusieurs exécutions de pipeline, tout comme vous pouvez comparer ces indicateurs entre plusieurs groupes d'essais d'une expérience d'entraînement de SageMaker modèle.

L'exemple suivant montre les paramètres pertinents de la classe Pipeline dans le SDK Amazon SageMaker Python.

Pipeline( name="MyPipeline", parameters=[...], pipeline_experiment_config=PipelineExperimentConfig( ExecutionVariables.PIPELINE_NAME, ExecutionVariables.PIPELINE_EXECUTION_ID ), steps=[...] )

Si vous ne souhaitez pas qu'une expérience et un essai soient créés pour le pipeline, définissez pipeline_experiment_config sur None.

Note

L'intégration des expériences a été introduite dans le SDK Amazon SageMaker Python v2.41.0.

Les règles de dénomination suivantes s'appliquent en fonction de ce que vous spécifiez pour les paramètres ExperimentName et TrialName de pipeline_experiment_config :

  • Si vous ne spécifiez pas ExperimentName, le pipeline name est utilisé pour le nom de l'expérience.

    Si vous spécifiez ExperimentName, il est utilisé pour le nom de l'expérience. Si une expérience portant ce nom existe, les groupes d'exécution créés par le pipeline sont ajoutés à l'expérience existante. Si une expérience avec ce nom n'existe pas, une expérience est créée.

  • Si vous ne spécifiez pas TrialName, l'ID d'exécution du pipeline est utilisé pour le nom du groupe d'exécution.

    Si vous spécifiez TrialName, il est utilisé pour le nom du groupe d'exécution. Si une expérience portant ce nom existe, les exécutions créées par le pipeline sont ajoutées au groupe d'exécution existant. Si un groupe d'exécution portant ce nom n'existe pas, un groupe d'exécution est créé.

Note

Les entités d'expérience ne sont pas supprimées lorsque le pipeline qui a créé les entités est supprimé. Vous pouvez utiliser l'API SageMaker Experiments pour supprimer les entités. Pour plus d’informations, consultez Nettoyez les ressources d'Amazon SageMaker Experiment.

Pour plus d'informations sur la façon d'afficher les entités SageMaker Experiment associées à un pipeline, consultezAfficher les entités d'expérimentation créées par des SageMaker pipelines. Pour plus d'informations sur SageMaker les expériences, voirGérez le Machine Learning avec Amazon SageMaker Experiments.

Les sections suivantes présentent des exemples des règles précédentes et la manière dont elles sont représentées dans le fichier de définition de pipeline. Pour plus d'informations sur les fichiers de définition de pipeline, veuillez consulter SageMaker Vue d'ensemble des pipelines.

Comportement par défaut

Crée un pipeline.

Le pipeline_experiment_config est omis. ExperimentName est défini par défaut sur le pipeline name. TrialName est défini par défaut sur l'ID d'exécution.

pipeline_name = f"MyPipeline" pipeline = Pipeline( name=pipeline_name, parameters=[...], steps=[step_train] )

Fichier de définition de pipeline

{ "Version": "2020-12-01", "Parameters": [ { "Name": "InputDataSource" }, { "Name": "InstanceCount", "Type": "Integer", "DefaultValue": 1 } ], "PipelineExperimentConfig": { "ExperimentName": {"Get": "Execution.PipelineName"}, "TrialName": {"Get": "Execution.PipelineExecutionId"} }, "Steps": [...] }

Désactiver l'intégration d'Experiments

Crée un pipeline.

Le pipeline_experiment_config est réglé sur None.

pipeline_name = f"MyPipeline" pipeline = Pipeline( name=pipeline_name, parameters=[...], pipeline_experiment_config=None, steps=[step_train] )

Fichier de définition de pipeline

Il est identique à l'exemple par défaut précédent, sans le PipelineExperimentConfig.

Spécifier un nom d'expérience personnalisé

Un nom d'expérience personnalisé est utilisé. Le nom du groupe d'exécution est défini sur l'ID d'exécution, tout comme avec le comportement par défaut.

Crée un pipeline.

pipeline_name = f"MyPipeline" pipeline = Pipeline( name=pipeline_name, parameters=[...], pipeline_experiment_config=PipelineExperimentConfig( "CustomExperimentName", ExecutionVariables.PIPELINE_EXECUTION_ID ), steps=[step_train] )

Fichier de définition de pipeline

{ ..., "PipelineExperimentConfig": { "ExperimentName": "CustomExperimentName", "TrialName": {"Get": "Execution.PipelineExecutionId"} }, "Steps": [...] }

Spécifier un nom de groupe d'exécution personnalisé

Un nom de groupe d'exécution personnalisé est utilisé et ajouté à l'ID d'exécution. Le nom de l'expérience est défini sur le nom du pipeline, comme avec le comportement par défaut.

Crée un pipeline.

pipeline_name = f"MyPipeline" pipeline = Pipeline( name=pipeline_name, parameters=[...], pipeline_experiment_config=PipelineExperimentConfig( ExecutionVariables.PIPELINE_NAME, Join(on="-", values=["CustomTrialName", ExecutionVariables.PIPELINE_EXECUTION_ID]) ), steps=[step_train] )

Fichier de définition de pipeline

{ ..., "PipelineExperimentConfig": { "ExperimentName": {"Get": "Execution.PipelineName"}, "TrialName": { "On": "-", "Values": [ "CustomTrialName", {"Get": "Execution.PipelineExecutionId"} ] } }, "Steps": [...] }