掌桥专利:专业的专利平台
掌桥专利
首页

模型训练的方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 19:58:26


模型训练的方法、装置、电子设备及存储介质

技术领域

本说明书一个或多个实施例涉及区块链技术领域,并且更具体地,涉及区块链技术领域中的模型训练的方法、装置、电子设备及存储介质。

背景技术

在消费金融场景下,人工智能可以帮助金融机构提高客户服务水平,提供个性化的金融服务。人工智能需要大量的数据进行模型训练,但往往单个金融机构掌握的数据有限,通常情况下掌握部分客户的数据,因此,跨金融机构之间的数据合作越来越受欢迎。跨金融机构之间的数据合作能够对大量客户的数据进行分析,从而得到准确的人工智能模型,更好地为客户进行金融服务。

相关技术中,一般采取联邦学习的方法来使得客户的数据在不离开各个金融机构的情况下,实现各个金融机构之间的数据合作的过程。具体地,联邦学习的方法是通过一个中心化服务器,在每一轮迭代过程中,将各个训练节点上传的模型参数进行融合,再将融合后的新模型回传到各个训练节点,进行下一轮迭代,直到得到最终的全局模型。但在上述迭代过程中,可能会存在恶意的训练节点破坏联邦学习,该恶意的训练节点通过给中心化服务器上传伪造的模型参数来污染联邦学习生成的全局模型。这会造成恶劣的影响。

发明内容

本说明书一个或多个实施例提供了模型训练的方法、装置、电子设备及存储介质,该方法能够在一定程度上使得矿工节点抵御恶意节点的攻击,得到更加准确的全局模型。此外,还能够避免相关技术中的联邦学习强依赖于一个中心化服务器,面临单点故障的风险。

第一方面,提供了一种模型训练的方法,该方法由区块链系统中的矿工节点执行,该矿工节点为该区块链系统中基于共识机制选举出的节点,该方法包括:获取该区块链系统中多个目标节点的本地模型的模型参数,该矿工节点属于该多个目标节点;对于该多个目标节点中的任一目标节点,基于该目标节点的模型参数与其他目标节点的模型参数之间的相似度,确定该目标节点的恶意值,该恶意值与目标节点的恶意程度正相关;基于该多个目标节点的恶意值,从该多个目标节点中确定至少一个恶意节点;将该多个目标节点中的多个非恶意节点的模型参数进行融合,得到本轮的全局模型的模型参数。

上述技术方案中,相当于通过多个目标节点中各个目标节点的模型参数之间的差异性推断本轮的各个目标节点的程度,从而确定各个目标节点的恶意值。基于多个目标节点的恶意值,从多个目标节点中确定出至少一个恶意节点,并将恶意节点的模型参数舍弃。利用非恶意节点的模型参数得到本轮的全局模型。上述过程中,从上传本地模型的多个目标节点中确定出恶意节点,利用非恶意节点的上传的本地模型的模型参数进行本轮的全局模型的训练,使得矿工节点能够在一定程度上抵御恶意节点的攻击,得到更加准确的全局模型。此外,本说明书一个或多个实施例在本轮的模型训练的过程中,基于共识机制选举出的矿工节点,由矿工节点获取多个目标节点的本地模型的模型参数,并基于多个本地模型的模型参数进行本轮的全局模型的融合。在通常情况下,每一轮基于共识机制确定的矿工节点是不同的,因此本说明书一个或多个实施例在每一轮确定该轮的全局模型时的执行主体不同。这能够避免相关技术中的联邦学习强依赖于一个中心化服务器,面临单点故障的风险。也就是说,在中心化服务器出现故障的情况下,整个联邦学习面临崩溃的问题。

结合第一方面,在某些可能的实现方式中,基于该目标节点的模型参数与其他目标节点的模型参数之间的相似度,确定该目标节点的恶意值,包括:确定该目标节点的模型参数与其他目标节点的模型参数之间的多个相似度;将该多个相似度之和的倒数,确定为该目标节点的恶意值。

上述技术方案中,将该目标节点的模型参数与其他多个目标节点中的各个目标节点的模型参数之间的相似度之和的倒数,确定为该目标节点的恶意值。在以目标节点的模型参数指代目标节点的情况下,上述方案相当于,将该目标节点到其他多个目标节点的距离和,确定为该目标节点的恶意值。在该目标节点对应的相似度之和比较大的情况下,表明该目标节点的模型参数与其他多个目标节点的模型参数的差异较大,该目标节点的模型参数不准确的可能性较大,对矿工节点获取全局模型的模型参数的恶意程度较大。也就是说,在矿工节点基于包括该目标节点的模型参数的多个模型参数进行融合时,矿工节点会得到不准确的全局模型的模型参数。

结合第一方面和上述实现方式,在某些可能的实现方式中,基于该多个目标节点的恶意值,从该多个目标节点中确定至少一个恶意节点,包括:按照恶意值从大到小的顺序,对该多个目标节点进行排序;将排序后的多个目标节点中前目标数量个目标节点确定为该至少一个恶意节点。

上述技术方案中,矿工节点通过多个目标节点的恶意值对该多个目标节点进行从大到小的排序,得到排序后的多个目标节点,这使得矿工节点能够基于需求快速地确定至少一个恶意节点。具体地,将排序后的多个目标节点中的前目标数量个目标节点确定为该至少一个恶意节点,这是因为前目标数量个目标节点的恶意值较大,对矿工节点获取全局模型的模型参数的恶意程度较大。

结合第一方面和上述实现方式,在某些可能的实现方式中,该目标数量的确定方法包括:确定目标节点的数量与第一系数之间的乘积,得到第一数值,该第一系数为将要确定的恶意节点的数量与该目标节点的数量之间的比值;将该第一数值的整数部分,确定为该目标数量。

上述技术方案中,矿工节点从多个目标节点中确定恶意节点之前,预先设置恶意节点的数量。该数量为目标节点的数量与第一系数之间的乘积结果(第一数值)的整数部分,这是由于该乘积结果可能为小数。

