

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

# ステップキャッシュを有効にする
<a name="pipelines-caching-enabling"></a>

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

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

`Enabled` フィールドには、特定のステップでキャッシュがオンになっているかどうかが示されます。このフィールドを `true` に設定すると、SageMaker AI に同じ属性を持つステップの前回の実行を検索するように指示できます。または、フィールドを `false` に設定して、パイプラインが実行される都度ステップを実行するように SageMaker AI に指示することもできます。`ExpireAfter` はタイムアウト期間を定義する [ISO 8601 の期間](https://en.wikipedia.org/wiki/ISO_8601#Durations)形式の文字列です。`ExpireAfter` 期間には、年、月、週、日、時、分の値を含めることができます。各値は数字とそれに続く期間の単位を示す文字で構成されます。例えば、次のようになります。
+ "30d" = 30 日
+ "5y" = 5 年
+ "T16m" = 16 分
+ "30dT5h" = 30 日と 5 時間。

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

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

新しいパイプラインの場合は、`enable_caching=True` で `CacheConfig` インスタンスを初期化し、パイプラインステップへの入力として指定します。次の例では、トレーニングステップのタイムアウト時間を 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](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#caching-configuration)」を参照してください。