分析 Amazon SageMaker 支出并根据使用情况确定成本优化机会,第 4 部分:训练作业 | 亚马逊网络服务

分析 Amazon SageMaker 支出并根据使用情况确定成本优化机会,第 4 部分:训练作业 | 亚马逊网络服务

2021年,我们推出了 AWS Support 主动服务 作为部分 AWS 企业支持 计划。 自推出以来,我们已经帮助数百家客户优化了他们的工作负载、设置了防护机制,并提高了他们机器学习 (ML) 工作负载成本和使用情况的可见性。

在这一系列的帖子中,我们分享了关于优化成本的经验教训 亚马逊SageMaker. 在本文中,我们重点介绍 SageMaker 训练作业。

SageMaker 培训工作

SageMaker 训练作业是异步批处理,​​具有用于 ML 模型训练和优化的内置功能。

借助 SageMaker 训练作业,您可以使用自己的算法或从超过 25 种内置算法中进行选择。 SageMaker 支持各种数据源和访问模式、包括异构集群在内的分布式训练,以及实验管理功能和自动模型调整。

训练作业的成本取决于您在这些实例运行的持续时间(以秒为单位)内使用的资源(实例和存储)。 这包括进行培训的时间,如果您使用 温水池功能,您配置的保活期。 在 部分1,我们展示了如何开始使用 AWS 成本管理器 确定 SageMaker 中的成本优化机会。 您可以通过对使用类型应用过滤器来过滤培训成本。 这些使用类型的名称如下:

  • REGION-Train:instanceType (例如, USE1-Train:ml.m5.large)
  • REGION-Train:VolumeUsage.gp2 (例如, USE1-Train:VolumeUsage.gp2)

要在 Cost Explorer 中查看培训费用明细,您可以输入 train: 作为前缀 使用类型. 如果您仅过滤使用的小时数(请参阅以下屏幕截图),Cost Explorer 将生成两个图表:Cost 和 Usage。 此视图将帮助您确定优化机会的优先级并确定哪些实例运行时间长且成本高。

分析 Amazon SageMaker 支出并根据使用情况确定成本优化机会,第 4 部分:培训作业 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

在优化现有培训工作之前,我们建议遵循中涵盖的最佳实践 使用 Amazon SageMaker 优化机器学习的成本:在本地测试您的代码并使用 本地模式 为了测试,尽可能使用预先训练的模型,并考虑 管理现场培训 (与按需实例相比,它可以将成本优化高达 90%)。

启动按需作业时,它会经历五个阶段:开始、下载、训练、上传和完成。 您可以在 SageMaker 控制台上的训练作业页面上查看这些阶段和描​​述。

分析 Amazon SageMaker 支出并根据使用情况确定成本优化机会,第 4 部分:培训作业 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

从定价的角度来看,您需要为下载、培训和上传阶段付费。

审查这些阶段是诊断优化培训成本的第一步。 在这篇文章中,我们讨论了下载和训练阶段。

下载阶段

在前面的示例中,下载阶段用了不到一分钟。 但是,如果数据下载是您培训成本的一个重要因素,您应该考虑您使用的数据源和访问方法。 SageMaker 训练作业原生支持三种数据源: 亚马逊弹性文件系统 (Amazon EFS), 亚马逊简单存储服务 (亚马逊 S3)和 适用于Lustre的Amazon FSx. 对于 Amazon S3,SageMaker 提供了三种托管方式供您的算法访问训练:文件模式(数据下载到实例块存储)、管道模式(数据流式传输到实例,从而消除了下载阶段的持续时间)快速文件模式(结合了现有文件模式的易用性和管道模式的性能)。 有关选择正确的数据源和访问方法的详细指导,请参阅 为您的 Amazon SageMaker 训练作业选择最佳数据源.

使用托管点训练时,不会对因中断而发生的任何重复下载阶段收费(因此您只需为一次数据下载持续时间付费)。

请务必注意,尽管 SageMaker 训练作业支持我们提到的数据源,但它们不是强制性的。 在您的训练代码中,您可以实现从任何来源下载训练数据的任何方法(前提是训练实例可以访问它)。 还有其他方法可以加快下载时间,例如使用具有多处理功能的 Boto3 API 来同时下载文件,或者使用第三方库(例如 WebDataset 或 s5cmd)来加快从 Amazon S3 下载的速度。 有关详细信息,请参阅 使用 s3cmd 并行化 S5 工作负载.

训练阶段

优化训练阶段成本包括优化两个向量:选择正确的基础设施(实例系列和大小),以及优化训练本身。 我们可以大致将训练实例分为两类:基于加速的 GPU,主要用于深度学习模型,以及基于 CPU 的,用于常见的 ML 框架。 有关选择正确的实例系列进行培训的指导,请参阅 确保 Amazon SageMaker 上的高效计算资源. 如果您的训练需要 GPU 实例,我们建议您参考视频 如何选择用于深度学习的 Amazon EC2 GPU 实例.

作为一般指导,如果您的工作负载确实需要 NVIDIA GPU,我们发现客户可以通过两种方式显着节省成本 亚马逊弹性计算云 (Amazon EC2) 实例类型: 毫升.g4dn毫升.g5. ml.g4dn 配备了 NVIDIA T4 并提供特别低的每内存成本。 ml.g5 实例配备了 NVIDIA A10g Tensor Core,具有最低的每 CUDA 触发器成本 (fp32)。

