论文笔记——Mariana:Tencent Deep Learning Platform and its Applications
来源:互联网 发布:侠客风云传优化怎么样 编辑:程序博客网 时间:2024/05/20 02:22
文章首先阐述Tencent搭建深度学习平台应满足的需求:
(1)要求平台有能够训练大量的参数和数据的能力;
(2)平台能够训练大模型;
(3)平台在实际应用中能够简便的使用;
介绍了Google DistBelief系统for cpu、COTS系统for GPU中使用的两种并行方式:数据并行和模型并行。数据并行把数据分成几部分,同时训练一个模型,前向传播完成后,收集梯度、更新模型参数;模型并行把模型拆分、多组worker进行一个模型的训练。
为了适应不同的业务需求,Tencent搭建了三个深度学习的框架:(1)用于深度神经网络的基于multi-gpu的数据并行框架;(2)用于卷积神经网络的基于multi-gpu的数据并行和模型并行框架;(3)用于大规模的深度神经网络的基于multi-gpu的数据并行和模型并行框架。
首先介绍的是用于深度神经网络的基于multi-gpu的数据并行框架。该框架主要用于自动语音识别,模型是由含4到6隐含层的、有5千万个参数组成的深度神经网络组成,模型并行在增加gpu的情况下,并不能得到更好的加速效果,所以框架采用数据并行。数据并行框架在cpu上有一个驱动程序来控制训练过程中的随机梯度下降的同步,该驱动程序每次从磁盘中读取mini-batch数据到gpu中,直到所有的gpu完成了mini-batch的处理,再协调处理各个gpu的参数交换。参数交换过程分为三步:首先收集各个gpu的梯度,再根据梯度更新模型,最后分发更新后的模型给各个gpu。从物理链路上来看,各个gpu是通过PCIe连接的,而一个gpu服务器的多块板卡是通过IOH连接的,这两者的带宽,会影响框架的效率。为了在参数交换过程中,最小化数据的拷贝、最大化的利用的gpu之间的传输带宽,文章提出一种分区线性拓扑结构(Partitioned Linearity Topology)来实现快速的参数交换,交换过程如下图(此处不理解)。这一部分的最后,文章提出一种Approximate AdaGrad训练方法来减少AdaGrad方法的过拟合(此处也不是很理解)。
图1 分区线性拓扑结构(Partitioned Linearity Topology)
文章接着介绍了第二个——用于卷积神经网络的基于multi-gpu的数据并行和模型并行框架,该框架主要用来处理计算机视觉应用,如图像识别,也可用于自动语音识别。因为卷积神经网络模型较大,所以模型并行是必须的,同时,数据并行可以加速模型并行的训练。该框架的结构如下图,有两个worker group作为数据并行,每个worker group由两个gpu组成,为模型并行。分区线性拓扑结构(Partitioned Linearity Topology)在数据并行中同样被采用,用来实现快速的参数交换。文中提出一个transfer layer来简化代码和提高模型并行的计算性能,transfer layer通过gpu之间的数据传输,来保证只有本地的gpu内存中的数据被访问,相邻的层会自动创建transfer layer。最后,采用了一个三阶段的流水线来加速训练。
图2 CNN并行框架
图3 三阶段流水线
最后一个框架是用于大规模的深度神经网络的基于multi-gpu的数据并行和模型并行框架,该框架适合占用大量内存、中等计算量,但需大量计算数据的大型模型。结构如下图所示,该cpu集群框架提供Vertex+Message的API,实现BulkSynchronous Parallel(BSP)模式。Vertex可能是一个或一组神经元,甚至可能是整个DNN模型,Vertex API包括梯度序列化和为了参数交换而参数反序列化的方法。DNN模型在集群中的训练采用多次异步迭代的随机梯度下降法(SGD)。(看不明白)
图4 用于DNNs的CPU集群架构
- 论文笔记——Mariana:Tencent Deep Learning Platform and its Applications
- Mariana: Tencent Deep Learning Platform and its Application学习
- [深度学习论文笔记] Convolutional Neuron Networks and its Applications
- 论文阅读——Wide & Deep Learning
- Machine Learning & Deep Learning 论文阅读笔记
- 笔记——TensorFlow and deep learning, without a PhD
- Database and its applications
- Unsupervise learning——Unsupervised feature learning and deep learning
- 论文笔记——UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS
- 【论文笔记】Learning Deep Face Representation
- Deep&Wide Learning论文阅读笔记
- 论文笔记-deep learning-detection (2017)
- 论文笔记 A Large Contextual Dataset for Classification,Detection and Counting of Cars with Deep Learning
- Deep Region and Multi-label Learning for Facial Action Unit Detection简要论文笔记
- 论文笔记 Learning Deep Context-aware Features over Body and Latent Parts
- 【论文阅读笔记】Deep Learning based Recommender System: A Survey and New Perspectives
- [deep learning] 部分论文
- Deep Learning论文选读
- Application中定义公用数据
- udp如何实现可靠性传输?
- 个人记事本
- 第五章----编码/加密
- Yocto tips (9): Yocto 软件包的下载地址在哪
- 论文笔记——Mariana:Tencent Deep Learning Platform and its Applications
- 第一个程序
- 布尔值编辑风格-报表系统
- jq select操作全集
- 设计模式C++实现--桥接模式
- hdu 1158 Employment Planning
- Android PullToRefresh 分析之四、扩展RecyclerView
- Android版添加phonegap---为APP添加CNZZ统计插件教程
- Java NIO 随笔