ステップキャッシュを有効にする - Amazon SageMaker

ステップキャッシュを有効にする

ステップのキャッシュを有効にするには、ステップ定義に CacheConfig プロパティを追加する必要があります。 CacheConfig プロパティはパイプライン定義ファイルで次の形式を使用します。

{     "CacheConfig": {         "Enabled": false,         "ExpireAfter": "<time>"     } }

Enabled フィールドには、特定のステップでキャッシュがオンになっているかどうかが示されます。このフィールドを true に設定すると、SageMaker に同じ属性を持つステップの前回の実行を検索するように指示できます。または、フィールドを false に設定して、パイプラインが実行されるたびにステップを実行するように SageMaker に指示することもできます。ExpireAfter はタイムアウト期間を定義する ISO 8601 の期間形式の文字列です。ExpireAfter 期間には、年、月、週、日、時、分の値を含めることができます。各値は数字とそれに続く期間の単位を示す文字で構成されます。例えば、以下のとおり入力します。

  • "30d" = 30 日

  • "5y" = 5 年

  • "T16m" = 16 分

  • "30dT5h" = 30 日と 5 時間。

以下の説明では、Amazon SageMaker Python SDK を使用して新規または既存のパイプラインのキャッシュを有効にする手順を示します。

新しいパイプラインのキャッシュを有効にするには

新しいパイプラインの場合は、enable_caching=TrueCacheConfig インスタンスを初期化し、パイプラインステップへの入力として指定します。次の例では、トレーニングステップのタイムアウト時間を 1 時間に設定してキャッシュを有効にします。

from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.workflow.steps import CacheConfig cache_config = CacheConfig(enable_caching=True, expire_after="PT1H") estimator = Estimator(..., sagemaker_session=PipelineSession()) step_train = TrainingStep( name="TrainAbaloneModel", step_args=estimator.fit(inputs=inputs), cache_config=cache_config )

既存のパイプラインのキャッシュを有効にする

すでに定義されている既存のパイプラインのキャッシュを有効にするには、ステップの enable_caching プロパティを有効にし、expire_after をタイムアウト値に設定します。最後に、パイプラインを pipeline.upsert() または pipeline.update() で更新します。これを再度実行すると、次のコードサンプルがトレーニングステップのタイムアウト時間を 1 時間に設定してキャッシュを有効にします。

from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.workflow.steps import CacheConfig from sagemaker.workflow.pipeline import Pipeline cache_config = CacheConfig(enable_caching=True, expire_after="PT1H") estimator = Estimator(..., sagemaker_session=PipelineSession()) step_train = TrainingStep( name="TrainAbaloneModel", step_args=estimator.fit(inputs=inputs), cache_config=cache_config ) # define pipeline pipeline = Pipeline( steps=[step_train] ) # additional step for existing pipelines pipeline.update() # or, call upsert() to update the pipeline # pipeline.upsert()

または、(既存の) パイプラインを定義した後でキャッシュ設定を更新して、1 つの連続したコードを実行できるようにします。以下のコードサンプルはこの方法を示しています。

# turn on caching with timeout period of one hour pipeline.steps[0].cache_config.enable_caching = True pipeline.steps[0].cache_config.expire_after = "PT1H" # additional step for existing pipelines pipeline.update() # or, call upsert() to update the pipeline # pipeline.upsert()

詳細なコードサンプルと Python SDK パラメータがキャッシュに及ぼす影響に関する説明については、Amazon SageMaker Python SDK ドキュメントの「Caching Configuration」を参照してください。