CN110633798A - 一种分布式训练中参数更新方法及装置 - Google Patents

一种分布式训练中参数更新方法及装置 Download PDF

Info

Publication number
CN110633798A
CN110633798A CN201910864527.1A CN201910864527A CN110633798A CN 110633798 A CN110633798 A CN 110633798A CN 201910864527 A CN201910864527 A CN 201910864527A CN 110633798 A CN110633798 A CN 110633798A
Authority
CN
China
Prior art keywords
training
model
model parameters
compression
node
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.)
Granted
Application number
CN201910864527.1A
Other languages
English (en)
Other versions
CN110633798B (zh
Inventor
王洪伟
李鑫
李长亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Kingsoft Digital Entertainment Co Ltd
Beijing Jinshan Digital Entertainment Technology Co Ltd
Original Assignee
Chengdu Kingsoft Digital Entertainment Co Ltd
Beijing Jinshan Digital Entertainment Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Kingsoft Digital Entertainment Co Ltd, Beijing Jinshan Digital Entertainment Technology Co Ltd filed Critical Chengdu Kingsoft Digital Entertainment Co Ltd
Priority to CN201910864527.1A priority Critical patent/CN110633798B/zh
Publication of CN110633798A publication Critical patent/CN110633798A/zh
Application granted granted Critical
Publication of CN110633798B publication Critical patent/CN110633798B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

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

一种分布式训练中参数更新方法及装置
技术领域
本申请涉及计算机技术领域,特别涉及一种分布式训练中参数更新方法及装置、计算设备、计算机可读存储介质和芯片。
背景技术
目前,随着计算机技术的迅猛发展,深度学习技术也得到了快速进步,随着深度学习技术的深入,研发出越来越复杂的算法,这些算法需要大量的数据并耗费大量的时间才能有效的完成训练,因此研发出了分布式训练。
在深度学习的模型优化中,需要使用梯度下降的方法计算梯度找到最小的损失函数,以此来训练模型,加快模型的收敛。在目前的分布式训练中,需要每完成一次训练都要进行梯度信息的传递和模型参数的同步,以便于分布式训练集群快速地找到最小损失函数,完成模型训练。但是模型训练会因为模型参数数据量大,在同步过程中耗费时间长,导致模型训练时间长、跨度大,严重延缓了模型训练的速度。
因此,如何改善上述问题,就成为技术人员目前亟待解决的问题。
发明内容
有鉴于此,本申请实施例提供了一种分布式训练中参数更新方法及装置、计算设备、计算机可读存储介质和芯片,以解决现有技术中存在的技术缺陷。
根据本申请实施例的第一方面,提供了一种分布式训练中参数更新方法,包括:
接收分布式训练集群中的每个训练节点传递的梯度;
根据每个训练节点传递的梯度计算训练模型的损失值并更新所述训练模型的模型参数;
根据所述损失值确定模型训练的训练阶段;
根据所述训练阶段对所述模型参数进行压缩,获得压缩模型参数;
将所述压缩模型参数同步至所述分布式训练集群的每个训练节点,更新每个训练节点中的模型参数。
可选的,根据每个训练节点传递的梯度计算训练模型的损失值并更新所述训练模型的模型参数,包括:
将每个训练节点传递的梯度累加并计算均值,得到平均累积梯度;
根据所述平均累积梯度计算训练模型的损失值并更新训练模型的参数。
可选的,根据所述损失值确定模型训练的训练阶段,包括:
根据所述损失值的收敛速率确定模型训练的训练阶段。
可选的,根据所述损失值的收敛速率确定模型训练的训练阶段,包括:
在所述损失值的收敛速率大于等于第一预设阈值的情况下,确定模型训练处于第一训练阶段;
在所述损失值的收敛速率小于第一预设阈值且大于等于第二预设阈值的情况下,确定模型训练处于第二训练阶段;
在所述损失值的收敛速率小于第二预设阈值情况下,确定模型训练处于第三训练阶段。
可选的,所述参数包括若干个张量;
根据所述训练阶段对所述模型参数进行压缩,获得压缩模型参数,包括:
根据所述训练阶段对所述模型参数中的张量进行压缩,获得压缩模型参数。
可选的,根据所述训练阶段对所述模型参数中的张量进行压缩,包括:
在模型训练处于第一训练阶段的情况下,采用第一压缩法对所述模型参数中的张量进行压缩;
在模型训练处于第二训练阶段的情况下,采用第二压缩法对所述模型参数中的张量进行压缩;
在模型训练处于第三训练阶段的情况下,采用第三压缩法对所述模型参数中的张量进行压缩;
其中,第一压缩法的压缩效率和损失精度大于第二压缩算法,第二压缩算法的压缩效率和损失精度大于第三压缩算法。
可选的,所述分布式训练中参数更新方法,还包括:
根据张量参与压缩的比例将所述模型参数中的张量分组,获得第一压缩张量集合和第二压缩张量集合。
可选的,采用第二压缩法对所述模型参数中的张量进行压缩,包括:
采用第二压缩法对所述第二压缩张量集合中的张量进行压缩。
可选的,采用第三压缩法对所述模型参数中的张量进行压缩,包括:
采用第三压缩法对所述第二压缩张量集合中的张量进行压缩。
可选的,更新每个训练节点中的模型参数,包括:
每个训练节点接收所述压缩模型参数并解压,用解压后的压缩模型参数更新训练节点中的模型参数。
根据本申请实施例的第二方面,提供了一种分布式训练中参数更新装置,包括:
接收模块,被配置为接收分布式训练集群中的每个训练节点传递的梯度;
计算更新模块,被配置为根据每个训练节点传递的梯度计算训练模型的损失值并更新所述训练模型的模型参数;
确定模块,被配置为根据所述损失值确定模型训练的训练阶段;
压缩模块,被配置为根据所述训练阶段对所述模型参数进行压缩,获得压缩模型参数;
同步更新模块,被配置为将所述压缩模型参数同步至所述分布式训练集群的每个训练节点,更新每个训练节点中的模型参数。
可选的,所述计算更新模块,进一步被配置为将每个训练节点传递的梯度累加并计算均值,得到平均累积梯度;根据所述平均累积梯度计算训练模型的损失值并更新训练模型的参数。
可选的,所述确定模块,进一步被配置为根据所述损失值的收敛速率确定模型训练的训练阶段。
可选的,所述确定模块,进一步被配置为在所述损失值的收敛速率大于等于第一预设阈值的情况下,确定模型训练处于第一训练阶段;在所述损失值的收敛速率小于第一预设阈值且大于等于第二预设阈值的情况下,确定模型训练处于第二训练阶段;在所述损失值的收敛速率小于第二预设阈值情况下,确定模型训练处于第三训练阶段。
可选的,所述参数包括若干个张量;
所述压缩模块,进一步被配置为根据所述训练阶段对所述模型参数中的张量进行压缩,获得压缩模型参数。
可选的,所述压缩模块,进一步被配置为在模型训练处于第一训练阶段的情况下,采用第一压缩法对所述模型参数中的张量进行压缩;在模型训练处于第二训练阶段的情况下,采用第二压缩法对所述模型参数中的张量进行压缩;在模型训练处于第三训练阶段的情况下,采用第三压缩法对所述模型参数中的张量进行压缩;其中,第一压缩法的压缩效率和损失精度大于第二压缩算法,第二压缩算法的压缩效率和损失精度大于第三压缩算法。
可选的,所述分布式训练中参数更新装置,还包括:
分组模块,被配置为根据张量参与压缩的比例将所述模型参数中的张量分组,获得第一压缩张量集合和第二压缩张量集合。
可选的,所述分组模块,进一步被配置为采用第二压缩法对所述第二压缩张量集合中的张量进行压缩。
可选的,所述分组模块,进一步被配置为采用第三压缩法对所述第二压缩张量集合中的张量进行压缩。
可选的,所述同步更新模块,进一步被配置为每个训练节点接收所述压缩模型参数并解压,用解压后的压缩模型参数更新训练节点中的模型参数。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述分布式训练中参数更新方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述分布式训练中参数更新方法的步骤。
根据本申请实施例的第五方面,提供了一种芯片,其存储有计算机指令,该指令被芯片执行时实现所述分布式训练中参数更新方法的步骤。
本申请提供的实施例中,通过接收分布式训练集群中的每个训练节点传递的梯度;根据每个训练节点传递的梯度计算训练模型的损失值并更新所述训练模型的模型参数;根据所述损失值确定模型训练的训练阶段;根据所述训练阶段对所述模型参数进行压缩,获得压缩模型参数;将所述压缩模型参数同步至所述分布式训练集群的每个训练节点,更新每个训练节点中的模型参数。自适应地减少了参数同步时通信量的大小,即保证了模型参数的同步效率,又保证了训练结果的精度,在进行分布式训练时,提高了模型训练的速度。
附图说明
图1是本申请实施例提供的计算设备的结构框图;
图2是本申请实施例提供的分布式训练中参数更新方法的流程图;
图3是本申请实施例提供的分布式训练集群的结构示意图;
图4是本申请实施例提供的确定模型训练阶段方法的流程图;
图5是本申请实施例提供的损失值loss的收敛曲线示意图;
图6是本申请另一实施例提供的分布式训练集群的结构示意图;
图7是本申请实施例提供的分布式训练中参数更新装置的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本发明一个或多个实施例涉及的名词术语进行解释。
分布式训练:使用多个训练节点对模型进行训练的方法。
压缩算法:是指数据压缩的算法,在电子与通信领域也常被称为信号编码,包括压缩和还原(或解码和编码)两个步骤。
张量:是一个多维的数据存储形式,数据的维度被称为张量的阶,它可以看成是向量和矩阵在多维空间中的扩展。
在本申请中,提供了一种分布式训练中参数更新方法及装置、计算设备、计算机可读存储介质和芯片,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行图2所示分布式训练中参数更新方法中的步骤。图2示出了根据本申请一实施例的分布式训练中参数更新方法的流程图,包括步骤202至步骤210。
步骤202:接收分布式训练集群中的每个训练节点传递的梯度。
分布式训练中的分布式训练集群可以是包括一个参数服务器和多个训练节点的参数服务器架构(Parameter Server Architecture),也可以是无参数服务器的环形架构(Ring-allreduce),在本申请中对分布式训练集群的架构形式不做具体限定。
分布式训练中的分布式训练集群在每个训练节点中采用不同的训练样本对所述待训练模型进行单独训练计算梯度,将梯度传递给参数服务器架构中的参数服务器,或将梯度传递给环形架构中的各个训练节点。
在每个训练节点中用训练样本对待训练模型进行单独训练计算梯度的方法有很多,如随机梯度下降法、批量梯度下降法、小批量梯度下降法等,在本申请中不对训练模型在计算梯度时采用的算法做限定。
在本申请提供的一实施例中,参见图3,分布式训练集群以参数服务器架构(Parameter Server Architecture)为例进行说明,所述分布式训练集群包括一个参数服务器301和训练节点302,训练节点303,训练节点304,训练节点305,训练节点306,其中参数服务器301和每个训练节点都有待训练模型及其在本地的参数,每个训练节点根据不同的训练数据分别计算梯度,并将梯度传递回所述参数服务器301,参数服务器301接收训练节点302,训练节点303,训练节点304,训练节点305,训练节点306分别传递的梯度。
步骤204:根据每个训练节点传递的梯度计算训练模型的损失值并更新所述训练模型的模型参数。
参数服务器架构中参数服务器根据每个训练节点传递过来的梯度计算参数服务器上的待训练模型的损失值,同时更新所述待训练模型中的模型参数,更新待训练模型中的模型参数有利于加快模型的训练速度,减少找到待训练模型的最小损失函数的时间。
环形架构中的各个训练节点根据传递的梯度计算损失值,同时更新训练节点上待训练模型的模型参数。
可选的,在参数服务器架构中步骤204可以通过下述步骤S2041~S2042实现。
S2041、将每个训练节点传递的梯度累加并计算均值,得到平均累积梯度。
参数服务器接收每个训练节点传递的梯度,并将所有梯度累加后计算平均值,得到平均累积梯度。
在本申请提供的实施例中,参数服务器301将训练节点302的梯度θ1,训练节点303的梯度θ2,训练节点304的梯度θ3,训练节点305的梯度θ4,训练节点306的梯度θ5累加后计算平均值,得到平均累积梯度θ0
S2042、根据所述平均累积梯度计算训练模型的损失值并更新训练模型的参数。
在参数服务器中,使用平均累积梯度计算训练模型的损失值,并用平均累积梯度更新训练模型的参数。
步骤206:根据所述损失值确定模型训练的训练阶段。
根据所述损失值确定模型训练的训练阶段,具体的,根据所述损失值的收敛速率确定模型训练的训练阶段,所述损失值的收敛速率根据固定训练步数内损失值下降的差值确定。
可选的,参见图4,根据所述损失值的收敛速率确定模型训练的训练阶段可以通过下述步骤402~步骤406实现。步骤402至步骤406之间是并列步骤,无先后顺序。
步骤402:在所述损失值的收敛速率大于等于第一预设阈值的情况下,确定模型训练处于第一训练阶段。
在所述损失值的收敛速率大于等于第一预设阈值的情况下,模型训练处于第一训练阶段,此时模型训练的收敛速度比较快,处于模型训练的开始阶段,在这一阶段模型参数的精度损失对模型训练的影响比较小。
步骤404:在所述损失值的收敛速率小于第一预设阈值且大于等于第二预设阈值的情况下,确定模型训练处于第二训练阶段。
在所述损失值的收敛速率小于第一预设阈值且大于等于第二预设阈值的情况下,模型训练处于第二训练阶段,此时模型训练的收敛速度适中,处于模型训练的中间阶段,在这一阶段模型参数的精度损失对模型训练的影响适中。
步骤406:在所述损失值的收敛速率小于第二预设阈值情况下,确定模型训练处于第三训练阶段。
在所述损失值的收敛速率小于第二预设阈值情况下,模型训练处于第三训练阶段,此时模型训练的收敛速度比较慢,处于模型训练的收尾阶段,在这一阶段模型参数的精度损失对模型训练的影响较大。
步骤208:根据所述训练阶段对所述模型参数进行压缩,获得压缩模型参数。
所述模型参数包括若干个张量,根据所述训练阶段对所述模型参数进行压缩,即对所述模型参数中的张量进行压缩,获得数据量较小的压缩模型参数,在同步模型参数时,能提高通讯效率,从而提高模型的训练速度。张量是一个多维的数据存储形式,数据的维度被称为张量的阶,它可以看成是向量和矩阵在多维空间中的扩展。
对模型参数中的张量进行压缩,可以是对单个张量的压缩,减小张量的大小,从而达到减小模型参数的目的,也可以是针对不同参数中的相同张量合并成一份张量,以达到减小模型参数的目的,在本申请中,不对张量的具体压缩方法做限定。
在实际应用中,根据张量参与压缩的比例不同,将模型参数中的张量分组,获得第一压缩张量集合和第二压缩张量集合,其中,第一压缩张量集合中的张量对模型训练的影响较大,在模型训练的第二训练阶段和第三训练阶段时不参与压缩,第二压缩张量集合中的张量对模型训练的影响适中,可以在模型训练的第二训练阶段和第三训练阶段参与压缩。
根据模型训练的训练阶段的不同,对模型参数的张量采用不同的压缩方法,获得压缩后的压缩模型参数。
如步骤206中所述,模型训练被分为三个阶段,分别为第一训练阶段、第二训练阶段和第三训练阶段,其中,第一训练阶段的收敛速度比较快,在这一阶段模型参数的精度损失对模型训练的影响比较小,此时模型训练处于模型训练的开始阶段;第二训练阶段的收敛速度比较适中,在这一阶段模型参数的精度损失对模型训练的影响适中,此时模型训练处于模型训练的中间阶段;第三训练阶段的收敛速度比较缓慢,在这一阶段模型参数的精度损失对模型训练的影响较大,此时模型训练处于模型训练的收尾阶段。
在模型训练处于第一训练阶段的情况下,采用第一压缩法对所述模型参数中的张量进行压缩。此时模型训练处于开始阶段,模型收敛速率快,参数的精度损失对模型训练的影响轻微,可以用高压缩率、精度损失大的第一压缩法对模型参数中的张量进行压缩,如将FP32型浮点数的原始参数压缩为int8型整数的压缩模型参数。
在模型训练处于第二训练阶段的情况下,采用第二压缩法对所述模型参数中的张量进行压缩。此时模型训练处于中间阶段,模型收敛速率减缓,参数精度的损失对模型训练的影响适中,此时需要采用中等压缩率、精度损失适中的第二压缩法,对参数中的张量进行压缩,如将FP32型浮点数的原始参数压缩为FP16型浮点数的压缩模型参数。
在模型训练处于第三训练阶段的情况下,采用第三压缩法对所述模型参数中的张量进行压缩。此时模型训练处于收尾阶段,模型收敛速率缓慢,参数精度的损失对模型训练的影响比较大,此时需要采用低压缩率、精度损失小的第三压缩法,对参数中的张量进行压缩,如采用算数编码、哈夫曼编码等无损压缩算法。
其中,第一压缩法的压缩效率和损失精度大于第二压缩算法,第二压缩算法的压缩效率和损失精度大于第三压缩算法。如上所述,具体的压缩算法有很多,在此不对具体限定压缩算法,在实际应用中,可以根据实际情况,采用不同的压缩算法对参数进行压缩。
步骤210:将所述压缩模型参数同步至所述分布式训练集群的每个训练节点,更新每个训练节点中的模型参数。
将压缩模型参数同步至所述分布式训练集群的每个训练节点,每个训练节点根据同步的压缩模型参数更新本地训练模型的参数,用本地的训练样本数据根据更新后的模型参数对所述训练模型进行训练。
在本申请提供的实施例中,参数服务器301,在不同的模型训练阶段,使用不同的压缩算法对模型参数压缩,将压缩模型参数同步至分布式训练集群中的各个训练节点,各个训练节点根据新的模型参数训练模型。
可选的,更新每个训练节点中的模型参数,包括:每个训练节点接收所述压缩模型参数并解压,用解压后的压缩模型参数更新训练节点中的模型参数。
分布式训练集群中的每个训练节点,接收所述压缩模型参数,并将所述压缩模型参数解压,获得解压模型参数,用解压后的解压模型参数更新训练节点中的模型参数。
在本申请提供的实施例中,以图3为例,训练节点302,训练节点303,训练节点304,训练节点305,训练节点306分别接收参数服务器301同步的压缩模型参数,并将压缩模型参数进行解压,使用解压后的模型参数更新训练节点中的模型参数。
本申请提供的分布式训练中参数更新方法,通过判断训练过程中的不同阶段,针对不同规模的张量,采用不同压缩算法对模型参数进行压缩和同步,在分布式训练过程中,自适应地减少了通信量的大小,即保证了模型参数的同步效率,又保证了训练结果的精度,在通信效率和通信结果精度之间取得平衡,提高了模型训练的速度。
为了便于理解,基于图3示出的分布式集群的结构示意图,对本申请的分布式训练中参数更新方法做出解释说明。
如图3所示,分布式训练集群包括参数服务器301和训练节点302,训练节点303,训练节点304,训练节点305,训练节点306,其中,参数服务器和每个训练节点都有待训练模型的副本,在每个训练节点上,对所述待训练模型进行训练,训练节点302计算的梯度为θ1,训练节点303计算的梯度为θ2,训练节点304计算的梯度为θ3,训练节点305计算的梯度为θ4,训练节点306计算的梯度为θ5,参数服务器301接收各个训练节点传递的梯度。
在参数服务器301中,将各个训练节点传递的梯度进行累加后计算平均值,得到平均累积梯度θ0
根据平均累积梯度θ0计算模型训练的损失值loss,并更新训练模型的模型参数为(A1,B1,C1,D1,…,N1),其中A1,B1,C1,D1,…,N1为不同规模的张量。
参见图5,图5示出了损失值loss的收敛曲线,横轴表示模型训练步数,纵轴表示loss值,a阶段的损失值斜率变化高,在相同的训练步数内,loss值的下降速度快,收敛速率大于第一阈值,为训练模型的第一训练阶段,在这一阶段,模型收敛速度较快,模型参数精度的损失对计算模型参数的梯度的影响较小,模型参数的梯度直接影响模型的训练,因此模型参数精度的损失对模型训练的影响较小。
b阶段的损失值斜率减缓,收敛速率小于第一阈值且大于等于第二阈值,为训练模型的第二训练阶段,在这一阶段,模型收敛速度减缓,模型参数精度的损失对计算模型参数的梯度有影响,因此需要用较为精准的模型参数精度计算模型参数的梯度。
c阶段的损失值斜率缓慢,收敛速率小于第二阈值,为模型训练的第三训练阶段,在这一阶段,模型收敛速度缓慢,模型参数精度的损失对计算模型参数的梯度影响明显,因此需要用精准的模型参数精度计算模型参数的梯度。
根据张量参与压缩的比例不同,将模型参数中的张量分组,获得第一压缩张量集合(A1,B1,C1,D1)和第二压缩张量集合(E1,F1,…,N1)。
在损失值loss的收敛速率在第一训练阶段的情况下,此时模型收敛速率快,参数的精度损失对模型训练的影响轻微,采用将FP32型浮点数的原始参数(A1,B1,C1,D1,…,N1)压缩为int8型整数的压缩模型参数(A11,B11,C11,D11,…,N11)的压缩算法,并将压缩模型参数(A11,B11,C11,D11,…,N11)同步至分布式训练集群中的各个训练节点中。
在损失值loss的收敛速率在第二训练阶段的情况下,此时模型收敛速率减缓,参数精度的损失对模型训练的影响适中,采用将FP32型浮点数的第二压缩张量集合(E1,F1,…,N1)压缩为FP16型浮点数的压缩模型参数(E12,F12,…,N12)。并将压缩模型参数(A1,B1,C1,D1,E12,F12,…,N12)同步至分布式训练集群中的各个训练节点中。
在损失值loss的收敛速率在第三训练阶段的情况下,此时模型收敛速率缓慢,参数精度的损失对模型训练的影响较大,采用哈夫曼编码无损压缩算法,将将FP32型浮点数的第二压缩张量集合(E1,F1,…,N1)压缩为(E13,F13,…,N13),并将压缩模型参数(A1,B1,C1,D1,E13,F13,…,N13)同步至分布式训练集群中的各个训练节点中。
训练节点302,训练节点303,训练节点304,训练节点305,训练节点306在不同训练阶段接收不同的压缩模型参数,并根据压缩模型参数继续训练所述训练模型。
本实施例提供的分布式训练中参数更新方法,采用参数服务器架构(ParameterServer Architecture),通过判断训练过程中的不同阶段,针对不同规模的张量,采用不同压缩算法对模型参数进行压缩和同步,在分布式训练过程中,自适应地减少了通信量的大小,即保证了模型参数的同步效率,又保证了训练结果的精度,在通信效率和通信结果精度之间取得平衡,提高了模型训练的速度。
如图6所示,本申请另一实施例提供了一种环形架构(Ring-allreduce)的分布式训练集群的结构示意图,图6所示,该分布式训练集群中有4个训练节点,分别为训练节点601、训练节点602、训练节点603、训练节点604,并且4个训练节点之间呈环形连接,每个训练节点都有待训练模型。
在每个训练节点上对待训练模型进行训练,获得各自对应的梯度,并根据梯度计算模型训练的损失值loss,并更新待训练模型的模型参数。
根据loss值的收敛速率的大小,判断待训练模型的训练阶段,具体判断方法与前文所述判断方法一致,在此不再赘述。
在每个训练节点上,根据待训练模型的不同训练阶段对模型参数进行压缩,获得压缩模型参数,具体压缩方法与前文所述方法一致,在此不再赘述。
将每个训练节点上的压缩模型参数在所述训练集群中进行同步,训练节点601将压缩模型参数传递给训练节点602,训练节点602将压缩模型参数传递给603,训练节点603将压缩模型参数传递给604,训练节点604将压缩模型参数传递给601,直至将每个训练节点的压缩模型参数同步至训练集群的每个训练节点中,更新所述训练集群中每个训练节点中的参数模型。
本实施例提供的分布式训练中参数更新方法,采用环形架构(Ring-allreduce),通过判断训练过程中的不同阶段,针对不同规模的张量,采用不同压缩算法对模型参数进行压缩和同步,在分布式训练过程中,自适应地减少了通信量的大小,即保证了模型参数的同步效率,又保证了训练结果的精度,在通信效率和通信结果精度之间取得平衡,提高了模型训练的速度。
与上述方法实施例相对应,本申请还提供了分布式训练中参数更新装置实施例,图7示出了本申请一个实施例的分布式训练中参数更新装置的结构示意图。如图7所示,该装置包括:
接收模块702,被配置为接收分布式训练集群中的每个训练节点传递的梯度。
计算更新模块704,被配置为根据每个训练节点传递的梯度计算训练模型的损失值并更新所述训练模型的模型参数。
确定模块706,被配置为根据所述损失值确定模型训练的训练阶段。
压缩模块708,被配置为根据所述训练阶段对所述模型参数进行压缩,获得压缩模型参数。
同步更新模块710,被配置为将所述压缩模型参数同步至所述分布式训练集群的每个训练节点,更新每个训练节点中的模型参数。
可选的,所述计算更新模块704,进一步被配置为将每个训练节点传递的梯度累加并计算均值,得到平均累积梯度;根据所述平均累积梯度计算训练模型的损失值并更新训练模型的参数。
可选的,所述确定模块706,进一步被配置为根据所述损失值的收敛速率确定模型训练的训练阶段。
可选的,所述确定模块706,进一步被配置为在所述损失值的收敛速率大于等于第一预设阈值的情况下,确定模型训练处于第一训练阶段;在所述损失值的收敛速率小于第一预设阈值且大于等于第二预设阈值的情况下,确定模型训练处于第二训练阶段;在所述损失值的收敛速率小于第二预设阈值情况下,确定模型训练处于第三训练阶段。
可选的,所述参数包括若干个张量;
所述压缩模块708,进一步被配置为根据所述训练阶段对所述模型参数中的张量进行压缩,获得压缩模型参数。
可选的,所述压缩模块708,进一步被配置为在模型训练处于第一训练阶段的情况下,采用第一压缩法对所述模型参数中的张量进行压缩;在模型训练处于第二训练阶段的情况下,采用第二压缩法对所述模型参数中的张量进行压缩;在模型训练处于第三训练阶段的情况下,采用第三压缩法对所述模型参数中的张量进行压缩;其中,第一压缩法的压缩效率和损失精度大于第二压缩算法,第二压缩算法的压缩效率和损失精度大于第三压缩算法。
可选的,所述分布式训练中参数更新装置,还包括:
分组模块,被配置为根据张量参与压缩的比例将所述模型参数中的张量分组,获得第一压缩张量集合和第二压缩张量集合。
可选的,所述分组模块,进一步被配置为采用第二压缩法对所述第二压缩张量集合中的张量进行压缩。
可选的,所述分组模块,进一步被配置为采用第三压缩法对所述第二压缩张量集合中的张量进行压缩。
可选的,所述同步更新模块710,进一步被配置为每个训练节点接收所述压缩模型参数并解压,用解压后的压缩模型参数更新训练节点中的模型参数。
本申请提供的分布式训练中参数更新装置,通过判断训练过程中的不同阶段,针对不同规模的张量,采用不同压缩算法对模型参数进行压缩和同步,在分布式训练过程中,自适应地减少了通信量的大小,即保证了模型参数的同步效率,又保证了训练结果的精度,在通信效率和通信结果精度之间取得平衡,提高了模型训练的速度。
本申请一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的分布式训练中参数更新方法的步骤。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述分布式训练中参数更新方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的分布式训练中参数更新方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述分布式训练中参数更新方法的技术方案的描述。
本申请实施例公开了一种芯片,其存储有计算机指令,该指令被处理器执行时实现如前所述分布式训练中参数更新方法的步骤。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (13)

1.一种分布式训练中参数更新方法,其特征在于,包括:
接收分布式训练集群中的每个训练节点传递的梯度;
根据每个训练节点传递的梯度计算训练模型的损失值并更新所述训练模型的模型参数;
根据所述损失值确定模型训练的训练阶段;
根据所述训练阶段对所述模型参数进行压缩,获得压缩模型参数;
将所述压缩模型参数同步至所述分布式训练集群的每个训练节点,更新每个训练节点中的模型参数。
2.如权利要求1所述的分布式训练中参数更新方法,其特征在于,根据每个训练节点传递的梯度计算训练模型的损失值并更新所述训练模型的模型参数,包括:
将每个训练节点传递的梯度累加并计算均值,得到平均累积梯度;
根据所述平均累积梯度计算训练模型的损失值并更新训练模型的参数。
3.如权利要求1所述的分布式训练中参数更新方法,其特征在于,根据所述损失值确定模型训练的训练阶段,包括:
根据所述损失值的收敛速率确定模型训练的训练阶段。
4.如权利要求3所述的分布式训练中参数更新方法,其特征在于,根据所述损失值的收敛速率确定模型训练的训练阶段,包括:
在所述损失值的收敛速率大于等于第一预设阈值的情况下,确定模型训练处于第一训练阶段;
在所述损失值的收敛速率小于第一预设阈值且大于等于第二预设阈值的情况下,确定模型训练处于第二训练阶段;
在所述损失值的收敛速率小于第二预设阈值情况下,确定模型训练处于第三训练阶段。
5.如权利要求4所述的分布式训练中参数更新方法,其特征在于,所述参数包括若干个张量;
根据所述训练阶段对所述模型参数进行压缩,获得压缩模型参数,包括:
根据所述训练阶段对所述模型参数中的张量进行压缩,获得压缩模型参数。
6.如权利要求5所述的分布式训练中参数更新方法,其特征在于,根据所述训练阶段对所述模型参数中的张量进行压缩,包括:
在模型训练处于第一训练阶段的情况下,采用第一压缩法对所述模型参数中的张量进行压缩;
在模型训练处于第二训练阶段的情况下,采用第二压缩法对所述模型参数中的张量进行压缩;
在模型训练处于第三训练阶段的情况下,采用第三压缩法对所述模型参数中的张量进行压缩;
其中,第一压缩法的压缩效率和损失精度大于第二压缩算法,第二压缩算法的压缩效率和损失精度大于第三压缩算法。
7.如权利要求6所述的分布式训练中参数更新方法,其特征在于,还包括:
根据张量参与压缩的比例将所述模型参数中的张量分组,获得第一压缩张量集合和第二压缩张量集合。
8.如权利要求7所述的分布式训练中参数更新方法,其特征在于,采用第二压缩法对所述模型参数中的张量进行压缩,包括:
采用第二压缩法对所述第二压缩张量集合中的张量进行压缩。
9.如权利要求7所述的分布式训练中参数更新方法,其特征在于,采用第三压缩法对所述模型参数中的张量进行压缩,包括:
采用第三压缩法对所述第二压缩张量集合中的张量进行压缩。
10.如权利要求1所述的分布式训练中参数更新方法,其特征在于,更新每个训练节点中的模型参数,包括:
每个训练节点接收所述压缩模型参数并解压,用解压后的压缩模型参数更新训练节点中的模型参数。
11.一种分布式训练中参数更新装置,其特征在于,包括:
接收模块,被配置为接收分布式训练集群中的每个训练节点传递的梯度;
计算更新模块,被配置为根据每个训练节点传递的梯度计算训练模型的损失值并更新所述训练模型的模型参数;
确定模块,被配置为根据所述损失值确定模型训练的训练阶段;
压缩模块,被配置为根据所述训练阶段对所述模型参数进行压缩,获得压缩模型参数;
同步更新模块,被配置为将所述压缩模型参数同步至所述分布式训练集群的每个训练节点,更新每个训练节点中的模型参数。
12.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-10任意一项所述方法的步骤。
13.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-10任意一项所述方法的步骤。
CN201910864527.1A 2019-09-12 2019-09-12 一种分布式训练中参数更新方法及装置 Active CN110633798B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910864527.1A CN110633798B (zh) 2019-09-12 2019-09-12 一种分布式训练中参数更新方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910864527.1A CN110633798B (zh) 2019-09-12 2019-09-12 一种分布式训练中参数更新方法及装置

Publications (2)

Publication Number Publication Date
CN110633798A true CN110633798A (zh) 2019-12-31
CN110633798B CN110633798B (zh) 2023-04-07

Family

ID=68970988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910864527.1A Active CN110633798B (zh) 2019-09-12 2019-09-12 一种分布式训练中参数更新方法及装置

Country Status (1)

Country Link
CN (1) CN110633798B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111626434A (zh) * 2020-05-15 2020-09-04 浪潮电子信息产业股份有限公司 一种分布式训练参数更新方法、装置、设备及存储介质
CN112529163A (zh) * 2020-12-17 2021-03-19 云知声智能科技股份有限公司 一种基于AllReduce分布式训练梯度压缩加速方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106156810A (zh) * 2015-04-26 2016-11-23 阿里巴巴集团控股有限公司 通用机器学习算法模型训练方法、系统和计算节点
CN107018184A (zh) * 2017-03-28 2017-08-04 华中科技大学 分布式深度神经网络集群分组同步优化方法及系统
CN107644252A (zh) * 2017-03-10 2018-01-30 南京大学 一种多机制混合的递归神经网络模型压缩方法
CN107895190A (zh) * 2017-11-08 2018-04-10 清华大学 神经网络模型的权值量化方法及装置
CN109214512A (zh) * 2018-08-01 2019-01-15 中兴飞流信息科技有限公司 一种深度学习的参数交换方法、装置、服务器及存储介质
CN109389216A (zh) * 2017-08-03 2019-02-26 珠海全志科技股份有限公司 神经网络的动态裁剪方法、装置及存储介质
CN109754060A (zh) * 2017-11-06 2019-05-14 阿里巴巴集团控股有限公司 一种神经网络机器学习模型的训练方法及装置
US20190156213A1 (en) * 2017-10-26 2019-05-23 Preferred Networks, Inc. Gradient compressing apparatus, gradient compressing method, and non-transitory computer readable medium
WO2019117646A1 (ko) * 2017-12-15 2019-06-20 한국전자통신연구원 분산 처리 환경에서의 학습 파라미터의 압축 및 전송을 제공하는 방법 및 장치
CN109951438A (zh) * 2019-01-15 2019-06-28 中国科学院信息工程研究所 一种分布式深度学习的通信优化方法及系统
CN109993298A (zh) * 2017-12-29 2019-07-09 百度在线网络技术(北京)有限公司 用于压缩神经网络的方法和装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106156810A (zh) * 2015-04-26 2016-11-23 阿里巴巴集团控股有限公司 通用机器学习算法模型训练方法、系统和计算节点
CN107644252A (zh) * 2017-03-10 2018-01-30 南京大学 一种多机制混合的递归神经网络模型压缩方法
CN107018184A (zh) * 2017-03-28 2017-08-04 华中科技大学 分布式深度神经网络集群分组同步优化方法及系统
CN109389216A (zh) * 2017-08-03 2019-02-26 珠海全志科技股份有限公司 神经网络的动态裁剪方法、装置及存储介质
US20190156213A1 (en) * 2017-10-26 2019-05-23 Preferred Networks, Inc. Gradient compressing apparatus, gradient compressing method, and non-transitory computer readable medium
CN109754060A (zh) * 2017-11-06 2019-05-14 阿里巴巴集团控股有限公司 一种神经网络机器学习模型的训练方法及装置
CN107895190A (zh) * 2017-11-08 2018-04-10 清华大学 神经网络模型的权值量化方法及装置
WO2019117646A1 (ko) * 2017-12-15 2019-06-20 한국전자통신연구원 분산 처리 환경에서의 학습 파라미터의 압축 및 전송을 제공하는 방법 및 장치
CN109993298A (zh) * 2017-12-29 2019-07-09 百度在线网络技术(北京)有限公司 用于压缩神经网络的方法和装置
CN109214512A (zh) * 2018-08-01 2019-01-15 中兴飞流信息科技有限公司 一种深度学习的参数交换方法、装置、服务器及存储介质
CN109951438A (zh) * 2019-01-15 2019-06-28 中国科学院信息工程研究所 一种分布式深度学习的通信优化方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
QU LU ET AL: "Multi-stage Gradient Compression:Overcoming the CommunicationBottleneck in Distributed Deep Learning", 《 ICONIP 2018》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111626434A (zh) * 2020-05-15 2020-09-04 浪潮电子信息产业股份有限公司 一种分布式训练参数更新方法、装置、设备及存储介质
CN111626434B (zh) * 2020-05-15 2022-06-07 浪潮电子信息产业股份有限公司 一种分布式训练参数更新方法、装置、设备及存储介质
CN112529163A (zh) * 2020-12-17 2021-03-19 云知声智能科技股份有限公司 一种基于AllReduce分布式训练梯度压缩加速方法

Also Published As

Publication number Publication date
CN110633798B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
US10225607B1 (en) Video processing apparatus and video processing method thereof
WO2021244354A1 (zh) 神经网络模型的训练方法和相关产品
CN110830807B (zh) 图像压缩方法、装置及存储介质
US11341415B2 (en) Method and apparatus for compressing neural network
CN110633798B (zh) 一种分布式训练中参数更新方法及装置
CN110619388A (zh) 一种分布式训练中梯度同步方法及装置
WO2022033241A1 (zh) 对象的处理方法及装置、存储介质和电子设备
CN112135177B (zh) 数据流同步方法及装置
CN114861790B (zh) 联邦学习压缩通信的优化方法、系统及装置
CN110532081B (zh) 一种定时任务处理方法及装置
CN114638344A (zh) 一种模型量化方法和相关装置
WO2023202158A1 (zh) 视频编码方法及装置
CN105631000B (zh) 基于移动终端位置特征信息的终端缓存的数据压缩方法
CN110472731A (zh) 一种分布式训练中梯度同步方法及装置
US11032345B2 (en) Client side data stream processing
CN113657136B (zh) 识别方法及装置
CN114419203A (zh) 文件处理方法及装置
CN115908882A (zh) 图片聚类方法及装置
CN113554719B (zh) 一种图像编码方法、解码方法、存储介质及终端设备
CN105592006B (zh) 一种rohc压缩器的ir态回迁周期选择方法和装置
CN110555816A (zh) 一种图片处理方法、装置、计算设备及存储介质
CN112261443B (zh) 图像处理方法及装置、图像处理系统
WO2024037321A1 (zh) Ai模型训练方法、装置、设备及可读存储介质
CN116828180B (zh) 视频编码方法、装置、电子设备和计算机可读介质
CN110458243B (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