基于联邦学习的梯度量化方法、装置、设备及存储介质与流程

未命名 09-13 阅读:100 评论:0


1.本发明涉及人工智能技术领域,尤其涉及一种基于联邦学习的梯度量化方法、装置、设备及存储介质。


背景技术:

2.医疗数据——诸如电子病历(ehr)、医学影像等——一方面对精准健康的实现有奠基性的作用,另一方面,这些数据往往分散在各处,因其敏感性而很难被共享。这时如果使用联邦学习,可以确保敏感的病人数据保留在当地机构或个人消费者手中,在联邦机器学习过程中不泄漏给模型训练者,联邦学习本质是一种分布式机器学习框架,允许参与各方在不进行训练集数据共享的前提下,实现共同建模,提升模型效果;为减少带宽对联邦学习训练过程的影响,通常参与者会在上传本地梯度之前对梯度进行压缩,梯度压缩在减少带宽的同时也能提供一定的隐私保护。
3.现有技术中,梯度压缩算法在一些特定的场景中都体现出了良好的加速效果,但是都是固定精度的量化算法,在联邦学习中还是有一些局限性。由于边缘设备的通信技术多种多样,导致联邦学习的网络是异构且动态的,客户端之间的网络状态可能有很大的差距,甚至达到十倍以上。在所需的全局模型规模较大的情况下,网络带宽限制和工作节点数量会加剧联邦学习的通信瓶颈,使梯度的量化精度较低,因此,在基于联邦学习的过程中,如何提高梯度的量化精度成为亟待解决的问题。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种基于联邦学习的梯度量化方法、装置、设备及存储介质,以解决在联邦学习的过程中,梯度的量化精度较低的问题。
5.本技术实施例的第一方面提供了一种基于联邦学习的梯度量化方法,所述梯度量化方法应用于客户端,所述梯度量化方法包括:
6.获取服务端发送的训练任务,根据所述训练任务,下载对应待训练的初始模型;
7.基于所述客户端中的本地数据,对所述初始模型进行训练,得到当前次训练对应的第一训练模型,根据预设压缩规则对所述客户端中的所述第一训练模型的参数进行压缩,得到第一训练模型对应的压缩参数;
8.基于所述压缩参数,对所述第一训练模型的参数进行压缩,得到当前次训练的压缩结果,所述压缩结果包括梯度量化对应的量化值与量化值变化率;
9.若检测到所述压缩结果满足上传条件,向所述服务端发送所述压缩结果,所述上传条件为若检测到所述客户端上一次向所述服务端发送所述压缩结果对应的训练次数与当前次训练对应的训练次数的差值小于第一预设阈值,且所述量化值变化率大于第二预设阈值。
10.本技术实施例的第二方面提供了一种基于联邦学习的梯度量化方法,其特征在于,所述梯度量化方法应用于服务端,所述梯度量化方法包括:
11.通过任务创建器,创建训练任务,将所述训练任务发送至客户端;
12.获取至少一个客户端发送的所述梯度量化的量化值与量化值变化率,基于所述量化值变化率,通过预设聚合规则,对所述量化值进行聚合,得到聚合后的量化值;
13.基于所述聚合后的量化值,更新所述训练任务中对应的模型参数,得到更新后的训练模型;
14.检测所述更新后的训练模型是否收敛,若所述更新后的训练模型收敛,停止梯度量化。
15.本技术实施例的第三方面提供了一种基于联邦学习的梯度量化装置,其特征在于,所述梯度量化装置应用于客户端,所述梯度量化包括:
16.下载模块,用于获取服务端发送的训练任务,根据所述训练任务,下载对应待训练的初始模型;
17.压缩率确定模块,用于基于所述客户端中的本地数据,对所述初始模型进行训练,得到第一训练模型,根据预设压缩规则对每个客户端中的所述第一训练模型的参数进行压缩,得到第一训练模型对应的压缩参数;
18.压缩模块,用于基于所述压缩参数,对所述第一训练模型的参数进行压缩,得到当前次训练的压缩结果,所述压缩结果包括梯度量化对应的量化值与量化值变化率;
19.上传模块,用于若检测到所述压缩结果满足上传条件,向所述服务端发送所述压缩结果,所述上传条件为若检测到所述客户端上一次向所述服务端发送所述压缩结果对应的训练次数与当前次训练对应的训练次数的差值小于第一预设阈值,且所述量化值变化率大于第二预设阈值。
20.本技术实施例的第四方面提供了一种基于联邦学习的梯度量化装置,其特征在于,所述梯度量化装置应用于服务端,所述梯度量化包括:
21.创建模块,用于通过任务创建器,创建训练任务,将所述训练任务发送至客户端;
22.聚合模块,用于获取至少一个客户端发送的所述梯度量化的量化值与量化值变化率,通过预设聚合规则,对所述量化值进行聚合,得到聚合后的量化值;
23.更新模块,用于基于所述聚合后的量化值,更新所述训练任务中对应的模型参数,得到更新后的训练模型;
24.检测模块,用于检测所述更新后的训练模型是否收敛,若所述更新后的训练模型收敛,停止梯度量化。
25.第五方面,本发明实施例提供一种计算机设备,所述计算机设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的梯度量化方法。
26.第六方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的梯度量化方法。
27.本发明与现有技术相比存在的有益效果是:
28.获取服务端发送的训练任务,根据训练任务,下载对应待训练的初始模型,基于客户端中的本地数据,对初始模型进行训练,得到第一训练模型,根据预设压缩规则对每个客户端中的第一训练模型的参数进行压缩,得到第一训练模型对应的压缩参数,第一训练模
等仅用于区分描述,而不能理解为指示或暗示相对重要性。
41.在本发明说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本发明的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
42.应理解,以下实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
43.为了说明本发明的技术方案,下面通过具体实施例来进行说明。
44.本发明一实施例提供的一种基于联邦学习的梯度量化方法,可应用在如图1的应用环境中,其中,客户端与服务端进行通信。其中,客户端包括但不限于掌上电脑、桌上型计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)等计算机设备。服务端可以用独立的服务器或者是多个服务器生成的服务器集群来实现。
45.参见图2,是本发明一实施例提供的一种基于联邦学习的梯度量化方法的流程示意图,上述基于联邦学习的梯度量化方法可以应用于图1中的服务端,上述服务端连接相应的客户端,如图2所示,该基于联邦学习的梯度量化方法应用于客户端,可以包括以下步骤。
46.s201:获取服务端发送的训练任务,根据训练任务,下载对应待训练的初始模型。
47.在步骤s201中,服务端向客户端发送模型训练任务,客户端根据接收到的训练任务指令,下载训练任务对应的初始模型。
48.本实施例中,客户端数据分别存储于各个医院私有的云服务器中,并进行本地训练。服务端收集来自客户端的数据流,包括客户端id,训练轮数,模型参数,本地性能等,服务端主要工作是管理数据,模型聚合,性能评估。服务端向客户端发送模型训练任务,客户端根据接收到的训练任务指令,下载训练任务对应的初始模型,使用客户端数据对初始模型进行训练。本实施例中的客户端数据可以为文本格式的病例。
49.基于联邦学习训练对应的模型,联邦学习是一种分布式协作学习范式,它允许客户端保持数据在本地来协作训练一个全局深度学习模型来达到模型学习和保护隐私的目的,所以获取服务端发送的训练任务的客户端有多个,所有参与本轮训练的客户端设备发送信息给服务端设备以表示登记参与联邦学习。通过通信网络相连。可选的,通信网络是有线网络或无线网络。
50.对初始模型设置初始模型参数,该初始模型参数包括卷积层、池化层或全连接层的层数和权重参数等。详细地,本发明实施例中获取模型构建信息中的模型框架及模型结构;将所有模型结构放入模型框架中,按照预设的连接顺序进行连接,得到组合模型,并将初始模型参数设定为组合模型的模型参数,得到初始模型。
51.需要说明的是,无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(local area network,lan)、城域网(metropolitan area network,man)、广域网(wide area network,wan)、移动、有线或者无
线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(hyper text mark-up language,html)、可扩展标记语言(extensible markuplanguage,xml)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(secure socket layer,ssl)、传输层安全(transport layer security,tls)、虚拟专用网络(virtual private network,vpn)、网际协议安全(internet protocolsecurity,ipsec)等常规加密技术来加密所有或者一些链路。
52.s202:基于客户端中的本地数据,对初始模型进行训练,得到当前次训练对应的第一训练模型,根据预设压缩规则对客户端中的第一训练模型的参数进行压缩,得到第一训练模型对应的压缩参数。
53.在步骤s202中,使用每个客户端中的本地数据对下载到初始模型进行多次训练,通过多次训练,不断更新初始模型对应的参数值,基于客户端中的本地数据,对初始模型进行训练,得到当前次训练对应的第一训练模型,第一训练模型中的参数较复杂,将影响下一次训练的效率,所以根据预设压缩规则对客户端中的第一训练模型的参数进行压缩,得到第一训练模型对应的压缩参数。
54.本实施例中,每个客户端采用不同的训练样本对待训练模型进行单独训练计算梯度,其中,不同的训练样本为不同客户端上的本地数据,在每个客户端中用训练样本对初始模型进行单独训练计算梯度的方法有很多,如随机梯度下降法、批量梯度下降法、小批量梯度下降法等,在本技术中不对训练模型在计算梯度时采用的算法做限定。
55.每一次训练得到当前次训练对应的第一训练模型,根据预设压缩规则对客户端中的第一训练模型的参数进行压缩,得到第一训练模型对应的压缩参数。
56.需要说明的是,在对模型进行训练时,基于联邦学习的方式对初始模型进行训练,联邦学习训练可以是包括一个服务器和多个客户端的参数服务器架构(parameter server architecture),也可以是无参数服务器的环形架构(ring-allreduce),在本技术中对基于联邦学习训练集群的架构形式不做具体限定。
57.可选地,基于客户端中的本地数据,对初始模型进行训练,包括:
58.获取客户端的本地数据;
59.通过预处理器,对本地数据进行预处理,得到目标本地数据;
60.根据目标本地数据,对初始模型进行训练。
61.本实施例中,每一个客户端做数据预处理,包括去除无效数据、重复数据,将本地数据中的训练数据和数据标签(label)作对应,以此确定目标本地数据。基于目标本地数据,对初始模型进行训练,本技术实施例中,通过设置联合学习的启动条件,能够实现在不满足联合学习启动条件时采用集中训练模型的方式进行模型训练,在满足联合学习启动条件下采用联合学习的方式进行模型训练。例如,可以在d-sdf能够获取订阅数据,模型训练计算量小,或c-a&mf的计算资源充裕,或l-a&mf计算资源不足的情况下采用集中训练模型的方式进行模型训练。也可以通过分别向不同的参与客户端发送模型训练指令,以指示不同参与客户端根据初始模型进行本地模型训练。
62.可选地,根据预设压缩规则对每个客户端中的第一训练模型的参数进行压缩,得到第一训练模型对应的压缩参数,包括:
63.获取客户端的当前次训练时的损失函数与客户端的当前次训练时的学习速率;
64.基于客户端的当前次训练时的损失函数与客户端的当前次训练时的学习速率,计算第一训练模型的压缩参数。
65.本实施例中,在对模型进行压缩时,根据客户端的当前次训练时的损失函数与客户端的当前次训练时的学习速率,对训练模型进行压缩,压缩参数的计算公式如下式:
[0066][0067]
其中,表示第m个客户端在第k次训练迭代后的压缩参数,fm(ωk)为第m个客户端在第k次训练迭代后得到的第一模型对应的损失函数,ηk为第k次训练迭代的中央模型学习速率,η0为初始模型的初始学习速率,p0为每个客户端中初始模型对应的初始压缩参数。
[0068]
本实施例中,每次训练完成后,每个客户端得到当前次对应的第一训练模型,根据得到的第一训练模型中的参数,获取对应的损失函数,学习率指的是待训练模型每次迭代的学习率。中央模型学习速率为服务端根据客户端中对应第一模型的参数,通过预设聚合方式,对每个客户端中上传的模型参数进行聚合处理,更新对应的参数,得到服务端对应的中央参数,根据中央参数得到服务端对应的中央模型,根据服务端对应的中央模型,得到对应的中央模型的学习效率。初始模型的初始学习速率,为每个客户端根据本地数据对初始模型进行第一次训练,将模型参数上传给服务端后得到的中央模型对应的初始学习速率,初始压缩参数为每个客户端根据本地数据对初始模型进行第一次训练,得到第一训练对应的第一模型中对应的压缩参数。
[0069]
s203:基于压缩参数,对第一训练模型的参数进行压缩,得到当前次训练的压缩结果。
[0070]
在步骤s23中,压缩结果包括梯度量化对应的量化值与量化值变化率,当进行迭代训练时,对当前次迭代训练得到的第一训练模型中的参数进行压缩处理,压缩是进行动态压缩,基于每次训练的压缩参数进行压缩,得到当前次训练后对应的压缩结果,压缩结果包括梯度量化对应的量化值与量化值变化率。对模型参数进行动态压缩达到通信效率和模型性能之间的平衡,可以最大程度地避免有效信息丢失。
[0071]
本实施例中,基于压缩参数,对第一训练模型的参数进行压缩,进行压缩时的压缩公式如下所示:
[0072][0073]
其中,qm(ωk)为在第k次迭代训练时第m个客户端中对应第一训练模型中压缩后的量化梯度值,q则表示量化压缩算子,为在第k次迭代训练时第m个客户端中对应第一训练模型中参数梯度与在第k-1次迭代训练时第m个客户端中对应第一训练模型中参数梯度的变化值,为第k-1次迭代训练时第m个客户端中对应第一训练模型中压缩后的量化梯度值,为第m个客户端在第k次训练迭代后的压缩参数。
[0074]
需要说明的是,压缩结果中包括对应的量化梯度与量化梯度的变化率,量化梯度的变化率为相邻次迭代训练得到的量化梯度的差值。
[0075]
每个客户端中每一次迭代训练后,对训练后得到的第一训练模型中的参数进行压
缩处理,将压缩后的参数上传至服务端,降低了上传时间,减小了通讯压力造成的损耗,从而提高模型的训练精度。
[0076]
s204:若检测到压缩结果满足上传条件,向服务端发送压缩结果。
[0077]
在步骤s204中,上传条件为若检测到客户端上一次向服务端发送压缩结果对应的训练次数与当前次训练对应的训练次数的差值小于第一预设阈值,且量化值变化率大于第二预设阈值。
[0078]
本实施例中,当每个客户端在第k次迭代训练后得到对应的模型参数后,需要将模型参数上传时至服务端,服务端对对应的模型参数进行处理,再将处理后的参数发送至每个客户端,以便于每个客户进行下一次的迭代训练。
[0079]
由于每个客户端单独训练,同一次迭代训练得到的模型损失函数,学习率不同,为避免信息丢失,因此设置上传条件,当量化值变化率大于第二预设阈值,客户端上一次向服务端发送压缩结果对应的训练次数与当前次训练对应的训练次数的差值小于第一预设阈值时,将压缩后的参数上传至服务端,具体如下式所示:
[0080][0081][0082]
tm≤t
max
[0083]
其中,为量化梯度变化率,qm(ωk)为在第k次迭代训练时第m个客户端中对应第一训练模型中压缩后的量化梯度值,为第k-1次迭代训练时第m个客户端中对应第一训练模型中压缩后的量化梯度值,为第一预设阈值,为第一预设阈值,为第m个客户端在第k次迭代训练时的量化梯度误差,为第m个客户端在第k-1次迭代训练时的量化梯度误差,为在第k次迭代训练时第m个客户端中对应第一训练模型中参数梯度与在第k-1次迭代训练时第m个客户端中对应第一训练模型中参数梯度的变化值,d为总的训练次数。m表示客户端数量,ξd为预设参数,t
max
为第二阈值,tm为述客户端上一次向服务端发送压缩结果对应的训练次数与当前次训练对应的训练次数的差值。
[0084]
可选地,向服务端发送压缩结果之后,还包括:
[0085]
若接收到服务端发送的聚合后的量化值,基于聚合后的量化值更新第一训练模型的参数,得到第二训练模型;
[0086]
基于客户端中的本地数据,对第二训练模型进行训练。
[0087]
本实施例中,当对初始模型进行训练时,多次迭代训练后,当模型收敛的情况下,结束训练,客户端不在对模型进行训练,当模型不收敛时,客户端将进行不断的迭代训练,每一次迭代训练时,根据接收到的服务端发送的聚合后的量化值,将接收到的聚合后的量化值更新对应第一模型的参数,德奥第二训练模型,基于客户端中的本地数据,对第二训练
模型进行训练。
[0088]
获取服务端发送的训练任务,根据训练任务,下载对应待训练的初始模型,基于客户端中的本地数据,对初始模型进行训练,得到第一训练模型,根据预设压缩规则对每个客户端中的第一训练模型的参数进行压缩,得到第一训练模型对应的压缩参数,第一训练模型的参数进行压缩,得到当前次训练的压缩结果,压缩结果包括梯度量化对应的量化值与量化值变化率,若压缩结果满足上传条件,向服务端发送压缩结果,上传条件为客户端上一次向服务端发送压缩结果对应的训练次数与当前次训练对应的训练次数的差值小于第一预设阈值,且量化值变化率大于第二预设阈值。本发明中,根据每个客户端的压缩参数进行梯度量化,可以使每个客户端基于压缩参数对梯度参数进行动态压缩,以便于每个客户端在进行梯度量化的过程中进行动态调整,从而提高梯度量化的精度。
[0089]
参见图3,是本发明一实施例提供的一种基于联邦学习的梯度量化方法的流程示意图,上述基于联邦学习的梯度量化方法可以应用于图1中的服务端,上述服务端连接相应的客户端,如图3所示,该基于联邦学习的梯度量化方法可以包括以下步骤。
[0090]
s301:通过任务创建器,创建训练任务,将训练任务发送至客户端。
[0091]
在步骤s301中,任务创建器负责创建任务,创建时需要对任务的执行时间及复杂度进行计算,将创建好的任务分发给客户端。
[0092]
本实施例中,通过任务创建器,创建人工智能模型对应的训练任务,训练任务中包括任务类型,例如,分类模型,预测模型,特征提取模型等,卷积神经网络模型,人工智能模型为卷积神经网络模型。
[0093]
s302:获取至少一个客户端发送的梯度量化的量化值与量化值变化率,基于量化值变化率,通过预设聚合规则,对量化值进行聚合,得到聚合后的量化值。
[0094]
在步骤s302中,客户端将训练后得到第一训练模型中的参数压缩后的梯度量化的量化值与量化值变化率上传至服务端,服务端根据接收到的梯度量化的量化值,对接收到的量化值进行聚合处理,得到初始模型对应新的参数值,以便于将新的参数值发送至客户端,使客户端根据新的参数值进行继续训练。
[0095]
本实施例中,服务端收到至少一个客户端发送的量化值,由于不同的客户端的样本数据不同,对初始模型训练得到的第一训练模型的参数不同,不同的客户端向服务端上传的参数值也可能不同,当客户端向服务端发送对应的参数值,服务端需要对接收到的参数值进行聚合,以便得到最终的量化值,将最终的量化值发送至各个客户端。
[0096]
本实施例中,聚合量化值的计算公式如下:
[0097][0098]
且,
[0099]
其中,qm(ω
k+1
)为在第k+1次迭代训练时第m个客户端中对应第一训练模型中压缩后的量化梯度值,qm(ωk)为在第k次迭代训练时第m个客户端中对应第一训练模型中压缩后的量化梯度值,的量化梯度值,为第m个客户端在两次迭代k,k-1之间量化梯度的变化值,mk表示在第k次迭代训练中可上传量化梯度信息的客户端集合,α表示步长。为第k次迭代训练中参数的梯度值。
[0100]
基于聚合公式对量化值进行聚合处理,得到每一次迭代训练时的量化值。
[0101]
另一实施例中,可以根据均值法计算聚合后的量化值,计算接收到的客户端的量化值后,根据接收到的客户端的个数,计算量化的均值,将量化值的均值作为聚合后的量化值。
[0102]
s303:基于聚合后的量化值,更新训练任务中对应的模型参数,得到更新后的训练模型。
[0103]
在步骤s303中,根据聚合后的量化值更新训练任务中的模型参数,得到更新后的训练模型。
[0104]
本实施例中,据聚合后的量化值更新训练任务中的模型参数,得到更新后的训练模型。
[0105]
s304:检测更新后的训练模型是否收敛,若更新后的训练模型收敛,停止梯度量化。
[0106]
在步骤s304中,对更新后的训练模型进行检测,检测更新后的训练模型是否收敛,若更新后的训练模型收敛,停止梯度量化。
[0107]
本实施例中,根据服务端中样本数据训练更新后的训练模型,计算样本数据对应的损失值,当损失值小于损失阈值时,则认为更新后的训练模型收敛,停止梯度量化,得到目标模型。
[0108]
另一实施例中,将聚合后的量化值发送至客户端,每个客户端根据聚合后的量化值更新模型参数,得到更新后的训练模型,在每个客户端中根据客户端中的本地数据检测更新后的训练模型是否收敛,计算每个客户端中的损失值,当损失值小于损失阈值的个数大于预设阈值时,则认为更新后的训练模型收敛,停止梯度量化,得到目标模型。
[0109]
可选地,检测更新后的训练模型是否收敛之后,还包括:
[0110]
若更新后的训练模型不收敛,将聚合后的量化值发送至客户端。
[0111]
本实施例中,在服务端中得到的更新后的训练模型不收敛,则需要继续对更新后的训练模型进行训练,训练时需要基于客户端中的本地数据进行训练,所以将将聚合后的量化值发送至客户端,客户端根据接收到的聚合后的量化值更新训练模型参数。
[0112]
请参阅图4,图4是本发明实施例提供的一种基于联邦学习的梯度量化装置的结构示意图。本实施例中该终端包括的各单元用于执行图2对应的实施例中的各步骤。具体请参阅图2所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图2,梯度量化方法应用于客户端,梯度量化装置40包括:下载模块41,压缩率确定模块42,压缩模块43,上传模块44。
[0113]
下载模块41,用于获取服务端发送的训练任务,根据训练任务,下载对应待训练的初始模型。
[0114]
压缩率确定模块42,用于基于客户端中的本地数据,对初始模型进行训练,得到第一训练模型,根据预设压缩规则对每个客户端中的第一训练模型的参数进行压缩,得到第一训练模型对应的压缩参数。
[0115]
压缩模块43,用于基于压缩参数,对第一训练模型的参数进行压缩,得到当前次训练的压缩结果,压缩结果包括梯度量化对应的量化值与量化值变化率。
[0116]
上传模块44,用于若检测到压缩结果满足上传条件,向服务端发送压缩结果,上传条件为若检测到客户端上一次向服务端发送压缩结果对应的训练次数与当前次训练对应
的训练次数的差值小于第一预设阈值,且量化值变化率大于第二预设阈值。
[0117]
可选地,上述压缩率确定模块42包括:
[0118]
获取单元,用于获取客户端的本地数据。
[0119]
预处理单元,用于通过预处理器,对本地数据进行预处理,得到目标本地数据。
[0120]
初始模型训练单元,用于根据目标本地数据,对初始模型进行训练。
[0121]
可选地,上述压缩率确定模块42包括:
[0122]
损失函数与学习速率获取单元,用于获取客户端的当前次训练时的损失函数与客户端的当前次训练时的学习速率。
[0123]
计算单元,用于基于客户端的当前次训练时的损失函数与客户端的当前次训练时的学习速率,计算第一训练模型的压缩参数。
[0124]
可选地,上述梯度量化装置40还包括:
[0125]
接收模块,用于若接收到服务端发送的聚合后的量化值,基于聚合后的量化值更新第一训练模型的参数,得到第二训练模型。
[0126]
第二模型训练模块,用于基于客户端中的本地数据,对第二训练模型进行训练。
[0127]
请参阅图5,图5是本发明实施例提供的一种基于联邦学习的梯度量化装置的结构示意图。本实施例中该终端包括的各单元用于执行图3对应的实施例中的各步骤。具体请参阅图3所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图3,梯度量化装置50包括:创建模块51,聚合模块52,更新模块53,检测模块54。
[0128]
创建模块51,用于通过任务创建器,创建训练任务,将训练任务发送至客户端。
[0129]
聚合模块52,用于获取至少一个客户端发送的梯度量化的量化值与量化值变化率,通过预设聚合规则,对量化值进行聚合,得到聚合后的量化值。
[0130]
更新模块53,用于基于聚合后的量化值,更新训练任务中对应的模型参数,得到更新后的训练模型。
[0131]
检测模块54,用于检测更新后的训练模型是否收敛,若更新后的训练模型收敛,停止梯度量化。
[0132]
可选地,上述梯度量化装置50还包括:
[0133]
发送模块,用于若更新后的训练模型不收敛,将聚合后的量化值发送至客户端。
[0134]
需要说明的是,上述单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0135]
图6是本发明实施例提供的一种计算机设备的结构示意图。如图6所示,该实施例的计算机设备包括:至少一个处理器(图6中仅示出一个)、存储器以及存储在存储器中并可在至少一个处理器上运行的计算机程序,处理器执行计算机程序时实现上述任意各个基于联邦学习的梯度量化方法实施例中的步骤。
[0136]
该计算机设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图6仅仅是计算机设备的举例,并不构成对计算机设备的限定,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括网络接口、显示屏和输入装置等。
[0137]
所称处理器可以是cpu,该处理器还可以是其他通用处理器、数字信号处理器
(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0138]
存储器包括可读存储介质、内存储器等,其中,内存储器可以是计算机设备的内存,内存储器为可读存储介质中的操作系统和计算机可读指令的运行提供环境。可读存储介质可以是计算机设备的硬盘,在另一些实施例中也可以是计算机设备的外部存储设备,例如,计算机设备上配备的插接式硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡、闪存卡(flash card)等。进一步地,存储器还可以既包括计算机设备的内部存储单元也包括外部存储设备。存储器用于存储操作系统、应用程序、引导装载程序(bootloader)、数据以及其他程序等,该其他程序如计算机程序的程序代码等。存储器还可以用于暂时地存储已经输出或者将要输出的数据。
[0139]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
[0140]
本发明实现上述实施例方法中的全部或部分流程,也可以通过一种计算机程序产品来完成,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现可实现上述方法实施例中的步骤。
[0141]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0142]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出
本发明的范围。
[0143]
在本发明所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0144]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0145]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

