ModelArts 黑科技揭秘|弹性训练,让训练资源张弛有度
摘要:AI 进入产业的门槛变高,开发者想要做出优秀的 AI 模型就不得不在算力和成本之间折中,怎么办?
为帮助企业在 AI 落地过程中进一步实现降本增效,华为云推出 AI 黑科技——弹性训练。
今年,AI 界最被热议的当属 OpenAI 最新发布的 GPT-3 模型,作为迄今为止发布的最大自然语言处理(NLP)转换器,它的模型参数有 1750 亿个,使用了 45TB 的数据,算力要求为 3640pfs-day,训练费用高达 1200 万美金。
如果 AI 开发者想要使用大数据来训练模型,就需要超强的算力,同时不得不支付高昂的训练费用。这就导致 AI 进入产业的门槛变高,开发者想要做出优秀的 AI 模型就不得不在算力和成本之间折中。
一方面,在预算投入有限的情况下,AI 开发者只能使用较弱的算力,从而造成 AI 服务开发的滞后。另外一方面,对于云厂商来说,由于用户使用时间和规模的灵活性,经常会存在空闲的计算资源没有被使用,造成浪费。华为云 AI 黑科技弹性训练动态缩减和扩展节点,很好地解决了 AI 开发者算力不足和云厂商算力空闲的矛盾。
灵活调配算力资源,弹性训练为 AI 开发降本增效
华为云弹性训练方案实时监控资源池的算力情况,如果有空闲的计算资源,会把该资源分配给正在训练中的弹性作业,提高该训练作业的算力,从而使该训练作业快速收敛。在有新任务提交时,华为云弹性训练方案又会根据资源池空闲资源和弹性作业的使用情况,把资源回收后给新起的任务,保证新的训练的快速效应。
![](https://static001.geekbang.org/infoq/9b/9b40116e85301ceac237cb92c1380129.png)
弹性训练流程
弹性训练可以根据模型训练速度的要求,自适应匹配最佳资源数。具体在产品上,它提供两种模式。
一是 Turbo 模式,可以充分利用空闲资源加速已有训练作业,在大多数典型场景下加速效率大于 80%,训练速度提升 10 倍,并且不会影响模型收敛精度。
二是 Economic 模式,可以通过最大化资源利用率,给开发者提供极致的性价比,在大多数典型场景下可以提升性价比 30%以上。
工程和算法多个维度优化,降低模型训练难度
华为云弹性训练方案需要解决多个复杂的分布式训练问题:如何实现动态多次弹性后训练的收敛过程和收敛结果和普通非弹性训练等价一致、如何保证弹性过程中优雅切换、如何解决混部等场景中 straggler 拖累系统性能、如何使用户减少代码修改、如何选择合适的通信框架从而减少梯度汇聚时间。华为云弹性训练方案从工程和算法多个维度进行优化,解决了上述问题,实现了训练的准确率不降低、加速比理想。
具体来说,华为云弹性训练方案具有易用、高效、优雅的训练框架和等价的训练过程,普惠的强大算力、高利用率的云资源四大优势。
易用、高效、优雅的训练框架
华为云的弹性训练基于易用高效的训练框架,用户只需要根据要求,简单的修改代码,就可以满足弹性训练的要求。
弹性训练框架支持 NCCL 通信,支持 all_reduce 或点对点的组网模式,可以高效的进行梯度聚合,因此有很好的加速性能。
同时,它也支持多 GPU/NPU 性能监控,支持基于每个 GPU/NPU 的性能进行训练负载动态调整,在混部等多 GPU/NPU 性能不均衡的场景下,依然具有很好的性能。
除此之外,弹性训练框架可以保证弹性过程是优雅的。弹性训练过程中涉及到节点数的变多和变少。在节点数变多时,它可以保证老节点在新节点切入前正常训练,新节点在准备好平滑的切入训练,因此不需要老节点长时间等待。在节点数变少时,弹性训练框架可以让释放的节点平滑退出。
等价的训练过程
弹性训练过程节点数是动态变化的,在弹性的动态过程中如何调整训练超参,保证模型的收敛是一个巨大的挑战。华为云的弹性训练方案在理论上可以保证,在初始设置正确的训练超参后,节点在弹性过程中变多或变小时,训练的模型的收敛过程和结果是一致的。因此用户在使用训练方案时,不需要因为弹性而引入过于复杂的超参调整策略,另外也不需要担心弹性的引入对收敛结果造成影响。等价训练过程让用户可以放心的使用弹性训练。
普惠的强大算力
相比传统的直接购买确定的算力方案,AI 开发者在投入很少的情况下,可以获得巨大的算力。用户提起弹性训练作业后,在训练过程中可以获得华为云中空闲的运算资源,算力迅速增强,因此在较短的时间内就可以把训练跑完,从而实现高频的训练迭代、快速的服务上线变现。弹性方案真正让用户实现了用得起。
高利用率的云资源
传统的资源强化定制方案,导致无法盘活空闲资源,不能根据实时资源使用情况,动态调整已经训练的作业。因此在传统方案中,经常会出现训练任务算力不足、耗时漫长的同时资源池中大量资源闲置的矛盾局面。
相比之下,华为云弹性训练方案具有极大的灵活性。基于弹性训练方案,华为云实时监控资源池中资源的情况,动态调整弹性训练作业的算力情况,当资源池中有空闲资源时,就将空闲资源分配给训练作业,保证资源的充分利用。
在弹性方案确定后,华为云的弹性训练方案自动监控调整,无需人为参与,方便高效。该方案满足了云服务商充分利用算力资源的需求和 AI 开发者的诉求,实现了双赢。
弹性训练方案应用前景广阔
随着数据的爆发式增长,AI 进入行业当中越发需要大算力的支撑来处理大数据。未来,弹性训练方案具有广阔的应用空间。使用华为云的弹性训练方案在 ImageNet(大型可视化数据库 )上训练 resent50 模型。在开始时使用 1 节点训练模型,在有空闲资源后,将训练节点调整为 16,此时的线性加速比为 10。在训练 60 个 epoch 后 top1 accuracy 为 76.1%。精度保持一致的情况下,华为云的弹性训练方案使收敛速度快了 9 倍。
华为云一直秉持着“将简单留给开发者,复杂留给华为云”的理念。华为云 AI 不断迭代创新,推出黑科技功能,加速 AI 进入产业,落地实际场景,让千行百业共享 AI 技术红利。
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/78d95142af9f6390e6aedc3d3】。文章转载请联系作者。
评论