パイプラインのステップ - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

パイプラインのステップ

パイプラインはステップで構成されます。これらのステップでは、プロパティを使用して、パイプラインが実行するアクションとステップ間の関係を定義します。次のページでは、ステップのタイプ、プロパティ、およびそれらの間の関係について説明します。

ステッププロパティ

properties 属性を使用して、パイプライン内のステップ間にデータ依存関係を追加します。パイプラインは、これらのデータ依存関係を使用して、パイプライン定義DAGから を構築します。これらのプロパティはプレースホルダー値として参照でき、実行時に解決されます。

Pipelines ステップの properties 属性は、対応する SageMaker ジョブタイプのDescribe呼び出しによって返されるオブジェクトと一致します。ジョブタイプごとに、Describe 呼び出しは次のレスポンスオブジェクトを返します。

データ依存関係の作成中に各ステップタイプで参照できるプロパティを確認するには、Amazon SageMaker Python SDK「Data Dependency - Property Reference」を参照してください。

ステップ並列処理

ステップが他のステップに依存しない場合、パイプラインの実行直後に実行されます。ただし、同時に実行するパイプラインステップが多すぎると、使用可能なリソースがすぐに使い果たされる可能性があります。ParallelismConfiguration を使用して、パイプラインの同時実行ステップ数を制御します。

次の例では ParallelismConfiguration を使用して同時実行ステップの上限数を 5 に設定しています。

pipeline.create( parallelism_config=ParallelismConfiguration(5), )

ステップ間のデータ依存関係

ステップ間のデータ関係を指定DAGして、 の構造を定義します。ステップ間にデータ依存関係を作成するには、パイプラインのあるステップのプロパティを別のステップに入力として渡します。入力を受け取るステップは、入力を提供するステップの実行が終了するまで開始されません。

データ依存関係では、次の形式の JsonPath 表記が使用されます。この形式はJSONプロパティファイルを通過します。つまり、<property> インスタンスは、ファイル内の目的のネストされたプロパティに到達するために必要に応じて インスタンスを使用します。 JsonPath 表記の詳細については、JsonPath リポジトリ を参照してください。

<step_name>.properties.<property>.<property>

処理ステップの ProcessingOutputConfig プロパティを使用して Amazon S3 バケットを指定する方法を以下に示します。

step_process.properties.ProcessingOutputConfig.Outputs["train_data"].S3Output.S3Uri

データ依存関係を作成するには、以下のようにバケットをトレーニングステップに渡します。

from sagemaker.workflow.pipeline_context import PipelineSession sklearn_train = SKLearn(..., sagemaker_session=PipelineSession()) step_train = TrainingStep( name="CensusTrain", step_args=sklearn_train.fit(inputs=TrainingInput( s3_data=step_process.properties.ProcessingOutputConfig.Outputs[ "train_data"].S3Output.S3Uri )) )

データ依存関係の作成中に各ステップタイプで参照できるプロパティを確認するには、Amazon SageMaker Python SDK「Data Dependency - Property Reference」を参照してください。

ステップ間のカスタム依存関係

データ依存関係を指定すると、パイプラインはステップ間のデータ接続を提供します。または、パイプラインを直接使用せずに、1 つのステップで前のステップのデータにアクセスできます。この場合、別のステップの実行が完了するまでステップを開始しないようにパイプラインに指示するカスタム依存関係を作成できます。カスタム依存関係を作成するには、ステップのDependsOn 属性を指定します。

以下の例では、ステップ A とステップ B の両方が実行を終了してから開始されるステップ C を定義します。

{ 'Steps': [ {'Name':'A', ...}, {'Name':'B', ...}, {'Name':'C', 'DependsOn': ['A', 'B']} ] }

パイプラインは、依存関係が周期的依存関係を作成する場合、検証例外をスローします。

以下の例では、処理ステップの実行が終了した後に開始されるトレーニングステップを作成します。

processing_step = ProcessingStep(...) training_step = TrainingStep(...) training_step.add_depends_on([processing_step])

以下の例では、2 つの異なる処理ステップの実行が終了するまで開始されないトレーニングステップを作成します。

processing_step_1 = ProcessingStep(...) processing_step_2 = ProcessingStep(...) training_step = TrainingStep(...) training_step.add_depends_on([processing_step_1, processing_step_2])

以下は、カスタム依存関係を作成する別の方法です。

training_step.add_depends_on([processing_step_1]) training_step.add_depends_on([processing_step_2])

以下の例では、ある処理ステップから入力を受け取り、別の処理ステップの実行が終了するまで待機するトレーニングステップを作成します。

processing_step_1 = ProcessingStep(...) processing_step_2 = ProcessingStep(...) training_step = TrainingStep( ..., inputs=TrainingInput( s3_data=processing_step_1.properties.ProcessingOutputConfig.Outputs[ "train_data" ].S3Output.S3Uri ) training_step.add_depends_on([processing_step_2])

以下の例では、ステップのカスタム依存関係の文字列リストを取得する方法を示しています。

custom_dependencies = training_step.depends_on

ステップのカスタムイメージ

パイプラインでステップを作成するときに、利用可能な SageMaker深層学習コンテナイメージを使用できます。

パイプラインのステップでは独自のコンテナを使用することもできます。Studio Classic 内からイメージを作成できないため、パイプラインで使用する前に別の方法を使用してイメージを作成する必要があります。

パイプラインのステップを作成するときに独自のコンテナを使用するには、イメージをURI推定器定義に含めます。で独自のコンテナを使用する方法の詳細については SageMaker、「 での Docker コンテナの使用 SageMaker」を参照してください。