You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:10:54