数据传输方法和系统、电子设备技术方案

技术编号:17940406 阅读:28 留言:0更新日期:2018-05-15 20:40
本申请公开了数据传输方法和系统、电子设备,其中所述方法包括:确定分布式系统中任一节点向至少一其他节点待发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第一数据;对所述第一数据中的至少部分进行稀疏处理;向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据。本发明专利技术的实施可在不降低通信频率的情形下大幅减少网络通信流量,缩短深度学习训练的时间。

Data transmission methods and systems and electronic devices

The present application discloses a data transmission method and system, and an electronic device, wherein the methods include determining the first data that any node in a distributed system is to be sent to at least one other node to update the depth learning model trained by the distributed system; at least part of the first data is added to the data. Row sparse processing; sending at least one part of the first data after sparse processing to the at least one other node. The implementation of the invention can substantially reduce network communication traffic without shortening the communication frequency, and shorten the time for deep learning and training.

【技术实现步骤摘要】
数据传输方法和系统、电子设备
本申请涉及电数字数据处理领域,尤其涉及数据传输方法和系统、电子设备。
技术介绍
随着大数据时代的到来,深度学习得到了广泛的应用,包括图像识别、推荐系统以及自然语言处理等。深度学习训练系统是一种通过训练输入数据获取深度学习模型的计算系统。在工业环境中,为了能够提供高质量的深度学习模型,深度学习训练系统需要处理大量训练数据,如:斯坦福大学计算机视觉实验室开放的ImageNet数据集包含了1400多万张高精度的图片。然而,单节点系统由于其计算能力和内存限制,往往耗时数周甚至数月才能完成运算。在这种情况下,分布式深度学习训练系统在工业界和学术界得到了广泛的关注。典型的分布式深度学习训练系统通常利用分布式计算框架(如,MPI,Spark,参数服务器)运行梯度下降算法(如并行随机梯度下降算法)。一个完整的深度学习训练过程可以包括以下步骤:1、计算节点拉取一批训练数据作为输入,为深度学习模型参数(所述参数如构建深度学习模型的矩阵变量)计算梯度(所述梯度如用于更新深度学习模型参数的矩阵变量);2、分布式深度学习系统通过网络聚集并累加所有计算节点产生的梯度值,可以通过MPI的MPI_Reduce函数,Spark中的ReduceByKey接口,和参数服务器中的推送操作实现此子步骤;分布式深度学习系统利用累加的梯度值更新模型参数;4、分布式深度学习系统将更新后的模型参数通过网络广播到所有的计算节点上,可以通过MPI的MPI_Broadcast函数,Spark中的Broadcast接口,和参数服务器中的拉取操作实现此子步骤;5、重复执行子步骤1到4,直到完成指定的迭代计算次数。上述子步骤2和子步骤4需要通过网络聚集梯度和广播参数,这两种网络通信操作是整个分布式深度学习训练的性能瓶颈之一。具体来讲,在每次迭代计算过程中,梯度聚集和参数广播产生的网络流量正比于深度学习模型的大小。而新型的深度学习模型大小日益增长,如,AlexNet模型包含了六千多万参数,VGG-16更是具有上亿参数。因此,在深度学习训练过程中,梯度聚集和参数广播会产生大量网络流量。受制于网络带宽等条件,通信时间成为分布式深度学习训练系统的性能瓶颈之一。
技术实现思路
本专利技术实施例提供一种数据传输方案。第一方面,本申请实施例提供一种数据传输方法,包括:确定分布式系统中任一节点向至少一其他节点待发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第一数据;对所述第一数据中的至少部分进行稀疏处理;向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据。可选地,对所述第一数据中的至少部分进行稀疏处理,包括:将所述第一数据中的至少部分分别与给定过滤阈值进行比较,并在所述第一数据进行比较的部分中滤除小于所述过滤阈值的部分,其中,所述过滤阈值随所述深度学习模型的训练迭代次数的增加而减小。可选地,根据预定策略对所述第一数据中的至少部分进行稀疏处理之前,还包括:随机确定所述第一数据的部分;对确定的所述第一数据的部分进行稀疏处理。可选地,所述向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据,包括:压缩至少部分进行稀疏处理后的第一数据;向所述至少一其他节点发送压缩后的第一数据。可选地,根据本专利技术第一方面的方法还包括:获取所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据;至少根据所述第二数据对所述节点的所述深度学习模型的参数进行更新。可选地,获取所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据,包括:接收并解压缩所述至少一其他节点压缩后发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据。可选地,所述第一数据包括:所述节点在所述深度学习模型的迭代训练期间任一次训练过程计算所得到的梯度矩阵;和/或,所述节点在所述深度学习模型的迭代训练期间任一次训练的旧参数、与至少根据所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据进行所述旧参数更新所得到的新参数之间的参数差值矩阵。可选地,在所述第一数据包括所述梯度矩阵时,对所述第一数据中的至少部分进行稀疏处理,包括:从所述梯度矩阵选取其绝对值分别小于给定过滤阈值的第一部分矩阵元素;从所述梯度矩阵随机选取第二部分矩阵元素;将所述梯度矩阵中同时属于所述第一部分矩阵元素和所述第二部分矩阵元素的矩阵元素的数值置0,得到稀疏梯度矩阵;向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据,包括:将所述稀疏梯度矩阵压缩为一个字符串;通过网络向至少一其他节点发送所述字符串。可选地,在所述第一数据包括所述参数差值矩阵时,对所述第一数据中的至少部分进行稀疏处理,包括:从所述参数差值矩阵选取其绝对值分别小于给定过滤阈值的第三部分矩阵元素;从所述参数差值矩阵随机选取第四部分矩阵元素;将所述参数差值矩阵中同时属于所述第三部分矩阵元素和所述第四部分矩阵元素的矩阵元素的数值置0,得到稀疏参数差值矩阵;向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据,包括:将所述稀疏参数差值矩阵压缩为一个字符串;通过网络向至少一其他节点发送所述字符串。第二方面,本专利技术实施例还提供一种数据传输系统,包括:数据确定模块,用于确定分布式系统中任一节点向至少一其他节点待发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第一数据;稀疏处理模块,用于对所述第一数据中的至少部分进行稀疏处理;数据发送模块,用于向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据。可选地,所述稀疏处理模块包括:过滤子模块,用于将所述第一数据中的至少部分分别与给定过滤阈值进行比较,并在所述第一数据进行比较的部分中滤除小于所述过滤阈值的部分,其中,所述过滤阈值随所述深度学习模型的训练迭代次数的增加而减小。可选地,根据本专利技术第二方面的系统还包括:随机选取模块,用于随机确定所述第一数据的部分;稀疏模块,用于对确定的所述第一数据的部分进行稀疏处理。可选地,所述数据发送模块包括:压缩子模块,用于压缩至少部分进行稀疏处理后的第一数据;发送子模块,用于向所述至少一其他节点发送压缩后的第一数据。可选地,根据本专利技术第二方面的系统还包括:数据获取模块,用于获取所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据;更新模块,用于至少根据所述第二数据对所述节点的所述深度学习模型的参数进行更新。可选地,数据获取模块包括:接收和解压缩子模块,用于接收并解压缩所述至少一其他节点压缩后发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据。可选地,所述第一数据包括:所述节点在所述深度学习模型的迭代训练期间任一次训练过程计算所得到的梯度矩阵;和/或,所述节点在所述深度学习模型的迭代训练期间任一次训练的旧参数、与至少根据所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据进行所述旧参数更新所得到的新参数之间的参数差值矩阵。可选地,在所述第一数据包括所述梯度矩阵时,所述过滤子模块用于从所述梯度矩阵选取其绝对值分别小于给定过滤阈值的第一部分矩阵元素;所述随机选取子模块用于从所述梯度矩阵随机选取第二部分本文档来自技高网
...
数据传输方法和系统、电子设备

