Amazon SageMaker 实验集成 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon SageMaker 实验集成

Amazon SageMaker 模型构建管道与 Amazon SageMaker 实验密切集成。默认情况下,当 SageMaker 管道创建并执行管道时,如果以下 SageMaker 实验图元不存在,则会创建这些实体:

  • 一个实验的管道

  • 对管道的每一次执行都进行试验

  • 为在管道执行步骤中创建的每个 SageMaker 作业添加到试用中的试用组件

您可以比较多个管道执行中的模型训练准确度等指标,就像在 SageMaker 模型训练实验的多个试验中比较这些指标一样。

以下示例显示了管道类中Amazon SageMaker Python 开发工具包.

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

如果不希望为管道创建实验和试验,请将pipeline_experiment_configNone.

注意

实验集成在亚 Amazon SageMaker Python 软件开发工具包 v2.41.0 中引入。

以下命名规则将根据您为ExperimentNameTrialName的参数pipeline_experiment_config

  • 如果您未指定ExperimentName, 管道name用于实验名称。

    如果确实指定ExperimentName,它用于实验名称。如果存在具有该名称的试验,则管线创建的试验将添加到现有试验中。如果不存在具有该名称的实验,则会创建一个新的实验。

  • 如果您未指定TrialName,则管道执行 ID 用于试用名称。

    如果确实指定TrialName,它用于试用名称。如果存在具有该名称的试验,则管道创建的试验组件将添加到现有试验中。如果不存在具有该名称的试用,则会创建一个新试用。

注意

当创建图元的管线被删除时,不会删除实验图元。您可以使用 SageMaker 实验 API 来删除这些实体。有关更多信息,请参阅清理 Amazon SageMaker 实验资源

有关如何查看与管道关联的 SageMaker 试验实体的信息,请参阅查看由 SageMaker 管线创建的实验图元. 有关 SageMaker 实验的详细信息,请参阅使用 Amazon SageMaker 实验管理 Machine Learning.

以下部分显示了以前规则的示例,以及它们在管线定义文件中的表示方式。有关管道定义文件的更多信息,请参阅SageMaker 管道概述.

默认行为

创建管道

这些区域有:pipeline_experiment_config被忽略。ExperimentName默认为管线name.TrialName默认为执行 ID。

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

管道定义文件

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

禁用实验集成

创建管道

pipeline_experiment_config 设置为 None

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

管道定义文件

这与前面的默认示例相同,没有PipelineExperimentConfig.

指定自定义实验名称

使用自定义实验名称。试用名称设置为执行 ID,与默认行为一样。

创建管道

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

管道定义文件

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

指定自定义试用名称

使用自定义试用名称并附加执行 ID。实验名称设置为管线名称,与缺省行为一样。

创建管道

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] )

管道定义文件

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