支撑千万规模类别分类技术,百度飞桨定义工业级深度学习框架

CSDN CSDN

[原创文章:www.tt44.com]

2016 年,AlphaGo 横空出生,人工智能时代到来。同年,百度开源自研的深度进修框架 PaddlePaddle(飞桨),成为中国首个开源深度进修框架。
然而,这波由深度进修鞭策的手艺和财富海潮,也面临着诸多挑战。
数据量越来越大,有些模型的练习数据动辄上 TB;模型越来越深,越来越复杂,从 AlexNet 的 8 层,到 ResNet-1000 的 1202 层;模型参数越来越多,甚至跨越 10 个亿……
深度进修模型的练习效率成为一个要害问题。
因为深度进修模型的结果迭代对练习速度非常敏感,所以可以带来高机能分布式练习的深度进修框架是实际斥地和应用的刚需,也是 AI 在财富界可以真正落地的根蒂。
沟通的硬件设备数,高效率的分布式练习,能够大大缩短产物迭代周期。而在受限的时间要求下,高效率的平台型对象也能够显著削减硬件需求。
作为中国首个独一开源开放、功能完整的深度进修平台。经由多年的财富实践,百度飞桨已成长为集焦点框架、对象组件和办事平台为一体的端到端开源深度进修平台,飞桨的大规模分布式练习能力始终是其主要亮点。
百度深度进修手艺平台部总监马艳军在 CSDN 举办的 AI 斥地者大会上曾介绍,“飞桨同时支撑浓密参数和稀少参数场景的超大规模深度进修并行练习,支撑万亿甚至更高量级规模参数的高效并行练习,也是最早供应如斯壮大的深度进修并行手艺的深度进修平台,经由手艺立异做到高效、不乱、成本低廉。”

[转载出处:www.tt44.com]


真正的工业级规模:千亿规模稀少特征,万万规模类别分类

为降低超大规模分类应用对通俗的深度进修模型斥地者的门槛,进一步匡助斥地者提拔个性化介绍应用的机能,飞桨推出了针对分布式练习的一套全新的高并发参数办事器实现, 并发布了超大规模分类练习库PLSC,匡助斥地者实现千亿规模的稀少特征进行练习,以及万万规模类其余分类。
千亿规模稀少特征
千亿规模稀少特征:介绍系统在信息流、短视频等面向用户端的产物中的应用越来越普遍,而个性化介绍是这些产物追求的一个主要方针。实现个性化的一种主要且有效的方式就是行使深度进修方式将海量的个性化特征记忆在具有泛化能力的模型中。对于拥有上亿日活用户的产物,只要将用户的个性化信息与图文等资源的内容特征进行简洁的绑缚,特征规模就很轻易扩张到百亿甚至千亿级别。
为了撑持千亿规模的稀少特征、万亿规模的模型参数,飞桨设计了分布式 Key-Value 存取的体式,经由分段锁对 Key-Value 表进行分片,以支撑并发更新的恳求。针对大规模稀少特征的更新和通信特点,基于百度自研的 baidu-rpc 通信库进行了分布式练习逻辑的通信层封装。该参数办事器集成的功能包罗客户端发送参数的融合,恳求分片,模型参数的更新、加载、留存等,形成了一套可插拔、支撑高并发的参数办事器组件,并办事于信息流、短视频等介绍场景。
图 1:飞桨千亿规模稀少参数办事器设计
万万规模类别分类
万万规模分类的实际需求:视觉范畴中诸如图像分类、人脸识别、介绍系统中的标签介绍等应用平日面临着百万级甚至万万级的分类问题,今朝,基于深度进修模型进行分类是解决该问题最有效的手段,但受限于当前硬件随机接见存储容量的限制,分类模型的模型参数难以留存在单张 GPU 卡中,限制了通俗用户进行大规模分类模型练习的能力。对于此问题,今朝最好的解决手段就是采用模型并行的体式,但模型并行的设计、实现、机能和调试对于通俗的深度进修模型斥地者而言门槛较高。为此,飞桨推出了 PLSC(Paddle Large Scale Classification),其可以大幅度降低基于模型并行的超大规模分类的应用门槛,并具备极好的机能和扩展能力,使得每个斥地者都能够快速练习超大规模类其余分类模型。
飞桨 PLSC 功能特色:支撑图像义务通用数据读取体式、万万类其余分类、多机分布式模型并行练习、主动夹杂精度练习、供应分类层语义透露的办事化较量。
PLSC 的机能和扩展性:对于单机 8 卡 32G 显存的 V100,比拟常规的数据并行体式,PLSC 能够使分类义务的类别数提拔 250%。使用 128 块 v100 进行模型并行练习时,PLSC 扩张的类别数能够达到 5 万万类。在多机多卡模型并行情形下,比拟于单机八卡的 V100,PLSC 的加快效率比在万万类别以上时能够达到 80%。
图 2:基于模型并行的大规模类别分类手艺
表 1:飞桨PLSC中的arcface实现多机扩展效率

