CN116502733A - 一种基于联邦学习的模型训练方法和装置 - Google Patents
一种基于联邦学习的模型训练方法和装置 Download PDFInfo
- Publication number
- CN116502733A CN116502733A CN202210059228.2A CN202210059228A CN116502733A CN 116502733 A CN116502733 A CN 116502733A CN 202210059228 A CN202210059228 A CN 202210059228A CN 116502733 A CN116502733 A CN 116502733A
- Authority
- CN
- China
- Prior art keywords
- model
- node
- federation
- modeling node
- modeling
- 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
- 238000012549 training Methods 0.000 title claims abstract description 153
- 238000000034 method Methods 0.000 title claims abstract description 152
- 239000013598 vector Substances 0.000 claims description 140
- 230000004931 aggregating effect Effects 0.000 claims description 10
- 238000010801 machine learning Methods 0.000 abstract description 3
- 230000000694 effects Effects 0.000 description 27
- 238000005516 engineering process Methods 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Computer Security & Cryptography (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Machine Translation (AREA)
Abstract
本发明提供一种基于联邦学习的模型训练方法和装置,涉及机器学习技术领域。该方法包括:根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链,所述第一相邻节点、所述第二相邻节点以及所述第一建模节点所属同组;接收所述区块链广播的目标组联邦模型,所述目标组联邦模型是所述区块链基于所述第一联邦模型以及第二建模节点的第二联邦模型确定的,所述第二建模节点与所述第一建模节点所属不同组;根据所述目标组联邦模型对目标数据进行预测。本发明的方案,解决了多建模节点数据呈现非独立同分布且存在恶意建模节点时,横向联邦模型精度较低的问题。
Description
技术领域
本发明涉及机器学习技术领域,特别是指一种基于联邦学习的模型训练方法和装置。
背景技术
现有的横向联邦学习的训练方法,模型训练基于的各个建模节点是诚实的、半诚实的,所有建模节点共同训练一个联邦模型,一旦遇到恶意建模节点,模型数据可能会在训练中受到污染,导致模型效果变差,无法清除其影响的模型权重;而且,模型训练基于的各个建模节点是符合独立同分布条件的,一旦训练数据非独立同分布,有可能部分正常节点梯度和分布差异性较大,容易误判,聚合后模型效果下降严重。
发明内容
本发明的目的是提供一种基于联邦学习的模型训练方法和装置,用以解决现有技术中,多建模节点数据呈现非独立同分布且存在恶意节点时,横向联邦模型精度较低的问题。
为了解决上述技术问题,本发明实施例提供如下技术方案:
一种基于联邦学习的模型训练方法,应用于参与联邦任务的第一建模节点,所述方法包括:
根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链,所述第一相邻节点、所述第二相邻节点以及所述第一建模节点所属同组;
接收所述区块链广播的目标组联邦模型,所述目标组联邦模型是所述区块链基于所述第一联邦模型以及第二建模节点的第二联邦模型确定的,所述第二建模节点与所述第一建模节点所属不同组;
根据所述目标组联邦模型对目标数据进行预测。
可选地,所述的基于联邦学习的模型训练方法,其中,所述根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链之前,所述方法还包括:
将本地服务器的第一处理器参数指标上传至所述区块链;
获取第一加密数据分布信息;
在接收到所述区块链广播的协调通知信息的情况下,接收第三建模节点传递的第二加密数据分布信息;其中,所述第三建模节点与所述第一建模节点在同一个联邦任务中,属于非协调点;所述协调通知信息是所述区块链根据所述第一处理器参数指标以及所述第二建模节点的第二处理器参数指标确定的;
根据所述第一加密数据分布信息和所述第二加密数据分布信息,确定所属组的小组信息。
可选地,所述的基于联邦学习的模型训练方法,其中,所述获取第一加密数据分布信息,包括:
根据本地数据中每个字段的四分位数,构建数据分布向量;
对所述数据分布向量进行加密,获得所述第一加密数据分布信息。
可选地,所述的基于联邦学习的模型训练方法,其中,所述根据所述第一加密数据分布信息和所述第二加密数据分布信息,确定所属组的小组信息,包括:
计算所述第一加密数据分布信息与所述第二加密数据分布信息之间的欧式距离;
在所述欧式距离小于预设距离阈值时,确定与所述第三建模节点所属同组;
根据所述第三建模节点,确定所述小组信息。
可选地,所述的基于联邦学习的模型训练方法,其中,所述根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链之前,所述方法还包括:
将第一单边模型上传至所述区块链;
接收所述区块链广播的目标单边模型。
可选地,所述的基于联邦学习的模型训练方法,其中,所述将第一单边模型上传至所述区块链之前,所述方法还包括:
采用本地数据进行单边模型迭代,获得所述第一单边模型。
可选地,所述的基于联邦学习的模型训练方法,其中,所述接收所述区块链广播的目标单边模型之前,所述方法还包括:
接收所述区块链广播的第四建模节点的第二单边模型,所述第四建模节点是参与联邦任务中除所述第一建模节点之外的建模节点;
基于所述第二单边模型,获得第一单边信息;
将所述第一单边信息上传至所述区块链,所述第一单边信息用于所述区块链确定所述目标单边模型。
可选地,所述的基于联邦学习的模型训练方法,其中,所述根据第一相邻节点的本地模型,确定第一联邦模型,包括:
聚合所述第一相邻节点的本地模型梯度进行联邦任务迭代,确定所述第一联邦模型。
可选地,所述的基于联邦学习的模型训练方法,其中,所述聚合所述第一相邻节点的本地模型梯度进行联邦任务迭代,确定所述第一联邦模型,包括:
根据以下步骤,进行第一轮联邦任务迭代:
根据目标单边模型的模型权重,构建第一本地模型;
将所述第一本地模型的第一状态向量上传至所述区块链,以及将所述第一本地模型的梯度传递至所述第二相邻节点;
根据以下步骤,进行第二轮联邦任务迭代:
根据所述第一相邻节点在第一轮联邦任务迭代时得到的本地模型梯度,对所述第一本地模型进行更新,获得第二本地模型;
若所述第二本地模型的模型准确率大于或等于第一准确率阈值,或者所述第二本地模型的模型准确率大于或等于所述第一本地模型的模型准确率时,将所述第二本地模型的第二状态向量上传至所述区块链,以及将所述第二本地模型的梯度传递至所述第二相邻节点,且保留所述第二本地模型;
若所述第二本地模型的模型准确率小于所述第一准确率阈值,且所述第二本地模型的模型准确率小于所述第一本地模型的模型准确率时,将所述第一本地模型的第一状态向量上传至所述区块链,以及将所述第一本地模型的梯度传递至所述第二相邻节点,且不保留所述第二本地模型;
重复所述第二轮联邦任务迭代的步骤,直至达到预设迭代轮数或者模型准确率达到预设准确率阈值时,确定所述第一联邦模型,结束联邦任务;
其中,所述第一准确率阈值是所述区块链根据所述第一状态向量确定的。
可选地,所述的基于联邦学习的模型训练方法,其中,所述接收所述区块链广播的目标组联邦模型之前,所述方法还包括:
接收所述区块链广播的所述第二建模节点所属组的第二组联邦模型;
基于所述第二组联邦模型,获得第一联邦信息;
将所述第一联邦信息上传至所述区块链。
可选地,所述的基于联邦学习的模型训练方法,其中,所述根据所述目标组联邦模型对目标数据进行预测,包括:
将所述目标数据输入所述目标组联邦模型中,获得至少一个输出结果;
采用投票方式,对所述至少一个输出结果进行选择,获得目标预测结果。
本发明实施例还提供一种基于联邦学习的模型训练方法,应用于区块链,所述方法包括:
接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型,所述第一建模节点和所述第二建模节点所属不同组;
基于所述第一联邦模型以及所述第二联邦模型,确定目标组联邦模型;
将所述目标组联邦模型分别广播至所述第一建模节点和所述第二建模节点。
可选地,所述的基于联邦学习的模型训练方法,其中,所述接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型之前,所述方法还包括:
接收所述第一建模节点上传的所述第一建模节点的本地服务器的第一处理器参数指标以及所述第二建模节点上传的所述第二建模节点的本地服务器的第二处理器参数指标;
根据所述第一处理器参数指标和所述第二处理器参数指标,确定所述第一建模节点是否属于协调点以及第三建模节点是否属于非协调点;其中,所述第三建模节点与所述第一建模节点参与同一个联邦任务;
在确定所述第一建模节点属于所述协调点时,向所述第一建模节点广播协调通知信息;
在确定所述第三建模节点属于所述非协调点时,向所述第三建模节点广播非协调通知信息。
可选地,所述的基于联邦学习的模型训练方法,其中,所述接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型之前,所述方法还包括:
接收所述第一建模节点上传的第一单边模型和第四建模节点上传的第二单边模型,所述第四建模节点是参与联邦任务中除所述第一建模节点之外的建模节点;
基于所述第一单边模型和所述第二单边模型,确定目标单边模型。
可选地,所述的基于联邦学习的模型训练方法,其中,所述基于所述第一单边模型和所述第二单边模型,确定目标单边模型,包括:
向所述第一建模节点广播所述第二单边模型,以及向所述第四建模节点广播所述第一单边模型;
接收所述第一建模节点上传的所述第一建模节点基于所述第二单边模型获得的第一单边信息以及所述第四建模节点上传的所述第四建模节点基于所述第一单边模型获得的第二单边信息;
根据所述第一单边信息和所述第二单边信息,确定所述目标单边模型。
可选地,所述的基于联邦学习的模型训练方法,其中,所述接收第一建模节点上传的第一联邦模型之前,所述方法还包括:
接收所述第一建模节点所属组内每个建模节点上传的每个建模节点在每一轮联邦任务迭代时得到的状态向量;
根据每个建模节点的状态向量,获得每一轮联邦任务迭代时,所述第一建模节点所属组的模型准确率平均值;
将模型准确率平均值作为准确率阈值,并广播至所述第一建模节点。
可选地,所述的基于联邦学习的模型训练方法,其中,所述基于所述第一联邦模型以及所述第二联邦模型,确定目标组联邦模型,包括:
基于所述第一联邦模型,确定所述第一建模节点所属组的第一组联邦模型,以及基于所述第二联邦模型,确定所述第二建模节点所属组的第二组联邦模型;
将所述第二组联邦模型广播至所述第一建模节点,以及将所述第一组联邦模型广播至所述第二建模节点;
接收所述第一建模节点上传的所述第一建模节点基于所述第二组联邦模型获得的第一联邦信息,以及接收所述第二建模节点上传的所述第二建模节点基于所述第一组联邦模型获得的第二联邦信息;
根据所述第一联邦信息和所述第二联邦信息,确定所述目标组联邦模型。
可选地,所述的基于联邦学习的模型训练方法,其中,所述基于所述第一联邦模型,确定所述第一建模节点所属组的第一组联邦模型,包括:
统计所述第一建模节点所属组内每个建模节点的违规次数;
选择所述第一建模节点所属组内违规次数最高的建模节点作为违规建模节点;
根据所述违规建模节点的第一准确率向量和第二准确率向量,确定所述第一组联邦模型;
其中,所述第一准确率向量是根据预设联邦任务迭代轮数对应的模型准确率确定的,所述第二准确率向量是根据预设单边模型迭代轮数对应的模型准确率确定的。
可选地,所述的基于联邦学习的模型训练方法,其中,所述统计所述第一建模节点所属组内每个建模节点的违规次数,包括:
每满足以下一项时,所述第一建模节点的违规次数增加一次:
在第一预设时长内,未接收到所述第一建模节点上传的第一单边模型;
在第二预设时长内,未接收到所述第一建模节点上传的第一单边信息;
在第三预设时长内,未接收到所述第一建模节点上传的每一轮联邦任务迭代时得到的状态向量;
在第四预设时长内,获取到所述第一建模节点的本地模型梯度未传递到第二相邻节点的信息,所述第二相邻点与所述第一建模节点所属同组。
可选地,所述的基于联邦学习的模型训练方法,其中,所述根据所述违规建模节点的第一准确率向量和第二准确率向量,确定所述第一组联邦模型,包括:
将所述第一准确率向量和所述第二准确率向量中对应位置的元素的进行比较,获取第一比较结果;
根据所述第一比较结果,确定所述第一组联邦模型。
可选地,所述的基于联邦学习的模型训练方法,其中,所述根据所述第一比较结果,确定所述第一组联邦模型,包括:
在所述第一比较结果小于预设数值,且所述第一准确率向量中第一预设位置的元素小于所述第二准确率向量中所述第一预设位置的元素时,根据所述第一建模节点所属组内除所述第一建模节点之外的每个建模节点的联邦模型,确定所述第一组联邦模型。
可选地,所述的基于联邦学习的模型训练方法,其中,所述根据所述第一联邦信息和所述第二联邦信息,确定所述目标组联邦模型,包括:
将所述第一联邦信息和所述第二联邦信息分别与目标单边模型的准确率进行比较,获得第二比较结果;
根据所述第二比较结果,确定所述目标组联邦模型。
本发明实施例还提供一种电子设备,应用于参与联邦任务的第一建模节点,所述服务器包括处理器和收发机,其中:
所述处理器用于,根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链,所述第一相邻节点、所述第二相邻节点以及所述第一建模节点所属同组;
所述收发机用于,接收所述区块链广播的目标组联邦模型,所述目标组联邦模型是所述区块链基于所述第一联邦模型以及第二建模节点的第二联邦模型确定的,所述第二建模节点与所述第一建模节点所属不同组;
所述处理器还用于,根据所述目标组联邦模型对目标数据进行预测。
可选地,所述的电子设备,其中,所述处理器还用于:
将本地服务器的第一处理器参数指标上传至所述区块链;
获取第一加密数据分布信息;
在接收到所述区块链广播的协调通知信息的情况下,接收第三建模节点传递的第二加密数据分布信息;其中,所述第三建模节点与所述第一建模节点在同一个联邦任务中,属于非协调点;所述协调通知信息是所述区块链根据所述第一处理器参数指标以及所述第二建模节点的第二处理器参数指标确定的;
根据所述第一加密数据分布信息和所述第二加密数据分布信息,确定所属组的小组信息。
可选地,所述的电子设备,其中,所述处理器具体用于:
根据本地数据中每个字段的四分位数,构建数据分布向量;
对所述数据分布向量进行加密,获得所述第一加密数据分布信息。
可选地,所述的电子设备,其中,所述处理器具体用于:
计算所述第一加密数据分布信息与所述第二加密数据分布信息之间的欧式距离;
在所述欧式距离小于预设距离阈值时,确定与所述第三建模节点所属同组;
根据所述第三建模节点,确定所述小组信息。
可选地,所述的电子设备,其中,所述收发机还用于:
将第一单边模型上传至所述区块链;
接收所述区块链广播的目标单边模型。
可选地,所述的电子设备,其中,所述处理器具体用于:
采用本地数据进行单边模型迭代,获得所述第一单边模型。
可选地,所述的电子设备,其中,所述处理器还用于:
接收所述区块链广播的第四建模节点的第二单边模型,所述第四建模节点是参与联邦任务中除所述第一建模节点之外的建模节点;
基于所述第二单边模型,获得第一单边信息;
将所述第一单边信息上传至所述区块链,所述第一单边信息用于所述区块链确定所述目标单边模型。
可选地,所述的电子设备,其中,所述处理器具体用于:
聚合所述第一相邻节点的联邦模型梯度进行联邦任务迭代,确定所述第一联邦模型。
可选地,所述的电子设备,其中,所述处理器具体用于:
根据以下步骤,进行第一轮联邦任务迭代:
根据目标单边模型的模型权重,构建第一本地模型;
将所述第一本地模型的第一状态向量上传至所述区块链,以及将所述第一本地模型的梯度传递至所述第二相邻节点;
根据以下步骤,进行第二轮联邦任务迭代:
根据所述第一相邻节点在第一轮联邦任务迭代时得到的本地模型梯度,对速搜第一本地模型进行更新,获得第二本地模型;
若所述第二本地模型的模型准确率大于或等于第一准确率阈值,或者所述第二本地模型的模型准确率大于或等于所述第一本地模型的模型准确率,将所述第二本地模型的第二状态向量上传至所述区块链,以及将所述第二本地模型的梯度传递至所述第二相邻节点,且保留所述第二本地模型;
若所述第二本地模型的模型准确率小于所述第一准确率阈值,且所述第二本地模型的模型准确率小于所述第一本地模型的模型准确率时,将所述第一本地模型的第一状态向量上传至所述区块链,以及将所述第一本地模型的梯度传递至所述第二相邻节点,且不保留所述第二本地模型;
重复所述第二轮联邦任务迭代的步骤,直至达到预设迭代轮数或者模型准确率达到预设准确率阈值时,确定所述第一联邦模型,结束联邦任务;
其中,所述第一准确率阈值是所述区块链根据所述第一状态向量确定的。
可选地,所述的电子设备,其中,所述处理器还用于:
接收所述区块链广播的所述第二建模节点所属组的第二组联邦模型;
基于所述第二组联邦模型,获得第一联邦信息;
将所述第一联邦信息上传至所述区块链。
可选地,所述的电子设备,其中,所述处理器具体用于:
将所述目标数据输入所述目标组联邦模型中,获得至少一个输出结果;
采用投票方式,对所述至少一个输出结果进行选择,获得目标预测结果。
本发明实施例还提供一种服务器,应用于区块链,所述服务器包括处理器和收发机,其中:
所述收发机用于,接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型,所述第一建模节点和所述第二建模节点所属不同组;
所述处理器用于,基于所述第一联邦模型以及所述第二联邦模型,确定目标组联邦模型;
所述收发机还用于,将所述目标组联邦模型分别广播至所述第一建模节点和所述第二建模节点。
可选地,所述的服务器,其中,所述处理器还用于:
接收所述第一建模节点上传的所述第一建模节点的本地服务器的第一处理器参数指标以及所述第二建模节点上传的所述第二建模节点的本地服务器的第二处理器参数指标;
根据所述第一处理器参数指标和所述第二处理器参数指标,确定所述第一建模节点是否属于协调点以及第三建模节点是否属于非协调点;其中,所述第三建模节点与所述第一建模节点参与同一个联邦任务;
在确定所述第一建模节点属于所述协调点时,向所述第一建模节点广播协调通知信息;
在确定所述第三建模节点属于所述非协调点时,向所述第三建模节点广播非协调通知信息。
可选地,所述的服务器,其中,所述处理器还用于:
接收所述第一建模节点上传的第一单边模型和第四建模节点上传的第二单边模型,所述第四建模节点是参与联邦任务中除所述第一建模节点之外的建模节点;
基于所述第一单边模型和所述第二单边模型,确定目标单边模型。
可选地,所述的服务器,其中,所述处理器具体用于:
向所述第一建模节点广播所述第二单边模型,以及向所述第四建模节点广播所述第一单边模型;
接收所述第一建模节点上传的所述第一建模节点基于所述第二单边模型获得的第一单边信息以及所述第四建模节点上传的所述第四建模节点基于所述第一单边模型获得的第二单边信息;
根据所述第一单边信息和所述第二单边信息,确定所述目标单边模型。
可选地,所述的服务器,其中,所述处理器具体用于:
接收所述第一建模节点所属组内每个建模节点上传的每个建模节点在每一次联邦任务迭代时得到的状态向量;
根据每个建模节点的状态向量,获得每一轮联邦任务迭代时,所述第一建模节点所属组的模型准确率平均值;
将模型准确率平均值作为准确率阈值,并广播至所述第一建模节点。
可选地,所述的服务器,其中,所述处理器具体用于:
基于所述第一联邦模型,确定所述第一建模节点所属组的第一组联邦模型,以及基于所述第二联邦模型,确定所述第二建模节点所属组的第二组联邦模型;
将所述第二组联邦模型广播至所述第一建模节点,以及将所述第一组联邦模型广播至所述第二建模节点;
接收所述第一建模节点上传的所述第一建模节点基于所述第二组联邦模型获得的第一联邦信息,以及接收所述第二建模节点上传的所述第二建模节点基于所述第一组联邦模型获得的第二联邦信息;
根据所述第一联邦信息和所述第二联邦信息,确定所述目标组联邦模型。
可选地,所述的服务器,其中,所述处理器具体用于:
统计所述第一建模节点所属组内每个建模节点的违规次数;
选择所述第一建模节点所属组内违规次数最高的建模节点作为违规建模节点;
根据所述违规建模节点的第一准确率向量和第二准确率向量,确定所述第一组联邦模型;
其中,所述第一准确率向量是根据预设联邦任务迭代轮数对应的模型准确率确定的,所述第二准确率向量是根据预设单边模型迭代轮数对应的模型准确率确定的。
可选地,所述的服务器,其中,所述处理器具体用于:
每满足以下一项时,所述第一建模节点的违规次数增加一次:
在第一预设时长内,未接收到所述第一建模节点上传的第一单边模型;
在第二预设时长内,未接收到所述第一建模节点上传的第一单边信息;
在第三预设时长内,未接收到所述第一建模节点上传的每一轮联邦任务迭代时得到的状态向量;
在第四预设时长内,获取到所述第一建模节点的本地模型梯度未传递到第二相邻节点的信息,所述第二相邻点与所述第一建模节点所属同组。
可选地,所述的服务器,其中,所述处理器具体用于:
将所述第一准确率向量和所述第二准确率向量中对应位置的元素的进行比较,获取第一比较结果;
根据所述第一比较结果,确定所述第一组联邦模型。
可选地,所述的服务器,其中,所述处理器具体用于:
在所述第一比较结果小于预设数值,且所述第一准确率向量中第一预设位置的元素小于所述第二准确率向量中所述第一预设位置的元素时,根据所述第一建模节点所属组内除所述第一建模节点之外的每个建模节点的联邦模型,确定所述第一组联邦模型。
可选地,所述的服务器,其中,所述处理器具体用于:
将所述第一联邦信息和所述第二联邦信息分别与目标单边模型的准确率进行比较,获得第二比较结果;
根据所述第二比较结果,确定所述目标组联邦模型。
本发明实施例还提供一种基于联邦学习的模型训练装置,应用于参与联邦任务的第一建模节点,所述装置包括:
第一确定模块,用于根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链,所述第一相邻节点、所述第二相邻节点以及所述第一建模节点所属同组;
第一接收模块,用于接收所述区块链广播的目标组联邦模型,所述目标组联邦模型是所述区块链基于所述第一联邦模型以及第二建模节点的第二联邦模型确定的,所述第二建模节点与所述第一建模节点所属不同组;
第一预测模块,用于根据所述目标组联邦模型对目标数据进行预测。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第一上传模块,用于将本地服务器的第一处理器参数指标上传至所述区块链;
第一获取模块,用于获取第一加密数据分布信息;
第三接收模块,用于在接收到所述区块链广播的协调通知信息的情况下,接收第三建模节点传递的第二加密数据分布信息;其中,所述第三建模节点与所述第一建模节点在同一个联邦任务中,属于非协调点;所述协调通知信息是所述区块链根据所述第一处理器参数指标以及所述第二建模节点的第二处理器参数指标确定的;
第三确定模块,用于根据所述第一加密数据分布信息和所述第二加密数据分布信息,确定所属组的小组信息。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第一获取模块具体用于:
根据本地数据中每个字段的四分位数,构建数据分布向量;
对所述数据分布向量进行加密,获得所述第一加密数据分布信息。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第三确定模块具体用于:
计算所述第一加密数据分布信息与所述第二加密数据分布信息之间的欧式距离;
在所述欧式距离小于预设距离阈值时,确定与所述第三建模节点所属同组;
根据所述第三建模节点,确定所述小组信息。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第二上传模块,用于将第一单边模型上传至所述区块链;
第四接收模块,用于接收所述区块链广播的目标单边模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第一获得模块,用于采用本地数据进行单边模型迭代,获得所述第一单边模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第五接收模块,用于接收所述区块链广播的第四建模节点的第二单边模型,所述第四建模节点是参与联邦任务中除所述第一建模节点之外的建模节点;
基于所述第二单边模型,获得第一单边信息;
将所述第一单边信息上传至所述区块链,所述第一单边信息用于所述区块链确定所述目标单边模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第一确定模块包括:
第一确定子模块,用于聚合所述第一相邻节点的本地模型梯度进行联邦任务迭代,确定所述第一联邦模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第一确定子模块具体用于:
根据以下步骤,进行第一轮联邦任务迭代:
根据目标单边模型的模型权重,构建第一本地模型;
将所述第一本地模型的第一状态向量上传至所述区块链,以及将所述第一本地模型的梯度传递至所述第二相邻节点;
根据以下步骤,进行第二轮联邦任务迭代:
根据所述第一相邻节点在第一轮联邦任务迭代时得到的本地模型梯度,对所述第一本地模型进行更新,获得第二模型;
若所述第二本地模型的模型准确率大于或等于第一准确率阈值,或者所述第二本地模型的模型准确率大于或等于所述第一本地模型的模型准确率时,将所述第二本地模型的第二状态向量上传至所述区块链,以及将所述第二本地模型的梯度传递至所述第二相邻节点,且保留所述第二本地模型;
若所述第二本地模型的模型准确率小于所述第一准确率阈值,且所述第二本地模型的模型准确率小于所述第一本地模型的模型准确率时,将所述第一本地模型的第一状态向量上传至所述区块链,以及将所述第一本地模型的梯度传递至所述第二相邻节点,且不保留所述第二模型;
重复所述第二轮联邦任务迭代的步骤,直至达到预设迭代轮数或者模型准确率达到预设准确率阈值时,确定所述第一联邦模型,结束联邦任务;
其中,所述第一准确率阈值是所述区块链根据所述第一状态向量确定的。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第六接收模块,用于接收所述区块链广播的所述第二建模节点所属组的第二组联邦模型;
第二获得模块,用于基于所述第二组联邦模型,获得第一联邦信息;
第三上传模块,用于将所述第一联邦信息上传至所述区块链。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第一预测模块具体用于:
将所述目标数据输入所述目标组联邦模型中,获得至少一个输出结果;
采用投票方式,对所述至少一个输出结果进行选择,获得目标预测结果。
本发明实施例还提供一种基于联邦学习的模型训练装置,应用于区块链,所述装置包括:
第二接收模块,用于接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型,所述第一建模节点和所述第二建模节点所属不同组;
第二确定模块,用于基于所述第一联邦模型以及所述第二联邦模型,确定目标组联邦模型;
第一广播模块,用于将所述目标组联邦模型分别广播至所述第一建模节点和所述第二建模节点。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第七接收模块,用于接收所述第一建模节点上传的所述第一建模节点的本地服务器的第一处理器参数指标以及所述第二建模节点上传的所述第二建模节点的本地服务器的第二处理器参数指标;
第四确定模块,用于根据所述第一处理器参数指标和所述第二处理器参数指标,确定所述第一建模节点是否属于协调点以及第三建模节点是否属于非协调点;其中,所述第三建模节点与所述第一建模节点参与同一个联邦任务;第二广播模块,用于在确定所述第一建模节点属于所述协调点时,向所述第一建模节点广播协调通知信息;
第三广播模块,用于在确定所述第三建模节点属于所述非协调点时,向所述第三建模节点广播非协调通知信息。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第八接收模块,用于接收所述第一建模节点上传的第一单边模型和第四建模节点上传的第二单边模型,所述第四建模节点是参与联邦任务中除所述第一建模节点之外的建模节点;
第五确定模块,用于基于所述第一单边模型和所述第二单边模型,确定目标单边模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第五确定模块具体用于:
向所述第一建模节点广播所述第二单边模型,以及向所述第四建模节点广播所述第一单边模型;
接收所述第一建模节点上传的所述第一建模节点基于所述第二单边模型获得的第一单边信息以及所述第四建模节点上传的所述第四建模节点基于所述第一单边模型获得的第二单边信息;
根据所述第一单边信息和所述第二单边信息,确定所述目标单边模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第九接收模块,用于接收所述第一建模节点所属组内每个建模节点上传的每个建模节点在每一轮联邦任务迭代时得到的状态向量;
第三获得模块,用于根据每个建模节点的状态向量,获得每一轮联邦任务迭代时,所述第一建模节点所属组的模型准确率平均值;
第四广播模块,用于将模型准确率平均值作为准确率阈值,并广播至所述第一建模节点。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第二确定模块,包括:
第二确定子模块,用于基于所述第一联邦模型,确定所述第一建模节点所属组的第一组联邦模型,以及基于所述第二联邦模型,确定所述第二建模节点所属组的第二组联邦模型;
第一广播子模块,用于将所述第二组联邦模型广播至所述第一建模节点,以及将所述第一组联邦模型广播至所述第二建模节点;
第一接收子模块,用于接收所述第一建模节点上传的所述第一建模节点基于所述第二组联邦模型获得的第一联邦信息,以及接收所述第二建模节点上传的所述第二建模节点基于所述第一组联邦模型获得的第二联邦信息;
第三确定子模块,用于根据所述第一联邦信息和所述第二联邦信息,确定所述目标组联邦模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第二确定子模块,包括:
统计单元,用于统计所述第一建模节点所属组内每个建模节点的违规次数;
选择单元,用于选择所述第一建模节点所属组内违规次数最高的建模节点作为违规建模节点;
确定单元,用于根据所述违规建模节点的第一准确率向量和第二准确率向量,确定所述第一组联邦模型;
其中,所述第一准确率向量是根据预设联邦任务迭代轮数对应的模型准确率确定的,所述第二准确率向量是根据预设单边模型迭代轮数对应的模型准确率确定的。
可选地,所述的基于联邦学习的模型训练装置,其中,所述统计单元具体用于:
每满足以下一项时,所述第一建模节点的违规次数增加一次:
在第一预设时长内,未接收到所述第一建模节点上传的第一单边模型;
在第二预设时长内,未接收到所述第一建模节点上传的第一单边信息;
在第三预设时长内,未接收到所述第一建模节点上传的每一轮联邦任务迭代时得到的状态向量;
在第四预设时长内,获取到所述第一建模节点的本地模型梯度未传递到第二相邻节点的信息,所述第二相邻点与所述第一建模节点所属同组。
可选地,所述的基于联邦学习的模型训练装置,其中,所述确定单元,包括:
比较子单元,用于将所述第一准确率向量和所述第二准确率向量中对应位置的元素的进行比较,获取第一比较结果;
确定子单元,用于确定根据所述第一比较结果,确定所述第一组联邦模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述确定子单元具体用于:
在所述第一比较结果小于预设数值,且所述第一准确率向量中第一预设位置的元素小于所述第二准确率向量中所述第一预设位置的元素时,根据所述第一建模节点所属组内除所述第一建模节点之外的每个建模节点的联邦模型,确定所述第一组联邦模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第三确定子模块具体用于:
将所述第一联邦信息和所述第二联邦信息分别与目标单边模型的准确率进行比较,获得第二比较结果;
根据所述第二比较结果,确定所述目标组联邦模型。
本发明实施例还提供一种电子设备,包括:收发器、处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令;所述处理器执行所述程序或指令时实现如上任一项所述的基于联邦学习的模型训练方法的步骤。
本发明实施例还提供一种服务器,包括:收发器、处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令;所述处理器执行所述程序或指令时实现如上任一项所述的基于联邦学习的模型训练方法的步骤。
本发明实施例还提供一种可读存储介质,其上存储有程序或指令,所述程序或指令被处理器执行时实现如上任一项所述的基于联邦学习的模型训练方法的步骤。
本发明的上述技术方案的有益效果如下:
本发明方案,通过根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链,所述第一相邻节点、所述第二相邻节点以及所述第一建模节点所属同组,接收所述区块链广播的目标组联邦模型,所述目标组联邦模型是所述区块链基于所述第一联邦模型以及第二建模节点的第二联邦模型确定的,所述第二建模节点与所述第一建模节点所属不同组,根据所述目标组联邦模型对目标数据进行预测,利用分组技术控制建模节点的影响范围,降低恶意建模节点影响范围,剔除效果差的联邦模型和组联邦模型,提升模型训练效果。
附图说明
图1为本发明实施例提供的基于联邦学习的模型训练方法的流程图之一;
图2为本发明实施例提供的确定目标单边模型的流程示意图;
图3为本发明实施例提供的联邦任务迭代的流程示意图;
图4为本发明实施例提供的确定目标组联邦模型的流程示意图;
图5为本发明实施例提供的基于联邦学习的模型训练方法的流程图之二;
图6为本发明实施例提供的电子设备的结构示意图之一;
图7为本发明实施例提供的服务器的结构示意图之一;
图8为本发明实施例提供的基于联邦学习的模型训练装置的结构示意图之一;
图9为本发明实施例提供的基于联邦学习的模型训练装置的结构示意图之二;
图10为本发明实施例提供的电子设备的结构示意图之二;
图11为本发明实施例提供的服务器的结构示意图之二。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常可互换使用。
在本申请所提供的实施例中,应理解,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
为解决多建模节点数据呈现非独立同分布且存在恶意节点时,横向联邦模型精度较低的问题,本发明实施例提供一种基于联邦学习的模型训练方法,通过根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链,所述第一相邻节点、所述第二相邻节点以及所述第一建模节点所属同组,接收所述区块链广播的目标组联邦模型,所述目标组联邦模型是所述区块链基于所述第一联邦模型以及第二建模节点的第二联邦模型确定的,所述第二建模节点与所述第一建模节点所属不同组,根据所述目标组联邦模型对目标数据进行预测,利用分组技术控制建模节点的影响范围,降低恶意建模节点影响范围,剔除效果差的联邦模型和组联邦模型,提升模型训练效果。
本发明实施例中,利用区块链分发联邦任务,确定参与的建模节点,具体步骤如下:
步骤一:联邦系统由若干个建模节点构成,每个建模节点均利用本地数据训练模型,通过swarm(集群管理)网络应用API共享参数,新增的建模节点通过区块链智能合约注册,完成注册后才能参与联邦任务。
需要说明的是,每个建模节点包括中间层和应用层,应用环境包括机器学习平台、区块链、容器化的swarm API、NTP以及中间插件等,应用层包括模型等。
步骤二:区块链通过智能合约发布联邦任务,该联邦任务主要包括:任务执行计划、任务模型参数、聚合方法以及数据格式等。
步骤三:只有注册过的建模节点才能获取区块链通过智能合约发布的联邦任务。如果建模节点满足联邦任务的数据格式,就可以选择参与该次任务。
需要说明的是,参与特定任务,就是调用智能合约的方法,将建模节点与参与的联邦任务绑定起来。参与任务之后,该建模节点就可以参与到联邦任务的迭代中,以及获取任务执行计划等。
如图1所示,本发明实施例提供一种基于联邦学习的模型训练方法,应用于参与联邦任务的第一建模节点,所述方法包括:
步骤S101:根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链,所述第一相邻节点、所述第二相邻节点以及所述第一建模节点所属同组;
需要说明的是,参与联邦任务的N个建模节点,共划分为Q个组,每组的至少两个建模节点在逻辑上呈现环状,所以将每个建模节点进行编号,且利用NTP(网络时间协议)进行时间同步。所述第一相邻节点和所述第二相邻节点的编号均与所述第一建模节点的编号紧邻,较佳地,所述第一相邻节点的编号小于所述第一建模节点的编号,所述第二相邻节点的变化大于所述第二建模节点的编号,即所述第一相邻节点为所述第一建模节点的左边建模节点,所述第二相邻节点为所述第一建模节点的右边建模节点。
在本发明实施例中,采用无中心组网方式进行训练,所述第一建模节点利用所属组的相邻建模节点进行训练,控制每个建模节点的影响范围,从而降低不良建模节点的影响范围。而且,采用相邻节点传递的模型进行甄别,从而提升联邦模型的准确率,降低数据非独立同分布影响。
步骤S102:接收所述区块链广播的目标组联邦模型,所述目标组联邦模型是所述区块链基于所述第一联邦模型以及第二建模节点的第二联邦模型确定的,所述第二建模节点与所述第一建模节点所属不同组;
需要说明的是,所述目标组联邦模型的数量为至少一个,是所述区块链基于参与联邦任务的每个建模节点(即所述第一建模节点和所述第二建模节点)的联邦模型确定的。
使用区块链,达到共同监督的效果,防止存在作弊的建模节点。
步骤S103:根据所述目标组联邦模型对目标数据进行预测。
在本发明实施例中,在参与联邦任务的N个建模节点结束联邦训练任务,并接收到所述区块链广播的目标组联邦模型的情况下,可以利用所述目标组联邦模型对目标数据进行预测,通过所述目标组联邦模型得到的目标预测结果的准确率较高。
本发明实施例,通过根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链,所述第一相邻节点、所述第二相邻节点以及所述第一建模节点所属同组,接收所述区块链广播的目标组联邦模型,所述目标组联邦模型是所述区块链基于所述第一联邦模型以及第二建模节点的第二联邦模型确定的,所述第二建模节点与所述第一建模节点所属不同组,根据所述目标组联邦模型对目标数据进行预测,利用分组技术控制建模节点的影响范围,降低恶意建模节点影响范围,剔除效果差的联邦模型和组联邦模型,提升模型训练效果。
可选地,所述的基于联邦学习的模型训练方法,其中,所述步骤S101:根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链之前,所述方法还包括:
将本地服务器的第一处理器参数指标上传至所述区块链;
获取第一加密数据分布信息;
在接收到所述区块链广播的协调通知信息的情况下,接收第三建模节点传递的第二加密数据分布信息;其中,所述第三建模节点与所述第一建模节点参与同一个联邦任务,所述第三建模节点属于非协调点;所述协调通知信息是所述区块链根据所述第一处理器参数指标以及所述第二建模节点的第二处理器参数指标确定的;
根据所述第一加密数据分布信息和所述第二加密数据分布信息,确定所属组的小组信息;
在本发明实施例中,处理器参数指标包括CPU的内核个数、未被分配的内存、CPU占用率以及系统中线程之间交换的数量等。所述区块链接收到参与联邦任务的每个建模节点上传的处理器参数指标,采用智能合约,将每个建模节点的处理器参数指标综合排序,得到排名靠前的建模节点作为协调点。具体地,取排名在前两位或者前三位的建模节点属于协调点,剩余的建模节点则归为非协调点。若参与联邦任务的建模节点的数量为三个,则协调点的数量为一个。所述区块链获取到协调点信息后,发送协调通知信息至协调点,发送非协调通知信息至非协调点;或者所述区块链获取到协调点信息后,接收到所述协调通知信息的建模节点为协调点,未接收到所述协调通知信息的建模节点则为非协调点。
若所述第一建模节点接收到所述协调通知信息,则所述第一建模节点属于协调点。每个协调点在规定时长内最多储存S个非协调点传递的第二加密数据分布信息,其中,S等于参与联邦任务的建模节点的数量N除以协调点的数量。
所述第一建模节点在接收所述第三建模节点传递的所述第二加密数据分布信息时,获取该第二加密数据分布信息的时间和对应发送该第二加密数据分布信息的所述第三建模节点的编号信息,直到规定时长,停止接收所述第二加密数据分布信息。
进一步地,所述第一建模节点根据自身的所述第一加密数据分布信息和接收到的所述第二加密数据分布信息,确定所属组的小组信息,具体包括所属组的各个建模节点的编号信息等。
需要说明的是,若所述第一建模节点未接收到所述协调通知信息,或者接收到非协调通知信息,则所述第一建模节点属于非协调点,向协调点传递第一加密数据分布信息。
还需要说明的是,每个建模节点可以同属两个以上的组。
可选地,所述的基于联邦学习的模型训练方法,其中,所述获取第一加密数据分布信息,包括:
根据本地数据中每个字段的四分位数,构建数据分布向量;
对所述数据分布向量进行加密,获得所述第一加密数据分布信息。
在本发明实施例中,所述数据分布向量的组成包括每个字段的第一四分位数(Q1)、第二四分位数(Q2)和第三四分位数(Q3)。这里,对所述数据分布向量进行同态加密,获得所述第一加密数据分布信息。
需要说明的是,参与联邦任务的每个建模节点均可以采用上述步骤获取对应的加密数据分布信息。
可选地,所述的基于联邦学习的模型训练方法,其中,所述根据所述第一加密数据分布信息和所述第二加密数据分布信息,确定所属组的小组信息,包括:
计算所述第一加密数据分布信息与所述第二加密数据分布信息之间的欧式距离;
在所述欧式距离小于预设距离阈值时,确定与所述第三建模节点所属同组;
根据所述第三建模节点,确定所述小组信息。
在本发明实施例中,由于所述第三建模节点的数量为至少一个,所以所述第二加密数据分布信息的数量也为至少一个。这里,所述第一建模节点根据所述第一加密数据分布信息和所述第二加密数据分布信息,计算所述第一加密数据分布信息与所述第二加密数据分布信息之间的欧式距离,以及计算至少一个第二加密数据分布信息之间的欧式距离,在所述欧式距离小于预设距离阈值时,将加密数据分布向量对应的建模节点归为同组,确定与所述第一建模节点同组的所述第三建模节点,从而确定所述小组信息。
可选地,所述的基于联邦学习的模型训练方法,其中,所述步骤S101:根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链之前,所述方法还包括:
将第一单边模型上传至所述区块链;
接收所述区块链广播的目标单边模型。
需要说明的是,所述区块链接收参与联邦任务的每个建模节点的单边模型,根据每个建模节点的单边模型,确定所述目标单边模型,以及所述目标单边模型的模型权重、模型编号和模型准确率。
可选地,所述的基于联邦学习的模型训练方法,其中,所述将第一单边模型上传至所述区块链之前,所述方法还包括:
采用本地数据进行单边模型迭代,获得所述第一单边模型。
需要说明的是,参与联邦任务的每个建模节点利用本地数据构建单边模型。在迭代过程中,每个建模节点记录每轮迭代时的轮数编号、累计时长以及模型准确率等构成字符串,待每轮迭代完成后,将每轮迭代的字符串和迭代得到的单边模型上传到所述区块链。在第一预设时长之内没有上传的建模节点,所述区块链对该建模节点的未完成次数增加一次,且所述区块链不再等待接收该建模节点的字符串和单边模型。这里,对字符串的格式进行举例:{迭代轮数1:{迭代累计时长2秒,模型准确率0.1},迭代轮数2:{迭代累计时长3秒,模型准确率0.01}……}。达到预设迭代轮数对应的模型即为该建模节点完成单边迭代对应的单边模型。
可选地,所述的基于联邦学习的模型训练方法,其中,所述接收所述区块链广播的目标单边模型之前,所述方法还包括:
接收所述区块链广播的第四建模节点的第二单边模型,所述第四建模节点是参与联邦任务中除所述第一建模节点的建模节点;
基于所述第二单边模型,获得第一单边信息;其中,所述第一单边信息包括单边模型编号和模型准确率。
将所述第一单边信息上传至所述区块链,所述第一单边信息用于所述区块链确定所述目标单边模型。
在本发明实施例中,所述第一建模节点通过所述区块链获取到所述第四建模节点的第二单边模型,由于所述第四建模节点的数量为至少一个,所以所述第二单边模型的数量也为至少一个,将本地数据分别代入至少一个第二单边模型中,得到至少一个第一单边信息,将至少一个第一单边信息中模型准确率最高的单边模型编号对应的第一单边信息上传至所述区块链。
这里,所述第四建模节点接收所述区块链广播的第一单边模型,并基于所述第一单边模型,获得第二单边信息,将所述第二单边信息上传至所述区块链;其中,所述第四建模节获得所述第二单边信息的方法与所述第一建模节点获得所述第一单边信息的方法相同。
进一步地,所述区块链接收到参与联邦任务的每个建模节点上传的单边信息,并记录投票次数最高的模型编号,从而确定目标单边模型,将目标单边模型和目标单边模型的模型编号广播至每个建模节点。
需要注意的是,在第二预设时长内,所述区块链未接收到建模节点的第一单边信息时,对该建模节点的未完成次数增加一次。
下面结合图2,具体说明目标单边模型的确定流程。
参与联邦任务的每个建模节点(如图2中的建模节点1、建模节点2、建模节点3…建模节点n)分别采用本地数据进行单边模型迭代,获得单边模型(如图2中的单边模型1、单边模型2、单边模型3…建模节点n),并将单边模型上传至所述区块链,所述区块链收集并下发单边模型;
每个建模节点接收所述区块链广播的参与联邦任务中其他建模节点的单边模型;
每个建模节点将本地数据分别代入其他建模节点的单边模型中,得到至少一个单边信息,获取至少一个单边信息中模型准确率最高的单边模型,并将该单边模型的模型编号和单边信息上传至所述区块链;
所述区块链接收每个建模节点上传的单边信息,并记录投票次数最高的模型编号,从而确定目标单边模型,将目标单边模型和目标单边模型的模型编号广播至每个建模节点。
这里,目标单边模型的权重作为下述联邦任务迭代中的模型初始权重。
可选地,所述的基于联邦学习的模型训练方法,其中,所述步骤S101:根据第一相邻节点的本地模型,确定第一联邦模型,包括:
聚合所述第一相邻节点的本地模型梯度进行联邦任务迭代,确定所述第一联邦模型。
这里,所述第一建模节点在当前轮联邦任务迭代时,聚合所述第一相邻节点上一轮的本地模型梯度,从而确定所述第一联邦模型。
在本发明实施例中,采用无中心组网方式进行联邦任务迭代,在本轮联邦任务迭代时,组内每个建模节点基于组内左边建模节点的上一轮的本地模型的信息,得到本轮联邦任务迭代的模型准确率,并验证本轮准确率是否高于上一轮准确率,高于则进行更新,低于则不更新,保留上一轮准确率,直至多轮联邦任务迭代后,准确率达到预设准确率阈值、准确率稳定或者达到预设迭代轮数时,停止迭代,确定当前轮对应的模型,即为所述第一联邦模型。
可选地,所述的基于联邦学习的模型训练方法,其中,所述聚合所述第一相邻节点的本地模型梯度进行联邦任务迭代,确定所述第一联邦模型,包括:
根据以下步骤,进行第一轮联邦任务迭代:
根据目标单边模型的模型权重,构建第一本地模型;
将所述第一本地模型的第一状态向量上传至所述区块链,以及将所述第一本地模型的梯度传递至所述第二相邻节点;
根据以下步骤,进行第二轮联邦任务迭代:
根据所述第一相邻节点在第一轮联邦任务迭代时得到的本地模型梯度,对所述第一本地模型进行更新,获得第二本地模型;
若所述第二本地模型的模型准确率大于或等于第一准确率阈值,或者所述第二本地模型的模型准确率大于或等于所述第一本地模型的模型准确率,将所述第二本地模型的第二状态向量上传至所述区块链,以及将所述第二本地模型的梯度传递至所述第二相邻节点,且保留所述第二本地模型;
若所述第二本地模型的模型准确率小于所述第一准确率阈值,且所述第二本地模型的模型准确率小于所述第一本地模型的模型准确率,将所述第一本地模型的第一状态向量上传至所述区块链,以及将所述第一本地模型的本地梯度传递至所述第二相邻节点,且不保留所述第二本地模型;
重复所述第二轮联邦任务迭代的步骤,直至达到预设迭代轮数或者模型准确率达到预设准确率阈值时,确定所述第一联邦模型,结束联邦任务;
其中,所述第一准确率阈值是所述区块链根据所述第一状态向量确定的。
在本发明实施例中,结合图3,具体说明联邦任务迭代的流程。
第一轮联邦任务迭代:
所述第一建模节点(所属第i组,如图3中的建模节点1、建模节点2…建模节点n)利用本地数据和目标单边模型的权重,构建第一本地模型,并将所述第一本地模型的模型权重本地训练时长/>以及本地数据对应所述第一本地模型的模型准确率/>等,作为第一状态向量/>上传至所述区块链,并将所述第一本地模型的梯度/>传递至所述第二相邻节点(右边建模节点)。
进一步地,所述区块链在接收到所述第一建模节点所属组的每个建模节点在完成第一轮联邦任务迭代时上传的状态向量后,统计出该组本轮迭代时的模型准确率平均值,作为该组的第一准确率阈值
第二轮联邦任务迭代:
所述第一建模节点接收所述第一相邻节点(左边建模节点)在完成第一轮联邦任务迭代时传递的梯度并根据该梯度/>和如下公式,获得第一本地模型权重
其中,η为预设置的模型学习速率;
基于所述第一本地模型权重和本地数据,对所述第一本地模型进行更新,构建第二本地模型,并将本地数据对应所述第二本地模型的模型准确率/>与第一准确率阈值/>或者与本地数据对应所述第一本地模型的模型准确率/>进行比较,若或者/>则将所述第二本地模型的第一本地模型权重/>本地训练时长/>以及本地数据对应所述第二本地模型的模型准确率/>等,作为第二状态向量/>上传至所述区块链,且在本地保留所述第二本地模型,将第二本地模型更新为第一联邦模型,并将所述第二本地模型的梯度/>传递至所述第二相邻节点(右边建模节点)。
进一步地,所述区块链在接收到所述第一建模节点所属组的每个建模节点在完成第二轮联邦任务迭代时上传的状态向量后,统计出该组本轮迭代时的模型准确率平均值,作为该组的第二准确率阈值
此后重复第二轮联邦任务迭代的步骤,直至达到预设迭代轮数或者模型准确率达到预设准确率阈值,或者模型准确率达到稳定时,停止迭代,当前轮完成迭代时的模型即为所述第一联邦模型,结束联邦任务。
需要注意的是,在第三预设时长内,所述区块链未接收到建模节点上传的每一轮联邦任务迭代时得到的状态向量时,对该建模节点的未完成次数增加一次;以及在第四预设时长内,所述区块链未获取到所述第一建模节点的模型梯度传递到所述第二相邻节点时,对该建模节点的未传输次数增加一次。其中,未完成次数和未传输次数统称为违规次数。
可选地,所述的基于联邦学习的模型训练方法,其中,所述接收所述区块链广播的目标组联邦模型之前,所述方法还包括:
接收所述区块链广播的所述第二建模节点所属组的第二组联邦模型;
基于所述第二组联邦模型,获得第一联邦信息;
将所述第一联邦信息上传至所述区块链;
其中,所述第一联邦信息包括本地数据对应所述第二组联邦模型的模型准确率。
在本发明实施例中,结合图4,具体说明目标组联邦模型的确定流程。
所述区块链接收参与联邦任务的每个建模节点(如图4中的第1组每个建模节点、第2组每个建模节点…第i组每个建模节点)上传的联邦模型,确定每个建模节点所属组的组联邦模型,并广播至每个建模节点。
所述第一建模节点通过所述区块链获取到所述第二组联邦模型,由于所述第二建模节点的数量为至少一个,所以所述第二组联邦模型的数量也为至少一个,将本地数据分别代入至少一个第二组联邦模型中,得到对应至少一个第二组联邦模型的至少一个第一联邦信息,并将至少一个第一联邦信息上传至所述区块链。
进一步地,所述区块链接收到参与联邦任务的每个建模节点上传的对应至少一个第二组联邦模型的至少一个第一联邦信息,计算出每组联邦模型的模型准确率平均值,若存在模型准确率平均值低于目标单边模型的模型准确率的组联邦模型,则将该组联邦模型进行删除,并将剩余组联邦模型,即目标组联邦模型广播至每个建模节点。
可选地,所述的基于联邦学习的模型训练方法,其中,所述根据所述目标组联邦模型对目标数据进行预测,包括:
将所述目标数据输入所述目标组联邦模型中,获得至少一个输出结果;
采用投票方式,对所述至少一个输出结果进行选择,获得目标预测结果。
需要说明的是,所述目标组联邦模型的数量为至少一个,将所述目标数据输入至少一个所述目标组联邦模型中,得到至少一个输出结果,并采用投票方式,选择投票次数最高的输出结果作为目标预测结果。
综上,本发明实施例的基于联邦学习的模型训练方法具有如下有益效果:
1.将建模节点进行分组,控制每个建模节点的影响范围,从而降低恶意建模节点的影响范围,提高横向模型精度;
2.在联邦任务迭代时,采用其他建模节点的模型梯度进行甄别,提升联邦模型的模型准确率,降低数据非独立同分布影响;
3.剔除模型效果差的联邦模型,防止污染组联邦模型;
4.剔除模型效果差的组联邦模型,防止污染目标组联邦模型;
5.使用区块链,实现共同监督,防止存在作弊的建模节点。
如图5所示,本发明实施例还提供一种基于联邦学习的模型训练方法,应用于区块链,所述方法包括:
步骤S501:接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型,所述第一建模节点和所述第二建模节点所属不同组;
在本发明实施例中,所述第一建模节点和所述第二建模节点分别利用所属组的相邻建模节点进行训练,获得所述第一联邦模型和所述第二联邦模型,控制每个建模节点的影响范围,从而降低恶意建模节点的影响范围。而且,采用相邻节点传递的模型进行甄别,从而提升联邦模型的准确率,降低数据非独立同分布影响。
步骤S502:基于所述第一联邦模型以及所述第二联邦模型,确定目标组联邦模型;
需要说明的是,所述区块链可以达到共同监督的效果,防止参与联邦任务的建模节点存在作弊行为。这里,所述目标组联邦模型的数量为至少一个,是所述区块链基于参与联邦任务的每个建模节点的联邦模型确定的。
步骤S503:将所述目标组联邦模型分别广播至所述第一建模节点和所述第二建模节点。
在本发明实施例中,将所述目标组联邦模型分别广播至参与联邦任务的每个建模节点,每个建模节点可以根据所述目标组联邦模型对目标数据进行预测,提升预测精度。
本发明实施例,通过接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型,所述第一建模节点和所述第二建模节点所属不同组,基于所述第一联邦模型以及所述第二联邦模型,确定目标组联邦模型,将所述目标组联邦模型分别广播至所述第一建模节点和所述第二建模节点,利用分组技术控制建模节点的影响范围,降低恶意建模节点影响范围,剔除效果差的联邦模型和组联邦模型,提升模型训练效果。
可选地,所述的基于联邦学习的模型训练方法,其中,所述步骤S501:接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型之前,所述方法还包括:
接收所述第一建模节点上传的所述第一建模节点的本地服务器的第一处理器参数指标以及所述第二建模节点上传的所述第二建模节点的本地服务器的第二处理器参数指标;
根据所述第一处理器参数指标和所述第二处理器参数指标,确定所述第一建模节点是否属于协调点以及第三建模节点是否属于非协调点;其中,所述第三建模节点与所述第一建模节点参与同一个联邦任务;
在确定所述第一建模节点属于所述协调点时,向所述第一建模节点广播协调通知信息;
在确定所述第三建模节点属于所述非协调点时,向所述第三建模节点广播非协调通知信息。
在本发明实施例中,处理器参数指标包括CPU的内核个数、未被分配的内存、CPU占用率以及系统中线程之间交换的数量等。所述区块链接收到参与联邦任务的每个建模节点上传的处理器参数指标,采用智能合约,将每个建模节点的处理器参数指标综合排序,得到排名靠前的建模节点作为协调点。具体地,取排名在前两位或者前三位的建模节点属于协调点,剩余的建模节点则归为非协调点。若参与联邦任务的建模节点的数量为三个,则协调点的数量为一个。所述区块链获取到协调点信息后,发送所述协调通知信息至所述协调点,发送所述非协调通知信息至所述非协调点;或者,发送所述协调通知信息至所述协调点,对所述非协调点不作发送信息操作。
可选地,所述的基于联邦学习的模型训练方法,其中,所述步骤S501:接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型之前,所述方法还包括:
接收所述第一建模节点上传的第一单边模型和第四建模节点上传的第二单边模型,所述第四建模节点是参与联邦任务中除所述第一建模节点之外的建模节点;
基于所述第一单边模型和所述第二单边模型,确定目标单边模型。
需要说明的是,所述第一单边模型和所述第二单边模型的获得方法详见上述应用于参与联邦任务的第一建模节点的方法,在此不再赘述。
可选地,所述的基于联邦学习的模型训练方法,其中,所述基于所述第一单边模型和所述第二单边模型,确定目标单边模型,包括:
向所述第一建模节点广播所述第二单边模型,以及向所述第四建模节点广播所述第一单边模型;
接收所述第一建模节点上传的所述第一建模节点基于所述第二单边模型获得的第一单边信息以及所述第四建模节点上传的所述第四建模节点基于所述第一单边模型获得的第二单边信息;
根据所述第一单边信息和所述第二单边信息,确定所述目标单边模型。
需要说明的是,所述第一单边信息和所述第二单边信息的获得方法详见上述应用于参与联邦任务的第一建模节点的方法,在此不再赘述。
进一步地,所述区块链接收到参与联邦任务的每个建模节点上传的单边信息(即所述第一单边信息和所述第二单边信息),并记录投票次数最高的模型编号,从而确定所述目标单边模型。
可选地,所述的基于联邦学习的模型训练方法,其中,所述步骤S501:接收第一建模节点上传的第一联邦模型之前,所述方法还包括:
接收所述第一建模节点所属组内每个建模节点上传的每个建模节点在每一轮联邦任务迭代时得到的状态向量;
根据每个建模节点的状态向量,获得每一轮联邦任务迭代时,所述第一建模节点所属组的模型准确率平均值;
将模型准确率平均值作为准确率阈值,并广播至所述第一建模节点。
需要说明的是,每个建模节点在每一轮联邦任务迭代时得到状态向量方法详见上述应用于参与联邦任务的第一建模节点的方法,在此不再赘述。
在本发明实施例中,所述区块链根据每组中每个建模节点在同一轮联邦任务迭代时的模型准确率,确定每组的每一轮联邦任务迭代时的模型准确率平均值,作为每组该轮的准确率阈值,并广播至该组的每个建模节点。
可选地,所述的基于联邦学习的模型训练方法,其中,所述步骤S502:基于所述第一联邦模型以及所述第二联邦模型,确定目标组联邦模型,包括:
基于所述第一联邦模型,确定所述第一建模节点所属组的第一组联邦模型,以及基于所述第二联邦模型,确定所述第二建模节点所属组的第二组联邦模型;
将所述第二组联邦模型广播至所述第一建模节点,以及将所述第一组联邦模型广播至所述第二建模节点;
接收所述第一建模节点上传的所述第一建模节点基于所述第二组联邦模型获得的第一联邦信息,以及接收所述第二建模节点上传的所述第二建模节点基于所述第一组联邦模型获得的第二联邦信息;
根据所述第一联邦信息和所述第二联邦信息,确定所述目标组联邦模型。
需要说明的是,所述第一联邦信息和所述第二联邦信息的获得方法详见上述应用于参与联邦任务的第一建模节点的方法,在此不再赘述。
可选地,所述的基于联邦学习的模型训练方法,其中,所述基于所述第一联邦模型,确定所述第一建模节点所属组的第一组联邦模型,包括:
统计所述第一建模节点所属组内每个建模节点的违规次数;
选择所述第一建模节点所属组内违规次数最高的建模节点作为违规建模节点;
根据所述违规建模节点的第一准确率向量和第二准确率向量,确定所述第一组联邦模型;
其中,所述第一准确率向量是根据预设联邦任务迭代轮数对应的模型准确率确定的,所述第二准确率向量是根据预设单边模型迭代轮数对应的模型准确率确定的。
需要说明的是,所述第一准确率向量v1=[pre_fed1,pre_fed2,pre_fed3],其中,pre_fed1为第轮联邦任务迭代对应的模型准确率;pre_fed2为第/>轮联邦任务迭代对应的模型准确率;pre_fed3为第L轮联邦任务迭代对应的模型准确率;L表示该违规建模节点的联邦任务迭代总轮数。
所述第二准确率向量v2=[pre1,pre2,pre3],其中,pre1为第轮单边模型迭代对应的模型准确率;pre2为第/>轮单边模型迭代对应的模型准确率;pre3为第M轮单边模型迭代对应的模型准确率;M表示该违规建模节点的单边模型迭代总轮数。
在本发明实施例中,所述违规次数包括如上述应用于参与联邦任务的第一建模节点的方法中的未传输次数和未完成次数。
可选地,所述的基于联邦学习的模型训练方法,其中,所述统计所述第一建模节点所属组内每个建模节点的违规次数,包括:
每满足以下一项时,所述第一建模节点的违规次数增加一次:
在第一预设时长内,未接收到所述第一建模节点上传的第一单边模型;
在第二预设时长内,未接收到所述第一建模节点上传的第一单边信息;
在第三预设时长内,未接收到所述第一建模节点上传的每一轮联邦任务迭代时得到的状态向量;
在第四预设时长内,获取到所述第一建模节点的本地模型梯度未传递到第二相邻节点的信息,所述第二相邻点与所述第一建模节点所属同组。
在本发明实施例中,以所述第一建模节点举例,说明每个建模节点在满足如上一项时需要增加一次违规次数,具体地违规次数的统计时机如上所述应用于参与联邦任务的第一建模节点的方法中涉及的统计时机,在此不再赘述。
需要说明的是,所述第一预设时长、所述第二预设时长、所述第三预设时长以及所述第四预设时长根据配置确定,具体不作限制。
可选地,所述的基于联邦学习的模型训练方法,其中,所述根据所述违规建模节点的第一准确率向量和第二准确率向量,确定所述第一组联邦模型,包括:
将所述第一准确率向量和所述第二准确率向量中对应位置的元素的进行比较,获取第一比较结果;
根据所述第一比较结果,确定所述第一组联邦模型。
需要说明的是,所述第一比较结果为,所述第一准确率向量中各元素的值大于所述第二准确率向量中相同位置元素的数量。
可选地,所述的基于联邦学习的模型训练方法,其中,所述根据所述第一比较结果,确定所述第一组联邦模型,包括:
在所述第一比较结果小于预设数值,且所述第一准确率向量中第一预设位置的元素小于所述第二准确率向量中所述第一预设位置的元素时,根据所述第一建模节点所属组内除所述第一建模节点之外的每个建模节点的联邦模型,确定所述第一组联邦模型。
在本发明实施例中,所述预设数值为3;所述第一准确率向量中第一预设位置的元素小于所述第二准确率向量中所述第一预设位置的元素,即pre_fed3<pre3时,剔除所述第一建模节点,并根据所述第一建模节点所属组内除所述第一建模节点之外的每个建模节点的联邦模型的平均值,确定所述第一组联邦模型。
需要说明的是,所述第二建模节点所属组的第二组联邦模型的方法同所述第一组联邦模型,在此不再赘述。
可选地,所述的基于联邦学习的模型训练方法,其中,所述根据所述第一联邦信息和所述第二联邦信息,确定所述目标组联邦模型,包括:
将所述第一联邦信息和所述第二联邦信息分别与目标单边模型的模型准确率进行比较,获得第二比较结果;
根据所述第二比较结果,确定所述目标组联邦模型。
在本发明实施例中,将模型准确率低于所述目标单边模型的模型准确率的联邦信息对应的组联邦模型进行删除,剩余组联邦模型作为所述目标组联邦模型并广播至参与联邦任务的每个建模节点。
需要说明的是,本发明实施例的基于联邦学习的模型训练方法,能够实现上述应用于基于联邦学习的模型训练方法的方法实施例中参与联邦任务的第一建模节点实现的所有步骤,且能够达到相同或者相似的技术效果,在此不再赘述。
如图6所示,本发明实施例还提供一种电子设备600,应用于参与联邦任务的第一建模节点,所述服务器包括处理器601和收发机602,其中:
所述处理器601用于,根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链,所述第一相邻节点、所述第二相邻节点以及所述第一建模节点所属同组;
所述收发机602用于,接收所述区块链广播的目标组联邦模型,所述目标组联邦模型是所述区块链基于所述第一联邦模型以及第二建模节点的第二联邦模型确定的,所述第二建模节点与所述第一建模节点所属不同组;
所述处理器601还用于,根据所述目标组联邦模型对目标数据进行预测。
本发明实施例,通过根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链,所述第一相邻节点、所述第二相邻节点以及所述第一建模节点所属同组,接收所述区块链广播的目标组联邦模型,所述目标组联邦模型是所述区块链基于所述第一联邦模型以及第二建模节点的第二联邦模型确定的,所述第二建模节点与所述第一建模节点所属不同组,根据所述目标组联邦模型对目标数据进行预测,利用分组技术控制建模节点的影响范围,降低恶意建模节点影响范围,剔除效果差的联邦模型和组联邦模型,提升模型训练效果。
可选地,所述的电子设备600,其中,所述处理器601还用于:
将本地服务器的第一处理器参数指标上传至所述区块链;
获取第一加密数据分布信息;
在接收到所述区块链广播的协调通知信息的情况下,接收第三建模节点传递的第二加密数据分布信息;其中,所述第三建模节点与所述第一建模节点在同一个联邦任务中,属于非协调点;所述协调通知信息是所述区块链根据所述第一处理器参数指标以及所述第二建模节点的第二处理器参数指标确定的;
根据所述第一加密数据分布信息和所述第二加密数据分布信息,确定所属组的小组信息。
可选地,所述的电子设备600,其中,所述处理器601具体用于:
根据本地数据中每个字段的四分位数,构建数据分布向量;
对所述数据分布向量进行加密,获得所述第一加密数据分布信息。
可选地,所述的电子设备600,其中,所述处理器601具体用于:
计算所述第一加密数据分布信息与所述第二加密数据分布信息之间的欧式距离;
在所述欧式距离小于预设距离阈值时,确定与所述第三建模节点所属同组;
根据所述第三建模节点,确定所述小组信息。
可选地,所述的电子设备600,其中,所述收发机602还用于:
将第一单边模型上传至所述区块链;
接收所述区块链广播的目标单边模型。
可选地,所述的电子设备600,其中,所述处理器601具体用于:
采用本地数据进行单边模型迭代,获得所述第一单边模型。
可选地,所述的电子设备600,其中,所述处理器601还用于:
接收所述区块链广播的第四建模节点的第二单边模型,所述第四建模节点是参与联邦任务中除所述第一建模节点之外的建模节点;
基于所述第二单边模型,获得第一单边信息;
将所述第一单边信息上传至所述区块链,所述第一单边信息用于所述区块链确定所述目标单边模型。
可选地,所述的电子设备600,其中,所述处理器601具体用于:
聚合所述第一相邻节点的本地模型梯度进行联邦任务迭代,确定所述第一联邦模型。
可选地,所述的电子设备600,其中,所述处理器601具体用于:
根据以下步骤,进行第一轮联邦任务迭代:
根据目标单边模型的模型权重,构建第一本地模型;
将所述第一本地模型的第一状态向量上传至所述区块链,以及将所述第一本地模型的梯度传递至所述第二相邻节点;
根据以下步骤,进行第二轮联邦任务迭代:
根据所述第一相邻节点在第一轮联邦任务迭代时得到的本地模型梯度,对所述第一本地模型进行更新,获得所述第二本地模型;
若所述第二本地模型的模型准确率大于或等于第一准确率阈值,或者所述第二本地模型的模型准确率大于或等于所述第一本地模型的模型准确率,将所述第二本地模型的第二状态向量上传至所述区块链,以及将所述第二本地模型的梯度传递至所述第二相邻节点,且保留所述第二本地模型;
若所述第二本地模型的模型准确率小于所述第一准确率阈值,且所述第二本地模型的模型准确率小于所述第一本地模型的模型准确率,将所述第一本地模型的第一状态向量上传至所述区块链,以及将所述第一本地模型的梯度传递至所述第二相邻节点,且不保留所述第二本地模型;
重复所述第二轮联邦任务迭代的步骤,直至达到预设迭代轮数或者模型准确率达到预设准确率阈值时,确定所述第一联邦模型,结束联邦任务;
其中,所述第一准确率阈值是所述区块链根据所述第一状态向量确定的。
可选地,所述的电子设备600,其中,所述处理器601还用于:
接收所述区块链广播的所述第二建模节点所属组的第二组联邦模型;
基于所述第二组联邦模型,获得第一联邦信息;
将所述第一联邦信息上传至所述区块链。
可选地,所述的电子设备600,其中,所述处理器601具体用于:
将所述目标数据输入所述目标组联邦模型中,获得至少一个输出结果;
采用投票方式,对所述至少一个输出结果进行选择,获得目标预测结果。
需要说明的是,本发明实施例提供的上述电子设备,能够实现上述应用于参与联邦任务的第一建模节点的基于联邦学习的模型训练方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
如图7所示,本发明实施例还提供一种服务器700,应用于区块链,所述服务器包括处理器701和收发机702,其中:
所述收发机702用于,接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型,所述第一建模节点和所述第二建模节点所属不同组;
所述处理器701用于,基于所述第一联邦模型以及所述第二联邦模型,确定目标组联邦模型;
所述收发机702还用于,将所述目标组联邦模型分别广播至所述第一建模节点和所述第二建模节点。
本发明实施例,通过接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型,所述第一建模节点和所述第二建模节点所属不同组,基于所述第一联邦模型以及所述第二联邦模型,确定目标组联邦模型,将所述目标组联邦模型分别广播至所述第一建模节点和所述第二建模节点,利用分组技术控制建模节点的影响范围,降低恶意建模节点影响范围,剔除效果差的联邦模型和组联邦模型,提升模型训练效果。
可选地,所述的服务器700,其中,所述处理器701还用于:
接收所述第一建模节点上传的所述第一建模节点的本地服务器的第一处理器参数指标以及所述第二建模节点上传的所述第二建模节点的本地服务器的第二处理器参数指标;
根据所述第一处理器参数指标和所述第二处理器参数指标,确定所述第一建模节点是否属于协调点以及第三建模节点是否属于非协调点;其中,所述第三建模节点与所述第一建模节点参与同一个联邦任务;
在确定所述第一建模节点属于所述协调点时,向所述第一建模节点广播协调通知信息;
在确定所述第三建模节点属于所述非协调点时,向所述第三建模节点广播非协调通知信息。
可选地,所述的服务器700,其中,所述处理器701还用于:
接收所述第一建模节点上传的第一单边模型和第四建模节点上传的第二单边模型,所述第四建模节点是参与联邦任务中除所述第一建模节点之外的建模节点;
基于所述第一单边模型和所述第二单边模型,确定目标单边模型。
可选地,所述的服务器700,其中,所述处理器701具体用于:
向所述第一建模节点广播所述第二单边模型,以及向所述第四建模节点广播所述第一单边模型;
接收所述第一建模节点上传的所述第一建模节点基于所述第二单边模型获得的第一单边信息以及所述第四建模节点上传的所述第四建模节点基于所述第一单边模型获得的第二单边信息;
根据所述第一单边信息和所述第二单边信息,确定所述目标单边模型。
可选地,所述的服务器700,其中,所述处理器701具体用于:
接收所述第一建模节点所属组内每个建模节点上传的每个建模节点在每一轮联邦任务迭代时得到的状态向量;
根据每个建模节点的状态向量,获得每一轮联邦任务迭代时,所述第一建模节点所属组的模型准确率平均值;
将模型准确率平均值作为准确率阈值,并广播至所述第一建模节点。
可选地,所述的服务器700,其中,所述处理器701具体用于:
基于所述第一联邦模型,确定所述第一建模节点所属组的第一组联邦模型,以及基于所述第二联邦模型,确定所述第二建模节点所属组的第二组联邦模型;
将所述第二组联邦模型广播至所述第一建模节点,以及将所述第一组联邦模型广播至所述第二建模节点;
接收所述第一建模节点上传的所述第一建模节点基于所述第二组联邦模型获得的第一联邦信息,以及接收所述第二建模节点上传的所述第二建模节点基于所述第一组联邦模型获得的第二联邦信息;
根据所述第一联邦信息和所述第二联邦信息,确定所述目标组联邦模型。
可选地,所述的服务器700,其中,所述处理器701具体用于:
统计所述第一建模节点所属组内每个建模节点的违规次数;
选择所述第一建模节点所属组内违规次数最高的建模节点作为违规建模节点;
根据所述违规建模节点的第一准确率向量和第二准确率向量,确定所述第一组联邦模型;
其中,所述第一准确率向量是根据预设联邦任务迭代轮数对应的模型准确率确定的,所述第二准确率向量是根据预设单边模型迭代轮数对应的模型准确率确定的。
可选地,所述的服务器700,其中,所述处理器701具体用于:
每满足以下一项时,所述第一建模节点的违规次数增加一次:
在第一预设时长内,未接收到所述第一建模节点上传的第一单边模型;
在第二预设时长内,未接收到所述第一建模节点上传的第一单边信息;
在第三预设时长内,未接收到所述第一建模节点上传的每一轮联邦任务迭代时得到的状态向量;
在第四预设时长内,获取到所述第一建模节点的本地模型梯度未传递到第二相邻节点的信息,所述第二相邻点与所述第一建模节点所属同组。
可选地,所述的服务器700,其中,所述处理器701具体用于:
将所述第一准确率向量和所述第二准确率向量中对应位置的元素的进行比较,获取第一比较结果;
根据所述第一比较结果,确定所述第一组联邦模型。
可选地,所述的服务器,其中,所述处理器701具体用于:
在所述第一比较结果小于预设数值,且所述第一准确率向量中第一预设位置的元素小于所述第二准确率向量中所述第一预设位置的元素时,根据所述第一建模节点所属组内除所述第一建模节点之外的每个建模节点的联邦模型,确定所述第一组联邦模型。
可选地,所述的服务器700,其中,所述处理器701具体用于:
将所述第一联邦信息和所述第二联邦信息分别与目标单边模型的准确率进行比较,获得第二比较结果;
根据所述第二比较结果,确定所述目标组联邦模型。
需要说明的是,本发明实施例提供的上述服务器,能够实现上述应用于区块链的基于联邦学习的模型训练方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
如图8所示,本发明实施例还提供一种基于联邦学习的模型训练装置,应用于参与联邦任务的第一建模节点,所述装置包括:
第一确定模块801,用于根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链,所述第一相邻节点、所述第二相邻节点以及所述第一建模节点所属同组;
第一接收模块802,用于接收所述区块链广播的目标组联邦模型,所述目标组联邦模型是所述区块链基于所述第一联邦模型以及第二建模节点的第二联邦模型确定的,所述第二建模节点与所述第一建模节点所属不同组;
第一预测模块803,用于根据所述目标组联邦模型对目标数据进行预测。
本发明实施例,通过根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链,所述第一相邻节点、所述第二相邻节点以及所述第一建模节点所属同组,接收所述区块链广播的目标组联邦模型,所述目标组联邦模型是所述区块链基于所述第一联邦模型以及第二建模节点的第二联邦模型确定的,所述第二建模节点与所述第一建模节点所属不同组,根据所述目标组联邦模型对目标数据进行预测,利用分组技术控制建模节点的影响范围,降低恶意建模节点影响范围,剔除效果差的联邦模型和组联邦模型,提升模型训练效果。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第一上传模块,用于将本地服务器的第一处理器参数指标上传至所述区块链;
第一获取模块,用于获取第一加密数据分布信息;
第三接收模块,用于在接收到所述区块链广播的协调通知信息的情况下,接收第三建模节点传递的第二加密数据分布信息;其中,所述第三建模节点与所述第一建模节点在同一个联邦任务中,属于非协调点;所述协调通知信息是所述区块链根据所述第一处理器参数指标以及所述第二建模节点的第二处理器参数指标确定的;
第三确定模块,用于根据所述第一加密数据分布信息和所述第二加密数据分布信息,确定所属组的小组信息。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第一获取模块具体用于:
根据本地数据中每个字段的四分位数,构建数据分布向量;
对所述数据分布向量进行加密,获得所述第一加密数据分布信息。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第三确定模块具体用于:
计算所述第一加密数据分布信息与所述第二加密数据分布信息之间的欧式距离;
在所述欧式距离小于预设距离阈值时,确定与所述第三建模节点所属同组;
根据所述第三建模节点,确定所述小组信息。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第二上传模块,用于将第一单边模型上传至所述区块链;
第四接收模块,用于接收所述区块链广播的目标单边模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第一获得模块,用于采用本地数据进行单边模型迭代,获得所述第一单边模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第五接收模块,用于接收所述区块链广播的第四建模节点的第二单边模型,所述第四建模节点是参与联邦任务中除所述第一建模节点之外的建模节点;
基于所述第二单边模型,获得第一单边信息;
将所述第一单边信息上传至所述区块链,所述第一单边信息用于所述区块链确定所述目标单边模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第一确定模块801包括:
第一确定子模块,用于聚合所述第一相邻节点的本地模型梯度进行联邦任务迭代,确定所述第一联邦模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第一确定子模块具体用于:
根据以下步骤,进行第一轮联邦任务迭代:
根据目标单边模型的模型权重,构建第一本地模型;
将所述第一本地模型的第一状态向量上传至所述区块链,以及将所述第一本地模型的梯度传递至所述第二相邻节点;
根据以下步骤,进行第二轮联邦任务迭代:
根据所述第一相邻节点在第一联邦任务迭代时得到的本地模型梯度,对所述第一本地模型进行更新,获得第二本地模型;
若所述第二本地模型的模型准确率大于或等于第一准确率阈值,或者所述第二本地模型的模型准确率大于或等于所述第一本地模型的模型准确率,将所述第二本地模型的第二状态向量上传至所述区块链,以及将所述第二本地模型的梯度传递至所述第二相邻节点,且保留所述第二本地模型;
若所述第二本地模型的模型准确率小于所述第一准确率阈值,且所述第二本地模型的模型准确率小于所述第一本地模型的模型准确率时,将所述第一本地模型的第一状态向量上传至所述区块链,以及将所述第一本地模型的梯度传递至所述第二相邻节点,且不保留所述第二本地模型;
重复所述第二轮联邦任务迭代的步骤,直至达到预设迭代轮数或者模型准确率达到预设准确率阈值时,确定所述第一联邦模型,结束联邦任务;
其中,所述第一准确率阈值是所述区块链根据所述第一状态向量确定的。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第六接收模块,用于接收所述区块链广播的所述第二建模节点所属组的第二组联邦模型;
第二获得模块,用于基于所述第二组联邦模型,获得第一联邦信息;
第三上传模块,用于将所述第一联邦信息上传至所述区块链。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第一预测模块803具体用于:
将所述目标数据输入所述目标组联邦模型中,获得至少一个输出结果;
采用投票方式,对所述至少一个输出结果进行选择,获得目标预测结果。
需要说明的是,本发明实施例提供的上述装置,能够实现上述应用于参与联邦任务的第一建模节点的基于联邦学习的模型训练方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
如图9所示,本发明实施例还提供一种基于联邦学习的模型训练装置,应用于区块链,所述装置包括:
第二接收模块901,用于接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型,所述第一建模节点和所述第二建模节点所属不同组;
第二确定模块901,用于基于所述第一联邦模型以及所述第二联邦模型,确定目标组联邦模型;
第一广播模块903,用于将所述目标组联邦模型分别广播至所述第一建模节点和所述第二建模节点。
本发明实施例,通过接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型,所述第一建模节点和所述第二建模节点所属不同组,基于所述第一联邦模型以及所述第二联邦模型,确定目标组联邦模型,将所述目标组联邦模型分别广播至所述第一建模节点和所述第二建模节点,利用分组技术控制建模节点的影响范围,降低恶意建模节点影响范围,剔除效果差的联邦模型和组联邦模型,提升模型训练效果。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第七接收模块,用于接收所述第一建模节点上传的所述第一建模节点的本地服务器的第一处理器参数指标以及所述第二建模节点上传的所述第二建模节点的本地服务器的第二处理器参数指标;
第四确定模块,用于根据所述第一处理器参数指标和所述第二处理器参数指标,确定所述第一建模节点是否属于协调点以及第三建模节点是否属于非协调点;其中,所述第三建模节点与所述第一建模节点参与同一个联邦任务;第二广播模块,用于在确定所述第一建模节点属于所述协调点时,向所述第一建模节点广播协调通知信息;
第三广播模块,用于在确定所述第三建模节点属于所述非协调点时,向所述第三建模节点广播非协调通知信息。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第八接收模块,用于接收所述第一建模节点上传的第一单边模型和第四建模节点上传的第二单边模型,所述第四建模节点是参与联邦任务中除所述第一建模节点之外的建模节点;
第五确定模块,用于基于所述第一单边模型和所述第二单边模型,确定目标单边模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第五确定模块具体用于:
向所述第一建模节点广播所述第二单边模型,以及向所述第四建模节点广播所述第一单边模型;
接收所述第一建模节点上传的所述第一建模节点基于所述第二单边模型获得的第一单边信息以及所述第四建模节点上传的所述第四建模节点基于所述第一单边模型获得的第二单边信息;
根据所述第一单边信息和所述第二单边信息,确定所述目标单边模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述装置还包括:
第九接收模块,用于接收所述第一建模节点所属组内每个建模节点上传的每个建模节点在每一轮联邦任务迭代时得到的状态向量;
第三获得模块,用于根据每个建模节点的状态向量,获得每一轮联邦任务迭代时,所述第一建模节点所属组的模型准确率平均值;
第四广播模块,用于将模型准确率平均值作为准确率阈值,并广播至所述第一建模节点。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第二确定模块902,包括:
第二确定子模块,用于基于所述第一联邦模型,确定所述第一建模节点所属组的第一组联邦模型,以及基于所述第二联邦模型,确定所述第二建模节点所属组的第二组联邦模型;
第一广播子模块,用于将所述第二组联邦模型广播至所述第一建模节点,以及将所述第一组联邦模型广播至所述第二建模节点;
第一接收子模块,用于接收所述第一建模节点上传的所述第一建模节点基于所述第二组联邦模型获得的第一联邦信息,以及接收所述第二建模节点上传的所述第二建模节点基于所述第一组联邦模型获得的第二联邦信息;
第三确定子模块,用于根据所述第一联邦信息和所述第二联邦信息,确定所述目标组联邦模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第二确定子模块,包括:
统计单元,用于统计所述第一建模节点所属组内每个建模节点的违规次数;
选择单元,用于选择所述第一建模节点所属组内违规次数最高的建模节点作为违规建模节点;
确定单元,用于根据所述违规建模节点的第一准确率向量和第二准确率向量,确定所述第一组联邦模型;
其中,所述第一准确率向量是根据预设联邦任务迭代轮数对应的模型准确率确定的,所述第二准确率向量是根据预设单边模型迭代轮数对应的模型准确率确定的。
可选地,所述的基于联邦学习的模型训练装置,其中,所述统计单元具体用于:
每满足以下一项时,所述第一建模节点的违规次数增加一次:
在第一预设时长内,未接收到所述第一建模节点上传的第一单边模型;
在第二预设时长内,未接收到所述第一建模节点上传的第一单边信息;
在第三预设时长内,未接收到所述第一建模节点上传的每一轮联邦任务迭代时得到的状态向量;
在第四预设时长内,获取到所述第一建模节点的本地模型梯度未传递到第二相邻节点的信息,所述第二相邻点与所述第一建模节点所属同组。
可选地,所述的基于联邦学习的模型训练装置,其中,所述确定单元,包括:
比较子单元,用于将所述第一准确率向量和所述第二准确率向量中对应位置的元素的进行比较,获取第一比较结果;
确定子单元,用于确定根据所述第一比较结果,确定所述第一组联邦模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述确定子单元具体用于:
在所述第一比较结果小于预设数值,且所述第一准确率向量中第一预设位置的元素小于所述第二准确率向量中所述第一预设位置的元素时,根据所述第一建模节点所属组内除所述第一建模节点之外的每个建模节点的联邦模型,确定所述第一组联邦模型。
可选地,所述的基于联邦学习的模型训练装置,其中,所述第三确定子模块具体用于:
将所述第一联邦信息和所述第二联邦信息分别与目标单边模型的准确率进行比较,获得第二比较结果;
根据所述第二比较结果,确定所述目标组联邦模型。
需要说明的是,本发明实施例提供的上述装置,能够实现上述应用于区块链的基于联邦学习的模型训练方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
本发明实施例还提供一种电子设备,如图10所示,处理器1001;以及通过总线接口1002与所述处理器1001相连接的存储器1003,所述存储器1003用于存储所述处理器1001在执行操作时所使用的程序和数据,处理器1001调用并执行所述存储器1003中所存储的程序和数据。
其中,收发机1004与总线接口1002连接,用于在处理器1001的控制下接收和发送数据。
其中,在图10中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1001代表的一个或多个处理器和存储器1003代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机1004可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器1001负责管理总线架构和通常的处理,存储器1003可以存储处理器1001在执行操作时所使用的数据。
本领域技术人员可以理解,实现上述实施例的全部或者部分步骤可以通过硬件来完成,也可以通过程序来指示相关的硬件来完成,所述程序包括执行上述方法的部分或者全部步骤的指令;且该程序可以存储于一可读存储介质中,存储介质可以是任何形式的存储介质。
本发明实施例还提供一种服务器,如图11所示,处理器1101;以及通过总线接口1102与所述处理器1101相连接的存储器1103,所述存储器1103用于存储所述处理器1101在执行操作时所使用的程序和数据,处理器1101调用并执行所述存储器1103中所存储的程序和数据。
其中,收发机1104与总线接口1102连接,用于在处理器1101的控制下接收和发送数据。
其中,在图11中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1101代表的一个或多个处理器和存储器1103代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机1104可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器1101负责管理总线架构和通常的处理,存储器1103可以存储处理器1101在执行操作时所使用的数据。
本领域技术人员可以理解,实现上述实施例的全部或者部分步骤可以通过硬件来完成,也可以通过程序来指示相关的硬件来完成,所述程序包括执行上述方法的部分或者全部步骤的指令;且该程序可以存储于一可读存储介质中,存储介质可以是任何形式的存储介质。
本发明实施例还提供一种可读存储介质,其上存储有程序或指令,所述程序或指令被处理器执行时实现如上任一项所述的基于联邦学习的模型训练方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述收发方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。
Claims (29)
1.一种基于联邦学习的模型训练方法,其特征在于,应用于参与联邦任务的第一建模节点,所述方法包括:
根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链,所述第一相邻节点、所述第二相邻节点以及所述第一建模节点所属同组;
接收所述区块链广播的目标组联邦模型,所述目标组联邦模型是所述区块链基于所述第一联邦模型以及第二建模节点的第二联邦模型确定的,所述第二建模节点与所述第一建模节点所属不同组;
根据所述目标组联邦模型对目标数据进行预测。
2.根据权利要求1所述的基于联邦学习的模型训练方法,其特征在于,所述根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链之前,所述方法还包括:
将本地服务器的第一处理器参数指标上传至所述区块链;
获取第一加密数据分布信息;
在接收到所述区块链广播的协调通知信息的情况下,接收第三建模节点传递的第二加密数据分布信息;其中,所述第三建模节点与所述第一建模节点在同一个联邦任务中,属于非协调点;所述协调通知信息是所述区块链根据所述第一处理器参数指标以及所述第二建模节点的第二处理器参数指标确定的;
根据所述第一加密数据分布信息和所述第二加密数据分布信息,确定所属组的小组信息。
3.根据权利要求2所述的基于联邦学习的模型训练方法,其特征在于,所述获取第一加密数据分布信息,包括:
根据本地数据中每个字段的四分位数,构建数据分布向量;
对所述数据分布向量进行加密,获得所述第一加密数据分布信息。
4.根据权利要求2所述的基于联邦学习的模型训练方法,其特征在于,所述根据所述第一加密数据分布信息和所述第二加密数据分布信息,确定所属组的小组信息,包括:
计算所述第一加密数据分布信息与所述第二加密数据分布信息之间的欧式距离;
在所述欧式距离小于预设距离阈值时,确定与所述第三建模节点所属同组;
根据所述第三建模节点,确定所述小组信息。
5.根据权利要求1所述的基于联邦学习的模型训练方法,其特征在于,所述根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链之前,所述方法还包括:
将第一单边模型上传至所述区块链;
接收所述区块链广播的目标单边模型。
6.根据权利要求5所述的基于联邦学习的模型训练方法,其特征在于,所述将第一单边模型上传至所述区块链之前,所述方法还包括:
采用本地数据进行单边模型迭代,获得所述第一单边模型。
7.根据权利要求5所述的基于联邦学习的模型训练方法,其特征在于,所述接收所述区块链广播的目标单边模型之前,所述方法还包括:
接收所述区块链广播的第四建模节点的第二单边模型,所述第四建模节点是参与联邦任务中除所述第一建模节点之外的建模节点;
基于所述第二单边模型,获得第一单边信息;
将所述第一单边信息上传至所述区块链,所述第一单边信息用于所述区块链确定所述目标单边模型。
8.根据权利要求1所述的基于联邦学习的模型训练方法,其特征在于,所述根据第一相邻节点的本地模型,确定第一联邦模型,包括:
聚合所述第一相邻节点的本地模型梯度进行联邦任务迭代,确定所述第一联邦模型。
9.根据权利要求8所述的基于联邦学习的模型训练方法,其特征在于,所述聚合所述第一相邻节点的本地模型梯度进行联邦任务迭代,确定所述第一联邦模型,包括:
根据以下步骤,进行第一轮联邦任务迭代:
根据目标单边模型的模型权重,构建第一本地模型;
将所述第一本地模型的第一状态向量上传至所述区块链,以及将所述第一本地模型的梯度传递至所述第二相邻节点;
根据以下步骤,进行第二轮联邦任务迭代:
根据所述第一相邻节点在第一轮本地任务迭代时得到的本地模型梯度,对所述第一本地模型进行更新,获得第二本地模型;
若所述第二本地模型的模型准确率大于或等于第一准确率阈值,或者所述第二本地模型的模型准确率大于或等于所述第一本地模型的模型准确率,将所述第二本地模型的第二状态向量上传至所述区块链,以及将所述第二本地模型的梯度传递至所述第二相邻节点,且保留所述第二本地模型;
若所述第二本地模型的模型准确率小于所述第一准确率阈值,且所述第二本地模型的模型准确率小于所述第一本地模型的模型准确率,将所述第一本地模型的第一状态向量上传至所述区块链,以及将所述第一本地模型的梯度传递至所述第二相邻节点,且不保留所述第二本地模型;
重复所述第二轮联邦任务迭代的步骤,直至达到预设迭代轮数或者模型准确率达到预设准确率阈值时,确定所述第一联邦模型,结束联邦任务;
其中,所述第一准确率阈值是所述区块链根据所述第一状态向量确定的。
10.根据权利要求1所述的基于联邦学习的模型训练方法,其特征在于,所述接收所述区块链广播的目标组联邦模型之前,所述方法还包括:
接收所述区块链广播的所述第二建模节点所属组的第二组联邦模型;
基于所述第二组联邦模型,获得第一联邦信息;
将所述第一联邦信息上传至所述区块链。
11.根据权利要求1所述的基于联邦学习的模型训练方法,其特征在于,所述根据所述目标组联邦模型对目标数据进行预测,包括:
将所述目标数据输入所述目标组联邦模型中,获得至少一个输出结果;
采用投票方式,对所述至少一个输出结果进行选择,获得目标预测结果。
12.一种基于联邦学习的模型训练方法,其特征在于,应用于区块链,所述方法包括:
接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型,所述第一建模节点和所述第二建模节点所属不同组;
基于所述第一联邦模型以及所述第二联邦模型,确定目标组联邦模型;
将所述目标组联邦模型分别广播至所述第一建模节点和所述第二建模节点。
13.根据权利要求12所述的基于联邦学习的模型训练方法,其特征在于,所述接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型之前,所述方法还包括:
接收所述第一建模节点上传的所述第一建模节点的本地服务器的第一处理器参数指标以及所述第二建模节点上传的所述第二建模节点的本地服务器的第二处理器参数指标;
根据所述第一处理器参数指标和所述第二处理器参数指标,确定所述第一建模节点是否属于协调点以及第三建模节点是否属于非协调点;其中,所述第三建模节点与所述第一建模节点参与同一个联邦任务;
在确定所述第一建模节点属于所述协调点时,向所述第一建模节点广播协调通知信息;
在确定所述第三建模节点属于所述非协调点时,向所述第三建模节点广播非协调通知信息。
14.根据权利要求12所述的基于联邦学习的模型训练方法,其特征在于,所述接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型之前,所述方法还包括:
接收所述第一建模节点上传的第一单边模型和第四建模节点上传的第二单边模型,所述第四建模节点是参与联邦任务中除所述第一建模节点之外的建模节点;
基于所述第一单边模型和所述第二单边模型,确定目标单边模型。
15.根据权利要求14所述的基于联邦学习的模型训练方法,其特征在于,所述基于所述第一单边模型和所述第二单边模型,确定目标单边模型,包括:
向所述第一建模节点广播所述第二单边模型,以及向所述第四建模节点广播所述第一单边模型;
接收所述第一建模节点上传的所述第一建模节点基于所述第二单边模型获得的第一单边信息以及所述第四建模节点上传的所述第四建模节点基于所述第一单边模型获得的第二单边信息;
根据所述第一单边信息和所述第二单边信息,确定所述目标单边模型。
16.根据权利要求12所述的基于联邦学习的模型训练方法,其特征在于,所述接收第一建模节点上传的第一联邦模型之前,所述方法还包括:
接收所述第一建模节点所属组内每个建模节点上传的每个建模节点在每一轮联邦任务迭代时得到的状态向量;
根据每个建模节点的状态向量,获得每一轮联邦任务迭代时,所述第一建模节点所属组的模型准确率平均值;
将模型准确率平均值作为准确率阈值,并广播至所述第一建模节点。
17.根据权利要求12所述的基于联邦学习的模型训练方法,其特征在于,所述基于所述第一联邦模型以及所述第二联邦模型,确定目标组联邦模型,包括:
基于所述第一联邦模型,确定所述第一建模节点所属组的第一组联邦模型,以及基于所述第二联邦模型,确定所述第二建模节点所属组的第二组联邦模型;
将所述第二组联邦模型广播至所述第一建模节点,以及将所述第一组联邦模型广播至所述第二建模节点;
接收所述第一建模节点上传的所述第一建模节点基于所述第二组联邦模型获得的第一联邦信息,以及接收所述第二建模节点上传的所述第二建模节点基于所述第一组联邦模型获得的第二联邦信息;
根据所述第一联邦信息和所述第二联邦信息,确定所述目标组联邦模型。
18.根据权利要求17所述的基于联邦学习的模型训练方法,其特征在于,所述基于所述第一联邦模型,确定所述第一建模节点所属组的第一组联邦模型,包括:
统计所述第一建模节点所属组内每个建模节点的违规次数;
选择所述第一建模节点所属组内违规次数最高的建模节点作为违规建模节点;
根据所述违规建模节点的第一准确率向量和第二准确率向量,确定所述第一组联邦模型;
其中,所述第一准确率向量是根据预设联邦任务迭代轮数对应的模型准确率确定的,所述第二准确率向量是根据预设单边模型迭代轮数对应的模型准确率确定的。
19.根据权利要求18所述的基于联邦学习的模型训练方法,其特征在于,所述统计所述第一建模节点所属组内每个建模节点的违规次数,包括:
每满足以下一项时,所述第一建模节点的违规次数增加一次:
在第一预设时长内,未接收到所述第一建模节点上传的第一单边模型;
在第二预设时长内,未接收到所述第一建模节点上传的第一单边信息;
在第三预设时长内,未接收到所述第一建模节点上传的每一轮联邦任务迭代时得到的状态向量;
在第四预设时长内,获取到所述第一建模节点的本地模型梯度未传递到第二相邻节点的信息,所述第二相邻点与所述第一建模节点所属同组。
20.根据权利要求18所述的基于联邦学习的模型训练方法,其特征在于,所述根据所述违规建模节点的第一准确率向量和第二准确率向量,确定所述第一组联邦模型,包括:
将所述第一准确率向量和所述第二准确率向量中对应位置的元素的进行比较,获取第一比较结果;
根据所述第一比较结果,确定所述第一组联邦模型。
21.根据权利要求20所述的基于联邦学习的模型训练方法,其特征在于,所述根据所述第一比较结果,确定所述第一组联邦模型,包括:
在所述第一比较结果小于预设数值,且所述第一准确率向量中第一预设位置的元素小于所述第二准确率向量中所述第一预设位置的元素时,根据所述第一建模节点所属组内除所述第一建模节点之外的每个建模节点的联邦模型,确定所述第一组联邦模型。
22.根据权利要求17所述的基于联邦学习的模型训练方法,其特征在于,所述根据所述第一联邦信息和所述第二联邦信息,确定所述目标组联邦模型,包括:
将所述第一联邦信息和所述第二联邦信息分别与目标单边模型的准确率进行比较,获得第二比较结果;
根据所述第二比较结果,确定所述目标组联邦模型。
23.一种电子设备,包括处理器和收发机,其特征在于:
所述处理器用于,根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链,所述第一相邻节点、所述第二相邻节点以及第一建模节点所属同组;
所述收发机用于,接收所述区块链广播的目标组联邦模型,所述目标组联邦模型是所述区块链基于所述第一联邦模型以及第二建模节点的第二联邦模型确定的,所述第二建模节点与所述第一建模节点所属不同组;
所述处理器还用于,根据所述目标组联邦模型对目标数据进行预测。
24.一种服务器,包括处理器和收发机,其特征在于:
所述收发机用于,接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型,所述第一建模节点和所述第二建模节点所属不同组;
所述处理器用于,基于所述第一联邦模型以及所述第二联邦模型,确定目标组联邦模型;
所述收发机还用于,将所述目标组联邦模型分别广播至所述第一建模节点和所述第二建模节点。
25.一种基于联邦学习的模型训练装置,其特征在于,包括:
第一确定模块,用于根据第一相邻节点的本地模型,确定第一联邦模型,并将所述第一联邦模型传递至第二相邻节点和区块链,所述第一相邻节点、所述第二相邻节点以及第一建模节点所属同组;
第一接收模块,用于接收所述区块链广播的目标组联邦模型,所述目标组联邦模型是所述区块链基于所述第一联邦模型以及第二建模节点的第二联邦模型确定的,所述第二建模节点与所述第一建模节点所属不同组;
第一预测模块,用于根据所述目标组联邦模型对目标数据进行预测。
26.一种基于联邦学习的模型训练装置,其特征在于,包括:
第二接收模块,用于接收第一建模节点上传的第一联邦模型和第二建模节点上传的第二联邦模型,所述第一建模节点和所述第二建模节点所属不同组;
第二确定模块,用于基于所述第一联邦模型以及所述第二联邦模型,确定目标组联邦模型;
第一广播模块,用于将所述目标组联邦模型分别广播至所述第一建模节点和所述第二建模节点。
27.一种电子设备,包括:收发器、处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令;其特征在于,所述处理器执行所述程序或指令时实现如权利要求1至11中任一项所述的基于联邦学习的模型训练方法的步骤。
28.一种服务器,包括:收发器、处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令;其特征在于,所述处理器执行所述程序或指令时实现如权利要求12至22中任一项所述的基于联邦学习的模型训练方法的步骤。
29.一种可读存储介质,其上存储有程序或指令,其特征在于,所述程序或指令被处理器执行时实现如权利要求1至11中任一项所述的基于联邦学习的模型训练方法的步骤,或者实现如权利要求12至22中任一项所述的基于联邦学习的模型训练方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210059228.2A CN116502733A (zh) | 2022-01-19 | 2022-01-19 | 一种基于联邦学习的模型训练方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210059228.2A CN116502733A (zh) | 2022-01-19 | 2022-01-19 | 一种基于联邦学习的模型训练方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116502733A true CN116502733A (zh) | 2023-07-28 |
Family
ID=87317168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210059228.2A Pending CN116502733A (zh) | 2022-01-19 | 2022-01-19 | 一种基于联邦学习的模型训练方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116502733A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117709486A (zh) * | 2024-02-05 | 2024-03-15 | 清华大学 | 一种面向协作学习的动态聚合方法及装置 |
-
2022
- 2022-01-19 CN CN202210059228.2A patent/CN116502733A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117709486A (zh) * | 2024-02-05 | 2024-03-15 | 清华大学 | 一种面向协作学习的动态聚合方法及装置 |
CN117709486B (zh) * | 2024-02-05 | 2024-04-19 | 清华大学 | 一种面向协作学习的动态聚合方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112770291B (zh) | 基于联邦学习和信任评估的分布式入侵检测方法及系统 | |
CN104714852B (zh) | 一种适用于分布式机器学习的参数同步优化方法及其系统 | |
WO2022100191A1 (zh) | 一种分布式传感器网络数据融合方法及系统 | |
CN110443375A (zh) | 一种联邦学习方法及装置 | |
CN113518007B (zh) | 一种基于联邦学习的多物联网设备异构模型高效互学习方法 | |
CN115329985B (zh) | 无人集群智能模型训练方法、装置和电子设备 | |
CN103477595A (zh) | 网络、数据传送节点、通信方法和程序 | |
CN116502733A (zh) | 一种基于联邦学习的模型训练方法和装置 | |
CN114301935B (zh) | 一种基于声誉的物联网边云协同联邦学习节点选择方法 | |
CN113158544A (zh) | 车载内容中心网络下基于联邦学习的边缘预缓存策略 | |
CN117392483B (zh) | 基于增强学习的相册分类模型训练加速方法、系统及介质 | |
CN114492849B (zh) | 一种基于联邦学习的模型更新方法及装置 | |
CN117313832A (zh) | 基于双向知识蒸馏的联合学习模型训练方法、装置及系统 | |
CN113850396B (zh) | 隐私增强型联邦决策方法、装置、系统和存储介质 | |
CN117806838B (zh) | 基于异构数据的设备分簇方法、装置、设备、系统及介质 | |
Dridi et al. | Transfer learning for classification and prediction of time series for next generation networks | |
CN114022731A (zh) | 基于drl的联邦学习节点选择方法 | |
CN103593543A (zh) | 一种更新p2p网络用户主观行为分析模型参数的方法及系统 | |
CN114491616A (zh) | 基于区块链和同态加密的联邦学习方法和应用 | |
CN116541831A (zh) | 一种基于区块链与联邦学习的双重防御方法 | |
CN114401192B (zh) | 一种多sdn控制器协同训练方法 | |
CN111710153A (zh) | 交通流量的预测方法、装置、设备及计算机存储介质 | |
KR102416342B1 (ko) | 3차원 셀룰러 네트워크에서 간헐적 인식 연합 학습 방법 | |
CN116069767A (zh) | 设备数据清洗方法、装置、计算机设备及介质 | |
CN117687801B (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 |