Integration von Amazon SageMaker Experiments - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Integration von Amazon SageMaker Experiments

Amazon SageMaker Model Building Pipelines ist eng in Amazon SageMaker Experiments integriert. Wenn SageMaker Pipelines eine Pipeline erstellt und ausführt, werden standardmäßig die folgenden SageMaker Experiment-Entitäten erstellt, wenn sie nicht vorhanden sind:

  • Ein Experiment für die Pipeline

  • Eine Ausführungsgruppe für jede Ausführung der Pipeline

  • Eine Ausführung, die der Ausführungsgruppe für jeden SageMaker Auftrag hinzugefügt wird, der in einem Pipeline-Ausführungsschritt erstellt wurde

Sie können Metriken wie die Genauigkeit des Modelltrainings über mehrere Pipeline-Ausführungen hinweg vergleichen, genauso wie Sie diese Metriken über mehrere Ausführungsgruppen eines SageMaker Modelltrainingsexperiments hinweg vergleichen können.

Das folgende Beispiel zeigt die relevanten Parameter der Pipeline-Klasse im Amazon SageMaker Python SDK .

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

Wenn Sie nicht möchten, dass eine Experiment- und Laufgruppe für die Pipeline erstellt wird, setzen Sie pipeline_experiment_config auf None.

Anmerkung

Die Integration von Experimenten wurde im Amazon SageMaker Python SDK v2.41.0 eingeführt.

Je nachdem, was Sie für die Parameter ExperimentName und TrialName von pipeline_experiment_config angeben, gelten die folgenden Benennungsregeln:

  • Wenn Sie ExperimentName nicht angeben, wird die Pipeline name für den Experimentnamen verwendet.

    Wenn Sie ExperimentName angeben, wird es für den Namen des Experiments verwendet. Wenn ein Experiment mit diesem Namen existiert, werden die von der Pipeline erstellten Versuchsgruppen dem vorhandenen Experiment hinzugefügt. Wenn ein Experiment mit diesem Namen nicht existiert, wird ein neues Experiment erstellt.

  • Wenn Sie TrialName nicht angeben, wird die Pipeline-Ausführungs-ID für den Namen der Ausführungsgruppe verwendet.

    Wenn Sie TrialName angeben, wird sie für den Namen der Ausführungsgruppe verwendet. Wenn eine Ausführungsgruppe mit diesem Namen existiert, werden die von der Pipeline erstellten Verläufe der vorhandenen Ausführungsgruppe hinzugefügt. Wenn eine Ausführungsgruppe mit diesem Namen nicht existiert, wird eine neue Ausführungsgruppe erstellt.

Anmerkung

Die Experiment-Entitäten werden nicht gelöscht, wenn die Pipeline, die die Entitäten erstellt hat, gelöscht wird. Sie können die SageMaker Experiments-API verwenden, um die Entitäten zu löschen. Weitere Informationen finden Sie unter Ressourcen für Amazon SageMaker Experimente bereinigen.

Informationen zum Anzeigen der SageMaker Experimententitäten, die einer Pipeline zugeordnet sind, finden Sie unter Von SageMaker Pipelines erstellte Experimententitäten anzeigen. Weitere Informationen zu SageMaker Experimenten finden Sie unter Machine Learning mit Amazon SageMaker Experiments verwalten.

Die folgenden Abschnitte zeigen Beispiele für die vorherigen Regeln und wie sie in der Pipeline-Definitionsdatei dargestellt werden. Weitere Informationen zu Pipeline-Definitionsdateien finden Sie unter SageMaker Pipelines – Übersicht.

Standardverhalten

Erstellen Sie eine Pipeline

Das pipeline_experiment_config ist weggelassen. ExperimentName ist standardmäßig auf die Pipeline name eingestellt. TrialName ist standardmäßig die Ausführungs-ID.

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

Pipeline-Definitionsdatei

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

Deaktivieren Sie die Integration von Experimenten

Erstellen Sie eine Pipeline

Der pipeline_experiment_config wird auf None gesetzt.

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

Pipeline-Definitionsdatei

Dies entspricht dem vorherigen Standardbeispiel, ohne die PipelineExperimentConfig.

Geben Sie einen benutzerdefinierten Experimentnamen an

Ein benutzerdefinierter Experimentname wird verwendet. Der Name der Ausführungsgruppe ist wie beim Standardverhalten auf die Ausführungs-ID festgelegt.

Erstellen Sie eine Pipeline

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

Pipeline-Definitionsdatei

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

Geben Sie einen benutzerdefinierten Namen für die Ausführungsgruppe an

Es wird ein benutzerdefinierter Name für die Ausführungsgruppe verwendet, an den die Ausführungs-ID angehängt wird. Der Name des Experiments wird wie beim Standardverhalten auf den Namen der Pipeline gesetzt.

Erstellen Sie eine 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] )

Pipeline-Definitionsdatei

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