×
嵌入式 > 技术百科 > 详情

深度神经网络DNN的多GPU数据并行框架及其在语音识别的应用

发布时间:2020-06-17 发布时间:
|

深度神经网络(Deep Neural Networks, 简称DNN)是近年来机器学习领域中的研究热点[1][2],产生了广泛的应用。DNN具有深层结构、数千万参数需要学习,导致训练非常耗时。GPU有强大的计算能力,适合于加速深度神经网络训练。DNN的单机多GPU数据并行框架是腾讯深度学习平台的一部分,腾讯深度学习平台技术团队实现了数据并行技术加速DNN训练,提供公用算法简化实验过程。对微信语音识别应用,在模型收敛速度和模型性能上都取得了有效提升——相比单GPU 4.6倍加速比,数十亿样本的训练数天收敛,测试集字错率降低约10%。目前基于此框架训练的模型成功上线到微信语音输入法、微信语音开放平台和微信语音消息转文字。

1. DNN数据并行导论

1.1. 典型应用分析:语音识别

语音识别是深度神经网络获得成功的一个应用范例。

语音识别应用,简单来说由声学模型建模,语言模型建模以及解码三部分构成。其中声学模型用来模拟发音的概率分布,语言模型用来模拟词语之间的关联关系,而解码阶段就是利用上述两个模型,将声音转化为文本。神经网络具有模拟任何分布的能力,深度神经网络比浅层神经网络表达能力更强,它模拟了人脑的深层结构,能够更准确地“理解”事物的特征。因此相较于其他方法,深度神经网络可以更为准确地模拟声学模型和语言模型。这里将深度神经网络应用于语音识别中的声学模型建模。

图 1揭示了一个深度神经网络表达的具有4个隐藏层的声学模型结构,训练这样的具有深层结构的模型,其优势在于逐层的特征学习过程是由初级到高级的过程:第一层学习初始特征(例如最基本的发声),在后面的层次逐渐学习到越来越高级的特征(例如声音的组合),直到通过模型的输出层来有效地识别声音。

图1深层、稠密、包含4隐藏层的声学模型

1.2. 现有的加速方法

腾讯深度学习平台技术团队在语音识别研究中率先引入了GPU技术用于DNN训练,获得了良好的成果,相比单台CPU服务器达到千倍加速比。随着训练数据集扩充、模型复杂度增加,即使采用GPU加速,在实验过程中也存在着严重的性能不足,往往需要数周时间才能达到模型的收敛,不能满足对于训练大规模网络、开展更多试验的需求。目前服务器上安装多个GPU卡已经非常普遍,在通用计算领域使用多GPU并行加速技术[3]扩展计算密集型应用程序的并行性、提高程序性能也是越来越热门的发展方向。

由于语音业务中DNN模型采用多层全连接的网络结构,腾讯深度学习平台技术团队在单机多GPU模型并行的实践中发现拆分其模型存在较大的额外开销,无论采用普通模型拆分还是流式控制,扩展性有限:相比GPU的计算能力,如果模型参数量不能匹配,模型并行不能有效地利用多个高计算能力的GPU卡,表现为使用2GPU时已有较好的性能提升,但使用更多GPU却无法取得更好效果。

腾讯深度学习平台技术团队考虑到上述问题,在腾讯深度学习平台的DNN多GPU并行训练框架中,选择了数据并行的技术路线,完成了升级版的单机多GPU数据并行版本。

本文描述了多GPU加速深度神经网络训练系统的数据并行实现方法及其性能优化,依托多GPU的强大协同并行计算能力,结合数据并行特点,实现快速高效的深度神经网络训练。

1.3. 框架设计目标

由于训练深层网络使用的训练数据规模庞大、计算开销大,从而训练过程收敛难,训练用时久,通过开发多GPU数据并行版本期望达到下述目标:充分利用单机多GPU计算资源和DNN的数据并行特性,加速模型训练过程;提供默认的深度学习算法实现,以帮助提升语音识别准确率;提供更好的易用性支持,方便进行模型训练。

上述目标完成后,系统可以支持目标模型的快速训练,达到更好的收敛效果。另外,作为深度学习平台中的DNN数据并行框架,其训练算法具有一定的通用性,可通过简单配置快速适用于其他DNN应用场景中。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
分拣机器人的工作原理是什么