作家
登录

大规模机器学习系统中的No Free Lunch

作者: 来源: 2017-10-10 09:08:51 阅读 我要评论

履行效力的优化

履行效力优化方面重要举例分享计算、存储、通信、容错四个方面的优化。

在计算方面,最重要的优化点就是均衡。均衡不仅包含不合的机械、不合的计算线程之间的负载均衡,还包含算术逻辑运算资本、存储资本、通信资本等等各类与计算有关资本之间的均衡,其最注目标是最大年夜化所有计算资本的应用率。在实际的优化过程中,须要细心地对法度榜样进行Profiling,然后找出可能的机能瓶颈,针对机能瓶颈进行优化,解决瓶颈问题,然则这时刻机能瓶颈可能会转移,就要持续迭代:Profiling→发明瓶颈→解决瓶颈。

典范的枷⒚机能优化轮回

分布式计算是有价值的,比如序列化价值、收集通信价值等等,并不是所有的义务都须要分布式履行,有些情况下义务或者义务的某些部分可以很好地被单机履行,不要为了分布式而分布式。为了获得更好的枷⒚机能,须要对单机和分布式进行分别优化。

CPU、GPU、FPGA等不合硬件有各自的优势,比如CPU合适复杂指令,有分支猜测,大年夜缓存,合适义务并行;GPU有大年夜量的算术逻辑运算单位,但缓存较小,没有分支猜测,合适粗粒度数据并行,但不合适复杂指令履行,可以用来加快比如矩阵运算等粗粒度并行的计算义务;FPGA对于特定的计算义务,比瘸李度进修猜测,经由优化后有着介于CPU和GPU之间的峰值,同时功耗远低于GPU芯片。针对机械进修义务须要进行合理的义务调剂,充分发挥不合计算硬件的优势,晋升计算硬件的应用率。

存储层级架构、机能数据和存储墙

针对存储的层次构造和各个层级存储硬件的机能特点,可以采取数据本地化及访存模式等存储优化的策略。因为机械进修是迭代的,可以将一些练习数据或者一些中心计算结不雅放在本地,再次练习时,无须请求远端的数据;别的在单机情况下,也可以测验测验不合的内存分派策略,调剂计算模式,加强数据本地化。在访存模式优化方面,也可以进行很多优化:数据拜访从新排序,比如GPU中纹理衬着和矩阵乘法运算中常见的Z秩序曲线优化;调剂数据构造,比如可以采取更紧致的数据构造,晋升次序访存的缓存射中率,同时,在多线程场景下,尽量避免线程之间频繁竞争申请释放内存,会竞争同一把锁。除此之外还可以将冷热数据进行分别,提豪华存射中率;数据预取,比如可以用别的一根线程提前预取数据到更快的存储中,晋升后续计算的访存效力。

在软件优化方面,可以经由过程比如序列化框架优化、通信紧缩、应用层优化的方法进行优化:

通信依附于序列化,通用序列化框架比如ProtoBuffer、Thrift等,为了通用性、一些前后兼容性和跨说话推敲等会就义必定的效力,针对特定的通信场景可以设计加倍简单的序列化框架,晋升序列化效力。

在带宽成为瓶颈时,可以推敲应用CPU兑换带宽的方法,比如应悠揭捉?缩技巧来降低带宽压力。

通信是分布式机械进修计算体系中至关重要的部分。通信包含点对点通信和组通信(如AllReduce、AllGather等)。可经由过程软件优化、硬件优化的情势进步履行效力。

更重要的优化来自于推敲应用层通信模式,可以做更多的优化:比如参数办事器的客户端,可以将同一台机械中多个线程的请求进行请求归并,因为同一次机械进修练习过程中,不合线程之间大年夜概率话苄很多反复的模型参数请求;或者根据参数办事器不合的一致性模型,可以做请求缓存,晋升萌芽效力,降低带宽;或者对于不合的收集拓扑,可以采取不合的组通信实现方法。

除了软件优化之外,通信架构须要充分应用硬件特点,应用硬件来晋升收集吞吐、降低收集延迟,比如可以设备多网卡建立冗余链路晋升收集吞吐,或者安排 Infiniband晋升收集吞吐、降低收集延迟等。

在容错方面,对于不合的体系,容错策略之间核心的差别就在于选择最合适的Tradeoff。这里的Tradeoff是指每次掉败后恢复义务所须要付出的价值和为了降低这个价值所付出的overhead之间的衡量。在选择机械进修模型练习体系的容错策略时,须要推敲机械进修模型练习义务的特点:起首机械进修模型练习是一个迭代式的计算义务,中心状况较多;其次机械进修模型练习体系中模型参数是最重要的状况;最后,机械进修模型练习不必定须要强一致性。

在业界常见的有Data Lineage和Checkpointing两种机械进修练习义务灾备筹划。Data Lineage经由过程记录数据的来源,简化了对数据来源的追踪,一旦数据产生缺点或者损掉,可以根据Data Lineage找到之前的数据应用反复计算进行数据恢复,常见的开源项目Spark就应用这种灾备筹划。Data Lineage的粒度可大年夜可小,同时须要一个比较靠得住的保护Data Lineage的办事,总体overhead较大年夜,对于机械进修模型练习中的共享状况——模型参数不必定是很好的灾备方法,因为模型参数是共享的有着异常多的中心状况,每个中心状况都依附于之前版本的模型参数和中心所稀有据的计算;与Data Lineage不合,机械进修模型练习体系中的Checkpointing策略,一般会重点存眷对机械进修模型参数的灾备,因为机械进修是迭代式的,可以应用这一点,在知足机械进修一致性模型的情况下,在单次或多次迭代之间或者迭代内对机械进修模型参数以及练习进度进行灾备,如许在产生故障的情况下,可以大年夜上一次迭代的模型checkpoint开端,进行下一轮迭代。比拟于Data Lineage,机械进修模型练习体系对模型参数和模型练习进度进行Checkpointing灾备是加倍天然和合适的,所以今朝主流的专门针对机械进修设计的计算框架比如Tensorflow、Mxnet等都是采取Checkpointing灾备策略。


  推荐阅读

  机器人和人工智能:软件测试和开发的未来

今朝,你必须保持在任何数例的情况下,软件测试的聊天机械人或框架在预期情况下可以区分缺点与亮点。"智能机械人"不再只是一个风行的术语。这是实际。这在主动化测试世比赛是有效的,因为它在其他处所>>>详细阅读


本文标题:大规模机器学习系统中的No Free Lunch

地址:http://www.17bianji.com/lsqh/37748.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)