CN111382844B - 一种深度学习模型的训练方法及装置 - Google Patents
一种深度学习模型的训练方法及装置 Download PDFInfo
- Publication number
- CN111382844B CN111382844B CN202010167460.9A CN202010167460A CN111382844B CN 111382844 B CN111382844 B CN 111382844B CN 202010167460 A CN202010167460 A CN 202010167460A CN 111382844 B CN111382844 B CN 111382844B
- Authority
- CN
- China
- Prior art keywords
- gradient
- training
- parameter
- data
- quantization
- 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/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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开一种深度学习模型的训练方法及装置将模型的计算过程与参数更新过程解耦合,以层为单位更新参数,更细粒度地进行训练,在一次迭代过程中,模型中一层参数的梯度值计算完成后,不需要再等待模型中的所有层都结束后再同一更新参数,而是立即将该层的梯度值上传至参数服务器,参数服务器咋接收到所有节点上传的该层的梯度值后,更新该层参数,然后将该层更新后的参数下发至各节点,当模型中所有层的参数都更新完成后,本次迭代结束,开始下一次迭代,这样将一部分计算过程和通信过程并行起来,使计算可以同时进行,重叠计算与通信时间,从而达到了缩短通信时间的目的。
Description
技术领域
本发明属于数据处理技术领域,具体涉及一种深度学习模型的训练方法及装置。
背景技术
深度学习是业界逐渐成为主流的计算和机器学习实现方法,可被用于图像、语音、视频、机器翻译等多种场景。以机器翻译为例,基于神经网络的机器翻译的效果获得明显提升,近年来得到不断发展。目前在某些语种和场景下,译文质量甚至可以达到人工翻译的水平。
但是,由于深度神经网络模型本身的训练过程一般又会涉及很大量的计算,因此往往需要较长的训练周期,例如,使用3000万的训练数据在单个图形处理器(GPU)上一般需要训练20天以上,才能得到一个初步可用的模型。因此,如何缩短模型训练的周期,快速支持各个业务场景是迫切需要解决的技术难题。
对于此,业界有多种业己成熟的深度学习框架,为了提高训练效率,实用了分布式技术来进行模型训练,分布式训练方法包括数据并行和模型并行两种模式,模型并行难以保持各节点的负载均衡,且产生的通信开销较大,而数据并行可分为同步数据并行和异步数据并行,虽然同步数据并行可以保证模型一致收敛,但却存在着严重的通信瓶颈问题,影响通信时间的主要因素有以下两点:
(1)计算节点与参数服务器之间通信的数据量,神经网络模型在训练时,计算节点与参数服务器之间需要通信的数据为所有参数的梯度值,数据量与模型的参数量成正比,而随着任务场景的越来越复杂,模型的参数规模越来越大,某些大型神经网络的参数多大数亿,训练模型时在通信阶段消耗的时间不容小觑,而在一次迭代时间内,所有计算节点都要与参数服务器进行通信,随着计算节点的增加,需要通信的数据量也会线性增长。
(2)网络带宽,一般个计算节点间都通过以太网相连,常用的以太网带为1Gbps和10Gbps;当通信的数据量较大时,分布式环境中的网络带宽也会成为导致通信瓶颈的重要原因。
发明内容
本发明针对上述存在的技术问题,本发明从改变参数更新方式和降低通信的数据量出发,提出了一种能降低通信时间,缓解通信瓶颈问题的深度学习模型的训练方法及装置。
本发明采用的技术方案:
一种深度学习模型的训练方法,所述方法包括以下步骤:
步骤S1:参数服务器将训练样本集等分为与计算节点相同的多个训练样本子集,并初始化模型参数,将训练样本子集和模型参数发送至各计算节点,每个计算节点上均保存有一个模型副本;并设置最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔;
步骤S2:判断当前训练轮次是否达到设置的最大训练轮次,若未达到,则进入下一步骤;否则结束训练;
步骤S3:各计算节点查询本地训练样本子集中是否存在未训练的数据,若存在则进入下一步骤;否则本轮训练结束,将训练轮次加1转到步骤S2;
步骤S4:各计算节点从本地训练样品子集中获取一批数据,并采用随机梯度下降迭代算法对模型迭代训练,计算出当前层参数的梯度,将梯度进行量化、编码,然后计算量化误差并保存在本地;
步骤S5:各计算节点将量化后的梯度上传至参数服务器,参数服务器在接收到所有节点的梯度后,将量化梯度进行平均并重新编码,然后向各计算节点发送平均后量化梯度;
步骤S6:各计算节点根据接收到的平均量化梯度和量化误差更新本层的模型参数;
步骤S7:判断本轮当前的迭代次数是否达到参数平均间隔,若达到,则进入下一步骤,否则转到步骤S3;
步骤S8:各计算节点将本地模型参数发送到参数服务器,参数服务器将所有计算节点的参数平均,然后向各计算节点发送平均后的模型参数,并转到步骤S3。
优选的,在上述步骤S4中,所述梯度值进行量化、编码,然后计算量化误差的具体过程包括以下步骤为:
步骤S41:梯度值进行量化过程:假设模型的层数为M,在反向传播时,模型中第j层参数计算得到梯度向量g,对梯度向量中的每个梯度值进行量化,获得量化后的梯度向量其中,梯度向量g中任一梯度值g的量化过程为:
其中j∈{1,2,…,M-1},为梯度值g量化后的值,λ为梯度向量g中梯度值的最小值,即λ=min(g),d为选取的量化间隔,即/>max(g)为梯度向量中梯度值的最大值,s为可调整的正整数,表示为量化区间数,即将梯度向量g的值域范围等分为s个区间,则d表示每个量化区间的长度;Q为量化后的梯度值对应的编号,表示使用第Q个量化值近似替代原梯度值,是一个随机变量,其服从伯努利分布,定义为:
其中ι∈{1,2,…,s-1},梯度值g位于第ι个量化值与第ι+1个量化值之间,即第ι+1个量化区间内,p表示将梯度值g用第ι+1个量化值近似代替的概率;
在上述公式一中,梯度值g在量化后,可通过Q、d和λ三个值唯一表示,而对于梯度向量g中的所有梯度值来说,最小值λ和量化间隔d都是相同的,所有梯度值在量化后只是Q值不同,因此每个梯度值g经过量化后只用Q表示即可,对每个梯度值进行量化后,每个梯度值可表示为集合{0,1,…,s}中的一个取值;
步骤S43:计算量化误差:
各计算节点对梯度向量进行量化后产生的误差为:其中,i表示第i个计算节点,g表示原始梯度向量,/>表示量化后的梯度向量;具体地,在每次迭代过程中,各节点在计算完梯度向量并进行量化之后,根据上述公式计算误差,并将量化误差保存在本地。
优选的,在上述步骤S6中,各计算节点在接收到参数服务器发送的平均量化梯度后,更新本地参数,更新时利用计算节点本地保存的量化误差校正参数更新量,将量化误差加上平均量化梯度作为修成后的梯度值,然后再根据修正后的梯度值更新本计算节点的模型参数;则第i个计算节点的参数更新公式为:其中,t表示迭代次数,η为学习率。
一种深度学习模型的训练装置,所述装置包括参数服务器以及至少一个工作服务器,所述参数服务器与工作服务器之间通过通信模块进行数据传递:
工作服务器,用于获取所述参数服务器上存储的初始化的模型参数及训练样本子集,基于训练样本子集,使用初始化的模型参数对所述模型副本进行训练;计算出当前参数的梯度,将梯度进行量化、编码,然后计算量化误差并保存在本地,并将量化后的梯度数据发送至参数服务器;
参数服务器,用于收集各个计算节点的梯度数据,根据收集到的梯度数据更新参数服务器上的模型参数,更新完成后将最新的参数发送至各工作服务器。
优选的,所述工作服务器包括:
获取模块,用于从参数服务器上获取训练样本子集、初始化的模型参数、输入最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔的数据,并发送至存储模块;用于输入深度学习模型副本,并发送至存储模块;
存储模块,用于对从数据获取模块发送的数据分别进行存储;
训练数据确定模块,用于从存储模块中的取训练样本子集中获取出一批量的训练数据,作为第t次训练数据;
训练模块,用于分别获取存储模块中初始化的模型参数及深度学习模型副本和训练数据确定模块中的训练数据,基于训练数据,使用初始化的模型参数对深度学习模型副本进行训练,得到训练后的模型参数;
第一处理模块,用于获取训练模块发送的训练后的模型参数及存储模块中存储的学习率、量化区间数及参数平均间隔的数据;并对当前模型参数计算得到梯度,将梯度进行量化、编码,将量化后的梯度上传至参数服务器上,并计算量化误差,将量化误差发送至存储模块;
训练轮次判断模块,用于当本次训练轮次未达到最大训练轮次,则继续执行查询模块;
查询模块,用于查询训练样本子集中未训练的数据,并返回执行训练数据确定模块;
训练数据查询返回模块,用于当本次迭代次数未达到参数平均间隔时,返回执行查询模块;
优选的,所述存储模块包括
第一存储子模块,用于对训练样本子集和初始化的模型参数进行存储;
第二存储子模块,用于对最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔的数据进行存储;
第三存储子模块,用于对深度学习模型副本进行存储;
第四存储子模块,用于对量化误差数据进行存储。
优选的,所述参数服务器包括
接收模块,用于接收由工作服务器发送的量化后的梯度;
第二处理模块,用于获取将量化后的梯度数据,并量化后的梯度进行平均及重新编码;还用于等份训练样品集,初始化模型参数;
输入模块,用于设定最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔的数据;
发送模块,用于获取平均量化梯度,发送至工作服务器,还用于获取训练样片子集及初始化的模型参数发送至工作服务器,还用于获取最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔的数据发送至工作服务器。
与现有技术相比,本发明的有益效果是:本发明的深度学习模型的训练方法将模型的计算过程与参数更新过程解耦合,以层为单位更新参数,更细粒度地进行训练,在一次迭代过程中,模型中一层参数的梯度值计算完成后,不需要再等待模型中的所有层都结束后再同一更新参数,而是立即将该层的梯度值上传至参数服务器,参数服务器咋接收到所有节点上传的该层的梯度值后,更新该层参数,然后将该层更新后的参数下发至各节点,当模型中所有层的参数都更新完成后,本次迭代结束,开始下一次迭代,这样将一部分计算过程和通信过程并行起来,使计算可以同时进行,重叠计算与通信时间,从而达到了缩短通信时间的目的。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明一实施例提供的一种深度学习模型的训练方法的流程图;
图2为重叠训练与通信时间迭代过程图;
图3为基于梯度量化的数据并行的流程图;
图4一种深度学习模型的训练装置的连接框图;
其中,1-参数服务器;101-输入模块;102-第二处理模块;103-接收模块;104-发送模块;2-通信模块;3-工作服务器;301-获取模块;302-第一存储子模块;303-第二存储子模块;304-第三存储子模块;305-第四存储子模块;306-第一处理模块;307-训练数据确定模块;308-训练模块;309-训练轮次判断模块;310-训练数据查询返回模块;311-查询模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1和图3所示,本发明具体公开了一种深度学习模型的训练方法,所述方法包括以下步骤:
步骤S1:参数服务器将训练样本集等分为与计算节点相同的多个训练样本子集,并初始化模型参数,将训练样本子集和模型参数发送至各计算节点,每个计算节点上均保存有一个模型副本;并设置最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔;
步骤S2:判断当前训练轮次是否达到设置的最大训练轮次,若未达到,则进入下一步骤;否则结束训练;
步骤S3:各计算节点查询本地训练样本子集中是否存在未训练的数据,若存在则进入下一步骤;否则本轮训练结束,将训练轮次加1转到步骤S2;
步骤S4:各计算节点从本地训练样品子集中获取一批数据,并采用随机梯度下降迭代算法对模型迭代训练,计算出当前层参数的梯度,将梯度进行量化、编码,然后计算量化误差并保存在本层;所述梯度值进行量化、编码,然后计算量化误差的具体过程包括以下步骤为:
步骤S41:梯度值进行量化过程:假设模型的层数为M,在反向传播时,模型中第j层参数计算得到梯度向量g,对梯度向量中的每个梯度值进行量化,获得量化后的梯度向量其中,梯度向量g中任一梯度值g的量化过程为:
其中为梯度值g量化后的值,λ为梯度向量g中梯度值的最小值,即λ=min(g),d为选取的量化间隔,即/>max(g)为梯度向量中梯度值的最大值,s为可调整的正整数,表示为量化区间数,即将梯度向量g的值域范围等分为s个区间,则d表示每个量化区间的长度;Q为量化后的梯度值对应的编号,表示使用第Q个量化值近似替代原梯度值,是一个随机变量,其服从伯努利分布,定义为:
其中ι∈{1,2,…,s-1},梯度值g位于第ι个量化值与第ι+1个量化值之间,即第ι+1个量化区间内,p表示将梯度值g用第ι+1个量化值近似代替的概率;
在上述公式一中,梯度值g在量化后,可通过Q、d和λ三个值唯一表示,而对于梯度向量g中的所有梯度值来说,最小值λ和量化间隔d都是相同的,所有梯度值在量化后只是Q值不同,因此每个梯度值g经过量化后只用Q表示即可,对每个梯度值进行量化后,每个梯度值可表示为集合{0,1,…,s}中的一个取值;
步骤S43:计算量化误差:
各计算节点对梯度向量进行量化后产生的误差为:其中,i表示第i个计算节点,g表示原始梯度向量,/>表示量化后的梯度向量;具体地,在每次迭代过程中,各节点在计算完梯度向量并进行量化之后,根据上述公式计算误差,并将量化误差保存在本地;
步骤S5:各计算节点将量化后的梯度上传至参数服务器,参数服务器在接收到所有节点上传的模型当前层对应的梯度向量后,计算梯度值的平均值,平均后的梯度值为:其中,/>为各个节点量化梯度值对应的编号Q的平均值,N表示计算节点数量,然后向各计算节点发送平均后量化梯度;
步骤S6:各计算节点在接收到参数服务器发送的平均量化梯度后,更新本层参数,更新时利用计算节点本地保存的量化误差校正参数更新量,将量化误差加上平均量化梯度作为修成后的梯度值,然后再根据修正后的梯度值更新本计算节点的模型参数;则第i个计算节点的参数更新公式为:其中,t表示迭代次数,η为学习率;
步骤S7:判断本轮当前的迭代次数是否达到参数平均间隔,若达到,则进入下一步骤,否则转到步骤S3;
步骤S8:各计算节点将本地模型参数发送到参数服务器,参数服务器将所有计算节点的参数平均,然后向各计算节点发送平均后的模型参数,并转到步骤S3。
再参考图3所示,深度学习模型中某层的梯度值计算完成按照上述方法进行量化和编码,然后各计算节点将量化梯度发送到参数服务器,参数服务器计算平均量化梯度并更新该层模型参数,然后经平均量化梯度再次编码后分别下发至各计算节点,各计算节点收到参数服务器发送的梯度值后更新本层参数。
需要说明的是,对于同一参数,由于在各计算节点上计算出的梯度值不同,因此量化后对应的编号也不完全相同,在参数服务器端将量化梯度值平均后,量化值个数将由原来的s+1个扩张到Ns+1个,即平均量化梯度的编号值重新进行编码,编码后每个梯度值占用log2(Ns+1)比特。
参照图2所示,优化后的训练方法将模型的计算过程与参数更新过程解耦合,以层为单位更新参数,更细粒度地进行训练,在一次迭代过程中,模型中一层参数的梯度值计算完成后,不需要再等待模型中的所有层都结束后再同一更新参数,而是立即将该层的梯度值上传至参数服务器,参数服务器咋接收到所有节点上传的该层的梯度值后,更新该层参数,然后将该层更新后的参数下发至各节点,当模型中所有层的参数都更新完成后,本次迭代结束,开始下一次迭代,这样将一部分计算过程和通信过程并行起来,使计算可以同时进行,重叠计算与通信时间,从而达到了缩短通信时间的目的。
运用上述训练方法进行实验,本实验基于集中式的参数服务器结构,主要包括参数服务器和至少一个工作服务器,即计算节点,其中,工作服务器负责在本地数据集上训练模型,计算参数的梯度值并将其上传至参数服务器,参数服务器负责汇总各节点的梯度值,更新模型参数,泵将更新的模型参数发送至各计算节点。
训练开始前需要进行系统初始化,首先选取集群中的一台服务器既作为工作服务器有作为参数服务器,这样作为参数服务器的工作服务器也可以执行训练任务,其他工作服务器只作为训练计算节点,这样一来参数服务器节点计算的梯度值保存在本地,不需要进行网络通信,而仅在显存和内存中进行交换,减少了一部分通信数据量。
上述所述的量化区间数s是对梯度向量进行量化时将向量取值范围等分为s个区间,其影响着算法的数据压缩效果,s越小,算法的压缩效果越好,但是可能会影响模型的收敛速度;参数交换间隔n指的是每经过n次迭代,将各计算节点的参数值进行平均,n越小,算法的收敛过程越接近于传统数据并行,但频繁的参数平均操作会降低算法加速效果。本次实验中将s设为15,n设为10,每个梯度值经过量化并使用二进制编码后占用4比特,将通信数据量压缩了8倍;且初始学习率设为0.1,总共进行160轮训练,当工作服务器为2时在每轮训练中进行391次迭代,当工作服务器为3时在每轮训练中进行261次迭代,当训练轮数为总轮数的50%和75%时,将学习率缩小10倍。
为了从发评估本发明的训练算法的性能,实验分别在工作服务器为2和3时,即计算节点数为2和3时,使用传统同步数据并行算法、SSP算法和本发明的算法训练DenseNet模型,进行对比如表一所示。其中,SSP算法是一种异步数据并行算法。
表一DenseNet模型单轮训练时间
从上述表一可以看出,当计算节点数为2时,传统同步数据并行算法的训练时间为244.8s,甚至超过了单节点的训练时间,仅获得了0.81的加速比,在节点数为3时情况更为严重,加速比降低到0.52,这说明在训练DenseNet这种大型网络模型时,通信时间成为了瓶颈,由于需要通信的数据量过大,而集群的带宽有限,使得消耗在通信上的时间超过了计算时间;SSP算法也有着同样的问题,虽然各节点使用异步的方式更新参数,但向参数服务器发送梯度信息时几乎同时进行,同样会遭遇通信瓶颈问题,而各节点的更新请求时在到达参数服务器时还需要排队依次处理,导致算法的表现不好。而使用本发明的训练方法进行训练,在节点数为2和3时分别获得了1.74和2.42的加速比,与传统算法相比,训练速度分别提升了114.4%和369.1%。
参照图4所示,本发明还公开了一种用于上述训练方法的深度学习模型的训练装置,所述装置包括参数服务器以及至少一个工作服务器,所述参数服务器与工作服务器之间通过通信模块2进行数据传递:
工作服务器3,用于获取所述参数服务器上存储的初始化的模型参数及训练样本子集,基于训练样本子集,使用初始化的模型参数对所述模型副本进行训练;计算出当前参数的梯度,将梯度进行量化、编码,然后计算量化误差并保存在本地,并将量化后的梯度数据发送至参数服务器;
参数服务器1,用于收集各个计算节点的梯度数据,根据收集到的梯度数据更新参数服务器上的模型参数,更新完成后将最新的参数发送至各工作服务器。
其中,所述工作服务器3包括:
获取模块301,用于从参数服务器上获取训练样本子集、初始化的模型参数、输入最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔的数据,并发送至存储模块;用于输入深度学习模型副本,并发送至存储模块;
存储模块,用于对从数据获取模块发送的数据分别进行存储;
训练数据确定模块307,用于从存储模块中的取训练样本子集中获取出一批量的训练数据,作为第t次训练数据;
训练模块308,用于分别获取存储模块中初始化的模型参数及深度学习模型副本和训练数据确定模块中的训练数据,基于训练数据,使用初始化的模型参数对深度学习模型副本进行训练,得到训练后的模型参数;
第一处理模块306,用于获取训练模块发送的训练后的模型参数及存储模块中存储的学习率、量化区间数及参数平均间隔的数据;并对当前模型参数计算得到梯度,将梯度进行量化、编码,将量化后的梯度上传至参数服务器上,并计算量化误差,将量化误差发送至存储模块;
训练轮次判断模块309,用于当本次训练轮次未达到最大训练轮次,则继续执行查询模块;
查询模块311,用于查询训练样本子集中未训练的数据,并返回执行训练数据确定模块;
训练数据查询返回模块310,用于当本次迭代次数未达到参数平均间隔时,返回执行查询模块;
优选的,所述存储模块包括
第一存储子模块302,用于对训练样本子集和初始化的模型参数进行存储;
第二存储子模块303,用于对最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔的数据进行存储;
第三存储子模块304,用于对深度学习模型副本进行存储;
第四存储子模块305,用于对量化误差数据进行存储。
其中,所述参数服务器1包括
接收模块103,用于接收由工作服务器发送的量化后的梯度;
第二处理模块102,用于获取将量化后的梯度数据,并量化后的梯度进行平均及重新编码;还用于等份训练样品集,初始化模型参数;
输入模块,用于设定最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔的数据;
发送模块104,用于获取平均量化梯度,发送至工作服务器,还用于获取训练样片子集及初始化的模型参数发送至工作服务器,还用于获取最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔的数据发送至工作服务器。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何限制。凡是根据发明技术实质对以上实施例所作的任何简单修改、变更以及等效变化,均仍属于本发明技术方案的保护范围内。
Claims (6)
1.一种用于机器翻译的深度学习模型的训练装置,其特征在于,所述装置包括参数服务器以及至少一个工作服务器,即计算节点,所述参数服务器与工作服务器之间通过通信模块进行数据传递:
工作服务器,用于获取所述参数服务器上存储的初始化的模型参数及训练样本子集,基于训练样本子集,使用初始化的模型参数对模型副本进行训练;计算出当前参数的梯度,将梯度进行量化、编码,然后计算量化误差并保存在本地,并将量化后的梯度数据发送至参数服务器;
参数服务器,用于收集各个计算节点的梯度数据,根据收集到的梯度数据更新参数服务器上的模型参数,更新完成后将最新的参数发送至各工作服务器;
利用所述的训练装置进行训练的具体过程包括:
步骤S1:参数服务器将训练样本集等分为与计算节点相同的多个训练样本子集,并初始化模型参数,将训练样本子集和模型参数发送至各计算节点,每个计算节点上均保存有一个模型副本;并设置最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔;
步骤S2:判断当前训练轮次是否达到设置的最大训练轮次,若未达到,则进入下一步骤;否则结束训练;
步骤S3:各计算节点查询本地训练样本子集中是否存在未训练的数据,若存在则进入下一步骤;否则本轮训练结束,将训练轮次加1转到步骤S2;
步骤S4:各计算节点从本地训练样品子集中获取一批数据,并采用随机梯度下降迭代算法对模型迭代训练,计算出当前层参数的梯度,将梯度进行量化、编码,然后计算量化误差并保存在本地;
步骤S5:各计算节点将量化后的梯度上传至参数服务器,参数服务器在接收到所有节点的梯度后,将量化梯度进行平均并重新编码,然后向各计算节点发送平均后量化梯度;
步骤S6:各计算节点根据接收到的平均量化梯度和量化误差更新本层的模型参数;
步骤S7:判断本轮当前的迭代次数是否达到参数平均间隔,若达到,则进入下一步骤,否则转到步骤S3;
步骤S8:各计算节点将本地模型参数发送到参数服务器,参数服务器将所有计算节点的参数平均,然后向各计算节点发送平均后的模型参数,并转到步骤S3;
在上述步骤S4中,梯度值进行量化、编码,然后计算量化误差的具体过程包括以下步骤为:
步骤S41:梯度值进行量化过程:假设模型的层数为M,在反向传播时,模型中第j层参数计算得到梯度向量g,对梯度向量中的每个梯度值进行量化,获得量化后的梯度向量其中,梯度向量g中任一梯度值g的量化过程为:
其中j∈{1,2,…,M-1},为梯度值g量化后的值,λ为梯度向量g中梯度值的最小值,即λ=min(g),d为选取的量化间隔,即/>max(g)为梯度向量中梯度值的最大值,s为可调整的正整数,表示为量化区间数,即将梯度向量g的值域范围等分为s个区间,则d表示每个量化区间的长度;Q为量化后的梯度值对应的编号,表示使用第Q个量化值近似替代原梯度值,是一个随机变量,其服从伯努利分布;
在上述公式一中,梯度值g在量化后,可通过Q、d和λ三个值唯一表示,而对于梯度向量g中的所有梯度值来说,最小值λ和量化间隔d都是相同的,所有梯度值在量化后只是Q值不同,因此每个梯度值g经过量化后只用Q表示即可,对每个梯度值进行量化后,每个梯度值可表示为集合{0,1,…,s}中的一个取值;
步骤S43:计算量化误差:
4.根据权利要求1所述的一种用于机器翻译的深度学习模型的训练装置,其特征在于,所述工作服务器包括:
获取模块,用于从参数服务器上获取训练样本子集、初始化的模型参数、最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔的数据,并发送至存储模块;用于输入深度学习模型副本,并发送至存储模块;
存储模块,用于对从数据获取模块发送的数据分别进行存储;
训练数据确定模块,用于从存储模块中的取训练样本子集中获取出一批量的训练数据,作为第t次训练数据;
训练模块,用于分别获取存储模块中初始化的模型参数及深度学习模型副本和训练数据确定模块中的训练数据,基于训练数据,使用初始化的模型参数对深度学习模型副本进行训练,得到训练后的模型参数;
第一处理模块,用于获取训练模块发送的训练后的模型参数及存储模块中存储的学习率、量化区间数及参数平均间隔的数据;并对当前模型参数计算得到梯度,将梯度进行量化、编码,将量化后的梯度上传至参数服务器上,并计算量化误差,将量化误差发送至存储模块;
训练轮次判断模块,用于当本次训练轮次未达到最大训练轮次,则继续执行查询模块;
查询模块,用于查询训练样本子集中未训练的数据,并返回执行训练数据确定模块;
训练数据查询返回模块,用于当本次迭代次数未达到参数平均间隔时,返回执行查询模块;
5.根据权利要求4所述的一种用于机器翻译的深度学习模型的训练装置,其特征在于,所述存储模块包括
第一存储子模块,用于对训练样本子集和初始化的模型参数进行存储;
第二存储子模块,用于对最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔的数据进行存储;
第三存储子模块,用于对深度学习模型副本进行存储;
第四存储子模块,用于对量化误差数据进行存储。
6.根据权利要求1所述的一种用于机器翻译的深度学习模型的训练装置,其特征在于,所述参数服务器包括
接收模块,用于接收由工作服务器发送的量化后的梯度;
第二处理模块,用于获取将量化后的梯度数据,并量化后的梯度进行平均及重新编码;还用于等份训练样品集,初始化模型参数;
输入模块,用于设定最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔的数据;
发送模块,用于获取平均量化梯度,发送至工作服务器,还用于获取训练样片子集及初始化的模型参数发送至工作服务器,还用于获取最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔的数据发送至工作服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010167460.9A CN111382844B (zh) | 2020-03-11 | 2020-03-11 | 一种深度学习模型的训练方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010167460.9A CN111382844B (zh) | 2020-03-11 | 2020-03-11 | 一种深度学习模型的训练方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111382844A CN111382844A (zh) | 2020-07-07 |
CN111382844B true CN111382844B (zh) | 2023-07-07 |
Family
ID=71218680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010167460.9A Active CN111382844B (zh) | 2020-03-11 | 2020-03-11 | 一种深度学习模型的训练方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111382844B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114172638B (zh) * | 2020-09-11 | 2024-04-30 | 军事科学院系统工程研究院网络信息研究所 | 基于多模型数据融合的量子加密通信方法及系统 |
WO2022141034A1 (en) * | 2020-12-29 | 2022-07-07 | Qualcomm Incorporated | Signaling of gradient vectors for federated learning in a wireless communications system |
CN112686383B (zh) * | 2020-12-30 | 2024-04-16 | 中山大学 | 一种通信并行的分布式随机梯度下降的方法、系统及装置 |
CN112862088B (zh) * | 2021-01-18 | 2023-11-07 | 中山大学 | 一种基于流水线环形参数通信的分布式深度学习方法 |
CN113487036B (zh) * | 2021-06-24 | 2022-06-17 | 浙江大学 | 机器学习模型的分布式训练方法及装置、电子设备、介质 |
CN113327598B (zh) * | 2021-06-30 | 2023-11-14 | 北京有竹居网络技术有限公司 | 模型的训练方法、语音识别方法、装置、介质及设备 |
CN115600681A (zh) * | 2021-07-07 | 2023-01-13 | 华为技术有限公司(Cn) | 智能模型的训练方法和装置 |
CN113627519B (zh) * | 2021-08-07 | 2022-09-09 | 中国人民解放军国防科技大学 | 具有压缩和延迟补偿的分布式随机梯度下降方法 |
CN113824802B (zh) * | 2021-11-24 | 2022-04-01 | 之江实验室 | 一种去中心化分布式训练拓扑结构、训练系统及方法 |
CN114841341B (zh) * | 2022-04-25 | 2023-04-28 | 北京百度网讯科技有限公司 | 图像处理模型训练及图像处理方法、装置、设备和介质 |
CN114842837B (zh) * | 2022-07-04 | 2022-09-02 | 成都启英泰伦科技有限公司 | 一种快速声学模型训练方法 |
CN116070719B (zh) * | 2023-03-20 | 2023-07-14 | 鹏城实验室 | 一种跨计算节点分布式训练高效通信方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491928A (zh) * | 2018-03-29 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 模型参数训练方法、装置、服务器及存储介质 |
CN108829441A (zh) * | 2018-05-14 | 2018-11-16 | 中山大学 | 一种分布式深度学习的参数更新优化系统 |
CN109951438A (zh) * | 2019-01-15 | 2019-06-28 | 中国科学院信息工程研究所 | 一种分布式深度学习的通信优化方法及系统 |
CN110245743A (zh) * | 2019-05-23 | 2019-09-17 | 中山大学 | 一种异步分布式深度学习训练方法、装置及系统 |
CN110427493A (zh) * | 2019-07-11 | 2019-11-08 | 新华三大数据技术有限公司 | 电子病历处理方法、模型训练方法及相关装置 |
CN110728350A (zh) * | 2018-06-29 | 2020-01-24 | 微软技术许可有限责任公司 | 用于机器学习模型的量化 |
-
2020
- 2020-03-11 CN CN202010167460.9A patent/CN111382844B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491928A (zh) * | 2018-03-29 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 模型参数训练方法、装置、服务器及存储介质 |
CN108829441A (zh) * | 2018-05-14 | 2018-11-16 | 中山大学 | 一种分布式深度学习的参数更新优化系统 |
CN110728350A (zh) * | 2018-06-29 | 2020-01-24 | 微软技术许可有限责任公司 | 用于机器学习模型的量化 |
CN109951438A (zh) * | 2019-01-15 | 2019-06-28 | 中国科学院信息工程研究所 | 一种分布式深度学习的通信优化方法及系统 |
CN110245743A (zh) * | 2019-05-23 | 2019-09-17 | 中山大学 | 一种异步分布式深度学习训练方法、装置及系统 |
CN110427493A (zh) * | 2019-07-11 | 2019-11-08 | 新华三大数据技术有限公司 | 电子病历处理方法、模型训练方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111382844A (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111382844B (zh) | 一种深度学习模型的训练方法及装置 | |
CN109951438B (zh) | 一种分布式深度学习的通信优化方法及系统 | |
CN112181666B (zh) | 一种基于边缘智能的设备评估和联邦学习重要性聚合方法 | |
CN106297774B (zh) | 一种神经网络声学模型的分布式并行训练方法及系统 | |
CN111030861B (zh) | 一种边缘计算分布式模型训练方法、终端和网络侧设备 | |
CN111447083A (zh) | 动态带宽和不可靠网络下的联邦学习架构及其压缩算法 | |
CN113222179A (zh) | 一种基于模型稀疏化与权重量化的联邦学习模型压缩方法 | |
CN109032630B (zh) | 一种参数服务器中全局参数的更新方法 | |
CN112862088A (zh) | 一种基于流水线环形参数通信的分布式深度学习方法 | |
CN111158912A (zh) | 云雾协同计算环境下一种基于深度学习的任务卸载决策方法 | |
CN115587633A (zh) | 一种基于参数分层的个性化联邦学习方法 | |
CN115374853A (zh) | 基于T-Step聚合算法的异步联邦学习方法及系统 | |
CN114169543A (zh) | 一种基于模型陈旧性与用户参与度感知的联邦学习算法 | |
CN113077056A (zh) | 基于横向联邦学习的数据处理系统 | |
CN115392348A (zh) | 联邦学习梯度量化方法、高效通信联邦学习方法及相关装置 | |
CN113627519B (zh) | 具有压缩和延迟补偿的分布式随机梯度下降方法 | |
CN111858721B (zh) | 一种基于优先级编码的分布式计算方法 | |
Chen et al. | A channel aggregation based dynamic pruning method in federated learning | |
CN115345320A (zh) | 一种在分层联邦学习框架下实现个性化模型的方法 | |
CN113487036B (zh) | 机器学习模型的分布式训练方法及装置、电子设备、介质 | |
CN116155906B (zh) | 算力网络中面向低时延任务的MapReduce混合编码方法 | |
CN117424932B (zh) | 智能物联网边缘网关的数据缓存系统及方法 | |
CN115987998B (zh) | 微服务系统领袖者选举方法、系统、存储介质和电子设备 | |
CN116991337B (zh) | 一种远程教育系统的教育资源的云存储方法及装置 | |
CN117221122B (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 |