本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊SageMaker实验集成
亚马逊SageMaker模型构建管道与亚马逊SageMaker实验紧密集成。默认情况下,当 Pi SageMaker pelines 创建和执行管道时,如果以下SageMaker实验实体不存在,则会创建这些实体:
-
管道实验
-
每次执行流水线的运行组
-
为在流水线执行步骤中创建的每个SageMaker作业添加到运行组的运行
您可以比较多个流水线执行的模型训练精度等指标,就像在SageMaker模型训练实验的多个运行组中比较此类指标一样。
以下示例显示了亚马逊 SageMaker Python 软件开发工具包
Pipeline( name="MyPipeline", parameters=[...], pipeline_experiment_config=PipelineExperimentConfig( ExecutionVariables.PIPELINE_NAME, ExecutionVariables.PIPELINE_EXECUTION_ID ), steps=[...] )
如果您不想为管道创建实验和运行组,pipeline_experiment_config
请将设置为None
。
注意
实验集成是在亚马逊 SageMaker Python SDK v2.41.0 中引入的。
以下命名规则根据您为的ExperimentName
和TrialName
参数指定的内容适用pipeline_experiment_config
:
-
如果您未指定
ExperimentName
,name
则使用管道作为实验名称。如果您指定
ExperimentName
,则将其用作实验名称。如果存在使用该名称的实验,则管道创建的运行组将添加到现有实验中。如果使用该名称的实验不存在,则会创建一个新实验。 -
如果您未指定
TrialName
,则管道执行 ID 将用作运行组名称。如果您指定
TrialName
,则将其用作运行组名称。如果存在具有该名称的运行组,则管道创建的运行将添加到现有运行组中。如果不存在具有该名称的运行组,则会创建一个新的运行组。
注意
删除创建实体的管道后,实验实体不会被删除。您可以使用实SageMaker验 API 删除实体。有关更多信息,请参阅清理亚马逊SageMaker实验资源:
有关如何查看与管道关联的SageMaker实验实体的信息,请参阅查看SageMaker管道创建的实验实体。有关SageMaker实验的更多信息,请参阅使用亚马逊SageMaker实验管理机器学习 支持 Amazon Web Services 区域。
以下部分显示了先前规则的示例以及它们在管道定义文件中的表示方式。有关管道定义文件的更多信息,请参阅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": [...] }