关闭步骤缓存 - Amazon SageMaker

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

关闭步骤缓存

如果您更改未在 按管道步骤类型划分的默认缓存键属性 中列出的管道步骤类型的任何属性,则不会重新运行该管道步骤。不过,您可能会决定无论如何都要重新运行该管道步骤。在这种情况下,您需要关闭步骤缓存。

要关闭步骤缓存,请将步骤定义的 CacheConfig 属性中的 Enabled 属性设置为 false,如以下代码片段所示:

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

请注意,当 Enabledfalse 时,将忽略 ExpireAfter 属性。

要使用 Amaz SageMaker on Python 关闭工作流工序的缓存SDK,请定义工作流工序的管道,关闭该enable_caching属性,然后更新管道。

再次运行后,以下代码示例会关闭训练步骤的缓存:

from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.workflow.steps import CacheConfig from sagemaker.workflow.pipeline import Pipeline cache_config = CacheConfig(enable_caching=False, 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] ) # update the pipeline pipeline.update() # or, call upsert() to update the pipeline # pipeline.upsert()

或者,在定义管道之后关闭 enable_caching 属性,这样就可以连续运行一段代码。以下代码示例演示了此解决方案:

# turn off caching for the training step pipeline.steps[0].cache_config.enable_caching = False # update the pipeline pipeline.update() # or, call upsert() to update the pipeline # pipeline.upsert()

有关更详细的代码示例以及有关 Python SDK 参数如何影响缓存的讨论,请参阅 Amaz SageMaker on Python SDK 文档中的缓存配置