真正的工业级速度:让模型练习的速度飞起来

飞桨在借鉴 hogwild 无锁模式等业界经验的根蒂上,并基于对百度普遍的买卖场景支撑的实践储蓄,进一步提出全新的稀少参数通信、IO 异步读取、Geo-SGD 练习模式、多机多卡高机能练习、夹杂精度练习等功能,匡助通俗用户享受到工业级的模型练习速度。经由对通信和练习模式的立异,飞桨在超大规模模型或许数据吞吐、收集通信易成为瓶颈的义务上的练习速度和结果都获得极大提拔,并周全超越市场同类产物示意。
全异步参数办事器练习
稀少参数通信:在深度进修模型中,稀少特征往往需要进行特别的处理,不然将会给内存和通信的消费带来严重问题。在今朝主流的深度进修框架中,较为常见的处理稀少特征的方式是经由变长张量对稀少特征进行向量化,并对响应的特征嵌入进行稀少查找。而在参数办事器多机练习过程中,飞桨则针对稀少参数采用了一些分歧的处理方式,即首先经由对单节点下的并发练习线程发生的稀少梯度进行异步归并,尔后进行批量通信,这一把持极大降低了练习过程的通信量。对于稀少特征为主的模型练习,其多机加快比结果近乎能够达到线性。
多队列异步 IO:在某些数据量稀奇大、吞吐要求高,但模型自己较量开销较小的义务上,数据的 IO 很轻易成为练习效率的瓶颈。为解决这一问题,飞桨针对性地设计了多队列异步读取的功能,经由适当牺牲数据读取的一致性,使得模型机能获得了极大提拔。
无锁参数共享模式:早在 2010 年,Hogwild![1]就提出了无锁参数共享模式,其焦点思惟即稀少参数模型在无锁读写模式下也能够达到收敛结果。飞桨将这一模式作为参数办事器练习的默认设置,并合营稀少通信及多队列异步 IO,将 CPU 办事器的硬件资源的潜力施展到了极致。
图 2:飞桨全异步练习道理
表 2:飞桨全异步练习在Criteo-CTR数据集的吞吐扩展性
飞桨 Geo-SGD 练习
Geo-SGD:与传统的参数办事器练习体式分歧,飞桨独创的Geo-SGD(Geometric-SDG)采用 Worker 端进行模型参数的优化,并经由可界说通信距离的体式,同步内陆练习的模型参数插值。此外,办事器端会采用异步的体式融合各个 Worker 发送的模型参数差别。跟着模型的收敛,worker 端的模型参数差别会逐渐变小,办事器端对全局模型参数的更新幅度也会以几许级数的体式降低。
在 Geo-SGD 异步练习模式下,Worker 不消再守候 Server 发来新的参数即可执行练习,该体式使得练习结果和速度都获得极大的提拔。然则此模式对照适合能够在单机内能完整留存的模型,例如词向量、语义成家等场景。以较量量极小,但使用场景普遍的 word2vec 模型为例,采用 Geo-SGD 练习模式的飞桨分布式练习的练习速度可以超越同类最优产物 18 倍,而且在公开数据集的验证中,模型结果没有任何损失。 
图 3:飞桨自研Geo-SGD算法道理

