CN108021982B - 数据传输方法和系统、电子设备 - Google Patents
数据传输方法和系统、电子设备 Download PDFInfo
- Publication number
- CN108021982B CN108021982B CN201610972729.4A CN201610972729A CN108021982B CN 108021982 B CN108021982 B CN 108021982B CN 201610972729 A CN201610972729 A CN 201610972729A CN 108021982 B CN108021982 B CN 108021982B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- matrix
- deep learning
- learning model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
- G06F18/24143—Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了数据传输方法和系统、电子设备,其中所述方法包括:确定分布式系统中任一节点向至少一其他节点待发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第一数据;对所述第一数据中的至少部分进行稀疏处理;向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据。本发明的实施可在不降低通信频率的情形下大幅减少网络通信流量,缩短深度学习训练的时间。
Description
技术领域
本申请涉及电数字数据处理领域,尤其涉及数据传输方法和系统、电子设备。
背景技术
随着大数据时代的到来,深度学习得到了广泛的应用,包括图像识别、推荐系统以及自然语言处理等。深度学习训练系统是一种通过训练输入数据获取深度学习模型的计算系统。在工业环境中,为了能够提供高质量的深度学习模型,深度学习训练系统需要处理大量训练数据,如:斯坦福大学计算机视觉实验室开放的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,得到稀疏参数差值矩阵;向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据,包括:将所述稀疏参数差值矩阵压缩为一个字符串;通过网络向至少一其他节点发送所述字符串。
第二方面,本发明实施例还提供一种数据传输系统,包括:
数据确定模块,用于确定分布式系统中任一节点向至少一其他节点待发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第一数据;
稀疏处理模块,用于对所述第一数据中的至少部分进行稀疏处理;
数据发送模块,用于向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据。
可选地,所述稀疏处理模块包括:过滤子模块,用于将所述第一数据中的至少部分分别与给定过滤阈值进行比较,并在所述第一数据进行比较的部分中滤除小于所述过滤阈值的部分,其中,所述过滤阈值随所述深度学习模型的训练迭代次数的增加而减小。
可选地,根据本发明第二方面的系统还包括:随机选取模块,用于随机确定所述第一数据的部分;稀疏模块,用于对确定的所述第一数据的部分进行稀疏处理。
可选地,所述数据发送模块包括:压缩子模块,用于压缩至少部分进行稀疏处理后的第一数据;发送子模块,用于向所述至少一其他节点发送压缩后的第一数据。
可选地,根据本发明第二方面的系统还包括:数据获取模块,用于获取所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据;更新模块,用于至少根据所述第二数据对所述节点的所述深度学习模型的参数进行更新。
可选地,数据获取模块包括:接收和解压缩子模块,用于接收并解压缩所述至少一其他节点压缩后发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据。
可选地,所述第一数据包括:所述节点在所述深度学习模型的迭代训练期间任一次训练过程计算所得到的梯度矩阵;和/或,所述节点在所述深度学习模型的迭代训练期间任一次训练的旧参数、与至少根据所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据进行所述旧参数更新所得到的新参数之间的参数差值矩阵。
可选地,在所述第一数据包括所述梯度矩阵时,所述过滤子模块用于从所述梯度矩阵选取其绝对值分别小于给定过滤阈值的第一部分矩阵元素;所述随机选取子模块用于从所述梯度矩阵随机选取第二部分矩阵元素;所述稀疏子模块用于将所述梯度矩阵中同时属于所述第一部分矩阵元素和所述第二部分矩阵元素的矩阵元素的数值置0,得到稀疏梯度矩阵;所述压缩子模块用于将所述稀疏梯度矩阵压缩为一个字符串;所述发送子模块通过网络向至少一其他节点发送所述字符串。
可选地,在所述第一数据包括所述参数差值矩阵时,所述过滤子模块用于从所述参数差值矩阵选取其绝对值分别小于给定过滤阈值的第三部分矩阵元素;所述随机选取子模块用于从所述参数差值矩阵随机选取第四部分矩阵元素;所述稀疏子模块用于将所述参数差值矩阵中同时属于所述第三部分矩阵元素和所述第四部分矩阵元素的矩阵元素的数值置0,得到稀疏参数差值矩阵;所述压缩子模块用于将所述稀疏参数差值矩阵压缩为一个字符串;所述发送子模块用于通过网络向至少一其他节点发送所述字符串。
第三方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有:用于确定分布式系统中任一节点向至少一其他节点待发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第一数据的指令;用于对所述第一数据中的至少部分进行稀疏处理的指令;及向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据的指令。
第四方面,本发明实施例还提供了一种电子设备,包括:一个或多个处理器、存储器、通信部件和通信总线,所述处理器、所述存储器和所述通信部件通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如本发明实施例提供的任一种数据传输方法对应的操作。
本发明实施例提供的技术方案通过剔除不重要的梯度和/或参数,并通过通用压缩算法减少每次梯度累加和/或参数广播产生的网络流量。本发明不用降低通信频率,可确保及时获取最新参数,既可用于典型的每次迭代都进行通信的深度学习训练系统中,也可以作用于降低通信频率系统中。
与典型的深度学习训练系统相比,在每次迭代中,本发明实施例提供的技术方案可以降低50%到80%的网络流量,整体训练时间可以降低1.5倍到3.2倍。
附图说明
本发明将在下面参考附图并结合优选实施例进行更完全地说明。
图1为根据本发明方法的一实施例的流程图。
图2为根据本发明方法的一实施例的梯度过滤的详细流程图。
图3为根据本发明方法的一实施例的参数过滤的详细流程图。
图4为根据本发明系统的一实施例的结构示意图。
图5为根据本发明系统的另一实施例的结构示意图。
图6示出了根据本发明实施例提供的节点设备的示意图。
为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本发明所必要的细节,而省略其他细节。
具体实施方式
通过下面给出的详细描述,本发明的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本发明优选实施例的同时,它们仅为说明目的给出。
图1示出了根据本发明一实施例的数据传输方法的流程图,该方法包括:
在步骤S110中,确定分布式系统中任一节点向至少一其他节点待发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第一数据。分布式系统例如可以是多个计算节点构成的集群,或者可以由多个计算节点和一参数服务器组成。深度学习模型可包括但不限于神经网络(如卷积神经网络),参数例如为构建深度学习模型的矩阵变量等。
在步骤S120中,对所述第一数据中的至少部分进行稀疏处理。稀疏处理是为了从第一数据中剔除不太重要的部分,使传输第一数据耗用的网络流量变小,降低深度学习模型的训练时间。
在步骤S130中,向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据。
本发明的数据传输方法用于在分布式深度学习系统中任意两个计算节点或计算节点和参数服务器之间传输对计算节点运行的训练模型进行参数更新的数据,其可以忽略所传输数据中不太重要的部分,减小了在聚集和广播操作中产生的网络流量,从而降低了在每次迭代计算中用于网络传输的时间,进而缩短深度学习总体训练时间。
在可选实施例中,对第一数据中的至少部分进行稀疏处理,包括:将所述第一数据中的至少部分分别与给定过滤阈值进行比较,并在所述第一数据进行比较的部分中滤除小于所述过滤阈值的部分。过滤阈值随所述深度学习模型的训练迭代次数的增加而减小,以在训练后期使得微小参数更不容易被选择剔除。
在可选实施例中,根据预定策略对所述第一数据中的至少部分进行稀疏处理之前,还包括:随机确定所述第一数据的部分;对确定的所述第一数据的部分进行稀疏处理。换言之,在此对部分数据进行稀疏处理,其余部分不进行稀疏处理。未进行稀疏处理的部分按照传统方式发送。
在可选实施例中,向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据,包括:压缩至少部分进行稀疏处理后的第一数据,压缩可采用通用的压缩算法,如snappy、zlib等;然后向所述至少一其他节点发送压缩后的第一数据。
本发明的实施还可包括:一节点获取例如接收并解压缩至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据;至少根据所述第二数据对所述节点的所述深度学习模型的参数进行更新。更新的时机可以发生在所述节点在所述深度学习模型迭代训练期间当前轮训练完成的时候进行。
在可选实施例中,第一数据包括:所述节点在所述深度学习模型的迭代训练期间任一次训练过程计算所得到的梯度矩阵。分布式深度学习训练系统提供原始梯度值(每一计算节点产生的梯度值)作为输入,输入梯度是一个由单精度数值组成的矩阵,是用于更新深度学习模型参数的矩阵变量。和/或,所述节点在所述深度学习模型的迭代训练期间任一次训练的旧参数、与至少根据所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据进行所述旧参数更新所得到的新参数之间的参数差值矩阵。在每次参数广播操作中,分布式深度学习训练系统会用新更新的参数替换每个计算节点缓存的参数。参数指构建深度学习模型的矩阵变量,是由单精度数值组成的矩阵。
图2示出了根据本发明方法的一实施例的梯度过滤的详细流程图。在步骤S210,采用绝对值策略从原始梯度矩阵中选定若干梯度。具体来讲,绝对值策略为选取绝对值小于给定阈值的梯度。阈值由以下公式计算:
其中,φgsmp表示初始阈值,在深度学习训练前手动指定,dgsmp也是一个手动设定的常量。在典型的深度学习训练系统中,需要的迭代次数是手动指定的,t表示深度学习训练中当前的迭代数。dgsmp×log(t)可以随着迭代次数的增加而动态改变阈值。具体来讲,随着迭代次数的增加,阈值越来越小,这样,在训练后期,微小梯度更不容易被选择剔除。在实施例中,φgsmp在1x10-4到1x10-3之间,dgsmp在0.1到1之间,具体的值可根据具体应用调整。在步骤S220,采用随机策略从输入的原始梯度矩阵选定若干梯度。具体来讲,随机策略在输入的所有梯度值中,随机选择给定比例如50%-90%例如60%-80%的梯度。在步骤S230,同时被绝对值策略和随机策略选定的梯度数值对计算不重要、影响小,将它们设置为0,从而将输入的梯度矩阵转换为一个稀疏梯度矩阵。在步骤S240,采用压缩策略处理稀疏梯度矩阵,可以大幅度减少体积。压缩策略采用通用的压缩算法,如snappy、zlib等,将稀疏梯度矩阵压缩为一个字符串。通过以上4个步骤,将一个梯度矩阵通过绝对值策略和随机策略的剔除操作和压缩策略的压缩操作,输出一个字符串,其体积会大幅度减小。在梯度累加操作中,计算节点通过网络传输所产生的字符串,此过程产生的网络流量会相应减少,因此,可以有效减小梯度累加过程中的通信时间。
图3示出了根据本发明方法的一实施例的参数过滤的详细流程图。在本实施例中,新更新的参数由θnew表示,缓存的旧参数由θold表示。参数差值矩阵为θdiff=θnew-θold,是一个与新参数和旧参数同样规模的矩阵。在步骤S310,采用绝对值策略从参数差值矩阵θdiff中选定若干数值。具体来讲,绝对值策略选取绝对值小与给定阈值的数值。阈值由以下公式计算:
其中,φpsmp表示初始阈值,在深度学习训练前手动指定,dpsmp也是一个手动设定的常量,t表示深度学习训练中当前的迭代数。dpsmp×log(t)可以随着迭代次数的增加而动态改变阈值。具体来讲,随着迭代次数的增加,阈值越来越小,这样,在训练后期,具有微小变化的θdiff更不容易被选择剔除。在实施例中,φpsmp在1x10-4到1x10-3之间,dpsmp在0.1到1之间,具体的值可根据具体应用调整。在步骤S320,采用随机策略从θdiff矩阵选定若干数值。具体来讲,随机策略在输入的所有θdiff矩阵中,随机选择给定比例如50%-90%例如60%-80%的数值。在步骤S330,将同时被绝对值策略和随机策略选定的θdiff数值设置为0,从而将θdiff矩阵转换为一个稀疏矩阵。在步骤S340,采用压缩策略处理稀疏矩阵。压缩策略采用通用的压缩算法,如snappy、zlib等,将稀疏矩阵压缩为一个字符串。深度学习训练系统通过网络广播生成的字符串,可大幅度减小参数广播操作中产生的网络流量,因此,可以有效减小通信时间,进而降低总体深度学习训练时间。计算节点获取前述字符串后,进行解压缩操作,将θdiff与缓存的θold相加更新相应的参数。
在可选实施例中,同一节点既可应用图2所示的梯度过滤,也可应用图3所示的参数过滤,在此不再赘述相应的步骤。
图4示出了根据本发明一实施例的数据传输系统的结构示意图。该系统包括数据确定模块410,用于确定分布式系统中任一节点向至少一其他节点待发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第一数据;稀疏处理模块420,用于对所述第一数据中的至少部分进行稀疏处理;数据发送模块430,用于向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据。稀疏处理模块420包括:过滤子模块422,用于将所述第一数据中的至少部分分别与给定过滤阈值进行比较,并在所述第一数据进行比较的部分中滤除小于所述过滤阈值的部分,其中,所述过滤阈值随所述深度学习模型的训练迭代次数的增加而减小。数据发送模块430包括:压缩子模块432,用于压缩至少部分进行稀疏处理后的第一数据;发送子模块434,用于向所述至少一其他节点发送压缩后的第一数据。
根据本发明所述系统的一种实施方式,在根据预定策略对所述第一数据中的至少部分进行稀疏处理之前还包括:随机选取模块,用于随机确定所述第一数据的部分;稀疏模块,用于对确定的所述第一数据的部分进行稀疏处理。
图5示出了根据本发明另一实施例的数据传输系统的结构示意图。除图4所示的模块之外,该实施例还包括据获取模块510,用于获取所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据;更新模块520,用于至少根据所述第二数据对所述节点的所述深度学习模型的参数进行更新。数据获取模块510包括接收和解压缩子模块512,用于接收并解压缩所述至少一其他节点压缩后发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据。
在可选实施例中,所述第一数据包括:所述节点在所述深度学习模型的迭代训练期间任一次训练过程计算所得到的梯度矩阵;和/或,所述节点在所述深度学习模型的迭代训练期间任一次训练的旧参数、与至少根据所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据进行所述旧参数更新所得到的新参数之间的参数差值矩阵。
在所述第一数据包括所述梯度矩阵时,所述过滤子模块用于从所述梯度矩阵选取其绝对值分别小于给定过滤阈值的第一部分矩阵元素;所述随机选取子模块用于从所述梯度矩阵随机选取第二部分矩阵元素;所述稀疏子模块用于将所述梯度矩阵中同时属于所述第一部分矩阵元素和所述第二部分矩阵元素的矩阵元素的数值置0,得到稀疏梯度矩阵;所述压缩子模块用于将所述稀疏梯度矩阵压缩为一个字符串;所述发送子模块通过网络向至少一其他节点发送所述字符串。
在所述第一数据包括所述参数差值矩阵时,所述过滤子模块用于从所述参数差值矩阵选取其绝对值分别小于给定过滤阈值的第三部分矩阵元素;所述随机选取子模块用于从所述参数差值矩阵随机选取第四部分矩阵元素;所述稀疏子模块用于将所述参数差值矩阵中同时属于所述第三部分矩阵元素和所述第四部分矩阵元素的矩阵元素的数值置0,得到稀疏参数差值矩阵;所述压缩子模块用于将所述稀疏参数差值矩阵压缩为一个字符串;所述发送子模块用于通过网络向至少一其他节点发送所述字符串。
图6示出了根据本发明实施例提供的节点设备的示意图,其包括:处理器602、通信部件604、存储器606、以及通信总线608。通信部件可包括但不限于I/O接口、网卡等。
处理器602、通信部件604、以及存储器606通过通信总线608完成相互间的通信。
通信部件604,用于与其它设备比如客户端或数据采集设备等的网元通信。
处理器602,用于执行程序610,具体可以执行上述方法实施例中的相关步骤。
具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。
上述处理器602可以一个或多个,处理器的设备形态可以是中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等。
存储器606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序610包括至少一条可执行指令,具体可以用于使得处理器602执行以下操作:确定分布式系统中任一节点向至少一其他节点待发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第一数据;对所述第一数据中的至少部分进行稀疏处理;向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据。。
程序610中各步骤的具体实现可以参见上述实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上面描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
除非明确指出,在此所用的单数形式“一”、“该”均包括复数含义(即具有“至少一”的意思)。应当进一步理解,说明书中使用的术语“具有”、“包括”和/或“包含”表明存在所述的特征、步骤、操作、元件和/或部件,但不排除存在或增加一个或多个其他特征、步骤、操作、元件、部件和/或其组合。如在此所用的术语“和/或”包括一个或多个列举的相关项目的任何及所有组合。除非明确指出,在此公开的任何方法的步骤不必精确按照所公开的顺序执行。
一些优选实施例已经在前面进行了说明,但是应当强调的是,本发明不局限于这些实施例,而是可以本发明主题范围内的其它方式实现。
需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现为通过网络下载的、原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的处理方法。此外,当通用计算机访问用于实现在此示出的处理的代码时,代码的执行将通用计算机转换为用于执行在此示出的处理的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的可选应用和设计约束条件。专业技术人员可以对每个可选的应用来使用不同方法实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。
Claims (19)
1.一种数据传输方法,其特征在于,包括:
确定分布式系统中任一节点向至少一其他节点待发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第一数据;
对所述第一数据中的至少部分进行稀疏处理;
向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据;
其中,在所述第一数据包括所述节点在所述深度学习模型的迭代训练期间任一次训练过程计算所得到的梯度矩阵时,对所述第一数据中的至少部分进行稀疏处理包括:从所述梯度矩阵选取其绝对值分别小于给定过滤阈值的第一部分矩阵元素;从所述梯度矩阵随机选取第二部分矩阵元素;将所述梯度矩阵中同时属于所述第一部分矩阵元素和所述第二部分矩阵元素的矩阵元素的数值置0,得到稀疏梯度矩阵。
2.根据权利要求1所述的方法,其特征在于,对所述第一数据中的至少部分进行稀疏处理,包括:
将所述第一数据中的至少部分分别与给定过滤阈值进行比较,并在所述第一数据进行比较的部分中滤除小于所述过滤阈值的部分,其中,所述过滤阈值随所述深度学习模型的训练迭代次数的增加而减小。
3.根据权利要求1或2所述的方法,其特征在于,根据预定策略对所述第一数据中的至少部分进行稀疏处理之前,还包括:
随机确定所述第一数据的部分;
对确定的所述第一数据的部分进行稀疏处理。
4.根据权利要求1所述的方法,其特征在于,所述向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据,包括:
压缩至少部分进行稀疏处理后的第一数据;
向所述至少一其他节点发送压缩后的第一数据。
5.根据权利要求1所述的方法,其特征在于,还包括:
获取所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据;
至少根据所述第二数据对所述节点的所述深度学习模型的参数进行更新。
6.根据权利要求5所述的方法,其特征在于,获取所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据,包括:
接收并解压缩所述至少一其他节点压缩后发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据。
7.根据权利要求1所述的方法,其特征在于,所述第一数据还包括:
所述节点在所述深度学习模型的迭代训练期间任一次训练的旧参数、与至少根据所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据进行所述旧参数更新所得到的新参数之间的参数差值矩阵。
8.根据权利要求1所述的方法,其特征在于,在所述第一数据包括所述梯度矩阵时,向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据,包括:
将所述稀疏梯度矩阵压缩为一个字符串;
通过网络向至少一其他节点发送所述字符串。
9.根据权利要求7所述的方法,其特征在于,在所述第一数据包括所述参数差值矩阵时,
对所述第一数据中的至少部分进行稀疏处理,包括:
从所述参数差值矩阵选取其绝对值分别小于给定过滤阈值的第三部分矩阵元素;
从所述参数差值矩阵随机选取第四部分矩阵元素;
将所述参数差值矩阵中同时属于所述第三部分矩阵元素和所述第四部分矩阵元素的矩阵元素的数值置0,得到稀疏参数差值矩阵;
向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据,包括:
将所述稀疏参数差值矩阵压缩为一个字符串;
通过网络向至少一其他节点发送所述字符串。
10.一种数据传输系统,其特征在于,包括:
数据确定模块,用于确定分布式系统中任一节点向至少一其他节点待发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第一数据;
稀疏处理模块,用于对所述第一数据中的至少部分进行稀疏处理;
数据发送模块,用于向所述至少一其他节点发送至少部分进行稀疏处理后的第一数据;
其中,在所述第一数据包括所述节点在所述深度学习模型的迭代训练期间任一次训练过程计算所得到的梯度矩阵时,所述稀疏处理模块用于从所述梯度矩阵选取其绝对值分别小于给定过滤阈值的第一部分矩阵元素,从所述梯度矩阵随机选取第二部分矩阵元素,将所述梯度矩阵中同时属于所述第一部分矩阵元素和所述第二部分矩阵元素的矩阵元素的数值置0,得到稀疏梯度矩阵。
11.根据权利要求10所述的系统,其特征在于,所述稀疏处理模块包括:
过滤子模块,用于将所述第一数据中的至少部分分别与给定过滤阈值进行比较,并在所述第一数据进行比较的部分中滤除小于所述过滤阈值的部分,其中,所述过滤阈值随所述深度学习模型的训练迭代次数的增加而减小。
12.根据权利要求10或11所述的系统,其特征在于,还包括:
随机选取模块,用于随机确定所述第一数据的部分;
稀疏模块,用于对确定的所述第一数据的部分进行稀疏处理。
13.根据权利要求10所述的系统,其特征在于,所述数据发送模块包括:
压缩子模块,用于压缩至少部分进行稀疏处理后的第一数据;
发送子模块,用于向所述至少一其他节点发送压缩后的第一数据。
14.根据权利要求10所述的系统,其特征在于,还包括:
数据获取模块,用于获取所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据;
更新模块,用于至少根据所述第二数据对所述节点的所述深度学习模型的参数进行更新。
15.根据权利要求14所述的系统,其特征在于,数据获取模块包括:
接收和解压缩子模块,用于接收并解压缩所述至少一其他节点压缩后发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据。
16.根据权利要求10所述的系统,其特征在于,所述第一数据还包括:
所述节点在所述深度学习模型的迭代训练期间任一次训练的旧参数、与至少根据所述至少一其他节点发送的用于对所述分布式系统训练的深度学习模型进行参数更新的第二数据进行所述旧参数更新所得到的新参数之间的参数差值矩阵。
17.根据权利要求10所述的系统,其特征在于,在所述第一数据包括所述梯度矩阵时,所述数据发送模块用于将所述稀疏梯度矩阵压缩为一个字符串,通过网络向至少一其他节点发送所述字符串。
18.根据权利要求16所述的系统,其特征在于,在所述第一数据包括所述参数差值矩阵时,
所述稀疏处理模块用于从所述参数差值矩阵选取其绝对值分别小于给定过滤阈值的第三部分矩阵元素,从所述参数差值矩阵随机选取第四部分矩阵元素,将所述参数差值矩阵中同时属于所述第三部分矩阵元素和所述第四部分矩阵元素的矩阵元素的数值置0,得到稀疏参数差值矩阵;
所述数据发送模块用于将所述稀疏参数差值矩阵压缩为一个字符串,通过网络向至少一其他节点发送所述字符串。
19.一种电子设备,其特征在于,包括:一个或多个处理器、存储器、通信部件和通信总线,所述处理器、所述存储器和所述通信部件通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1至9任一项所述的数据传输方法对应的操作。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610972729.4A CN108021982B (zh) | 2016-10-28 | 2016-10-28 | 数据传输方法和系统、电子设备 |
PCT/CN2017/108450 WO2018077293A1 (zh) | 2016-10-28 | 2017-10-30 | 数据传输方法和系统、电子设备 |
US16/382,058 US20190236453A1 (en) | 2016-10-28 | 2019-04-11 | Method and system for data transmission, and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610972729.4A CN108021982B (zh) | 2016-10-28 | 2016-10-28 | 数据传输方法和系统、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108021982A CN108021982A (zh) | 2018-05-11 |
CN108021982B true CN108021982B (zh) | 2021-12-28 |
Family
ID=62023122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610972729.4A Active CN108021982B (zh) | 2016-10-28 | 2016-10-28 | 数据传输方法和系统、电子设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190236453A1 (zh) |
CN (1) | CN108021982B (zh) |
WO (1) | WO2018077293A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109214512B (zh) * | 2018-08-01 | 2021-01-22 | 中兴飞流信息科技有限公司 | 一种深度学习的参数交换方法、装置、服务器及存储介质 |
CN109740755B (zh) * | 2019-01-08 | 2023-07-18 | 深圳市网心科技有限公司 | 一种基于梯度下降法的数据处理方法及相关装置 |
CN109871942B (zh) * | 2019-02-19 | 2021-06-11 | 上海商汤智能科技有限公司 | 神经网络的训练方法和装置、系统、存储介质 |
CN110245743A (zh) * | 2019-05-23 | 2019-09-17 | 中山大学 | 一种异步分布式深度学习训练方法、装置及系统 |
US11451480B2 (en) | 2020-03-31 | 2022-09-20 | Micron Technology, Inc. | Lightweight artificial intelligence layer to control the transfer of big data |
CN111625603A (zh) * | 2020-05-28 | 2020-09-04 | 浪潮电子信息产业股份有限公司 | 一种分布式深度学习的梯度信息更新方法及相关装置 |
CN111857949B (zh) * | 2020-06-30 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 模型发布方法、装置、设备及存储介质 |
CN112235384B (zh) * | 2020-10-09 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 分布式系统中的数据传输方法、装置、设备及存储介质 |
CN112364897A (zh) * | 2020-10-27 | 2021-02-12 | 曙光信息产业(北京)有限公司 | 分布式训练方法及装置、存储介质及电子设备 |
CN113242258B (zh) * | 2021-05-27 | 2023-11-14 | 安天科技集团股份有限公司 | 一种主机集群的威胁检测方法和装置 |
CN113610210B (zh) * | 2021-06-28 | 2024-03-29 | 深圳大学 | 基于智能网卡的深度学习训练网络迭代更新方法 |
CN116980420B (zh) * | 2023-09-22 | 2023-12-15 | 新华三技术有限公司 | 一种集群通信方法、系统、装置、设备及介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6970939B2 (en) * | 2000-10-26 | 2005-11-29 | Intel Corporation | Method and apparatus for large payload distribution in a network |
US7843855B2 (en) * | 2001-09-13 | 2010-11-30 | Network Foundation Technologies, Llc | System and method for broadcasting content to nodes on computer networks |
US8463719B2 (en) * | 2009-03-11 | 2013-06-11 | Google Inc. | Audio classification for information retrieval using sparse features |
GB2493956A (en) * | 2011-08-24 | 2013-02-27 | Inview Technology Ltd | Recommending audio-visual content based on user's personal preerences and the profiles of others |
CN105989368A (zh) * | 2015-02-13 | 2016-10-05 | 展讯通信(天津)有限公司 | 一种目标检测方法及装置以及移动终端 |
CN104714852B (zh) * | 2015-03-17 | 2018-05-22 | 华中科技大学 | 一种适用于分布式机器学习的参数同步优化方法及其系统 |
US20170316311A1 (en) * | 2015-03-24 | 2017-11-02 | Hrl Laboratories, Llc | Sparse inference modules for deep learning |
CN105005911B (zh) * | 2015-06-26 | 2017-09-19 | 深圳市腾讯计算机系统有限公司 | 深度神经网络的运算系统及运算方法 |
CN104966104B (zh) * | 2015-06-30 | 2018-05-11 | 山东管理学院 | 一种基于三维卷积神经网络的视频分类方法 |
CN105574506B (zh) * | 2015-12-16 | 2020-03-17 | 深圳市商汤科技有限公司 | 基于深度学习和大规模集群的智能人脸追逃系统及方法 |
CN105791189B (zh) * | 2016-02-23 | 2019-02-12 | 重庆大学 | 一种提高重构精度的稀疏系数分解方法 |
CN105786757A (zh) * | 2016-02-26 | 2016-07-20 | 涂旭平 | 一种板上集成分布式高性能运算系统装置 |
-
2016
- 2016-10-28 CN CN201610972729.4A patent/CN108021982B/zh active Active
-
2017
- 2017-10-30 WO PCT/CN2017/108450 patent/WO2018077293A1/zh active Application Filing
-
2019
- 2019-04-11 US US16/382,058 patent/US20190236453A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20190236453A1 (en) | 2019-08-01 |
WO2018077293A1 (zh) | 2018-05-03 |
CN108021982A (zh) | 2018-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108021982B (zh) | 数据传输方法和系统、电子设备 | |
CN108733639B (zh) | 一种配置参数调整方法、装置、终端设备及存储介质 | |
CN107391770B (zh) | 一种处理数据的方法、装置、设备以及存储介质 | |
CN110880014B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN114169508A (zh) | 一种神经网络系统中数据处理的方法及系统 | |
TW202011278A (zh) | 電子裝置及類神經網路的壓縮方法 | |
CN107679107B (zh) | 一种基于图数据库的电网设备可达性查询方法及系统 | |
CN108463813B (zh) | 一种进行数据处理的方法和装置 | |
CN111914285B (zh) | 一种基于差分隐私的地理分布式图计算方法及系统 | |
WO2023051035A1 (zh) | 机器人的数据传输方法及装置、电子设备、存储介质 | |
CN109543772B (zh) | 数据集自动匹配方法、装置、设备和计算机可读存储介质 | |
CN114004623A (zh) | 机器学习方法及系统 | |
CN110032445B (zh) | 大数据聚集计算方法及装置 | |
CN114065913A (zh) | 模型量化方法、装置及终端设备 | |
US20170139969A1 (en) | Method for filtering and analyzing big data, electronic device, and non-transitory computer-readable storage medium | |
CN116341689B (zh) | 机器学习模型的训练方法、装置、电子设备及存储介质 | |
CN109005411B (zh) | 图像压缩方法及电子设备 | |
US11960449B2 (en) | Computer-readable recording medium storing information processing program, information processing method, and information processing apparatus | |
CN112650971B (zh) | 一种公式计算的实现方法、装置、设备及存储介质 | |
CN115412563B (zh) | 一种边缘设备资源分配方法、装置、设备及可读存储介质 | |
CN113343018B (zh) | 图像的特征值的确定方法及装置、存储介质、电子装置 | |
EP4007173A1 (en) | Data storage method, and data acquisition method and apparatus therefor | |
CN112487039B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN113255576B (zh) | 人脸识别方法及装置 | |
CN113781494A (zh) | 图像分割方法、装置、电子设备和计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |