Intégration d'Amazon SageMaker Experiments - Amazon SageMaker

Intégration d'Amazon SageMaker Experiments

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 essai pour chaque exécution du pipeline

  • Un composant d'essai ajouté à l'essai pour chaque tâche SageMaker créée dans une étape d'exécution de pipeline

Vous pouvez comparer des métriques telles que la précision d'entraînement du modèle sur plusieurs exécutions de pipeline, tout comme vous pouvez les comparer à plusieurs essais d'une expérience d'entraînement du modèle SageMaker.

L'exemple suivant présente les paramètres pertinents de la classe Pipeline dans le kit 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 kit SDK Amazon SageMaker Python version 2.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 essais 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 de l'expérience.

    Si vous spécifiez TrialName, il est utilisé pour le nom de l'essai. Si un essai portant ce nom existe, les composants d'essai créés par le pipeline sont ajoutés à l'essai existant. Si un essai portant ce nom n'existe pas, un essai 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 de plus amples informations, veuillez consulter . Nettoyer les ressources Amazon SageMaker Experiment.

Pour obtenir des informations sur l'affichage des entités SageMaker Experiments associées à un pipeline, veuillez consulter Afficher les entités Experiments créées par SageMaker Pipelines. Pour de plus amples informations sur SageMaker Experiments, veuillez consulter Gestion du 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 Présentation de SageMaker 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 de l'essai 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 d'essai personnalisé

Un nom d'essai 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": [...] }