表 3:Geo-SGD在数据读取和通信易成为瓶颈的模型下的扩展性
GPU 多机多卡高机能练习、夹杂精度
通信扩展组件
通信拓扑支撑:飞桨支撑多种通信的拓扑构造,例如 Ring-Based AllReduce、Hierachical Allreduce、2-D Allreduce 等,用户能够定制分歧的通信拓扑,针对分歧的集群情况提拔整体的通信机能。
梯度主动聚合:经由对模型参数梯度巨细的剖析,飞桨开导式的将梯度进行了聚合,以施展高机能通信收集,下必然局限内的数据包通信延时根基不变的特征。
通信并发:飞桨经由支撑多畅通信的手艺,可以将通信相关的算子并发,以充裕行使带宽的优势,将整体通信的延时大幅度降低。
Collective Operator:飞桨经由将通信组件算子化,极大的提拔了并行算法界说的天真性。以大规模分类库 PLSC 为例,其经由多种 Collective Operator 天真的组装,能够进行定制化的大规模模型并行算法的斥地。
基于最优优化策略的组合,我们以天然说话处理和较量机视觉两个范畴公开可获取的经典模型作为 Benchmark 进行对比,飞桨的多机练习优势跟着 GPU 卡数的增加而逐渐增加,在绝对机能和扩展性上都周全超越了公开的其他框架。
表 4 :飞桨多机多卡多机练习与参考框架的纵向对比
夹杂精度通信加持
在支撑半精度的 GPU 卡上,飞桨可以经由一行代码开启主动夹杂精度(Automatic Mixed Precision,AMP)较量,显著降低单卡的显存占用和较量时间。在多机多卡练习的情形下,飞桨分布式练习手艺经由对较量图的剖析,针对夹杂精度多机多卡练习的情形,连系Op的脚色,对 all reduce 算子进行了依靠关系的微调,包管多机通信的过程中采用半精度进行通信。在夹杂精度通信的情形下,模型的练习精度不受影响,且通信带宽占用下降 50%,包管了飞桨主动夹杂精度多机多卡练习情形下仍然有较好的加快比。
图 4:飞桨主动夹杂精度中多机多卡练习的半精度通信道理
表 5 中展示了飞桨在 Resnet50 模型上,基于 Imagenet 数据集测试的全精度练习和夹杂精度练习在多机情形下的横向扩展性以及纵向扩展性。在飞桨夹杂精度的支撑下,GPU 多机多卡下的横向扩展能力与全精度情形下相当,而纵向扩展方面的练习吞吐提拔达到了 2 倍以上。

表 5:飞桨多机多卡主动夹杂精度练习的扩展性

真正的 AI 普惠化:降本增效,惠及所有斥地者


