パイプラインを実行する
次のページでは、Amazon SageMaker Pipelines を使用して、SageMaker リソースで、またはローカルでパイプラインを実行する方法について説明します。
従来の SageMaker パイプライン実行と同様に、pipeline.start()
関数を使用して新しいパイプライン実行を開始します。start()
関数の詳細については、「sagemaker.workflow.pipeline.Pipeline.start
注記
@step
デコレータを使用して定義したステップは、トレーニングジョブとして実行されます。そのため、次の制限について注意が必要です。
アカウントにはインスタンス制限とトレーニングジョブ制限があります。スロットリングやリソース制限の問題を避けるため、制限を更新します。
パイプライン内では、トレーニングステップの実行ごとに発生する金銭的コストが発生します。料金の詳細については、「Amazon SageMaker の料金
」を参照してください。
ローカルで実行されたパイプラインから結果を取得する
パイプライン実行の任意のステップの結果を表示するには、次のスニペットに示されるとおり、execution.result()
execution = pipeline.start() execution.result(step_name="train")
注記
Pipelines は、ローカルモードでの execution.result()
はサポートしていません。
一度に取得できるのは、単一のステップの結果のみです。SageMaker によって生成されたステップ名の場合は、次のとおり list_steps
を呼び出してステップ名を取得できます。
execution.list_step()
パイプラインをローカルで実行する
@step
でデコレートしたステップを含むパイプラインは、従来のパイプラインステップと同様にローカルで実行できます。ローカル モードのパイプライン実行の詳細については、「ローカルモードを使用してパイプラインを実行する」を参照してください。ローカルモードを使用するには、次の例に示されるとおり、パイプライン定義に SageMakerSession
ではなく、LocalPipelineSession
を指定します。
from sagemaker.workflow.function_step import step from sagemaker.workflow.pipeline import Pipeline from sagemaker.workflow.pipeline_context import LocalPipelineSession @step def train(): training_data = s3.download(....) ... return trained_model step_train_result = train() local_pipeline_session = LocalPipelineSession() local_pipeline = Pipeline( name="
<pipeline-name>
", steps=[step_train_result], sagemaker_session=local_pipeline_session # needed for local mode ) local_pipeline.create(role_arn="role_arn") # pipeline runs locally execution = local_pipeline.start()