本地模式
SageMaker Pipelines 本地模式是在托管 SageMaker 服务上执行管道之前,测试训练、处理和推理脚本以及管道参数
管道本地模式在后台利用 SageMaker 作业本地模式
管道本地模式目前支持以下步骤类型:
托管管道服务允许使用并行配置
注意
管道本地模式与 SageMaker 算法(如 XGBoost)不兼容。如果要使用这些算法,则必须在脚本模式
为了在本地执行管道,与管道步骤和管道本身关联的 sagemaker_session
字段必须是 LocalPipelineSession
类型。以下示例说明如何定义要在本地执行的 SageMaker 管道。
from sagemaker.workflow.pipeline_context import LocalPipelineSession from sagemaker.pytorch import PyTorch from sagemaker.workflow.steps import TrainingStep from sagemaker.workflow.pipeline import Pipeline local_pipeline_session = LocalPipelineSession() pytorch_estimator = PyTorch( sagemaker_session=local_pipeline_session, role=sagemaker.get_execution_role(), instance_type="ml.c5.xlarge", instance_count=1, framework_version="1.8.0", py_version="py36", entry_point="./entry_point.py", ) step = TrainingStep( name="MyTrainingStep", step_args=pytorch_estimator.fit( inputs=TrainingInput(s3_data="s3://
my-bucket/my-data/train
"), ) ) pipeline = Pipeline( name="MyPipeline", steps=[step], sagemaker_session=local_pipeline_session ) pipeline.create( role_arn=sagemaker.get_execution_role(), description="local pipeline example" ) // pipeline will execute locally execution = pipeline.start() steps = execution.list_steps() training_job_name = steps['PipelineExecutionSteps'][0]['Metadata']['TrainingJob']['Arn'] step_outputs = pipeline_session.sagemaker_client.describe_training_job(TrainingJobName = training_job_name)
一旦准备好在托管的 SageMaker Pipelines 服务上执行管道,就可以用 PipelineSession
代替前面代码片段中的 LocalPipelineSession
(如下面的代码示例所示),然后重新运行代码。
from sagemaker.workflow.pipeline_context import PipelineSession pipeline_session = PipelineSession()