SageMaker管道Batch Transform步骤AlgorithmError重试策略配置及超时优化
解决方案
一、避免等待16小时才失败:设置任务超时时间
你可以在Transformer初始化时添加max_runtime_in_seconds参数,指定Batch Transform任务的最长运行时长。结合你提到的正常耗时约1小时,建议设置为2小时(7200秒),这样任务一旦超出这个时间就会自动终止,无需等待16小时才进入失败状态。
修改后的Transformer代码示例:
transformer = Transformer( model_name=my_model.properties.ModelName, instance_count=test_processor_instance_count, instance_type=test_processor_instance_type, output_path=my_output_test_path, max_runtime_in_seconds=7200 # 设置为2小时,可根据实际情况调整 )
二、针对AlgorithmError设置自动重试
要实现自动重试,需要给TransformStep配置重试策略。你需要导入重试相关模块,指定触发重试的异常类型为AlgorithmError,同时设置重试次数和间隔。
步骤1:导入重试模块
在代码开头添加:
from sagemaker.workflow.retry import RetryPolicy, ExceptionType
步骤2:给TransformStep添加重试策略
修改step_transform的定义,加入retry_policies参数:
step_transform = TransformStep( name="TestInference", description="Test Inference", transformer=transformer, inputs= TransformInput( data=my_data_s3_uri, content_type = 'application/octet-stream', data_type = 'S3Prefix' ), retry_policies=[ RetryPolicy( exception_types=[ExceptionType.ALGORITHM_ERROR], # 仅针对AlgorithmError触发重试 max_attempts=3, # 最多重试3次 delay_seconds=60 # 每次重试间隔60秒,可按需调整 ) ] )
参数说明
ExceptionType.ALGORITHM_ERROR:明确指定只有当任务抛出AlgorithmError时才触发重试max_attempts:控制重试的最大次数,可根据偶发问题的出现频率调整delay_seconds:设置两次重试之间的等待时间,避免立即重试导致的资源冲突
内容的提问来源于stack exchange,提问作者Giuseppe La Gualano
相关产品推荐
相关产品推荐