技术特征:
1.一种基于联邦学习的梯度量化方法,其特征在于,所述梯度量化方法应用于客户端,所述梯度量化方法包括:获取服务端发送的训练任务,根据所述训练任务,下载对应待训练的初始模型;基于所述客户端中的本地数据,对所述初始模型进行训练,得到当前次训练对应的第一训练模型,根据预设压缩规则对所述客户端中的所述第一训练模型的参数进行压缩,得到第一训练模型对应的压缩参数;基于所述压缩参数,对所述第一训练模型的参数进行压缩,得到当前次训练的压缩结果,所述压缩结果包括梯度量化对应的量化值与量化值变化率;若检测到所述压缩结果满足上传条件,向所述服务端发送所述压缩结果,所述上传条件为若检测到所述客户端上一次向所述服务端发送所述压缩结果对应的训练次数与当前次训练对应的训练次数的差值小于第一预设阈值,且所述量化值变化率大于第二预设阈值。2.如权利要求1所述的梯度量化方法,其特征在于,所述基于所述客户端中的本地数据,对所述初始模型进行训练,包括:获取所述客户端的本地数据;通过预处理器,对所述本地数据进行预处理,得到目标本地数据;根据所述目标本地数据,对所述初始模型进行训练。3.如权利要求1所述的梯度量化方法,其特征在于,所述根据预设压缩规则对每个客户端中的所述第一训练模型的参数进行压缩,得到第一训练模型对应的压缩参数,包括:获取所述客户端的当前次训练时的损失函数与所述客户端的当前次训练时的学习速率;基于所述客户端的当前次训练时的损失函数与所述客户端的当前次训练时的学习速率,计算所述第一训练模型的压缩参数。4.如权利要求1所述的梯度量化方法,其特征在于,所述向所述服务端发送所述压缩结果之后,还包括:若接收到所述服务端发送的聚合后的量化值,基于所述聚合后的量化值更新所述第一训练模型的参数,得到第二训练模型;基于所述客户端中的本地数据,对所述第二训练模型进行训练。5.一种基于联邦学习的梯度量化方法,其特征在于,所述梯度量化方法应用于服务端,所述梯度量化方法包括:通过任务创建器,创建训练任务,将所述训练任务发送至客户端;获取至少一个客户端发送的所述梯度量化的量化值与量化值变化率,基于所述量化值变化率,通过预设聚合规则,对所述量化值进行聚合,得到聚合后的量化值;基于所述聚合后的量化值,更新所述训练任务中对应的模型参数,得到更新后的训练模型;检测所述更新后的训练模型是否收敛,若所述更新后的训练模型收敛,停止梯度量化。6.如权利要求5所述的梯度量化方法,其特征在于,所述检测所述更新后的训练模型是否收敛之后,还包括:若所述更新后的训练模型不收敛,将所述聚合后的量化值发送至客户端。
7.一种基于联邦学习的梯度量化装置,其特征在于,所述梯度量化装置应用于客户端,所述梯度量化包括:下载模块,用于获取服务端发送的训练任务,根据所述训练任务,下载对应待训练的初始模型;压缩率确定模块,用于基于所述客户端中的本地数据,对所述初始模型进行训练,得到第一训练模型,根据预设压缩规则对每个客户端中的所述第一训练模型的参数进行压缩,得到第一训练模型对应的压缩参数;压缩模块,用于基于所述压缩参数,对所述第一训练模型的参数进行压缩,得到当前次训练的压缩结果,所述压缩结果包括梯度量化对应的量化值与量化值变化率;上传模块,用于若检测到所述压缩结果满足上传条件,向所述服务端发送所述压缩结果,所述上传条件为若检测到所述客户端上一次向所述服务端发送所述压缩结果对应的训练次数与当前次训练对应的训练次数的差值小于第一预设阈值,且所述量化值变化率大于第二预设阈值。8.一种基于联邦学习的梯度量化装置,其特征在于,所述梯度量化装置应用于服务端,所述梯度量化包括:创建模块,用于通过任务创建器,创建训练任务,将所述训练任务发送至客户端;聚合模块,用于获取至少一个客户端发送的所述梯度量化的量化值与量化值变化率,通过预设聚合规则,对所述量化值进行聚合,得到聚合后的量化值;更新模块,用于基于所述聚合后的量化值,更新所述训练任务中对应的模型参数,得到更新后的训练模型;检测模块,用于检测所述更新后的训练模型是否收敛,若所述更新后的训练模型收敛,停止梯度量化。9.一种计算机设备,其特征在于,所述计算机设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的梯度量化方法。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的梯度量化方法。

技术总结
本发明涉及人工智能技术领域,尤其涉及一种基于联邦学习的梯度量化方法、装置、设备及存储介质。上述方法应用于医疗领域,梯度量化方法应用于客户端,根据训练任务,下载对应待训练的初始模型,基于客户端中的本地数据,对初始模型进行训练,得到第一训练模型,对每个客户端中的第一训练模型的参数进行压缩,得到当前次训练的压缩结果,若压缩结果满足上传条件,向服务端发送压缩结果,本发明中,根据每个客户端的压缩参数进行梯度量化,可以使每个客户端基于压缩参数对梯度参数进行动态压缩,以便于每个客户端在进行梯度量化的过程中进行动态调整,从而提高梯度量化的精度。从而提高梯度量化的精度。从而提高梯度量化的精度。


技术研发人员:李泽远 王健宗
受保护的技术使用者:平安科技(深圳)有限公司
技术研发日:2023.06.09
技术公布日:2023/9/12
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