结合第一方面和上述实现方式,在某些可能的实现方式中,将该多个目标节点中的多个非恶意节点的模型参数进行融合,得到本轮的全局模型的模型参数,包括下述中的任一项:基于各个非恶意节点的模型参数与对应的权重,将该多个非恶意节点的模型参数进行加权融合,得到该本轮的全局模型的模型参数;将该多个非恶意节点的模型参数的平均值确定为该本轮的全局模型的模型参数。

上述技术方案中,以各个非恶意节点的模型参数与对应的权重进行加权融合或者以该多个非恶意节点的模型参数的平均值的两种方式,对多个非恶意节点的模型参数进行融合,得到本轮的全局模型的模型参数。这能够丰富矿工节点获取本轮的全局模型的模型参数的方式,使得获取过程多样化。

结合第一方面和上述实现方式,在某些可能的实现方式中,该多个目标节点是从该区块链系统包括的多个节点中确定的,该多个目标节点为在预设时长内向该区块链系统上传本地模型的模型参数的节点,该方法还包括:在本轮指代的轮次等于预设轮次的情况下,确定该多个节点中各个节点在该预设轮次中的参与次数;基于该多个节点中各个节点对应的参与次数、该多个节点对应的总参与次数、总激励值和第二系数,向该多个节点中的各个节点分配目标激励值,该目标激励值用于激励各个节点参与本地模型的训练,该第二系数为向该多个节点分配的激励值与该总激励值之间的比值。

上述技术方案中,在区块链系统包括多个节点,本轮指代的轮次等于预设轮次的情况下,矿工节点对参与本地模型训练的多个节点进行奖励。具体地,基于该多个节点中各个节点对应的参与次数、该多个节点对应的总参与次数、总激励值和第二系数,向该多个节点中的各个节点分配目标激励值,使得各个节点能够积极参与之后的其他本地模型的训练。

结合第一方面和上述实现方式,在某些可能的实现方式中,得到本轮的全局模型的模型参数之后,该方法还包括:基于第三系数、该总激励值和该预设轮次,获取激励值,该激励值用于激励该矿工节点参与该全局模型的训练,该第三系数为向矿工节点分配的矿工激励值与该总激励值之间的比值,该第二系数与该第三系数之和为1。

上述技术方案中,相当于在每一轮进行全局模型的模型参数融合之后,矿工节点基于第三系数、该总激励值和该预设轮次,获取激励值,即对矿工节点进行奖励的过程。矿工节点在对全局模型的训练过程中,会消耗自身的计算资源(存储、带宽、计算量),因此,在每一轮对全局模型的模型参数进行融合之后,矿工节点获取激励值,使得该区块链中的多个节点都竞争矿工节点的记账权,进行全局模型的训练。

结合第一方面和上述实现方式,在某些可能的实现方式中,该矿工节点为该多个目标节点中求解目标哈希问题时用时最短的节点,该矿工节点是通过哈希算法确定随机数的方式来求解该目标哈希问题的。

上述技术方案中,相当于基于目标节点的工作量从多个目标节点中确定矿工节点。具体地,多个目标节点均使用自身的算力,通过哈希算法产生随机数的方式来求解该目标哈希问题。由于各个目标节点的算力存在差异,因此可将求解目标哈希问题时用时最短的节点确定为目标节点。

结合第一方面和上述实现方式,在某些可能的实现方式中,将该多个目标节点中的多个非恶意节点的模型参数进行融合,得到本轮的全局模型的模型参数之后,该方法还包括:在本轮指代的轮次等于预设轮次的情况下,将该本轮的全局模型确定为目标模型,该目标模型用于执行预设事务;在本轮指代的轮次小于该预设轮次的情况下,将该本轮的全局模型发布到该区块链系统包括的多个节点中,以使该多个节点更新后续训练时所使用的全局模型的模型参数。

上述技术方案中,在本轮指代的轮次等于预设轮次的情况下,矿工节点不再进行全局模型的训练,直接将该本轮的全局模型确定为目标模型。在本轮指代的轮次小于预设轮次,也就是说,训练次数不够的情况下,矿工节点将本轮的全局模型发布到该区块链系统包括的多个节点中,多个节点在基于该本轮的全局模型训练本地模型的模型参数之后,多个节点中的部分节点的本地模型的模型参数会被下一轮该部分节点中的矿工节点接收,该矿工节点对部分节点的本地模型的模型参数继续融合,得到下一轮的全局模型的模型参数。依次类推,直到某次的轮次等于预设轮次。也就是说,在训练次数不够的情况下,区块链系统包括的多个节点中的任一矿工节点继续训练全局模型。

第二方面,提供了一种模型训练的装置,该装置包括:获取模块,用于获取区块链系统中多个目标节点的本地模型的模型参数,矿工节点属于该多个目标节点;确定模块,用于:对于该多个目标节点中的任一目标节点,基于该目标节点的模型参数与其他目标节点的模型参数之间的相似度,确定该目标节点的恶意值,该恶意值与目标节点的恶意程度正相关;基于该多个目标节点的恶意值,从该多个目标节点中确定至少一个恶意节点;融合模块,用于将该多个目标节点中的多个非恶意节点的模型参数进行融合,得到本轮的全局模型的模型参数。

结合第二方面,在某些可能的实现方式中,该确定模块,具体用于:确定该目标节点的模型参数与其他目标节点的模型参数之间的多个相似度;将该多个相似度之和的倒数,确定为该目标节点的恶意值。

结合第二方面和上述实现方式,在某些可能的实现方式中,该确定模块,具体还用于:按照恶意值从大到小的顺序,对该多个目标节点进行排序;将排序后的多个目标节点中的前目标数量个目标节点确定为该至少一个恶意节点。

结合第二方面和上述实现方式,在某些可能的实现方式中,该确定模块,具体还用于:确定目标节点的数量与第一系数之间的乘积,得到第一数值,该第一系数为将要确定的恶意节点的数量与该目标节点的数量之间的比值;将该第一数值的整数部分,确定为该目标数量。

结合第二方面和上述实现方式,在某些可能的实现方式中,该融合模块,具体用于下述中的任一项:基于各个非恶意节点的模型参数与对应的权重,将该多个非恶意节点的模型参数进行加权融合,得到该本轮的全局模型的模型参数;将该多个非恶意节点的模型参数的平均值确定为该本轮的全局模型的模型参数。

结合第二方面和上述实现方式,在某些可能的实现方式中,该多个目标节点是从该区块链系统包括的多个节点中确定的,该多个目标节点为在预设时长内向该区块链系统上传本地模型的模型参数的节点,该确定模块,还用于在本轮指代的轮次等于预设轮次的情况下,确定该多个节点中各个节点在该预设轮次中的参与次数;该装置还包括:分配模块,用于基于该多个节点中各个节点对应的参与次数、该多个节点对应的总参与次数、总激励值和第二系数,向该多个节点中的各个节点分配目标激励值,该目标激励值用于激励各个节点参与本地模型的训练,该第二系数为向该多个节点分配的激励值与该总激励值之间的比值。

结合第二方面和上述实现方式,在某些可能的实现方式中,得到本轮的全局模型的模型参数之后,该获取模块,还用于基于第三系数、该总激励值和该预设轮次,获取激励值,该激励值用于激励该矿工节点参与该全局模型的训练,该第三系数为向矿工节点分配的矿工激励值与该总激励值之间的比值,该第二系数与该第三系数之和为1。

结合第二方面和上述实现方式,在某些可能的实现方式中,该矿工节点为该多个目标节点中求解目标哈希问题时用时最短的节点,该矿工节点是通过哈希计算确定随机数的方式来求解该目标哈希问题的。

结合第二方面和上述实现方式,在某些可能的实现方式中,将该多个目标节点中的多个非恶意节点的模型参数进行融合,得到本轮的全局模型的模型参数之后,该确定模块,还用于在本轮指代的轮次等于预设轮次的情况下,将该本轮的全局模型确定为目标模型,该目标模型用于执行预设事务;该装置还包括:发送模块,用于在本轮指代的轮次小于该预设轮次的情况下,将该本轮的全局模型发布到该区块链系统包括的多个节点中,以使该多个节点更新后续训练时所使用的全局模型的模型参数。

第三方面,提供一种电子设备,包括存储器、处理器以及存储在该存储器中并在该处理器上运行的计算机程序,其中,该处理器执行该计算机程序时,使得该电子设备执行上述第一方面或第一方面任意一种可能的实现方式中的方法。

第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机或处理器上运行时,使得该计算机或处理器执行上述第一方面或第一方面任意一种可能的实现方式中的方法。

第五方面,提供了一种包含指令的计算机程序产品,当该计算机程序产品在该计算机或处理器上运行时,使得该计算机或处理器执行上述第一方面或第一方面任意一种可能的实现方式中的方法。

附图说明

图1是本说明书一个或多个实施例提供的一种联邦学习的结构示意图;

图2是本说明书一个或多个实施例提供的一种基于区块链的联邦学习的结构示意图;

图3是本说明书一个或多个实施例提供的一种模型训练的方法的示意性流程图;

图4是本说明书一个或多个实施例提供的一种模型训练的方法的示意图;

图5是本说明书一个或多个实施例提供的一种模型训练的装置的结构示意图;

图6是本说明书一个或多个实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合附图,对本说明书一个或多个实施例中的技术方案进行清楚、详尽地描述。其中,在本说明书一个或多个实施例的描述中,“多个”是指两个或多于两个。术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者多个该特征。文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。

在金融场景下,人工智能可以帮助金融机构提高客户服务水平,提供个性化的金融服务。在一些实施例中,智能推荐设备可基于客户在金融机构中的资源存储量,为客户进行金融产品的智能推荐。示例性的,智能推荐设备基于客户A在金融机构B中的资源存储量,为客户A推荐金融产品1。例如,该金融产品1为将现存于金融机构B中的资源存储量定期存储N年,N为正整数。为了使得智能推荐设备具备推荐金融产品的能力,相关技术通过大数据量的资源存储量进行智能推荐设备中的推荐模型的训练。但往往单个金融机构掌握的资源存储量的数据量有限,使得最终得到的推荐模型不是很准确,因此,跨金融机构之间的数据合作越来越受欢迎。跨金融机构之间的数据合作能够使得相关技术分析大数据量的资源存储量,从而得到准确的推荐模型,使得推荐模型基于客户的资源存储量来推荐目标产品。在一些实施例中,该目标产品为金融产品。

相关技术中,通常采用联邦学习的方法以使得多个客户的资源存储量在不离开金融机构的情况下,实现多个金融机构之间的数据合作。其中的联邦学习本质上是一种分布式的机器学习,其架构包括分布式设备和聚合服务器,在一些实施例中,该分布式设备为客户端,该聚合服务器为中心化服务器。其架构示意图如图1所示,客户端(如平板电脑、手机、物联网设备)在中心服务器的协调下共同训练模型。其中,客户端用于训练本地数据得到本地模型。中心服务器对多个客户端的本地模型进行融合,得到全局模型,经过多轮迭代后,该中心服务器会得到一个趋近于集中式机器学习结果的模型。

