专栏名称: 机器学习研究会
机器学习研究会是北京大学大数据与机器学习创新中心旗下的学生组织,旨在构建一个机器学习从事者交流的平台。除了及时分享领域资讯外,协会还会举办各种业界巨头/学术神牛讲座、学术大牛沙龙分享会、real data 创新竞赛等活动。
目录
相关文章推荐
宝玉xp  ·  转个招聘信息,有兴趣的可以去 X ... ·  昨天  
黄建同学  ·  一个开源的视频创作工具:AI Video ... ·  2 天前  
爱可可-爱生活  ·  【深度思考系列第三篇:深度分析AI引发的维度 ... ·  3 天前  
爱可可-爱生活  ·  【AutoFlow:开源的图谱型对话知识库工 ... ·  5 天前  
爱可可-爱生活  ·  【tex-fmt:一个用Rust编写的超高性 ... ·  5 天前  
51好读  ›  专栏  ›  机器学习研究会

【推荐】上帝的巴别塔在崩塌?阿里翻译一年2500亿次调用,节省25亿美元

机器学习研究会  · 公众号  · AI  · 2017-06-05 19:47

正文



点击上方“机器学习研究会”可以订阅哦
摘要
 

转自:阿里技术

神经网络机器翻译(Neural Machine Translation, NMT)模型自2013年在学术界首次被提出后,就不断快速发展,目前在某些语种和场景下,译文质量甚至可以达到人工翻译的水平。


阿里翻译团队自2016年10月起正式开始自主研发NMT模型,2016年11月首次将NMT系统的输出结果应用在中英消息通讯场景下的外部评测中并取得了不错的成绩,翻译质量有了大幅度提升。



但是,由于NMT模型的结构复杂,且深度神经网络模型本身的训练过程一般又会涉及很大量的计算,因此NMT系统往往需要较长的训练周期,例如,使用3000万的训练数据在单块GPU卡上一般需要训练20天以上,才能得到一个初步可用的模型。


基于上述问题,2017年2月初开始,阿里翻译团队和阿里云Large Scale Learning的穆琢团队合作,共同开发支持分布式训练的NMT系统,并于2017年3月底完成了第一个版本的分布式NMT系统。



项目成果



在2017年4月份的英俄电商翻译质量优化项目中,分布式NMT系统大大提高了训练速度,使模型训练时间从20天缩短到了4天,为项目整体迭代和推进节省了很多时间成本。


图一:使用不同卡数时,在中英100万训练语料上获得的收敛加速比

 



在4张GPU卡上,可以达到3倍以上的收敛加速比,在8张GPU卡上,可以达到5倍以上的收敛加速比,在16张GPU卡上,可以达到9倍以上的收敛加速比,通过不断累加GPU卡数,收敛加速比预期还会继续提升。


图二:中英2000万训练集上,利用2机4卡进行分布式训练的收敛过程

 


图三:多种分布式策略的加速效果对比

 


除了基于MA的分布式实现,项目组还尝试了其他多种分布式实现方法,也都获得了不同程度的加速效果,包括Downpour SGD、AllReduce SGD以及使用了BMUF(Blockwise Model-Update Filtering, 一种针对Model Average方法的改进方案)策略的Model Average方法。



实现方案



关于多机多卡分布式方案的讨论


data parallel数据并行


基于data parallel的同步SGD算法,即使用多个worker均摊整个batch的计算量,且每个GPU(worker)上存储完整的模型副本。Tensorflow本身提供的PS框架可以直接用于实现此算法。标准的同步SGD算法每次迭代都分为三个步骤,首先,从参数服务器中把模型参数pull到本地,接着用新的模型参数计算本地mini-batch的梯度,最后后将计算出的梯度push到参数服务器。参数服务器需要收集所有workers的梯度,再统一处理更新模型参数。


因此,在ps框架下,同步SGD算法的总通信量 transfer data = 2 * num_of_gpus * size_of_whole_model。通过对模型的大小和一个mini-batch计算时间的评估,发现在单机两卡的情况下,由于PCIe的带宽较高(~10GB/s),可以获得接近2倍的加速比,但两机两卡的情况下,计算通信比则为1:1,而随着机器数的增多,不但没有带来加速,反而比单卡更慢。


可见,通信优化是同步SGD算法的主要问题,下面的具体方案介绍中,我们也展示了相关的实验结果。


hybrid parallel混合并行


模型并行可以通过模型参数的存储策略,利用参数的稀疏性,减少参数的实际通信量,对训练过程进行加速。一般情况下,适用于稀疏模型的训练,但对于特殊的网络结构,模型并行可以和数据并行相结合,提高全局的计算通信比,我们这里称之为hybrid parallel。以AlexNet举例来说,可以把模型结构分为全连接层和卷积层两部分,从而对两个部分分别分析计算通信比。


全连接层计算通信比极低,毫无扩展性,而卷积层的计算通信比较高,适合使用数据并行,因此hybrid parallel的方案是:多个workers使用数据并行的方式计算卷积层,而只需一个worker(或极少量workers)计算全连接层,以获得最高的计算通信比,且卷积层和全连接层中间只有一个规模很小的feature map需要通信。


通过对NMT的模型中各个层进行profiling,发现网络中各部分的参数大小相差不大,计算量也相当,不但计算通信比不高,各层结构之间传递的feature map也较大,并不适合使用hybrid parallel的方式。


原文链接:

https://mp.weixin.qq.com/s/DlDctLybO-nuljuB9RYqbg

“完整内容”请点击【阅读原文】
↓↓↓