用过 AWS EC2 实例的用户可能都晓得,EC2 有一种 Spot 实例,能够将 AWS 中暂未应用的 EC2 容量提供给用户,相比按需实例,最多可享受 90% 的价格折扣。
那么当你应用 Amazon SageMaker 训练本人的 ML 模型时,面对长时间运行训练任务导致的高额账单,是否思考过,能不能通过 EC2 Spot 实例的形式来节约老本?
好消息来了!
托管 Spot 训练性能隆重上线
Amazon SageMaker 的托管 Spot 训练性能曾经正式公布!这是一个基于 Amazon EC2 Spot 实例的新性能,与在 Amazon SageMaker 中应用按需实例相比,最高可节约 90% 的 ML 训练老本。Spot 实例并不是新事物,从推出至今的近 10 年工夫里,Spot 实例曾经成为在 AWS 上构建可扩大和经济实惠 IT 平台的基石之一。从明天开始,用户不仅能在齐全托管的基础设施上运行 Amazon SageMaker 训练作业,同时也将受害于齐全托管的老本优化劣势,以同样估算获得更大成绩。
所有训练配置中都能够应用托管 Spot 训练性能:
- Amazon SageMaker 反对的所有实例类型;
- 所有模型:内置算法、内置框架和自定义模型;
- 所有配置:单实例训练、分布式训练、主动模型调整。
- 与任何齐全托管式服务一样,它的设置极为简略:
- 如果应用控制台,只需关上此性能即可。
- 如果应用 Amazon SageMaker 软件开发工具包,只需在 Estimator 构建器中将 train_use_spot_instances 设置为 true 即可。
就是这么简略:并且能够最高节俭 90% 的老本!很棒吧。
中断与检查点设置
应用托管 Spot 训练性能时须要留神一个重要差别:按需训练实例在训练作业实现前都会放弃可用,而托管 Spot 训练实例可能在咱们须要更多容量时随时被发出。
应用 Amazon Elastic Compute Cloud (EC2) Spot 实例时,咱们将提前 2 分钟收到终止告诉,并且必须自行采取失当口头。不过也无需放心,因为 Amazon SageMaker 是一种齐全托管的服务,它会主动解决此工作,中断训练作业,再次获得足够的 Spot 容量后重启或复原训练作业。如果在作业开始工夫和持续时间上比拟灵便,托管 Spot 训练性能将尤其有意义。此外,咱们还能够应用 MaxWaitTimeInSeconds 参数来管制训练作业的总持续时间(理论训练工夫加等待工夫)。
为防止在训练作业中断时从头重启训练作业,强烈建议设置检查点,借此即可按肯定距离保留训练中的模型。这样咱们就能够从定义明确的工夫点复原训练作业,从最近的局部训练模型持续作业。
- 内置框架和自定义模型:训练代码由咱们本人齐全管制。只需确保应用本人在 CheckpointConfig 参数中定义并传递到 SageMaker Estimator 的地位,通过失当的 API 定期将模型检查点保留到 Amazon Simple Storage Service (S3)。请留神 TensorFlow 会默认应用检查点。对于其余框架,相干示例参见示例笔记本和文档。
- 内置算法:计算机视觉算法反对检查点性能(对象检测算法、语义宰割算法以及最近推出的图像分类算法)。因为这些算法往往用于大型数据集的训练,运行的工夫也长于其余算法,产生中断的可能性也更高。其余内置算法目前不反对检查点性能。
接下来一起看看实际操作演示吧。
应用 Spot 训练性能训练内置的对象检测模型
参考此示例笔记本,咱们一起通过 AWS 控制台应用托管 Spot 训练实例来训练同样的作业,而不应用按需训练实例。上文已经提到,此时只需关注两件事件:
- 启用托管 Spot 训练性能(不言而喻)。
- 设置 MaxWaitTimeInSeconds 参数。
首先为训练作业命名,确保它领有失当的 AWS Identity and Access Management (IAM) 权限(和以前的做法一样)。
而后抉择内置的对象检测算法:
接下来为训练作业抉择实例数量和实例类型,确保领有足够的存储以满足检查点之需:
随后设置超参数,此处将应用与笔记本中雷同的参数。而后定义训练数据集的地位和属性:
对验证数据集执行同样的操作:
再定义模型检查点的保留地位。这是 Amazon SageMaker 将在产生中断时提取检查点以复原训练作业的地位。
这是最终模型构件的保留地位:
接下来只须要急躁期待。假如启用了托管 Spot 训练性能,并配置了一个非常宽松的 48 小时最大等待时间:
所有搞定,让咱们来训练此模型。训练实现后,老本节俭状况在控制台中高深莫测。
从上图能够看到,训练作业运行了 2423 秒,但得益于托管 Spot 训练性能,实际上只领取了 837 秒的费用,节俭达 65%!说到费用,下文将介绍该形式的定价机制。
定价
托管 Spot 训练作业依照实现或终止前运行的持续时间免费。
如果不应用检查点性能的内置算法和 AWS Marketplace 算法,会强制执行 60 分钟最大训练工夫(MaxWaitTimeInSeconds 参数)。
最初同样重要的是:无论训练作业重启或复原了多少次,用户仅需为数据下载工夫付费一次。
该性能已在提供 Amazon SageMaker 服务的所有区域推出,立刻试试吧。