为进一步惠及通俗用户,飞桨针对多个分歧场景进行了专门斥地,包罗定制多种分歧分布式练习模式的 Fleet API、匡助提拔公有云 GPU 练习速度及结果的深度梯度压缩(Deep Gradient Compression)手艺以及 LocalSGD 手艺、超大规模练习中可大幅提拔 batch size 的重较量手艺。经由对已有功能的整合以及现有手艺的立异,飞桨大幅度降低了用户练习分布式模型的进修、调试及算力成本,匡助用户更快获得最优练习结果。
Fleet API
大多数深度进修用户在使用分布式练习功能时,平日会碰到四大问题:1)内陆法式若何转成能够分布式练习的法式;2)若何提交分布式练习法式到集群中;3)应该采用什么样的并行练习方式,若何界说;4)若何进一步提拔本身义务的练习效率。
为了降低用户使用分布式练习的门槛以及练习成本,飞桨供应了分布式练习 Fleet API,以匡助用户获得极佳的机能体验。
经由使用 Fleet API,用户只需添加十余行代码,即可使用飞桨的参数办事器进行同步练习、异步练习、Geo-SGD 及 GPU 多机多卡同步练习,极大降低了用户在多种模式之间切换带来的进修成本。此外,Fleet API 供应了与集群资源进行交互的接口,并对用户透亮化,极大降低了用户面向集群资源进行调试的成本。Fleet API 还供应了可扩展接口,轻易社区斥地者自界说并行练习加快算法。 
公有云场景分布式练习的难点
在收集情况欠安的集群中,因为多机之间的通信受到带宽的限制,在练习较多节点的分布式练习义务时,通信阶段往往成为整个分布式练习的效率瓶颈,在公有云上的 GPU 集群进行练习时,这种情形尤为常见。为了让公有云用户可以在较低的带宽下进行高机能的分布式练习,飞桨供应了深度梯度压缩(Deep Gradient Compression)[2] 手艺。
飞桨在原始论文算法的根蒂长进行了进一步优化。考虑到在分歧模型下模型参数梯度的碎片水平,飞桨仅对必然尺寸以上的模型参数梯度进行稀少通信,以同步参数。而对于小块模型参数梯度,考虑到其与 TopK 模型参数梯度的通信延时没有太大的差别,是以仍采用通俗的多机多卡同步机制。 今朝,飞桨的深度梯度压缩手艺已经应用在了一些架设在公有云的 AI 平台,经由内部买卖数据评估,即使在较量力较弱的预估卡 P4 的多机多卡练习的情形下,飞桨 DGC 手艺也会将练习时间降低了 40%-60%。
LocalSGD
针对公有云场景,飞桨同时还供应 LocalSGD [3] 多机练习手艺,其可以将多步内陆更新的模型参数在多机多卡之间进行加权融合。大量实验证实,使用飞桨的 LocalSGD 手艺进行多机练习,对模型的收敛结果不会发生显著影响。同时,因为同步参数的距离比拟常规的多机多卡练习有所扩大,整体的加快比也有较好的提高。
使用重较量手艺节约显存进行超大 Batch 的并行练习
在飞桨的多机多卡 GPU 练习中,用户能够经由重较量手艺来提拔全局 Batch Size 的巨细,这在一些片上内存较小或许 GPU 卡数不敷的场景极为有效。
飞桨重较量手艺:跟着练习数据规模的逐渐增加,练习更大、更深的深度进修模型逐渐成为主流趋势。在今朝的深度进修模型练习中,模型平日需要保留前向较量的隐层究竟。因为究竟的数量会跟着模型层数的增加而线性增加,对今朝可以使用的较量芯片内存巨细组成了挑战。为此,飞桨提出 Forward Recomputation Backpropagation(FRB)手艺,经由在反向过程中对需要的前向逻辑进行从新较量,实现显存随层数增进而亚线性增进[4]。

图 5:飞桨重较量显存优化道理

重较量扩展 Batch Size 的道理:将前向中央隐层究竟显存释放,并在反向过程中基于锚点进行局部从新较量。

图 6. Bert 模型在单步较量显存的转变曲线图

在使用 32G V100 & FP32 时,我们在多个分歧模型下进行了最大 batch size 的测试,其提拔高达 600%。在分布式情形下,因为通信时间与重较量时间会有必然主动的重合,多数模型的练习机能下降会掌握在 20%以内,检测类模型的多机练习吞吐则不受影响。

表 6. 飞桨重较量手艺对多个模型最大可练习 Batch 的提拔情形
 
开源不易,飞桨加快,唯有祝福
 
