托管 Spot 培训:在您的 Amazon SageMaker 培训作业上节省高达 90%说:
设置它非常简单,就像在使用完全托管的服务时一样:
- 如果您使用的是控制台,只需打开该功能即可。
- 如果您使用的是 Amazon SageMaker 开发工具包,只需在 Estimator 构造函数中将 train_use_spot_instances 设置为 true。
SageMaker SDK sagemaker.estimator.Estimator说:
- use_spot_instances (bool) – 指定是否使用 SageMaker Managed Spot 实例进行训练。如果启用,则还应设置 max_wait 参数。
- max_wait (int) -- 等待现场训练实例的超时(以秒为单位)(默认值:无)。在这段时间之后,Amazon SageMaker 将停止等待 Spot 实例可用(默认值:无)。
根据文档,在下面运行。
from sagemaker.tensorflow import TensorFlow
estimator = TensorFlow(
entry_point="fashion_mnist_training.py",
source_dir="src",
metric_definitions=metric_definitions,
hyperparameters=hyperparameters,
role=role,
input_mode='File',
framework_version="2.3.1",
py_version="py37",
instance_count=1,
instance_type="ml.m5.xlarge",
use_spot_instances=True,
max_wait= 23 * 60 * 60,
base_job_name=base_job_name,
checkpoint_s3_uri=checkpoint_s3_uri,
model_dir=False # To avoid duplicate 'model_dir' command line argument
)
但是,会导致错误。
ClientError: An error occurred (ValidationException) when calling the CreateTrainingJob operation: Invalid MaxWaitTimeInSeconds. It must be present and be greater than or equal to MaxRuntimeInSeconds