CN114254360A - 模型训练方法、装置、存储介质、系统以及区块链节点 - Google Patents
模型训练方法、装置、存储介质、系统以及区块链节点 Download PDFInfo
- Publication number
- CN114254360A CN114254360A CN202111583160.XA CN202111583160A CN114254360A CN 114254360 A CN114254360 A CN 114254360A CN 202111583160 A CN202111583160 A CN 202111583160A CN 114254360 A CN114254360 A CN 114254360A
- Authority
- CN
- China
- Prior art keywords
- node
- model
- parameters
- training
- block chain
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H10/00—ICT specially adapted for the handling or processing of patient-related medical or healthcare data
- G16H10/60—ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
Abstract
本公开涉及一种模型训练方法、装置、存储介质、系统以及区块链节点,所述方法应用于区块链网络中的目标区块链节点,所述目标区块链节点为多个区块链节点中的任意节点,所述方法包括:响应于接收到主节点选取请求,获取各个区块链节点的描述参数;根据各个区块链节点的描述参数从多个区块链节点中确定主节点;执行如下步骤,直至初始模型收敛,得到目标模型:基于目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本,计算模型训练参数;将所述模型训练参数发送至所述主节点,并通过所述主节点进行模型训练;获取所述主节点生成的更新模型参数,基于所述更新模型参数对所述目标区块链节点所对应的初始模型进行更新。
Description
技术领域
本公开涉及人工智能技术领域,具体地,涉及一种模型训练方法、装置、存储介质、系统以及区块链节点。
背景技术
随着人工智能技术的兴起,医疗AI(Artificial Intelligence,人工智能)也成为了热门领域。医疗AI可以是基于医疗数据训练得到的,可以实现CT(Computed Tomography,电子计算机断层扫描)图像识别、数据识别等功能。
但是,在医疗AI的训练过程中仍面临着诸多困难,如数据安全性问题、数据隐私泄露问题等等。
发明内容
本公开的目的是提供一种模型训练方法、装置、存储介质、系统以及区块链节点,以解决上述相关技术问题。
为了实现上述目的,根据本公开实施例的第一方面,提供一种模型训练方法,应用于区块链网络中的目标区块链节点,所述目标区块链节点为多个区块链节点中的任意节点,所述方法包括:
响应于接收到主节点选取请求,获取各个区块链节点的描述参数,所述描述参数包括训练样本数量、历史训练贡献度、节点运行状态参数中的一者或多者;
根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点;
执行如下步骤,直至初始模型收敛,得到目标模型:
基于目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本,计算模型训练参数;
将所述模型训练参数发送至所述主节点,并通过所述主节点进行模型训练;
获取所述主节点生成的更新模型参数,基于所述更新模型参数对所述目标区块链节点所对应的初始模型进行更新;
其中,所述主节点用于获取各个区块链节点的模型训练参数,根据各个区块链节点的模型训练参数对主节点所对应的初始模型的模型参数进行更新,得到更新模型参数。
可选地,所述描述参数包括训练样本数量、历史训练贡献度以及节点运行状态参数,所述根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点,包括:
针对每一区块链节点,根据该区块链节点的训练样本数量、历史训练贡献度、节点运行状态参数以及所述训练样本数量、所述历史训练贡献度、所述节点运行状态参数所分别对应的参数权重值,计算所述区块链节点的选择权重值;
将选择权重值大于预设阈值的区块链节点作为所述主节点。
可选地,所述区块链网络中部署有主节点选取智能合约,所述根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点,包括:
执行所述主节点选取智能合约,以根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点。
可选地,所述目标区块链节点还对应设置有第一可信执行环境,所述基于目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本计算模型训练参数,包括:
将所述目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本发送至所述第一可信执行环境;
接收所述第一可信执行环境发送的模型训练参数,所述模型训练参数由所述第一可信执行环境基于目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本计算得到。
可选地,所述接收所述第一可信执行环境发送的模型训练参数,包括:
接收所述第一可信执行环境发送的加密模型训练参数,所述加密模型训练参数由所述第一可信执行环境通过第一私钥对所述模型训练参数加密得到,所述第一私钥为所述第一可信执行环境的私钥;
所述将所述模型训练参数发送至所述主节点,包括:
将所述加密模型训练参数发送至所述主节点;
其中,所述主节点用于从所述区块链中获取所述第一可信执行环境的第一公钥,并通过所述第一公钥对所述加密模型训练参数进行解密,得到所述目标区块链节点的模型训练参数。
可选地,所述主节点还对应设置有第二可信执行环境,所述主节点用于将初始模型以及各个区块链节点的模型训练参数发送至所述第二可信执行环境,得到所述第二可信执行环境发送的加密更新模型参数,所述加密更新模型参数由所述第二可信执行环境通过第二私钥对所述更新模型参数加密得到,所述第二私钥为所述第二可信执行环境的私钥,所述获取所述主节点生成的更新模型参数,包括:
接收所述主节点发送的加密更新模型参数;
从所述区块链网络的区块链中获取所述第二可信执行环境的第二公钥;
通过所述第二公钥对所述加密更新模型参数进行解密,得到所述更新模型参数。
根据本公开实施例的第二方面,提供一种模型训练装置,应用于区块链网络中的目标区块链节点,所述目标区块链节点为多个区块链节点中的任意节点,所述装置包括:
第一获取模块,用于响应于接收到主节点选取请求,获取各个区块链节点的描述参数,所述描述参数包括训练样本数量、历史训练贡献度、节点运行状态参数中的一者或多者;
第一确定模块,用于根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点;
模型训练模块,用于执行训练步骤,直至初始模型收敛,得到目标模型,所述模型训练模块包括:
第一计算子模块,用于基于目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本,计算模型训练参数;
第一发送子模块,用于将所述模型训练参数发送至所述主节点,并通过所述主节点进行模型训练;
第一执行子模块,用于获取所述主节点生成的更新模型参数,基于所述更新模型参数对所述目标区块链节点所对应的初始模型进行更新;
其中,所述主节点用于获取各个区块链节点的模型训练参数,根据各个区块链节点的模型训练参数对主节点所对应的初始模型的模型参数进行更新,得到更新模型参数。
可选地,所述描述参数包括训练样本数量、历史训练贡献度以及节点运行状态参数,所述第一确定模块,包括:
第二计算子模块,用于针对每一区块链节点,根据该区块链节点的训练样本数量、历史训练贡献度、节点运行状态参数以及所述训练样本数量、所述历史训练贡献度、所述节点运行状态参数所分别对应的参数权重值,计算所述区块链节点的选择权重值;
第二执行子模块,用于将选择权重值大于预设阈值的区块链节点作为所述主节点。
可选地,所述区块链网络中部署有主节点选取智能合约,所述第一确定模块,包括:
第三执行子模块,用于执行所述主节点选取智能合约,以根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点。
可选地,所述目标区块链节点还对应设置有第一可信执行环境,所述第一计算子模块包括:
第一发送子单元,用于将所述目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本发送至所述第一可信执行环境;
第一接收子单元,用于接收所述第一可信执行环境发送的模型训练参数,所述模型训练参数由所述第一可信执行环境基于目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本计算得到。
可选地,所述第一接收子单元具体用于:
接收所述第一可信执行环境发送的加密模型训练参数,所述加密模型训练参数由所述第一可信执行环境通过第一私钥对所述模型训练参数加密得到,所述第一私钥为所述第一可信执行环境的私钥;
所述第一发送子模块,包括:
第一发送子单元,用于将所述加密模型训练参数发送至所述主节点;
其中,所述主节点用于从所述区块链中获取所述第一可信执行环境的第一公钥,并通过所述第一公钥对所述加密模型训练参数进行解密,得到所述目标区块链节点的模型训练参数。
可选地,所述主节点还对应设置有第二可信执行环境,所述主节点用于将初始模型以及各个区块链节点的模型训练参数发送至所述第二可信执行环境,得到所述第二可信执行环境发送的加密更新模型参数,所述加密更新模型参数由所述第二可信执行环境通过第二私钥对所述更新模型参数加密得到,所述第二私钥为所述第二可信执行环境的私钥,所述第一执行子模块,包括:
第二接收子单元,用于接收所述主节点发送的加密更新模型参数;
获取子单元,用于从所述区块链网络的区块链中获取所述第二可信执行环境的第二公钥;
解密子单元,用于通过所述第二公钥对所述加密更新模型参数进行解密,得到所述更新模型参数。
根据本公开实施例的第三方面,提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一项所述方法的步骤。
根据本公开实施例的第四方面,提供一种区块链节点,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一方面中任一项所述方法的步骤。
根据本公开实施例的第五方面,提供一种模型训练系统,包括上述第四方面所述的区块链节点。
上述技术方案中,在需要进行模型训练时,多个区块链节点可以基于各自的描述参数从所述多个区块链节点中确定主节点。这样,各区块链节点可以通过所述主节点进行模型训练。例如,目标区块链节点可以将自身的训练样本输入至初始模型,并计算出模型训练参数;之后,目标区块链节点可以将所述模型训练参数发送至主节点,由主节点根据各个区块链节点的模型训练参数进行模型更新,得到更新模型参数;这样,目标区块链节点可以根据所述更新模型参数对本地的初始模型进行更新;通过重复上述步骤,目标区块链节点可以完成初始模型的训练过程,得到目标模型。
也就是说,目标模型可以由主节点基于各区块链节点的模型训练参数更新初始模型得到,即目标模型是基于各个区块链节点的训练样本训练得到的。通过这样的方式,能够起到利用各个区块链节点所拥有的训练样本进行模型训练的效果,从而解决了训练样本不足的问题。并且,在模型训练过程中,各个区块链节点与主节点之间交互的是模型参数,而非样本数据,因此还上述技术方案能够避免样本数据导致的隐私泄露问题。此外,上述技术方案在模型训练时还可以基于各区块链节点的描述参数动态地选择用于训练的主节点(例如选择当前性能较高的区块链节点作为主节点)。因此,上述技术方案还有助于提升模型的训练效果。并且,这样的方式也能够避免主节点的中心化问题,有助于提升安全性。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是本公开一示例性实施所示出的一种模型训练方法的流程图。
图2是本公开一示例性实施所示出的一种模型训练系统的框图。
图3是本公开一示例性实施所示出的一种模型训练步骤的示意图。
图4是本公开一示例性实施所示出的一种模型训练步骤的示意图。
图5是本公开一示例性实施所示出的一种模型训练的流程图。
图6是本公开一示例性实施所示出的一种模型训练装置的框图。
图7是本公开一示例性实施所示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
在介绍本公开的模型训练方法、装置、存储介质、系统以及区块链节点之前,首先对本公开所提供的各实施例的应用场景进行介绍。
本公开所提供的各实施例可以用于模型训练场景。以医疗AI为例,相关场景中,各个医疗机构可以拥有自身的医疗数据(例如可以是在患者许可的情况下获取到的)。但是,单个医疗机构的医疗数据可能较少,因而难以完成模型训练过程。并且,医疗数据还可能涉及患者隐私,因此若医疗机构将自身拥有的医疗数据分享至其他机构进行统一训练,还可能出现患者隐私泄露的现象。
为此,在一些实施场景中,可以基于联邦训练的方式完成医疗AI的训练。例如,可以设置用于模型训练的服务器,各医疗机构可以从所述服务器获取统一的初始模型,并通过自身拥有的医疗数据进行本地训练,得到模型训练参数。各医疗机构还可以将本地训练得到的模型训练参数发送至所述服务器,由所述服务器进行参数整合,得到更新模型参数。这样,各个医疗机构可以获取所述更新模型参数,并基于获取到的更新模型参数对本地的初始模型进行更新。通过循环上述过程,可以完成医疗AI的训练,得到目标医疗AI。
但是,这样的训练方式也可能存在问题。例如,训练服务器可能存在中心化问题,当训练服务器受到攻击时,可能引发安全风险。并且,训练服务器也可能出现网络波动、负载波动等现象,从而降低模型训练效果。
为此,本公开提供一种模型训练方法,应用于区块链网络中的目标区块链节点,所述目标区块链节点为多个区块链节点中的任意节点。以医疗AI训练为例,可以对每一医疗机构设置区块链节点,这样,各个医疗机构的区块链节点之间可以通过P2P(Peer to Peer,对等网络)的方式组建区块链网络。
此外,各个医疗机构还可以将自身的数字身份信息注册至区块链网络的区块链中,并通过部署身份鉴权智能合约的方式进行身份认证。例如,在模型训练过程中,各区块链节点可以通过区块链中注册的数字身份信息进行身份验证。也就是说,可以在身份验证通过的情况下,对接收到的请求进行响应,在身份验证不通过的情况下则拒绝响应接收到的请求。
图1是本公开所示出的一种模型训练方法的流程图,所述方法应用于目标区块链节点,所述方法包括:
在步骤11中,响应于接收到主节点选取请求,获取各个区块链节点的描述参数。
其中,所述描述参数包括训练样本数量、历史训练贡献度、节点运行状态参数中的一者或多者。
所述训练样本数量例如可以是区块链节点在本次训练中能够提供的训练样本的数量值。以医疗模型训练为例,在训练肺部CT图像识别模型时,所述训练样本数量可以是指区块链节点在本次训练中能够提供的样本肺部CT图像的数量值。
这里,参照图2所示出的一种模型训练系统的框图,在一些实施场景中,可以为各医疗机构设置数据服务节点。数据服务节点可以用于对医疗数据进行预处理和标注,从而将医疗数据处理为可用于模型训练的医疗样本数据。
示例地,在一些实施方式中,医疗数据可以为病例文本,存在着数据质量不高、患者信息敏感等现象,无法用于模型训练。在这种情况下,数据服务节点可以加载所述医疗数据,并进行数据脱敏操作。
例如,数据服务节点可以删除病例文本中涉及患者信息的内容,从而保障患者的隐私安全。所述数据服务节点还可以定义病例文本规范,对不符合规范的数据进行过滤。文本规范例如可以是病例文本中不允许出现特殊字符、数据大小不允许低于1M、数据内容项不允许为空等等。在病例文本数据处理后,可以对病例文本中的数据进行标注。这里,数据服务节点例如可以提供病例文本的编辑框,由标注人员(如医生)对病例文本中的数据进行特征提取(这些特征例如可以是发烧、头疼、咳嗽等症状特征),并生成病例文本的判断结果。这样,数据服务节点可以将标注后的特征数据进行结构化处理,并与病例文本的判断结果进行映射,从而得到医疗样本数据。此外,数据服务节点还可以将医疗样本数据存储在医疗机构本地的数据库中,以便于所述医疗机构的区块链节点在需要时获取。
所述描述参数还可以包括历史训练贡献度。历史训练贡献度可以用于描述区块链节点参与模型训练的行为贡献度。作为一种示例,历史训练贡献度α的计算方式可以为:其中,n代表区块链节点参与模型训练的历史次数,αi代表第i次历史训练中的贡献值,贡献值的计算方式例如可以为:这里,参与数据量为第i次历史训练中,所述区块链节点所提供的训练样本的数量,总数据量为第i次历史训练时的训练样本的总数量。
所述描述参数还可以包括节点运行状态参数。节点运行状态参数例如可以包括区块链节点的健康状态参数、区块链节点的性能参数等等。
其中,区块链节点的健康状态参数例如可以表示为β,用于描述区块链节点的运行状态。在一些实施方式中,可以通过心跳检测的方式检测区块链节点的健康状态。例如,可以定义心跳响应时间的阈值为3s,若3s内得到响应,则β=30;若3s内得不到响应,则β=β-1;若累积5次得不到响应,则β=β-10;若累积10次得不到响应,则β=β-30。
所述区块链节点的性能参数可以用于描述区块链节点的模型训练的能力。示例地,可以采用吞吐量来计算区块链节点的性能参数γ:γ=tps/1000,tps为区块链节点的吞吐量。当然,在一些实施方式中,也可以基于区块链节点的其他性能指标来计算所述性能参数,这些性能指标可以是浮点运算速度、逻辑计算速度等等。
在步骤12中,根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点。
以所述描述参数包括节点运行状态参数为例,可以将性能较高的区块链节点作为所述主节点。通过这样的方式,能够选择出性能较优的区块链节点来进行模型训练,从而有助于提升训练速度。此外,在所述描述参数包括其他指标时,也可以基于应用需求设置选择条件,从而选择出主节点。
例如在一种可能的实施方式中,所述描述参数包括训练样本数量、历史训练贡献度以及节点运行状态参数,步骤12可以包括:
针对每一区块链节点,根据该区块链节点的训练样本数量、历史训练贡献度、节点运行状态参数以及所述训练样本数量、所述历史训练贡献度、所述节点运行状态参数所分别对应的参数权重值,计算所述区块链节点的选择权重值。
示例地,可以通过如下方式计算区块链节点的选择权重值f(x),
其中,为训练样本数量,k1为训练样本数量的参数权重值,γ为区块链节点的性能参数,α为区块链节点的历史训练贡献度,k2为历史贡献度的参数权重值,β为区块链节点的健康状态参数,k3为健康状态参数的参数权重值,k1取值例如可以为1.89,k2取值例如可以为0.68,k3取值例如可以为1.12。
这样,在得到各个区块链节点的选择权重值之后,可以将选择权重值大于预设阈值的区块链节点作为所述主节点。例如在一些实施方式中,可以将选择权重值最大的区块链节点作为所述主节点。
在步骤13中,执行训练步骤,直至初始模型收敛,得到目标模型。
图3是本公开所示出的一种模型训练步骤的示意图,参照图3,步骤13可以包括:
在S131中,基于目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本,计算模型训练参数。
这里,初始模型可以是初始化得到的模型(例如为医疗模型,如CT图像识别模型,医疗数据识别模型等),并通过区块链网络同步至各个区块链节点中,从而使得各个区块链节点所对应的初始模型一致。在训练时,目标区块链节点例如可以将自身所拥有的训练样本(例如为医疗样本,如样本CT图像、样本医疗数据等)输入至本地的初始模型,并根据初始模型的输出结果计算模型训练参数。作为一种示例,模型训练参数可以是梯度参数。
在S132中,目标区块链节点可以将模型训练参数发送至主节点,并通过所述主节点进行模型训练。沿用上述例子,目标区块链节点可以将所述梯度参数发送至主节点,从而通过所述主节点进行模型训练。
其中,所述主节点用于获取各个区块链节点的模型训练参数,根据各个区块链节点的模型训练参数对主节点所对应的初始模型的模型参数进行更新,得到更新模型参数。作为一种示例,主节点可以获取各个区块链节点计算得到的梯度参数(也可以包括主节点自己计算得到的梯度参数),并进而计算梯度和。在得到梯度和之后,主节点可以基于所述梯度和对本地的初始模型进行参数更新,得到更新模型参数。
在S133中,获取所述主节点生成的更新模型参数,基于所述更新模型参数对所述目标区块链节点所对应的初始模型进行更新。
上述技术方案中,在需要进行模型训练时,多个区块链节点可以基于各自的描述参数从所述多个区块链节点中确定主节点。这样,各区块链节点可以通过所述主节点进行模型训练。例如,目标区块链节点可以将自身的训练样本输入至初始模型,并计算出模型训练参数;之后,目标区块链节点可以将所述模型训练参数发送至主节点,由主节点根据各个区块链节点的模型训练参数进行模型更新,得到更新模型参数;这样,目标区块链节点可以根据所述更新模型参数对本地的初始模型进行更新;通过重复上述步骤,目标区块链节点可以完成初始模型的训练过程,得到目标模型。例如,在初始模型为医疗模型的情况下,可以训练得到目标医疗模型。
也就是说,目标模型可以由主节点基于各区块链节点的模型训练参数更新初始模型得到,即目标模型是基于各个区块链节点的训练样本训练得到的。通过这样的方式,能够起到利用各个区块链节点所拥有的训练样本进行模型训练的效果,从而解决了训练样本不足的问题。并且,在模型训练过程中,各个区块链节点与主节点之间交互的是模型参数,而非样本数据,因此还上述技术方案能够避免样本数据导致的隐私泄露问题。此外,上述技术方案在模型训练时还可以基于各区块链节点的描述参数动态地选择用于训练的主节点(例如选择当前性能较高的区块链节点作为主节点)。因此,上述技术方案还有助于提升模型的训练效果。并且,这样的方式也能够避免主节点的中心化问题,有助于提升安全性。
此外值得说明的是,本公开所提供的方法步骤也可以基于智能合约来实现。例如在一种可能的实施方式中,所述区块链网络中部署有主节点选取智能合约,所述根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点(步骤12),包括:
执行所述主节点选取智能合约,以根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点。
也就是说,上述确定主节点的步骤也可以是所述主节点选取智能合约的执行内容。在所述主节点选取智能合约被调用的情况下,所述主节点选取智能合约的背书节点可以执行所述主节点智能合约,并通过投票的方式从多个区块链节点中确定主节点。其中,主节点选取智能合约的执行内容可以参照步骤12的实施例说明,本公开对此不做赘述。
图4是本公开所示出的一种模型训练步骤的示意图,其中,所述目标区块链节点还对应设置有第一可信执行环境。参照图4,模型训练步骤可以包括:
S41,将目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本发送至第一可信执行环境。
示例地,参照图2,在一些实施场景中可以在第一可信执行环境中实例化联邦学习节点。这些联邦学习节点可以以进程、虚拟机等方式呈现。这样,通过将所述初始模型以及所述目标区块链节点的训练样本发送至第一可信执行环境,所述第一可信执行环境中的联邦学习节点可以基于所述初始模型以及所述训练样本计算得到模型训练参数。
S42,接收所述第一可信执行环境发送的模型训练参数。
S43,将所述模型训练参数发送至所述主节点,并通过所述主节点进行模型训练。
S44,获取所述主节点生成的更新模型参数,基于所述更新模型参数对所述目标区块链节点所对应的初始模型进行更新。
其中,步骤S43、S44的实施方式请参照上述关于步骤S132和S133的实施例说明,为了说明书的简洁,本公开对此不做赘述。
上述技术方案对各区块链节点对应设置了可信执行环境。这样,可以通过可信执行环境来对模型训练参数进行计算。通过这样的方式,能够提升模型训练过程中的数据安全性和可信性。
此外值得注意的是,在一些实施方式中,所述初始模型也可以预设在可信执行环境中。在这种情况下,步骤S41中,目标区块链节点也可以将自身的训练样本发送至第一可信执行环境,即无需发送初始模型。
在一种可能的实施方式中,第一可信执行环境也可以对计算得到模型训练参数进行加密。示例地,可以基于第一可信执行环境的可信计算芯片的信任根生成第一公钥以及第一私钥,并将第一公钥注册到区块链上,第一私钥由第一可信执行环境本地保存。
在这种情况下,所述接收所述第一可信执行环境发送的模型训练参数(S42),包括:
接收所述第一可信执行环境发送的加密模型训练参数。所述加密模型训练参数由所述第一可信执行环境通过第一私钥对所述模型训练参数加密得到。
参照图5所示出的一种模型训练的流程图,第一可信执行环境例如可以加载区块链节点A所对应的训练样本,并根据所述训练样本对初始模型进行训练,得到梯度参数。之后,第一可信执行环境可以通过第一私钥对所述梯度参数进行加密,得到加密梯度参数,并将所述加密梯度参数发送至区块链节点。
这样,所述将所述模型训练参数发送至所述主节点(S43),包括:
将所述加密模型训练参数发送至所述主节点。
其中,所述主节点用于从所述区块链中获取所述第一可信执行环境的第一公钥,并通过所述第一公钥对所述加密模型训练参数进行解密,得到所述目标区块链节点的模型训练参数。
沿用上述例子,主节点可以从所述区块链中获取所述第一可信执行环境的第一公钥,并通过所述第一公钥对所述加密梯度参数进行解密。在解密成功的情况下,则可以得到目标区块链节点的梯度参数,在解密失败的情况下则可以确定所述加密梯度参数被篡改。这样,通过对计算得到的模型训练参数进行加密,能够提升模型训练过程中的数据安全性。
仍参照图5,在一种可能的实施方式中,所述主节点也可以对应设置有第二可信执行环境。所述主节点用于将初始模型以及各个区块链节点的模型训练参数(图中以梯度参数示意)发送至所述第二可信执行环境,得到所述第二可信执行环境发送的加密更新模型参数。所述加密更新模型参数由所述第二可信执行环境通过第二私钥对所述更新模型参数加密得到,所述第二私钥为所述第二可信执行环境的私钥。
在这种情况下,所述获取所述主节点生成的更新模型参数(S44),包括:
接收所述主节点发送的加密更新模型参数;
从所述区块链网络的区块链中获取所述第二可信执行环境的第二公钥;
通过所述第二公钥对所述加密更新模型参数进行解密,得到所述更新模型参数。
示例地,目标区块链节点可以从所述区块链中获取所述第二可信执行环境的第二公钥,并通过所述第二公钥对所述加密更新梯度参数进行解密。其中在解密成功的情况下,则可以得到更新梯度参数,在解密失败的情况下则可以确定所述加密更新梯度参数被篡改。这样,通过对计算得到的模型训练参数进行加密,能够提升模型训练过程中的数据安全性。
此外值得说明的是,在一些实施方式中,目标区块链节点在生成加密模型训练参数之后也可以将所述加密模型训练参数上传至区块链中。在这种情况下,主节点可以从区块链中获取所述加密模型训练参数以及第一可信执行环境的第一公钥。这样,主节点可以通过第一公钥解密加密模型训练参数,从而得到目标区块链节点的模型训练参数。当然,主节点也可以将加密更新模型参数上传至区块链中,目标区块链节点也可以从区块链中获取所述加密模型更新参数以及第二可信执行环境的第二公钥,从而获得模型更新参数。
通过这样的方式,模型训练过程中的中间参数(加密模型训练参数以及加密模型更新参数)可以被存证至区块链中,从而有助于对模型训练过程进行监管和追溯。
基于同一发明构思,本公开还提供一种模型训练装置,应用于区块链网络中的目标区块链节点,所述目标区块链节点为多个区块链节点中的任意节点。图6是本公开所示出的一种模型训练装置的框图,参照图6,装置600包括:
第一获取模块601,用于响应于接收到主节点选取请求,获取各个区块链节点的描述参数,所述描述参数包括训练样本数量、历史训练贡献度、节点运行状态参数中的一者或多者;
第一确定模块602,用于根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点;
模型训练模块603,用于执行训练步骤,直至初始模型收敛,得到目标模型,所述模型训练模块包括:
第一计算子模块6031,用于基于目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本,计算模型训练参数;
第一发送子模块6032,用于将所述模型训练参数发送至所述主节点,并通过所述主节点进行模型训练;
第一执行子模块6033,用于获取所述主节点生成的更新模型参数,基于所述更新模型参数对所述目标区块链节点所对应的初始模型进行更新;
其中,所述主节点用于获取各个区块链节点的模型训练参数,根据各个区块链节点的模型训练参数对主节点所对应的初始模型的模型参数进行更新,得到更新模型参数。
上述技术方案中,在需要进行模型训练时,多个区块链节点可以基于各自的描述参数从所述多个区块链节点中确定主节点。这样,各区块链节点可以通过所述主节点进行模型训练。例如,目标区块链节点可以将自身的训练样本输入至初始模型,并计算出模型训练参数;之后,目标区块链节点可以将所述模型训练参数发送至主节点,由主节点根据各个区块链节点的模型训练参数进行模型更新,得到更新模型参数;这样,目标区块链节点可以根据所述更新模型参数对本地的初始模型进行更新;通过重复上述步骤,目标区块链节点可以完成初始模型的训练过程,得到目标模型。
也就是说,目标模型可以由主节点基于各区块链节点的模型训练参数更新初始模型得到,即目标模型是基于各个区块链节点的训练样本训练得到的。通过这样的方式,能够起到利用各个区块链节点所拥有的训练样本进行模型训练的效果,从而解决了训练样本不足的问题。并且,在模型训练过程中,各个区块链节点与主节点之间交互的是模型参数,而非样本数据,因此还上述技术方案能够避免样本数据导致的隐私泄露问题。此外,上述技术方案在模型训练时还可以基于各区块链节点的描述参数动态地选择用于训练的主节点(例如选择当前性能较高的区块链节点作为主节点)。因此,上述技术方案还有助于提升模型的训练效果。并且,这样的方式也能够避免主节点的中心化问题,有助于提升安全性。
可选地,所述描述参数包括训练样本数量、历史训练贡献度以及节点运行状态参数,所述第一确定模块,包括:
第二计算子模块,用于针对每一区块链节点,根据该区块链节点的训练样本数量、历史训练贡献度、节点运行状态参数以及所述训练样本数量、所述历史训练贡献度、所述节点运行状态参数所分别对应的参数权重值,计算所述区块链节点的选择权重值;
第二执行子模块,用于将选择权重值大于预设阈值的区块链节点作为所述主节点。
可选地,所述区块链网络中部署有主节点选取智能合约,所述第一确定模块,包括:
第三执行子模块,用于执行所述主节点选取智能合约,以根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点。
可选地,所述目标区块链节点还对应设置有第一可信执行环境,所述第一计算子模块包括:
第一发送子单元,用于将所述目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本发送至所述第一可信执行环境;
第一接收子单元,用于接收所述第一可信执行环境发送的模型训练参数,所述模型训练参数由所述第一可信执行环境基于目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本计算得到。
可选地,所述第一接收子单元具体用于:
接收所述第一可信执行环境发送的加密模型训练参数,所述加密模型训练参数由所述第一可信执行环境通过第一私钥对所述模型训练参数加密得到,所述第一私钥为所述第一可信执行环境的私钥;
所述第一发送子模块,包括:
第一发送子单元,用于将所述加密模型训练参数发送至所述主节点;
其中,所述主节点用于从所述区块链中获取所述第一可信执行环境的第一公钥,并通过所述第一公钥对所述加密模型训练参数进行解密,得到所述目标区块链节点的模型训练参数。
可选地,所述主节点还对应设置有第二可信执行环境,所述主节点用于将初始模型以及各个区块链节点的模型训练参数发送至所述第二可信执行环境,得到所述第二可信执行环境发送的加密更新模型参数,所述加密更新模型参数由所述第二可信执行环境通过第二私钥对所述更新模型参数加密得到,所述第二私钥为所述第二可信执行环境的私钥,所述第一执行子模块,包括:
第二接收子单元,用于接收所述主节点发送的加密更新模型参数;
获取子单元,用于从所述区块链网络的区块链中获取所述第二可信执行环境的第二公钥;
解密子单元,用于通过所述第二公钥对所述加密更新模型参数进行解密,得到所述更新模型参数。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开还提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开所提供的模型训练方法的步骤。
本公开还提供一种区块链节点,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现本公开所提供的模型训练方法的步骤。
本公开还提供一种模型训练系统,包括本公开所提供的区块链节点。
图7是根据一示例性实施例示出的一种电子设备700的框图。如图7所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的模型训练方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的模型训练方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的模型训练方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的模型训练方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的模型训练方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种模型训练方法,其特征在于,应用于区块链网络中的目标区块链节点,所述目标区块链节点为多个区块链节点中的任意节点,所述方法包括:
响应于接收到主节点选取请求,获取各个区块链节点的描述参数,所述描述参数包括训练样本数量、历史训练贡献度、节点运行状态参数中的一者或多者;
根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点;
执行如下步骤,直至初始模型收敛,得到目标模型:
基于目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本,计算模型训练参数;
将所述模型训练参数发送至所述主节点,并通过所述主节点进行模型训练;
获取所述主节点生成的更新模型参数,基于所述更新模型参数对所述目标区块链节点所对应的初始模型进行更新;
其中,所述主节点用于获取各个区块链节点的模型训练参数,根据各个区块链节点的模型训练参数对主节点所对应的初始模型的模型参数进行更新,得到更新模型参数。
2.根据权利要求1所述的方法,其特征在于,所述描述参数包括训练样本数量、历史训练贡献度以及节点运行状态参数,所述根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点,包括:
针对每一区块链节点,根据该区块链节点的训练样本数量、历史训练贡献度、节点运行状态参数以及所述训练样本数量、所述历史训练贡献度、所述节点运行状态参数所分别对应的参数权重值,计算所述区块链节点的选择权重值;
将选择权重值大于预设阈值的区块链节点作为所述主节点。
3.根据权利要求1或2所述的方法,其特征在于,所述区块链网络中部署有主节点选取智能合约,所述根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点,包括:
执行所述主节点选取智能合约,以根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点。
4.根据权利要求1所述的方法,其特征在于,所述目标区块链节点还对应设置有第一可信执行环境,所述基于目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本,计算模型训练参数,包括:
将所述目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本发送至所述第一可信执行环境;
接收所述第一可信执行环境发送的模型训练参数,所述模型训练参数由所述第一可信执行环境基于目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本计算得到。
5.根据权利要求4所述的方法,其特征在于,所述接收所述第一可信执行环境发送的模型训练参数,包括:
接收所述第一可信执行环境发送的加密模型训练参数,所述加密模型训练参数由所述第一可信执行环境通过第一私钥对所述模型训练参数加密得到,所述第一私钥为所述第一可信执行环境的私钥;
所述将所述模型训练参数发送至所述主节点,包括:
将所述加密模型训练参数发送至所述主节点;
其中,所述主节点用于从所述区块链中获取所述第一可信执行环境的第一公钥,并通过所述第一公钥对所述加密模型训练参数进行解密,得到所述目标区块链节点的模型训练参数。
6.根据权利要求1所述的方法,其特征在于,所述主节点还对应设置有第二可信执行环境,所述主节点用于将初始模型以及各个区块链节点的模型训练参数发送至所述第二可信执行环境,得到所述第二可信执行环境发送的加密更新模型参数,所述加密更新模型参数由所述第二可信执行环境通过第二私钥对所述更新模型参数加密得到,所述第二私钥为所述第二可信执行环境的私钥,所述获取所述主节点生成的更新模型参数,包括:
接收所述主节点发送的加密更新模型参数;
从所述区块链网络的区块链中获取所述第二可信执行环境的第二公钥;
通过所述第二公钥对所述加密更新模型参数进行解密,得到所述更新模型参数。
7.一种模型训练装置,其特征在于,应用于区块链网络中的目标区块链节点,所述目标区块链节点为多个区块链节点中的任意节点,所述装置包括:
第一获取模块,用于响应于接收到主节点选取请求,获取各个区块链节点的描述参数,所述描述参数包括训练样本数量、历史训练贡献度、节点运行状态参数中的一者或多者;
第一确定模块,用于根据各个区块链节点的描述参数从所述多个区块链节点中确定主节点;
模型训练模块,用于执行训练步骤,直至初始模型收敛,得到目标模型,所述模型训练模块包括:
第一计算子模块,用于基于目标区块链节点所对应的初始模型以及所述目标区块链节点的训练样本,计算模型训练参数;
第一发送子模块,用于将所述模型训练参数发送至所述主节点,并通过所述主节点进行模型训练;
第一执行子模块,用于获取所述主节点生成的更新模型参数,基于所述更新模型参数对所述目标区块链节点所对应的初始模型进行更新;
其中,所述主节点用于获取各个区块链节点的模型训练参数,根据各个区块链节点的模型训练参数对主节点所对应的初始模型的模型参数进行更新,得到更新模型参数。
8.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6中任一项所述方法的步骤。
9.一种区块链节点,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-6中任一项所述方法的步骤。
10.一种模型训练系统,其特征在于,包括权利要求9所述的区块链节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111583160.XA CN114254360A (zh) | 2021-12-22 | 2021-12-22 | 模型训练方法、装置、存储介质、系统以及区块链节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111583160.XA CN114254360A (zh) | 2021-12-22 | 2021-12-22 | 模型训练方法、装置、存储介质、系统以及区块链节点 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114254360A true CN114254360A (zh) | 2022-03-29 |
Family
ID=80794387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111583160.XA Pending CN114254360A (zh) | 2021-12-22 | 2021-12-22 | 模型训练方法、装置、存储介质、系统以及区块链节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114254360A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114996762A (zh) * | 2022-07-19 | 2022-09-02 | 山东省计算中心(国家超级计算济南中心) | 一种基于联邦学习的医疗数据共享与隐私保护方法和系统 |
CN116502732A (zh) * | 2023-06-29 | 2023-07-28 | 杭州金智塔科技有限公司 | 基于可信执行环境的联邦学习方法以及系统 |
-
2021
- 2021-12-22 CN CN202111583160.XA patent/CN114254360A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114996762A (zh) * | 2022-07-19 | 2022-09-02 | 山东省计算中心(国家超级计算济南中心) | 一种基于联邦学习的医疗数据共享与隐私保护方法和系统 |
CN116502732A (zh) * | 2023-06-29 | 2023-07-28 | 杭州金智塔科技有限公司 | 基于可信执行环境的联邦学习方法以及系统 |
CN116502732B (zh) * | 2023-06-29 | 2023-10-20 | 杭州金智塔科技有限公司 | 基于可信执行环境的联邦学习方法以及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245510B (zh) | 用于预测信息的方法和装置 | |
US20200204341A1 (en) | Secure Machine Learning Analytics Using Homomorphic Encryption | |
KR102145701B1 (ko) | 안전한 다자 계산에서 참가자에 의한 입력 데이터의 허위 표시 방지 | |
US20230237132A1 (en) | System and Method for Memetic Authentication and Identification | |
CN109478263B (zh) | 用于体系结构评估和策略执行的系统和设备 | |
CN111666576B (zh) | 数据处理模型生成方法和装置、数据处理方法和装置 | |
Mohsin et al. | PSO–Blockchain-based image steganography: towards a new method to secure updating and sharing COVID-19 data in decentralised hospitals intelligence architecture | |
WO2021068445A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20210256309A1 (en) | Apparatuses, computer program products, and computer-implemented methods for privacy-preserving federated learning | |
US20200082272A1 (en) | Enhancing Data Privacy in Remote Deep Learning Services | |
CN110610093B (zh) | 用于在参数数据集中进行分布式训练的方法、系统和介质 | |
CN111460453A (zh) | 机器学习训练方法、控制器、装置、服务器、终端和介质 | |
CN114254360A (zh) | 模型训练方法、装置、存储介质、系统以及区块链节点 | |
CN110910978B (zh) | 一种应用于区块链网络的信息处理方法及相关装置 | |
US10719594B2 (en) | Secure re-enrollment of biometric templates using distributed secure computation and secret sharing | |
CN111858955B (zh) | 基于加密联邦学习的知识图谱表示学习增强方法和装置 | |
WO2021208701A1 (zh) | 代码变更的注释生成方法、装置、电子设备及存储介质 | |
CN110826420A (zh) | 人脸识别模型的训练方法及装置 | |
CN110245514B (zh) | 一种基于区块链的分布式计算方法及系统 | |
CN115765965A (zh) | 基于联邦学习和双联盟区块链的医疗数据安全共享方法 | |
CN107251480A (zh) | 数据保管装置、数据更新系统、数据处理方法和数据处理程序 | |
JPWO2020165932A1 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
WO2017006118A1 (en) | Secure distributed encryption system and method | |
US11956353B2 (en) | Machine learning device, machine learning system, and machine learning method | |
CN111079153B (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 |