2013 年,百度起头研发深度进修框架 PaddlePaddle,搜刮等焦点买卖上线 DNN 模型。
2016 年,在百度世界大会上,百度公布 PaddlePaddle 开源,标记着国产开源深度进修平台的降生。
2019 年 PaddlePaddle 发布中文名“飞桨”,升级为功能完整的财富级开源开放平台,加大手艺和财富生态的扶植。
在准确的道路上对峙数年之后,飞桨起头加快。
然而,这些成功来之不易,因为开源只是生态扶植的极小一部门,贸易公司往往要考虑投入产出比,而成长本身的深度进修框架,既有对 AI 综合手艺实力的要求,也需要对斥地资源常年持续投入,今朝全球也仅 Google、Facebook、百度等几大 AI 巨头在该偏向上持续投入。
 一款深度进修框架产物要被恢弘斥地者承认,只有在周全手艺竞争力的根蒂上,历久持续紧贴用户需求打磨,环绕框架竖立上粗俗生态,进而竖立具备高度壁垒的综合竞争力。
打造深度进修框架没有捷径可走,打造真正的财富级深度进修框架加倍不易,祝福百度飞桨,也祝福后来者。

[1] HOGWILD!: A Lock-Free Approach to Parallelizing Stochastic Gradient Descent. Feng Niu , Benjamin Recht , Christopher Re , Stephen J. Wright

[2] Deep Gradient Compression: Reducing the Communication Bandwidth for Distributed Training. Yujun Lin , Song Han , Huizi Mao , Yu Wang , William J. Dally

[3] Local SGD Converges Fast and Communication Little. Sebastian U. Stich

[4] Training Deep Nets with Sublinear Memory Cost. Tianqi Chen, Bing Xu, Chiyuan Zhang, Carlos Guestrin

点击阅读原文,认识更多!
CSDN微信号:CSDNnews扫描二维码关注公众号
爱八卦,爱爆料。
小编推荐
  1. NO.1 铲屎官被猫疯狂舔头,发质竟然变好了:喵牌护发精油?

    岛国推主 @mitoconcon 说,本身发现了一件对社畜猫奴们非常有利的事情: 至于具体原因, 还要从他养的猫说起… 这位推主是尺度的上班族,平时缓解

  2. NO.2 拥有“招狗体质”是种什么样的体验?

    实际生活中的小事也是如许,高高的堂叔到我家串门的时候,总会开着打趣说:“长的太高了也别扭,到了谁家里都得低着头才能进去。”说着就低

  3. NO.3 全国哀悼日金毛闻鸣笛声吼叫落泪,主人:“养两年第一次见!

    4月4日,全国公祭日。 在湖北荆门,10点钟响起防空警报时,这只大金毛倏忽有了回响: 你的悲伤,狗狗都懂。 这个冬天实在不易, 感激每一位逆行

  4. NO.4 铲屎官家的猫好像坏掉了,也不知道在干嘛

    铲屎官家的猫似乎坏掉了,也不知道在干嘛。 都不知道哪学来的,四周也没有奶牛猫兄弟啊。

  5. NO.5 12岁狗狗终前仍不忘主人教导,贴心举动感人至深,带着爱默默

    爱狗人士存眷大爱萌狗控 只需复原:汪。 内容更出色! 让您高兴每一天 这只狗狗叫璐璐,与主人一路生活了8年,最后在一个月多月前因为疾病永远脱

  6. NO.6 猫把米桶当猫砂盆用,埋太深主人没发觉,还用里面的米煮饭吃

    养猫是一件能令人身心愉悦的事……才怪!只有没养过猫的人才能说得出如许轻飘飘的感慨,真正养猫的人都知道,什么叫铲屎,什么叫满房子猫毛

  7. NO.7 “领养的猫一直咬人,我准备把它扔了!”

    在人人的印象里 猫是如许可爱的存在: 可爱,萌,工致,高冷…… 被猫咪洗脑的人类 恨不得用全世界最好的词汇来形容它 你是否也抱着如许的设法

  8. NO.8 为了报答收养恩情,流浪狗每天暴走6公里!它去干吗了?

    布鲁诺最初被发现的时候,镇上的所有人都不知道它从哪里来的。 饿坏了的它,几乎没有持续走下去的气力,倒在了拉里的家门前。 路过的人都认为

Copyright2018.天天资讯网资讯站,让大家及时掌握各行各业第一手资讯新闻!