具体地,可以通过图1所示的联邦学习的架构,得到为客户推荐金融产品的推荐模型。图1中包括多个客户端:客户端1、客户端2和客户端3。其中,该客户端1为金融机构C对应的客户端,该客户端2为金融机构D对应的客户端以及该客户端3为金融机构E对应的客户端。在金融机构C需要获取推荐模型的情况下,客户端1向中心化服务器发送请求,该请求中包括训练模型的预设轮次、模型的结构以及初始参数。中心化服务器接收到该请求之后,将该请求发布到各个客户端。各个客户端在接收到该请求之后,基于各自本地数据库中的资源存储量,对模型的初始参数进行更新,得到第一轮的本地模型的模型参数,并上传到中心化服务器。中心化服务器接收到多个第一轮的本地模型的模型参数之后,对多个本地模型的模型参数进行融合得到第一轮的全局模型,在第一轮指代的轮次小于预设轮次的情况下,中心化服务器将第一轮的全局模型发布到各个客户端。各个客户端基于各自本地数据库中的资源存储量,对第一轮的全局模型的参数进行更新,得到第二轮的本地模型的模型参数,并上传到中心化服务器。中心化服务器接收到多个第二轮的本地模型的模型参数之后,对多个本地模型的模型参数进行融合得到第二轮的全局模型,......,依次类推,直到在第M轮指代的轮次等于预设轮次的情况下,中心化服务器将第M轮的全局模型确定为推荐模型,并将该推荐模型发布到客户端1,其中M为正整数。通过上述的多轮迭代过程,能够在资源存储量不离开各自对应的金融机构的本地数据库的情况下,使得客户端1得到训练模型,这有效的降低了传统机器学习中数据源需要聚合在中心化服务器而带来的数据泄露风险。

但上述的多轮迭代过程强依赖于一个中心化服务器,这会面临单点故障的风险。也就是说,一旦中心化服务器出现故障,整个联邦学习的迭代过程将面临崩溃。此外,在上述迭代过程中,可能存在恶意的客户端向中心化服务器上传伪造的本地模型的模型参数,从而使得中心化服务器融合的全局模型不准确,这会造成恶劣的影响。

为了解决上述迭代过程中所存在的单点故障问题,本说明书一个或多个实施例引入区块链技术。区块链技术是一种分布式的数据存储技术,使得数据存储在多个区块上,而不是集中在一个位置。本说明书一个或多个实施例将区块链技术与联邦学习进行结合,也就是去掉图1中的中心化服务器,将获取多轮的全局模型的步骤由多个客户端中的不同客户端来完成。具体可参见图2中的区块链系统,该区块链系统包括由至少一个区块组成的区块链以及多个客户端(包括客户端1,客户端2,......,以及客户端W,W为正整数)。在金融机构C需要获取推荐模型的情况下,客户端1向区块链发送请求,该请求中包括训练模型的预设轮次、模型的结构以及初始参数。区块链接收到该请求之后,将该请求中包括的所有参数打包为此次获取推荐模型的第0号区块(区块0),并向W个客户端发布该次训练任务。各个客户端在接收到该请求之后,基于各自本地数据库中的资源存储量,对模型的初始参数进行更新,得到第一轮的本地模型的模型参数,并上传到区块链。由于各个客户端的算力和网络状况不同,因此各个本地模型的模型参数上传到区块链的时间可能不同,区块链在预设时长之后,对接收到V个客户端上传的本地模型的模型参数进行融合,得到第一轮的全局模型,并将该第一轮的全局模型存储到区块1。其中,在区块链中进行V个本地模型的模型参数融合的具体执行主体为V个客户端中的某一客户端(例如,客户端3)。其中,V为正整数,且V小于W。在得到第一轮的全局模型之后,该客户端判断该轮指代的轮次是否等于预设轮次。在该轮指代的轮次等于预设轮次的情况下,该客户端将该第一轮的全局模型确定为推荐模型。在该轮指代的轮次小于预设轮次的情况下,该客户端将该第一轮的全局模型发布到W个客户端。W个客户端中的各个客户端在接收到第一轮的全局模型之后,基于各自本地数据库中的资源存储量,对第一轮的全局模型的参数继续进行更新,......,以此类推,直到迭代轮次等于该预设轮次,将最后一轮的全局模型确定为推荐模型。通过上述迭代过程,使得每一轮迭代全局模型的执行主体不会总由同一客户端来完成,这能够避免上述提到的单点故障问题。

需要说明的是,本说明书一个或多个实施例所涉及的本地数据(具体为客户的资源存储量),均为经用户授权或者经过各方充分授权的,且本地数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

在一些实施例中,可基于区块链技术中的共识机制从V个客户端中选取用于融合本地模型的客户端。应理解,V个客户端是指在预设时长内,将本地模型的模型参数上传到区块链上的客户端。应理解,在每一轮的迭代过程中,用于融合本地模型的客户端可能不同。还应理解,共识机制是区块链技术在多个客户端间建立信任、达成共识、实现去中心化的核心技术。

为了解决上述迭代过程中,恶意的客户端伪造本地模型的模型参数,从而使得融合的全局模型不准确的问题,本说明书一个或多个实施例提供一种模型训练的方法。具体过程如下。

图3是本说明书一个或多个实施例提供的一种模型训练的方法的示意性流程图。

应理解,本说明书一个或多个实施例提供的一种模型训练的方法可以应用于图2中区块链中的某一客户端,在本说明书一个或多个实施例中,将用于融合本地模型从而得到全局模型的客户端称为矿工节点。该矿工节点为具有处理数据功能的计算机终端或手机终端等。

示例性的,如图3所示,该方法300包括:

步骤302,矿工节点获取该区块链系统中多个目标节点的本地模型的模型参数,该矿工节点属于该多个目标节点。

应理解,上述步骤302中的“多个目标节点”可简单地理解为在预设时长内,将本地模型的模型参数上传到区块链上的客户端。在以图2为例的实施例中,该多个目标节点为该V个客户端。其中,步骤302中的“区块链系统”包括由至少一个区块组成的区块链以及多个客户端。该多个客户端为基于自身本地数据库中的本地数据和算力训练得到本地模型的模型参数的客户端。其中,该本地数据为与客户相关的隐私数据。

还应理解,上述步骤302中的“本地模型”是对于各个目标节点而言的,是各个目标节点基于自身本地数据库中的本地数据和算力训练得到的机器学习模型。