【技术保护点】
一种数据传输方法,其特征在于,包括:确定分布式系统中任一节点向至少一其他节点待发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第一数据;对所述第一数据中的至少部分进行稀疏处理;向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据。

【技术特征摘要】
1.一种数据传输方法,其特征在于,包括:确定分布式系统中任一节点向至少一其他节点待发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第一数据;对所述第一数据中的至少部分进行稀疏处理;向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据。2.根据权利要求1所述的方法,其特征在于,对所述第一数据中的至少部分进行稀疏处理,包括:将所述第一数据中的至少部分分别与给定过滤阈值进行比较,并在所述第一数据进行比较的部分中滤除小于所述过滤阈值的部分,其中,所述过滤阈值随所述深度学习模型的训练迭代次数的增加而减小。3.根据权利要求1或2所述的方法,其特征在于,根据预定策略对所述第一数据中的至少部分进行稀疏处理之前,还包括:随机确定所述第一数据的部分;对确定的所述第一数据的部分进行稀疏处理。4.根据权利要求1-3任一所述的方法,其特征在于,所述向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据,包括:压缩至少部分进行稀疏处理后的第一数据;向所述至少一其他节点发送压缩后的第一数据。5.根据权利要求1-4任一所述的方法,其特征在于,还包括:获取所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据;至少根据所述第二数据对所述节点的所述深度学习模型的参数进行更新。6.根据权利要求5所述的方法,其特征在于,获取所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据,包括:接收并解压缩所述至少一其他节点压缩后发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据。7.根据权利要求1-6任一所述...

【专利技术属性】
技术研发人员:朱元昊颜深根
申请(专利权)人:北京市商汤科技开发有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1