摘要:ModelArts实现了更少资源、更低成本、更快速度、更极致的体验。128块GPU,ImageNet训练时间从18分钟降至10分钟!ModelArts已开放免费体验,欢迎试用!
1. 学习已广泛应用,模型增大、数据增长, 学习训练加速的需求日益剧增
近年来, 学习已经广泛应用于计算机视觉、语音识别、自然语言处理、视频分析等领域,可服务于视频监控、自动驾驶、搜索推荐、对话机器人等场景,具有广阔的商业价值。作为人工智能最重要的基础技术之一, 学习也逐步延伸到更多的应用场景,如智能制造、智慧交通等。
但是,为了达到更高的精度,通常 学习所需数据量和模型都很大,训练非常耗时。例如,在计算机视觉中,如果我们在ImageNet[1]数据集上用1块V100 GPU训练一个ResNet-50模型, 则需要耗时将近1周。这严重阻碍了 学习应用的开发进度。因此, 学习训练加速一直是学术界和工业界所关注的重要问题,也是 学习应主要用的痛点。
Jeremy Howard等几位教授领衔的fast.ai当前专注于 学习加速,在ImageNet数据集上用128块V100 GPU训练 ResNet-50模型的最短时间为18分钟。
然而,最近BigGAN、NASNet、BERT等模型的出现,预示着训练更好精度的模型需要更强大的计算资源。可以预见,在未来随着模型的增大、数据量的增加, 学习训练加速将变得会更加重要。只有拥有端到端全栈的优化能力,才能使得 学习的训练性能做到极致。
[1] 文中所指的ImageNet数据集包含1000类个类别,共128万张图片,是最常用、最经典的图像分类数据集,是原始的ImageNet数据的一个子集。
2. 华为云ModelArts创造新记录,“极致”的训练速度
华为云ModelArts是一站式的AI开发平台,已经服务于华为公司内部各大产品线的AI模型开发,几年下来已经积累了跨场景、软硬协同、端云一体等多方位的优化经验。ModelArts提供了自动学习、数据管理、开发管理、训练管理、模型管理、推理服务管理、市场等多个模块化的服务,使得不同层级的用户都能够很快地开发出自己的AI模型。
图1. 华为云ModelArts功能视图
在模型训练部分,ModelArts通过硬件、软件和算法协同优化来实现训练加速。尤其在 学习模型训练方面,我们将分布式加速层抽象出来,形成一套通用框架——MoXing(“模型”的拼音,意味着一切优化都围绕模型展开)。采用与fast.ai一样的硬件、模型和训练数据,ModelArts可将训练时长可缩短到10分钟,创造了新的记录,为用户节省44%的成本。
图2. 基于MoXing和ModelArts的训练速度提升
3.分布式加速框架MoXing
MoXing是华为云ModelArts团队自研的分布式训练加速框架,它构建于开源的 学习引擎TensorFlow、MXNet、PyTorch、Keras之上,使得这些计算引擎分布式性能更高,同时易用性更好。
高性能
MoXing内置了多种模型参数切分和聚合策略、分布式SGD优化算法、级联式混合并行技术、超参数自动调优算法,并且在分布式训练数据切分策略、数据读取和预处理、分布式通信等多个方面做了优化,结合华为云Atlas高性能服务器,实现了硬件、软件和算法协同优化的分布式 学习加速。
图3. 华为云MoXing架构图
易用:让开发者聚焦业务模型,无忧其他
在易用性方面,上层开发者仅需关注业务模型,无需关注下层分布式相关的API,仅需根据实际业务定义输入数据、模型以及相应的优化器即可,训练脚本与运行环境(单机或者分布式)无关,上层业务代码和分布式训练引擎可以做到完全解耦。
4.从两大指标看MoXing分布式加速关键技术
在衡量分布式 学习的加速性能时,主要有如下2个重要指标:
1)吞吐量,即单位时间内处理的数据量;
2)收敛时间,即达到一定的收敛精度所需的时间。
吞吐量一般取决于服务器硬件(如更多、更大FLOPS处理能力的AI加速芯片,更大的通信带宽等)、数据读取和缓存、数据预处理、模型计算(如卷积算法选择等)、通信拓扑等方面的优化,除了低bit计算和梯度(或参数)压缩等,大部分技术在提升吞吐量的同时,不会造成对模型精度的影响。为了达到最短的收敛时间,需要在优化吞吐量的同时,在调参方面也做调优。如果调参调的不好,那么吞吐量有时也很难优化上去,例如batch size这个超参不足够大时,模型训练的并行度就会较差,吞吐量难以通过增加计算节点个数而提升。
对用户而言,最终关心的指标是收敛时间,因此MoXing和ModelArts实现了全栈优化,极大缩短了训练收敛时间。在数据读取和预处理方面,MoXing通过利用多级并发输入流水线使得数据IO不会成为瓶颈;在模型计算方面,MoXing对上层模型提供半精度和单精度组成的混合精度计算,通过自适应的尺度缩放减小由于精度计算带来的损失;在超参调优方面,采用动态超参策略(如momentum、batch size等)使得模型收敛所需epoch个数降到最低;在底层优化方面,MoXing与底层华为自研服务器和通信计算库相结合,使得分布式加速进一步提升。
5.测试结果对比,用数据说话
一般在ImageNet数据集上训练ResNet-50模型,当Top-5精度≥93%或者Top-1 精度≥75%时即可认为模型收敛。
我们测试的模型训练收敛曲线如下图所示。此处Top-1和Top-5精度为训练集上的精度,为了达到极致的训练速度,训练过程中采用了额外进程对模型进行验证,最终验证精度如表1所示(包含与fast.ai的对比)。图4(a)所对应的模型在验证集上Top-1 精度≥75%,训练耗时为10分06秒;图4(b)所对应的模型在验证集上Top-5 精度≥93%,训练耗时为10分58秒。
(a)
(b)
图4. ResNet50 on ImageNet训练收敛曲线(曲线上的精度为训练集上的精度)
表1. MoXing与fast.ai的训练结果对比
训练平台
节点数量
训练时长
Top-1 精度
(验证集)
Top-5 精度
(验证集)
Fast.ai on AWS
16
0:18:06
75.67%
93.11%
MoXing on ModelArts in Huawei Cloud
16
0:10:06
75.17%
92.70%
MoXing on ModelArts in Huawei Cloud
16
0:10:58
76.04%
93.15%
6. 未来展望--更快的、更普惠的AI开发平台
华为云ModelArts致力于为用户提供更快的普惠AI开发体验,尤其在模型训练这方面,内置的MoXing框架使得 学习模型训练速度有了很大的提升。正如前所述, 学习加速属于一个从底层硬件到上层计算引擎、再到更上层的分布式训练框架及其优化算法多方面协同优化的结果,具备全栈优化能力才能将用户训练成本降到最低。
后续,华为云ModelArts将进一步整合软硬一体化的优势,提供从芯片(Ascend)、服务器(Atlas Server)、计算通信库(CANN)到 学习引擎(MindSpore)和分布式优化框架(MoXing)全栈优化的 学习训练平台。并且,ModelArts会逐步集成更多的数据标注工具,扩大应用范围,将继续服务于智慧城市、智能制造、自动驾驶及其它新兴业务场景,在公有云上为用户提供更普惠的AI服务。
目前华为云ModelArts已经在火爆公测中,欢迎大家试用。
ModelArts官网:登陆华为云首页搜索ModelArts
免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。