如何设置SageMaker HyperParameter Tuning作业的最大运行时长
SageMaker超参数调优作业最大运行时长调整方案
你可以从两个维度设置运行时长上限,覆盖单作业和整体调优作业的风险:
1. 限制单个子训练作业的最长运行时间
这个参数可以避免单个训练任务卡住后长时间占用资源,配置方式:
- 如果你使用SageMaker Python SDK创建训练评估器,在初始化
Estimator对象时添加max_run参数,单位为秒,示例代码:
import sagemaker from sagemaker.estimator import Estimator estimator = Estimator( image_uri="你的训练镜像地址", role=sagemaker.get_execution_role(), instance_count=1, instance_type="ml.m5.xlarge", max_run=300, # 单个作业最长运行5分钟,超出自动终止 # 其余你的训练配置参数 )
- 如果你通过AWS控制台创建训练作业,在作业配置的「资源配置」板块直接填写「最大运行时长」即可。
2. 限制整个超参数调优作业的总运行时间
这个参数控制从调优作业启动到所有作业结束的最长耗时,超出后自动终止所有关联的子训练作业,配置方式:
- 如果你使用Python SDK创建超参数调优作业,在
HyperparameterTuner初始化时,通过resource_limits参数指定总时长上限,示例代码:
from sagemaker.tuner import HyperparameterTuner, IntegerParameter tuner = HyperparameterTuner( estimator=estimator, objective_metric_name="你的目标指标名", hyperparameter_ranges={ "batch-size": IntegerParameter(32, 256) # 其余超参数范围 }, max_jobs=500, max_parallel_jobs=500, resource_limits={ "MaxRuntimeInSeconds": 28800 # 整个调优作业最长运行8小时,超出自动终止所有作业 }, # 其余调优配置参数 )
- 如果你通过AWS控制台创建超参数调优作业,在「调优作业配置」的「资源限制」板块,直接填写「最大总运行时长(秒)」即可。
注:上述两个参数的取值范围均为1秒~2592000秒(即官方标注的默认值30天),你可以根据自己的作业实际耗时灵活下调,完全覆盖你避免作业长时间异常运行的需求。
内容的提问来源于stack exchange,提问作者L Xandor
相关产品推荐
相关产品推荐