还应理解,区块链系统包括至少一个区块组成的区块链以及W个客户端。W个客户端中的各个客户端均能参与本地模型的训练,只是由于各个客户端的算力和/或网络状态不同,各个客户端将训练好的本地模型的模型参数上传到区块链的时间不同。区块链在一定的预设时长内接收客户端上传的本地模型的模型参数,对在该预设时长内接收到的V个客户端上传的本地模型的模型参数进行融合,而将在预设时长之后接收到其他客户端上传的本地模型的模型参数舍弃,其中,V个客户端为W个客户端中的部分客户端,其他客户端为该W个客户端中除V个客户端之外的客户端。上述步骤302中的“矿工节点”是基于共识机制从多个目标节点中选举的节点,该矿工节点具有记账权,也就是说,能够对多个目标节点的本地模型的模型参数进行融合,得到全局模型。

在一些实施例中,该共识机制为工作量证明机制和权益证明机制中的任一项。

应理解,工作量证明机制的主要特征是目标节点需要通过一定难度的工作得出一个结果。在本说明书一个或多个实施例中,验证方(区块链)通过结果以及得到该结果的时长来验证目标节点是否可确定为矿工节点。

还应理解,权益证明机制的主要特征是目标节点需要证明自身拥有一定数量的资源存储量的所有权,即权益。

第一种:通过工作量证明机制确定矿工节点

一种可能的实现方式中,该矿工节点为该多个目标节点中求解目标哈希问题时用时最短的节点,该矿工节点是通过哈希计算确定随机数的方式来求解该目标哈希问题的。

上述技术方案中,相当于基于目标节点的工作量从多个目标节点中确定矿工节点。具体地,多个目标节点均使用自身的算力,通过哈希算法产生随机数的方式来求解该目标哈希问题。由于各个目标节点的算力存在差异,因此可将求解目标哈希问题时用时最短的节点确定为目标节点。

示例性的,目标哈希问题为:给定一个字符串“Hello,world!”,在该字符串后添加一个称为Nonce的整数值,将更新后的字符串进行SHA-256哈希计算,使得得到的哈希结果(以十六进制表示)以“0000”开头。应理解,任一目标节点要求解上述目标哈希问题,需要不断地递增Nonce值,对更新得到的新字符串进行SHA-256哈希计算。如下是某一目标节点在用时最短时通过4251次的哈希计算得到的哈希结果。

He11o,wor1d!0=>1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64;

He11o,wor1d!1"=>e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8;

He1lo,wor1d!2"=>ae37343a357a82975916257134cbea225928be8ca2a32aa475cf05fd4266b7;

......;

He11o,wor1d!4249"=>c004190b822f1669cac8dc37e761cb73652e7832fb814565702245cf26ebb9e6;

He11o,wor1d!4250”=>0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4eg。

在第4251次的哈希结果计算出来后,请求方(该目标节点)向区块链发送该哈希结果,即在“Hello world!”后添加上4250,可以使SHA-256哈希计算的前4位为“0000”。区块链直接基于“Hello world!4250”进行SHA-256哈希计算,验证该目标节点的计算是正确的,将该目标节点确定为矿工节点。

第二种:通过权益证明机制确定矿工节点

在一些实施例中,该矿工节点为该多个目标节点中的第一目标节点,该第一目标节点能够基于自身的权益获取区块链中的至少一个随机数,得到相应数量的票据;并从相应数量的票据中随机选中一个目标数值,基于该目标数值生成一个目标随机数;且该目标随机数与票据中的任一随机数匹配。在金融场景下,该权益为该第一目标节点中的资源存储量。

步骤304,对于该多个目标节点中的任一目标节点,矿工节点基于该目标节点的模型参数与其他目标节点的模型参数之间的相似度,确定该目标节点的恶意值,该恶意值与目标节点的恶意程度正相关。

应理解,上述步骤中的“目标节点的恶意值”为该目标节点的恶意程度,具体可理解为该目标节点的模型参数与其他目标节点的模型参数的差异性,差异性越大,表明该目标节点的恶意程度越大。这是由于在联邦学习的每轮迭代过程中,每个目标节点在本地使用相同的全局模型,即使所使用的本地数据不同,但在有限次的迭代中所得到本地模型的模型参数不会产生较大的差异。若某一目标节点的模型参数与其他目标节点的模型参数的差异性较大,该目标节点可能为蓄意破坏的节点(恶意节点)。该恶意节点通过伪造本地模型的模型参数,来破环矿工节点的基于多个本地模型的模型参数进行融合,得到准确的全局模型的过程。

还应理解,上述步骤304中,通过相似度来描述该目标节点的模型参数与其他目标节点的模型参数之间的差异性。相似度越大,表明该目标节点的模型参数与其他目标节点的模型参数之间的差异性越小;相似度越小,表明该目标节点的模型参数与其他目标节点的模型参数之间的差异性越大。

还应理解。上述步骤304中的“恶意值与目标节点的恶意程度正相关”可以理解为:目标节点的恶意值越大,目标节点的恶意程度越大;目标节点的恶意值越小,目标节点的恶意程度越小。

在一些实施例中,该相似度为欧几里得距离、曼哈顿距离、余弦相似度和汉明距离中的至少一项。

一种可能的实现方式中,矿工节点基于该目标节点的模型参数与其他目标节点的模型参数之间的相似度,确定该目标节点的恶意值,包括:矿工节点确定该目标节点的模型参数与其他目标节点的模型参数之间的多个相似度;矿工节点将该多个相似度之和的倒数,确定为该目标节点的恶意值。

