使用 AWS Batch 执行基于 GPU 的机器学习训练 - 高性价比的大规模训练方案
利用现有 Docker 容器执行 GPU 训练,通过 Spot 实例与检查点机制将成本最高降低 90%。同时介绍与 SageMaker 的使用场景区分。
在 Batch 上执行 GPU 训练的优势
SageMaker 是覆盖 ML 全生命周期的服务,但如果您希望直接使用现有的 Docker 容器和训练脚本,或者不符合 SageMaker 的框架限制,Batch 则是一个有力的选择。Batch 允许使用任意 Docker 镜像,可以自由组合 PyTorch、TensorFlow、JAX 等框架。只需在计算环境中指定 GPU 实例(P4d、P5、G5),并在作业定义中通过 resourceRequirements 指定 GPU 数量,即可执行基于 GPU 的训练。
Spot 实例与检查点
GPU 实例的按需价格较高,但使用 Spot 实例可实现最高 90% 的成本节省。为应对 Spot 中断,需要在训练脚本中实现检查点保存功能。每隔一定 epoch 将模型权重和优化器状态保存到 S3,中断后重试时从检查点恢复。Batch 具备 Spot 中断时自动重试作业的功能,可配置重试次数和策略。检查点保存间隔需在训练时间和存储成本之间取得平衡,通常为 30 分钟到 1 小时。
分布式训练与超参数搜索
通过多节点并行作业,可在多个 GPU 实例上执行分布式训练。使用 PyTorch 的 DistributedDataParallel 或 Horovod 进行数据并行以加速训练。Batch 会自动配置节点间通信(EFA: Elastic Fabric Adapter),简化了分布式训练的基础设施搭建。使用数组作业并行执行超参数搜索时,将每个任务的索引映射到超参数组合。可以并行运行数百种学习率、批量大小、Dropout 率的组合,高效找到最优配置。
Batch GPU 训练的费用
AWS Batch 本身不产生额外费用,成本仅为所使用的 EC2 实例费用。GPU 实例价格较高,p4d.24xlarge(A100 x 8)按需价格约为每小时 32.77 美元,g5.xlarge(A10G x 1)约为 1.006 美元(截至 2026 年 8 月)。使用 Spot 实例可获得最高 90% 的折扣,但存在中断风险,因此必须实现检查点机制。选择大型实例缩短训练时间,还是选择小型实例以较低成本长时间运行,需根据作业的紧急程度进行权衡。
作业定义与计算环境的设计
在 AWS Batch 中,将要执行的处理描述为作业定义,并将使用哪些资源运行设定为计算环境。在作业定义中,指定要使用的容器镜像、所需的 GPU 和内存、重试策略等。在计算环境中,设置要使用的实例类型以及最小和最大规模。通过作业队列提交作业后,Batch 会自动将其分配到空闲的资源上执行。借助这种三层结构,可以将资源的调配和调度交给 Batch,使用者则能专注于训练的内容。
容器与数据的准备
要在容器中运行 GPU 训练,需要准备包含所需库和训练代码的镜像,并预先注册到镜像仓库中。可以直接使用现有的训练容器,这是 Batch 的优势。将训练数据放在 S3 中,在作业启动时获取。如果数据量庞大且需要高速读取,可以同时使用与 S3 联动的高性能共享文件系统,从而消除数据读取的瓶颈。在训练前的准备工作中,预先设计好数据的存放位置和获取路径,是避免 GPU 闲置、高效进行训练的前提。
与 SageMaker 的区分使用
在机器学习的训练基础设施方面,可以选择 Batch 或 SageMaker。Batch 适用于希望直接运行现有容器或自有训练环境,或者想作为通用批处理基础设施也统一承担 ML 以外任务的场景。另一方面,SageMaker 适用于需要涵盖实验管理、模型部署乃至监控的 ML 专用集成环境的场景。可以这样整理:如果只想以低成本大量执行训练,选择 Batch,如果想以托管方式运转 ML 的整个生命周期,选择 SageMaker。根据现有资产和所需功能的范围,选择合适的基础设施。
监控与运维
通过日志和指标掌握训练作业的状况。将各作业的标准输出汇总到日志中,确认训练的进展和异常。失败的作业会根据设置自动重试,也能应对 Spot 实例的中断。在尝试大量参数组合时,数组作业能够批量提交众多作业,使用方便。如果定义作业之间的依赖关系,就可以按顺序执行预处理、训练和评估。通过监控 GPU 的使用率并确认资源是否得到有效利用,可以在避免浪费成本的同时,实现高效的训练运维。
总结
AWS Batch 最适合利用现有 Docker 容器进行基于 GPU 的 ML 训练。通过 Spot 实例与检查点的组合可以大幅降低成本,并利用数组作业并行化超参数搜索。当不需要 SageMaker 的托管功能、注重训练环境的自由度时,这是有效的选择。
参考资料(AWS 官方)
本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。
如本页内容与官方文档不一致,请以官方文档为准。