[论文解读] EasyScale: Accuracy-consistent Elastic Training for Deep Learning
EasyScale 是一种新颖的弹性深度学习训练系统,通过将训练行为与资源分配解耦,在不同 GPU 资源(包括同构和异构环境)下均能保持一致的模型精度。它通过一种确定性、精度一致的训练抽象(EST)以及高效的作业内/作业间调度机制实现该目标,在生产环境部署中将集群 GPU 利用率提升了 62.1%。
Distributed synchronized GPU training is commonly used for deep learning. The resource constraint of using a fixed number of GPUs makes large-scale training jobs suffer from long queuing time for resource allocation, and lowers the cluster utilization. Adapting to resource elasticity can alleviate this but often introduces inconsistent model accuracy, due to lacking of capability to decouple model training procedure from resource allocation. We propose EasyScale, an elastic training system that achieves consistent model accuracy under resource elasticity for both homogeneous and heterogeneous GPUs. EasyScale preserves the data-parallel training behaviors strictly, traces the consistency-relevant factors carefully, utilizes the deep learning characteristics for EasyScaleThread abstraction and fast context-switching. To utilize heterogeneous cluster, EasyScale dynamically assigns workers based on the intra-/inter-job schedulers, minimizing load imbalance and maximizing aggregated job throughput. Deployed in an online serving cluster, EasyScale powers the training jobs to utilize idle GPUs opportunistically, improving overall cluster utilization by 62.1%.
研究动机与目标
- 为解决弹性深度学习训练中因动态资源分配和 GPU 异构性导致的模型精度不一致这一关键挑战。
- 将模型训练过程与资源分配解耦,保留开发者的原始超参数和训练流程。
- 在弹性环境下,即使使用不同类型的 GPU,也能实现位级确定性和可复现性。
- 通过机会性地利用空闲 GPU,最大化集群利用率,同时不牺牲模型精度。
- 在不改变模型设计或训练工作流的前提下,实现弹性训练在生产 GPU 集群中的无缝集成。
提出的方法
- 引入 EasyScaleThread(EST)抽象,封装训练状态,确保在动态 GPU 分配下的一致执行。
- 追踪并控制深度学习软件栈中与一致性相关的关键因素,包括 cuBLAS、NCCL 和 CUDA 内核,以消除非确定性行为。
- 采用两级调度策略:作业内调度器用于动态重新分配作业内的工作节点,作业间调度器用于在异构 GPU 集群中实现负载均衡。
- 利用深度学习的特性(如梯度累积和小批量处理)实现快速上下文切换和缩放操作中的低开销。
- 采用确定性执行模型,确保在 GPU 数量或 GPU 类型发生变化时,多次运行仍能产生位级完全相同的输出结果。
- 与现有的基于 DDP 的训练框架(如 PyTorch DDP)集成,无需修改模型架构或超参数。
实验结果
研究问题
- RQ1弹性深度学习训练是否能在不同数量的 GPU 和异构 GPU 类型下保持一致的模型精度?
- RQ2在分布式训练中,动态扩缩容操作期间如何保持模型的确定性和可复现性?
- RQ3为实现训练行为与资源分配的解耦并维持性能,需要哪些系统级抽象和调度机制?
- RQ4在不降低模型精度的前提下,生产集群中可利用的空闲 GPU 资源程度如何?
- RQ5在真实在线服务环境中,是否可将确定性弹性训练系统大规模部署?
主要发现
- EasyScale 通过在生产在线服务环境中机会性地使用空闲 GPU,使整体集群 GPU 利用率提升了 62.1%。
- 系统在推理作业释放 GPU 后 5 分钟内即可完成扩缩容,展现出对资源可用性的快速响应能力。
- 在为期一天的生产运行中,尽管经历了 362 次预占(preemption),所有 EasyScale 训练任务均未失败,证明了其高可靠性和容错能力。
- 通过消除软件栈中的非确定性行为,系统在不同 GPU 数量和 GPU 类型(包括 A100 和旧款)下均能保持一致的模型精度。
- 平均每天有 459 个空闲 GPU 被 EasyScale 任务利用,当需要时可迅速回收以支持高优先级的推理工作负载。
- 通过使用 EST 抽象和确定性执行机制,即使在动态资源变化下,也能确保位级完全相同的训练结果,实现完整的可复现性。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。