上述技术方案中,将该目标节点的模型参数与其他多个目标节点中的各个目标节点的模型参数之间的相似度之和的倒数,确定为该目标节点的恶意值。在以目标节点的模型参数指代目标节点的情况下,上述方案相当于,将该目标节点到其他多个目标节点的距离和,确定为该目标节点的恶意值。在该目标节点对应的相似度之和比较大的情况下,表明该目标节点的模型参数与其他多个目标节点的模型参数的差异较大,该目标节点的模型参数不准确的可能性较大,对矿工节点获取全局模型的模型参数的恶意程度较大。也就是说,在矿工节点基于包括该目标节点的模型参数的多个模型参数进行融合时,矿工节点会得到不准确的全局模型的模型参数。

步骤306,矿工节点基于该多个目标节点的恶意值,从该多个目标节点中确定至少一个恶意节点。

应理解,由于恶意节点为与其他目标节点的模型参数的差异性较大的节点,恶意程度较大的节点,恶意值为恶意程度,因此,矿工节点可基于多个目标节点的恶意值,从该多个目标节点中确定至少一个恶意节点。

在一些实施例中,矿工节点将多个目标节点中恶意值大于预设数值的目标节点,确定为至少一个恶意节点。

一种可能的实现方式中,步骤306,包括:矿工节点按照恶意值从大到小的顺序,对该多个目标节点进行排序;矿工节点将排序后的多个目标节点中的前目标数量个目标节点确定为该至少一个恶意节点。

上述技术方案中,矿工节点通过多个目标节点的恶意值对该多个目标节点进行从大到小的排序,得到排序后的多个目标节点,这使得矿工节点能够基于需求快速地确定至少一个恶意节点。具体地,将排序后的多个目标节点中的前目标数量个目标节点确定为该至少一个恶意节点,这是因为前目标数量个目标节点的恶意值较大,对矿工节点获取全局模型的模型参数的恶意程度较大。

如下具体讨论“目标数量”的确定过程。

一种可能的实现方式中,该目标数量的确定方法包括:矿工节点确定目标节点的数量与第一系数之间的乘积,得到第一数值,该第一系数为将要确定的恶意节点的数量与该目标节点的数量之间的比值;矿工节点将该第一数值的整数部分,确定为该目标数量。

上述技术方案中,矿工节点从多个目标节点中确定恶意节点之前,预先设置恶意节点的数量。该数量为目标节点的数量与第一系数之间的乘积结果(第一数值)的整数部分,这是由于该乘积结果可能为小数。

示例性的,以目标节点的数量为12,第一系数为20%为例,描述目标数量的获取过程。矿工节点确定该目标节点的数量与该第一系数之间的乘积,得到该第一数值,具体为:12*20%=2.4;矿工节点将该第一数值的整数部分,确定为该目标数量,具体为:FLOOR(2.4)=2。

步骤308,矿工节点将该多个目标节点中的多个非恶意节点的模型参数进行融合,得到本轮的全局模型的模型参数。

应理解,上述步骤308中的“全局模型”是由多个本地模型经过联邦融合产生的模型。一般而言,全局模型利用了比本地模型更多的训练数据,对此全局模型拥有比本地模型更好的模型效果。该全局模型相当于是基于多个目标节点对应的多个本地数据库中的本地数据训练得到的机器学习模型。

还应理解,步骤302~步骤308是任一轮模型训练的过程。在本说明书一个或多个实施例中的联邦学习中,每一轮都会对全局模型中的模型参数进行更新,直到最后一轮结束。

一种可能的实现方式中,步骤308,包括下述中的任一项:矿工节点基于各个非恶意节点的模型参数与对应的权重,将该多个非恶意节点的模型参数进行加权融合,得到该本轮的全局模型的模型参数;矿工节点将该多个非恶意节点的模型参数的平均值确定为该本轮的全局模型的模型参数。

上述技术方案中,以各个非恶意节点的模型参数与对应的权重进行加权融合或者以该多个非恶意节点的模型参数的平均值的两种方式,对多个非恶意节点的模型参数进行融合,得到本轮的全局模型的模型参数。这能够丰富矿工节点获取本轮的全局模型的模型参数的方式,使得获取过程多样化。

在一些实施例中,矿工节点基于各个非恶意节点的模型参数与对应的权重,将该多个非恶意节点的模型参数进行加权融合,得到该本轮的全局模型的模型参数,包括:矿工节点基于如下公式(1),确定该本轮的全局模型的模型参数;

其中,i为本轮指代的轮次,w

应理解,第一个非恶意节点的模型参数为

在一些实施例中,矿工节点将该多个非恶意节点的模型参数的平均值确定为该本轮的全局模型的模型参数,包括:矿工节点基于如下公式(2),确定该本轮的全局模型的模型参数;

其中,i为本轮指代的轮次,w

应理解,步骤302~步骤308是任一轮模型训练的过程。获取最终的目标模型需要执行多轮的迭代过程。如下具体描述获取目标模型的过程。

一种可能的实现方式中,步骤308之后,该方法300还包括:在本轮指代的轮次等于预设轮次的情况下,矿工节点将该本轮的全局模型确定为目标模型,该目标模型用于执行预设事务;在本轮指代的轮次小于该预设轮次的情况下,矿工节点将该本轮的全局模型发布到该区块链系统包括的多个节点中,以使该多个节点更新后续训练时所使用的全局模型的模型参数。

在一些实施例中,上述方案中的“预设事务”为基于客户在金融机构中的资源存储量,为客户推荐金融产品。

上述技术方案中,在本轮指代的轮次等于预设轮次的情况下,矿工节点不再进行全局模型的训练,直接将该本轮的全局模型确定为目标模型。在本轮指代的轮次小于预设轮次,也就是说,训练次数不够的情况下,矿工节点将本轮的全局模型发布到该区块链系统包括的多个节点中,多个节点在基于该本轮的全局模型训练本地模型的模型参数之后,多个节点中的部分节点的本地模型的模型参数会被下一轮该部分节点中的矿工节点接收,该矿工节点对部分节点的本地模型的模型参数继续融合,得到下一轮的全局模型的模型参数。依次类推,直到某次的轮次等于预设轮次。也就是说,在训练次数不够的情况下,区块链系统包括的多个节点中的任一矿工节点继续训练全局模型。