AWS 为深度学习培训提供特定的成本节约功能:

为了调整和优化您的实例,您应该首先查看 亚马逊CloudWatch 培训工作正在生成的指标。 有关详细信息,请参阅 SageMaker 作业和端点指标. 您可以进一步使用 CloudWatch 自定义算法指标以监控训练性能.

分析 Amazon SageMaker 支出并根据使用情况确定成本优化机会,第 4 部分:培训作业 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

这些指标可以指示资源的瓶颈或过度配置。 例如,如果您观察到 CPU 利用率高而 GPU 利用率低,则可以通过使用 异构集群. 另一个例子是在整个作业期间看到 CPU 使用率一直很低——这可能会导致实例的大小减小。

如果你正在使用 分布式培训,您应该测试不同的分布方法(tower、Ring-AllReduce、mirrored 等)以验证最大利用率并相应地微调您的框架参数(例如,请参阅 在 Amazon SageMaker 上进行 TensorFlow 1.x 加速训练的最佳实践). 重要的是要强调您可以使用 SageMaker 分发 API 和库,例如 SageMaker 分布式数据并行, SageMaker 模型并行SageMaker 并行分片数据,它们针对 AWS 基础设施进行了优化,有助于降低培训成本。

请注意,分布式训练不一定线性扩展,可能会引入一些开销,这会影响整体运行时间。

对于深度学习模型,另一种优化技术是使用混合精度。 混合精度可以加快训练速度,从而减少训练时间和内存使用,同时对模型精度的影响最小甚至没有。 有关详细信息,请参阅 使用数据并行和模型并行进行训练 部分 Amazon SageMaker 中的分布式训练.

最后,优化特定于框架的参数可以对优化训练过程产生重大影响。 SageMaker自动模型调整 根据您选择的客观指标进行衡量,找到表现最佳的超参数。 将训练时间设置为客观指标并将框架配置设置为超参数可以帮助消除瓶颈并减少整体训练时间。 有关优化默认 TensorFlow 设置和消除 CPU 瓶颈的示例,请参阅 Aerobotics使用Amazon SageMaker和TensorFlow将每个样本的训练速度提高了24倍.

优化下载和处理时间的另一个机会是考虑对您的数据子集进行培训。 如果您的数据包含多个重复条目或信息增益低的特征,您可以训练数据子集并减少下载和训练时间,以及使用更小的实例和 Amazon Elastic Block商店 (亚马逊 EBS)量。 例如,请参阅 使用以数据为中心的方法最大限度地减少训练 Amazon SageMaker 模型所需的数据量。 另外, 亚马逊SageMaker数据牧马人 可以简化训练样本的分析和创建。 有关详细信息,请参阅 使用 Amazon SageMaker Data Wrangler 创建随机和分层的数据样本.

SageMaker调试器

为确保高效的培训和资源利用,SageMaker 可以使用以下方法分析您的培训工作 Amazon SageMaker调试器. 调试器优惠 内置规则 提醒影响训练的常见问题,例如 CPU 瓶颈、GPU 内存增加或 I/O 瓶颈,或者您可以创建自己的规则。 您可以访问和分析生成的报告 亚马逊SageMaker Studio. 有关更多信息,请参阅 Amazon SageMaker Studio 实验中的 Amazon SageMaker Debugger UI. 以下屏幕截图显示了 Studio 中的调试器视图。

分析 Amazon SageMaker 支出并根据使用情况确定成本优化机会,第 4 部分:培训作业 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

您可以深入了解 Python 运算符和函数( GPU 上的顶级操作 部分)运行以执行培训工作。 Debugger 内置规则用于分析与 watch 框架操作相关的问题,包括由于训练开始前下载数据导致的训练初始化时间过长以及训练循环中的步长异常值。 您应该注意,虽然使用内置规则是免费的,但自定义规则的费用会根据您在训练作业期间配置的实例和附加到它的存储而定。

结论

在本文中,我们提供了有关使用 SageMaker 训练作业训练 ML 模型时的成本分析和最佳实践的指导。 随着机器学习成为跨行业的强大工具,培训和运行 ML 模型需要保持成本效益。 SageMaker 提供广泛而深入的功能集,以促进 ML 管道中的每个步骤,并提供成本优化机会,而不会影响性能或敏捷性。


作者简介

分析 Amazon SageMaker 支出并根据使用情况确定成本优化机会,第 4 部分:培训作业 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。迪帕里•拉贾莱 是 AWS 的高级 AI/ML 专家。 她与企业客户合作,为在 AWS 生态系统中部署和维护 AI/ML 解决方案提供技术指导和最佳实践。 她曾与众多组织合作处理涉及 NLP 和计算机视觉的各种深度学习用例。 她热衷于帮助组织利用生成式 AI 来增强他们的使用体验。 在业余时间,她喜欢电影、音乐和文学。

分析 Amazon SageMaker 支出并根据使用情况确定成本优化机会,第 4 部分:培训作业 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。乌里·罗森博格 是欧洲、中东和非洲的人工智能和机器学习专家技术经理。 Uri 总部位于以色列,致力于为企业客户提供有关 ML 的所有东西的支持,以大规模设计、构建和运营。 在业余时间,他喜欢骑自行车、徒步旅行和增加熵。

时间戳记:

更多来自 AWS机器学习