一种模型聚合处理方法、装置、存储介质及电子装置与流程

    专利查询2022-07-09  131



    1.本发明涉及数据处理领域,具体而言,涉及一种模型聚合处理方法、装置、存储介质及电子装置。


    背景技术:

    2.在联邦学习可以使多个参与方共同训练模型,保护隐私的同时最大限度利用数据价值,但是由于联邦建模任务需要同步,为了利用联邦学习参与方所有可用数据样本,每次训练迭代中都通过区块链同步它们的模型,因此链上需要大量的消息传递,从而导致网络上的通信争用。由于网络带宽的限制,区块链节点间通信缓慢。模型聚合需个各参与同步每轮训练结果,受各参与方活跃状态限制。
    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.通过以下方式对所述多个参与方的量化后的向量进行聚合处理,得到第一聚合结果:
    [0028][0029]
    其中,x
    k 1,i
    为节点i在k 1周期上得到的第一聚合结果,xk为周期k得到的全局模型,q(x
    k-x
    k,i
    )为所述量化后的向量,k为周期,n为参与方的数量。
    [0030]
    根据本发明的另一个实施例,还提供了一种模型聚合处理装置,应用于区块链节点,包括:
    [0031]
    选取模块,用于从待确认消息列表中选取多个参与方在上一周期更新得到的量化后的向量,其中,所述待确认消息列表中存储有对接收到的链上交易进行量化处理得到的量化后的向量,所述链上交易是由本地模型打包得到的;
    [0032]
    聚合处理模块,用于对所述多个参与方的量化后的向量进行聚合处理,得到全局模型。
    [0033]
    可选地,所述装置还包括:
    [0034]
    接收模块,用于接收所述链上交易;
    [0035]
    量化处理模块,用于对所述链上交易进行量化处理,得到所述量化后的向量;
    [0036]
    缓存模块,用于将所述量化后的向量缓存到所述待确认消息列表中。
    [0037]
    可选地,所述量化处理模块,还用于利用量化算子,计算最新的本地模型和上次链上聚合得到的全局模型的模型差值,得到所述量化后的向量。
    [0038]
    可选地,所述装置还包括:
    [0039]
    广播模块,用于将所述量化后的向量在区块链上广播,以使各节点将所述量化后的向量缓存到待确认消息列表中。
    [0040]
    可选地,所述聚合处理模块包括:
    [0041]
    聚合子模块,用于对所述多个参与方的量化后的向量进行聚合处理,得到第一聚合结果;
    [0042]
    广播子模块,用于将所述第一聚合结果在区块链上进行广播;
    [0043]
    接收子模块,用于接收其他节点的第二聚合结果,其中,所述其他节点为除所述区块链节点之外的节点;
    [0044]
    确定子模块,用于根据所述第一聚合结果与所述第二聚合结果确定所述全局模型。
    [0045]
    可选地,所述确定子模块,还用于将所述第一聚合结果与所述第二聚合结果进行对比;若所述第一聚合结果的评估结果优于所述第二聚合结果的评估结果,向所述其他节点返回拒绝信息;若所述第二聚合结果的评估结果优于所述第一聚合结果的评估结果,向所述其他节点返回确认信息;确定接收到所述确认信息的数量大于预设值的目标节点对应的本地模型为全局模型。
    [0046]
    可选地,所述聚合模块,还用于通过以下方式对所述多个参与方的量化后的向量进行聚合处理,得到第一聚合结果:
    [0047][0048]
    其中,x
    k 1,i
    为节点i在k 1周期上得到的第一聚合结果,xk为周期k得到的全局模型,q(x
    k-x
    k,i
    )为所述量化后的向量,k为周期,n为参与方的数量。
    [0049]
    根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
    [0050]
    根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
    [0051]
    通过本发明,从待确认消息列表中选取多个参与方在上一周期更新得到的量化后的向量,其中,所述待确认消息列表中存储有对接收到的链上交易进行量化处理得到的量化后的向量,所述链上交易是由本地模型打包得到的;对所述多个参与方的量化后的向量进行聚合处理,得到全局模型,可以解决相关技术中多个参与方同步训练模型,模型更新需要大量的消息传递,通信成本较高且受各参与方活跃状态限制的问题,让参与方执行本地模型更新,通过待确认消息列表交换对本地模型进行量化后的向量,降低网络通信开销;模型聚合时,聚合上一阶段进行模型更新的参与方的量化后的向量,无需与不活跃参与方主动通信,降低了通信成本且不受参与方活跃状态的限制。
    附图说明
    [0052]
    此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
    [0053]
    图1是本发明实施例的模型聚合处理方法的移动终端的硬件结构框图;
    [0054]
    图2是根据本发明实施例的模型聚合处理方法的流程图;
    [0055]
    图3是根据本发明实施例的模型聚合处理装置的框图;
    [0056]
    图4是根据本发明可选实施例的模型聚合处理装置的框图一;
    [0057]
    图5是根据本发明可选实施例的模型聚合处理装置的框图二。
    具体实施方式
    [0058]
    下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
    [0059]
    需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
    [0060]
    本技术实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的模型聚合处理方法的移动终端的硬件结构框图,如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
    [0061]
    存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的模型聚合处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
    [0062]
    传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
    [0063]
    在本实施例中提供了一种运行于上述移动终端或网络架构的模型聚合处理方法,应用于区块链节点,图2是根据本发明实施例的模型聚合处理方法的流程图,如图2所示,该流程包括如下步骤:
    [0064]
    步骤s202,从待确认消息列表中选取多个参与方在上一周期更新得到的量化后的向量,其中,所述待确认消息列表中存储有对接收到的链上交易进行量化处理得到的量化后的向量,所述链上交易是由本地模型打包得到的;
    [0065]
    步骤s204,对所述多个参与方的量化后的向量进行聚合处理,得到全局模型。
    [0066]
    本发明实施例中,一方面,上述步骤s204具体可以包括:对所述多个参与方的量化后的向量进行聚合处理,得到第一聚合结果;将所述第一聚合结果在区块链上进行广播;接收其他节点的第二聚合结果,其中,所述其他节点为除所述区块链节点之外的节点;根据所述第一聚合结果与所述第二聚合结果确定所述全局模型,具体的,将所述第一聚合结果与所述第二聚合结果进行对比;若所述第一聚合结果的评估结果优于所述第二聚合结果的评估结果,向所述其他节点返回拒绝信息;若所述第二聚合结果的评估结果优于所述第一聚合结果的评估结果,向所述其他节点返回确认信息;确定接收到所述确认信息的数量大于
    预设值的目标节点对应的本地模型为全局模型。
    [0067]
    另一方面,还可以通过以下方式对所述多个参与方的量化后的向量进行聚合处理,得到第一聚合结果:
    [0068][0069]
    其中,x
    k 1,i
    为节点i在k 1周期上得到的第一聚合结果,xk为周期k得到的全局模型,q(x
    k-x
    k,i
    )为所述量化后的向量,k为周期,n为参与方的数量。
    [0070]
    通过上述步骤s202至s204,可以解决相关技术中多个参与方同步训练模型,模型更新需要大量的消息传递,通信成本较高且受各参与方活跃状态限制的问题,让参与方执行本地模型更新,通过待确认消息列表交换对本地模型进行量化后的向量,降低网络通信开销;模型聚合时,聚合上一阶段进行模型更新的参与方的量化后的向量,无需与不活跃参与方主动通信,降低了通信成本且不受参与方活跃状态的限制。
    [0071]
    在一可选的实施例中,在上述步骤s202之前,接收所述链上交易;对所述链上交易进行量化处理,得到所述量化后的向量,具体可以利用量化算子,计算最新的本地模型和上次链上聚合得到的全局模型的模型差值,得到所述量化后的向量;将所述量化后的向量缓存到所述待确认消息列表中。
    [0072]
    进一步的,在对所述链上交易进行量化处理,得到所述量化后的向量之后,将所述量化后的向量在区块链上广播,以使各节点将所述量化后的向量缓存到待确认消息列表中。
    [0073]
    本发明实施例基于高效率通信的区块链聚合方法的联邦学习,分为三个阶段:本地模型训练,区块链节点量化消息传递,周期化模型聚合,下面对各个阶段进行说明。
    [0074]
    本地模型训练,集团作为联邦学习的guest方发起模型训练任务,各个子公司作为host方参与联邦学习模型训练任务,si将用户个人金融数据加载到联邦学习框架中。每个子公司局部的损失预期为fi(x),各子公司利用梯度下降法在当前全局模型xk,其中k为周期数(第一次训练开始前由链上随机生成初始模型x0)的基础上训练模型,将每轮迭代得到的本地模型x
    k,t,i
    (k为周期数,t为周期内迭代次数,i为节点标识)打包为一个链上交易tx
    k,i
    上传到所在子公司的区块链节点上。
    [0075]
    链上消息量化,当链上节点接收到一个新的tx
    k,i
    时,会对最新交易进行量化处理。具体步骤如下:
    [0076]
    1)利用量化算子q,计算最新模型和上次链上聚合的模型差值q(x
    k-x
    k,t,i
    );
    [0077]
    2)将量化后的向量q(x
    k-x
    k,t,i
    )在链上广播;
    [0078]
    3)各节点接受到量化后的向量q(x
    k-x
    k,t,i
    )后,暂存至待确认的消息列表。
    [0079]
    周期化模型聚合,当经过一定时间后,各参与方完成多次本地迭代,链上开始聚合模型,具体步骤如下:
    [0080]
    1)各链上节点同时从自己的待确认消息队列中选择随机各参与方的一个本地模型,通过以下方式计算聚合结果:每个节点均可重复多次,选择较优结果。
    [0081]
    2)将聚合结果x
    k 1,i
    进行广播。
    [0082]
    3)接受到来自其他节点的x
    k 1,i
    ,与己方结果对比,若本方无结果或收到的聚合结果优于本方返回确认信息,否则返回拒绝信息。
    [0083]
    4)收到拒绝信息,则重新计算。最先收到2/3确认的节点,生成当前周期最终全局模型x
    k 1
    ,并广播该结果。
    [0084]
    以上,重复执行k个周期,直到达到预期优化目标,则训练结束。
    [0085]
    本发明实施例结合区块链共识机制,对本地模型多轮迭代结果暂存至待确认交易集合,出块的同时聚合模型,实现周期性模型聚合,可以减少通信轮数;结合区块链消息验证机制,交易独立验证时加入对上链信息的量化操作,降低单次通信代价。利用待确认交易集合,异步处理各参与方上传的本地模型信息,解决伸缩性问题。
    [0086]
    根据本发明的另一个实施例,还提供了一种模型聚合处理装置,应用于区块链节点,图3是根据本发明实施例的模型聚合处理装置的框图,如图3所示,包括:
    [0087]
    选取模块32,用于从待确认消息列表中选取多个参与方在上一周期更新得到的量化后的向量,其中,所述待确认消息列表中存储有对接收到的链上交易进行量化处理得到的量化后的向量,所述链上交易是由本地模型打包得到的;
    [0088]
    聚合处理模块34,用于对所述多个参与方的量化后的向量进行聚合处理,得到全局模型。
    [0089]
    图4是根据本发明可选实施例的模型聚合处理装置的框图一,如图4所示,所述装置还包括:
    [0090]
    接收模块42,用于接收所述链上交易;
    [0091]
    量化处理模块44,用于对所述链上交易进行量化处理,得到所述量化后的向量;
    [0092]
    缓存模块46,用于将所述量化后的向量缓存到所述待确认消息列表中。
    [0093]
    可选地,所述量化处理模块44,还用于利用量化算子,计算最新的本地模型和上次链上聚合得到的全局模型的模型差值,得到所述量化后的向量。
    [0094]
    可选地,所述装置还包括:
    [0095]
    广播模块,用于将所述量化后的向量在区块链上广播,以使各节点将所述量化后的向量缓存到待确认消息列表中。
    [0096]
    图5是根据本发明可选实施例的模型聚合处理装置的框图二,如图5所示,所述聚合处理模块34包括:
    [0097]
    聚合子模块52,用于对所述多个参与方的量化后的向量进行聚合处理,得到第一聚合结果;
    [0098]
    广播子模块54,用于将所述第一聚合结果在区块链上进行广播;
    [0099]
    接收子模块56,用于接收其他节点的第二聚合结果,其中,所述其他节点为除所述区块链节点之外的节点;
    [0100]
    确定子模块58,用于根据所述第一聚合结果与所述第二聚合结果确定所述全局模型。
    [0101]
    可选地,所述确定子模块58,还用于将所述第一聚合结果与所述第二聚合结果进行对比;若所述第一聚合结果的评估结果优于所述第二聚合结果的评估结果,向所述其他节点返回拒绝信息;若所述第二聚合结果的评估结果优于所述第一聚合结果的评估结果,
    向所述其他节点返回确认信息;确定接收到所述确认信息的数量大于预设值的目标节点对应的本地模型为全局模型。
    [0102]
    可选地,所述聚合模块34,还用于通过以下方式对所述多个参与方的量化后的向量进行聚合处理,得到第一聚合结果:
    [0103][0104]
    其中,x
    k 1,i
    为节点i在k 1周期上得到的第一聚合结果,xk为周期k得到的全局模型,q(x
    k-x
    k,i
    )为所述量化后的向量,k为周期,n为参与方的数量。
    [0105]
    需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
    [0106]
    本发明的实施例还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
    [0107]
    可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
    [0108]
    s1,从待确认消息列表中选取多个参与方在上一周期更新得到的量化后的向量,其中,所述待确认消息列表中存储有对接收到的链上交易进行量化处理得到的量化后的向量,所述链上交易是由本地模型打包得到的;
    [0109]
    s2,对所述多个参与方的量化后的向量进行聚合处理,得到全局模型。
    [0110]
    可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
    [0111]
    本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
    [0112]
    可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
    [0113]
    可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
    [0114]
    s1,从待确认消息列表中选取多个参与方在上一周期更新得到的量化后的向量,其中,所述待确认消息列表中存储有对接收到的链上交易进行量化处理得到的量化后的向量,所述链上交易是由本地模型打包得到的;
    [0115]
    s2,对所述多个参与方的量化后的向量进行聚合处理,得到全局模型。
    [0116]
    可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
    [0117]
    显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或
    步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
    [0118]
    以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
    转载请注明原文地址:https://tc.8miu.com/read-3370.html

    最新回复(0)