应理解,区块链系统中的节点在参与本地模型的训练的过程中,会消耗节点本地的计算资源(处理器资源和内存资源)。为了激励节点能够积极地参与之后的其他本地模型的训练,该区块链系统中的最后一轮的矿工节点会基于各个节点在该次获取目标模型过程中的表现,为各个节点分配激励值。具体的实现方式如下。

一种可能的实现方式中,该多个目标节点是从该区块链系统包括的多个节点中确定的,该多个目标节点为在预设时长内向该区块链系统上传本地模型的模型参数的节点,该方法300还包括:在本轮指代的轮次等于预设轮次的情况下,矿工节点确定该多个节点中各个节点在该预设轮次中的参与次数;矿工节点基于该多个节点中各个节点对应的参与次数、该多个节点对应的总参与次数、总激励值和第二系数,向该多个节点中的各个节点分配目标激励值,该目标激励值用于激励各个节点参与本地模型的训练,该第二系数为向该多个节点分配的激励值与该总激励值之间的比值。

应理解,上述方案中的“多个节点”可理解为基于自身本地数据库中的本地数据和算力训练得到本地模型的模型参数的多个客户端。在以图2为例的实施例中,该多个节点为该W个客户端。

还应理解,上述方案中的“各个节点在该预设轮次中的参与次数”是指节点在预设轮次中的有效参与次数。具体可理解为:在某轮迭代过程中,节点上传到区块链中的本地模型的模型参数,最终参与到该轮的全局模型的训练过程。

上述技术方案中,在区块链系统包括多个节点,本轮指代的轮次等于预设轮次的情况下,矿工节点对参与本地模型训练的多个节点进行奖励。具体地,基于该多个节点中各个节点对应的参与次数、该多个节点对应的总参与次数、总激励值和第二系数,向该多个节点中的各个节点分配目标激励值,使得各个节点能够积极参与之后的其他本地模型的训练。

在一些实施例中,矿工节点基于该多个节点中各个节点对应的参与次数、该多个节点对应的总参与次数、总激励值和第二系数,向该多个节点中的各个节点分配目标激励值,包括:矿工节点基于如下公式(3),向该多个节点中的各个节点分配目标激励值;

其中,R

示例性的,以预设轮次I为1000,节点的数量M为5,总激励值R为1000,第二系数ρ

应理解,在多个目标节点中的各个目标节点将本地模型的模型参数上传到矿工节点之后,该矿工节点需要对多个目标节点的本地模型的模型参数进行融合,该融合过程中,会消耗该矿工节点的计算资源(处理器资源和内存资源)。因此,该区块链系统可对该次获取目标模型过程中的多个矿工节点分配激励值,以激励目标节点竞争记账权(积极地获取多个目标节点上传的本地模型的模型参数;对该多个目标节点的本地模型的模型参数进行融合,得到全局模型,以及将全局模型进行记录)。此外,还能够使得获取激励的多个矿工节点积极地参与之后的其他全局模型的训练。具体的实现方式如下。

一种可能的实现方式中,矿工节点得到本轮的全局模型的模型参数之后,该方法300还包括:矿工节点基于第三系数、该总激励值和该预设轮次,获取激励值,该激励值用于激励该矿工节点参与该全局模型的训练,该第三系数为向矿工节点分配的矿工激励值与该总激励值之间的比值,该第二系数与该第三系数之和为1。

上述技术方案中,相当于在每一轮进行全局模型的模型参数融合之后,矿工节点基于第三系数、该总激励值和该预设轮次,获取激励值,即对矿工节点进行奖励的过程。矿工节点在对全局模型的训练过程中,会消耗自身的计算资源(存储、带宽、计算量),因此,在每一轮对全局模型的模型参数进行融合之后,矿工节点获取激励值,使得该区块链中的多个节点都竞争记账权,进行全局模型的训练。

在一些实施例中,矿工节点基于第三系数、该总激励值和该预设轮次,获取激励值,包括:矿工节点基于如下公式(9),获取激励值;

其中,K

应理解,ρ

图4是本说明书一个或多个实施例提供的一种模型训练的方法的示意图。

在某一节点需要获取推荐模型的情况下,该节点向区块链发送请求,该请求包括模型训练的预设轮次、模型的结构以及初始参数。区块链中的矿工节点获取该请求之后,向多个节点发布该请求对应的训练任务。各个节点在接收到该请求之后,基于各自本地数据库中的多个资源存储量,对模型的初始参数进行更新,得到第一轮的本地模型的模型参数,并上传到区块链。区块链在预设时长内接收到多个节点中多个目标节点上传的第一轮的本地模型的模型参数之后,从多个目标节点中确定矿工节点。由该矿工节点对该多个目标节点上传的第一轮的本地模型的模型参数进行融合,得到第一轮的全局模型。在得到第一轮的全局模型之后,该第一轮的矿工节点确定该第一轮指代的轮次小于预设轮次。该第一轮的矿工节点将该第一轮的全局模型发布到多个节点。多个节点中的各个节点在接收到第一轮的全局模型之后,基于各自本地数据库中的多个资源存储量,对第一轮的全局模型的模型参数继续进行更新,得到第二轮的本地模型的模型参数,......,以此类推,直到迭代轮次执行到倒数第二轮,得到最后一轮的本地模型的模型参数,各个节点将多个最后一轮的本地模型的模型参数上传到区块链。该最后一轮的矿工节点对多个节点中的多个目标节点上传的多个最后一轮的本地模型的模型参数进行融合,得到最后一轮的全局模型。该最后一轮的矿工节点确定该最后一轮指代的轮次等于该预设轮次,将该最后一轮的全局模型确定为推荐模型。

图5是本说明书一个或多个实施例提供的一种模型训练的装置的结构示意图。

示例性的,如图5所示,该装置500包括:

获取模块501,用于获取区块链系统中多个目标节点的本地模型的模型参数,矿工节点属于该多个目标节点;

确定模块502,用于:

对于该多个目标节点中的任一目标节点,基于该目标节点的模型参数与其他目标节点的模型参数之间的相似度,确定该目标节点的恶意值,该恶意值与目标节点的恶意程度正相关;

基于该多个目标节点的恶意值,从该多个目标节点中确定至少一个恶意节点;

融合模块503,用于将该多个目标节点中的多个非恶意节点的模型参数进行融合,得到本轮的全局模型的模型参数。

可选地,该确定模块502,具体用于:确定该目标节点的模型参数与其他目标节点的模型参数之间的多个相似度;将该多个相似度之和的倒数,确定为该目标节点的恶意值。

可选地,该确定模块502,具体还用于:按照恶意值从大到小的顺序,对该多个目标节点进行排序;将排序后的多个目标节点中的前目标数量个目标节点确定为该至少一个恶意节点。

可选地,该确定模块502,具体还用于:确定目标节点的数量与第一系数之间的乘积,得到第一数值,该第一系数为将要确定的恶意节点的数量与该目标节点的数量之间的比值;将该第一数值的整数部分,确定为该目标数量。

可选地,该融合模块503,具体用于下述中的任一项:基于各个非恶意节点的模型参数与对应的权重,将该多个非恶意节点的模型参数进行加权融合,得到该本轮的全局模型的模型参数;将该多个非恶意节点的模型参数的平均值确定为该本轮的全局模型的模型参数。

可选地,该多个目标节点是从该区块链系统包括的多个节点中确定的,该多个目标节点为在预设时长内向该区块链系统上传本地模型的模型参数的节点,该确定模块502,还用于在本轮指代的轮次等于预设轮次的情况下,确定该多个节点中各个节点在该预设轮次中的参与次数;该装置500还包括:分配模块,用于基于该多个节点中各个节点对应的参与次数、该多个节点对应的总参与次数、总激励值和第二系数,向该多个节点中的各个节点分配目标激励值,该目标激励值用于激励各个节点参与本地模型的训练,该第二系数为向该多个节点分配的激励值与该总激励值之间的比值。

可选地,得到本轮的全局模型的模型参数之后,该获取模块501,还用于基于第三系数、该总激励值和该预设轮次,获取激励值,该激励值用于激励该矿工节点参与该全局模型的训练,该第三系数为向矿工节点分配的矿工激励值与该总激励值之间的比值,该第二系数与该第三系数之和为1。

可选地,该矿工节点为该多个目标节点中求解目标哈希问题时用时最短的节点,该矿工节点是通过哈希计算确定随机数的方式来求解该目标哈希问题的。

可选地,将该多个目标节点中的多个非恶意节点的模型参数进行融合,得到本轮的全局模型的模型参数之后,该确定模块502,还用于在本轮指代的轮次等于预设轮次的情况下,将该本轮的全局模型确定为目标模型,该目标模型用于执行预设事务;该装置500还包括:发送模块,用于在本轮指代的轮次小于该预设轮次的情况下,将该本轮的全局模型发布到该区块链系统包括的多个节点中,以使该多个节点更新后续训练时所使用的全局模型的模型参数。

图6是本说明书一个或多个实施例提供的一种电子设备的结构示意图。

示例性的,如图6所示,该电子设备600包括:存储器601、处理器602以及存储在该存储器601中并在处理器602上运行的计算机程序603,其中,该处理器602执行该计算机程序603时,使得该电子设备可执行前述介绍的任意一种模型训练的方法。

可选地,该电子设备为该矿工节点。

本说明书一个或多个实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中,上述集成的模块可以采用硬件的形式实现。需要说明的是,本说明书一个或多个实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,该电子设备可以包括:获取模块、确定模块、融合模块、分配模块、发送模块等。需要说明的是,上述方法实施例涉及的各个步骤的所有相关内容的可以援引到对应功能模块的功能描述,在此不再赘述。

本说明书一个或多个实施例提供的电子设备,用于执行上述一种模型训练的方法,因此可以达到与上述实现方法相同的效果。

在采用集成的单元的情况下,电子设备可以包括处理模块、存储模块。其中,处理模块可以用于对电子设备的动作进行控制管理。存储模块可以用于支持电子设备执行相互程序代码和数据等。

其中,处理模块可以是处理器或控制器,其可以实现或执行结合本说明书一个或多个实施例公开内容所藐视的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,数字信号处理(digital signalprocessing,DSP)和微处理器的组合等等,存储模块可以是存储器。

本说明书一个或多个实施例提供的电子设备具体可以是芯片,组件或模块,该电子设备可包括相连的处理器和存储器;其中,存储器用于存储指令,当电子设备运行时,处理器可调用并执行指令,以使芯片执行前述介绍的任意一种模型训练的方法。

本说明书一个或多个实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机或处理器上运行时,使得该计算机或处理器执行前述介绍的任意一种模型训练的方法。

本说明书一个或多个实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机或处理器上运行时,使得计算机或处理器执行上述相关步骤,以实现前述介绍的任意一种模型训练的方法。

其中,本说明书一个或多个实施例提供的电子设备、计算机可读存储介质、包含指令的计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。

通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本说明书一个或多个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

以上内容,仅为本说明书中一个或多个具体的实施方式,但本说明书一个或多个实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本说明书一个或多个实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本说明书一个或多个实施例的保护范围之内。因此,本说明书一个或多个实施例的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种书法训练方法、装置、电子设备及存储介质
  • 工作量评估及模型训练方法、电子设备及存储介质
  • 神经网络模型的优化方法及装置、电子设备和存储介质
  • 三维模型处理方法和装置、电子设备、计算机可读存储介质
  • 模型处理方法及装置、存储介质和电子设备
  • 模型训练方法、模型训练装置、存储介质和电子设备
  • 模型训练方法、模型训练平台、电子设备和存储介质
技术分类

06120116489239