CN112712182B - 一种基于联邦学习的模型训练方法、装置及存储介质 - Google Patents
一种基于联邦学习的模型训练方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112712182B CN112712182B CN202110331713.6A CN202110331713A CN112712182B CN 112712182 B CN112712182 B CN 112712182B CN 202110331713 A CN202110331713 A CN 202110331713A CN 112712182 B CN112712182 B CN 112712182B
- Authority
- CN
- China
- Prior art keywords
- participant
- response time
- gradient
- model
- cluster
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- 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
Abstract
本申请公开了一种基于联邦学习的模型训练方法,该方法应用于机器学习领域,本申请包括根据每个参与方节点的响应时间,对K个参与方节点进行聚类簇的划分处理,得到N个聚类簇;从N个聚类簇中选择目标聚类簇;从目标聚类簇中选择Ω个参与方节点;向Ω个参与方节点发送梯度更新请求,以使Ω个参与方节点根据梯度更新请求,对本地模型的第一本地模型梯度进行更新,以得到第二本地模型梯度;当接收到T个参与方节点发送的第二本地模型梯度时,根据T个第二本地模型梯度对联合模型进行模型训练。本申请实施例提供了装置及存储介质。本申请不仅可以降低服务器的总等待时间,而且可提升模型训练效果。
Description
技术领域
本申请涉及机器学习技术领域,尤其涉及一种基于联邦学习的模型训练方法、装置及存储介质。
背景技术
联邦学习(Federated-learning)是一种基于隐私保护的分布式机器学习训练方式,联邦学习的目标是在保证数据隐私安全及合法性的基础上,实现共同建模,能够在保护数据隐私的同时训练出一个高质量的中心化人工智能模型。
目前,针对联邦学习的效率优化问题,可采用节点选择方法进行优化。具体过程为,服务器选择设备资源充足的参与方节点进行联合模型训练和参数迭代,排除设备资源不充足的参与方节点,即通过剔除响应时间慢的参与方节点,以提升联邦学习的训练效率。
然而,虽然剔除响应时间慢的参与方节点能够在一定程度上提升联邦学习的训练效率,但是这部分参与方节点的样本数据并未参与到联合模型训练中,因此,会导致模型训练效果出现偏差,降低了模型预测的准确性。
发明内容
本申请实施例提供了一种基于联邦学习的模型训练方法、装置及存储介质。一方面,由于聚类簇内所有参与方节点的响应时间相近,因此,降低服务器的总等待时间,另一方面,从聚类簇的维度上筛选参与方节点,对于部分响应时间较慢的参与方节点而言,仍然有一定几率被选中,从而提升模型训练的效果。
有鉴于此,本申请一方面提供一种基于联邦学习的模型训练方法,包括:
获取K个参与方节点中每个参与方节点的响应时间,其中,K为大于1的整数;
根据每个参与方节点的响应时间,对K个参与方节点进行聚类簇的划分处理,得到N个聚类簇,其中,每个聚类簇包括至少一个参与方节点,N为大于或等于2的整数;
从N个聚类簇中选择一个聚类簇作为目标聚类簇;
若目标聚类簇中所包括的参与方节点数量大于或等于节点数量阈值,则对目标聚类簇中的参与方节点进行选择,得到Ω个参与方节点,其中,Ω为大于1的整数;
向Ω个参与方节点发送梯度更新请求,以使Ω个参与方节点中的每个参与方节点根据梯度更新请求,分别对所述每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的第一本地模型梯度更新为第二本地模型梯度;
当接收到Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,根据T个第二本地模型梯度对联合模型进行模型训练,以将联合模型的第一联合模型梯度更新为第二联合模型梯度,其中,T表示联邦批尺寸,T为大于或等于1,且小于或等于Ω的整数。
本申请另一方面提供一种模型训练装置,包括:
获取模块,用于获取K个参与方节点中每个参与方节点的响应时间,其中,K为大于1的整数;
划分模块,用于根据每个参与方节点的响应时间,对K个参与方节点进行聚类簇的划分处理,得到N个聚类簇,其中,每个聚类簇包括至少一个参与方节点,N为大于或等于2的整数;
选择模块,用于从N个聚类簇中选择一个聚类簇作为目标聚类簇;
选择模块,还用于若目标聚类簇中所包括的参与方节点数量大于或等于节点数量阈值,则对目标聚类簇中的参与方节点进行选择,得到Ω个参与方节点,其中,Ω为大于1的整数;
发送模块,用于向Ω个参与方节点发送梯度更新请求,以使Ω个参与方节点中的每个参与方节点根据梯度更新请求,分别对所述每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的第一本地模型梯度更新为第二本地模型梯度;
更新模块,用于当接收到Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,根据T个第二本地模型梯度对联合模型进行模型训练,以将联合模型的第一联合模型梯度更新为第二联合模型梯度,其中,T表示联邦批尺寸,T为大于或等于1,且小于或等于Ω的整数。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
获取模块,具体用于在第一目标时刻向K个参与方节点发送梯度更新请求;
接收K个参与方节点中每个参与方节点发送的第一本地模型梯度,并记录每个第一本地模型梯度所对应的接收时刻;
根据第一目标时刻以及每个第一本地模型梯度所对应的接收时刻,确定K个参与方节点中每个参与方节点所对应的响应时间。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
划分模块,具体用于获取至少两个待划分的聚类簇中每个聚类簇所对应的预设响应时间范围;
针对于每个聚类簇所对应的预设响应时间范围,将响应时间属于预设响应时间范围的参与方节点,加入至预设响应时间范围所对应的聚类簇中;
当K个参与方节点均加入至对应的聚类簇时,得到N个聚类簇。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
划分模块,具体用于根据每个参与方节点的响应时间,确定最大响应时间以及最小响应时间;
根据最大响应时间以及最小响应时间,确定总体响应时间范围;
对总体响应时间范围进行时间范围的划分处理,得到至少两个响应时间范围,其中,每个响应时间范围对应于一个聚类簇;
针对于每个聚类簇所对应的响应时间范围,将响应时间属于响应时间范围的参与方节点,加入至响应时间范围所对应的聚类簇中;
当K个参与方节点均加入至对应的聚类簇时,得到N个聚类簇。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
选择模块,具体用于对N个聚类簇中每个聚类簇所包括的参与方节点进行编号处理,得到每个参与方节点的编号结果,其中,任意两个参与方节点的编号结果均不重复;
生成一个随机数;
若随机数与N个聚类簇中任意一个参与方节点的编号结果匹配一致,则将任意一个参与方节点对应的聚类簇确定为目标聚类簇。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
选择模块,具体用于对N个聚类簇中每个聚类簇进行编号处理,得到每个聚类簇的编号结果,其中,任意两个聚类簇的编号结果均不重复;
生成一个随机数;
若随机数与N个聚类簇中任意一个聚类簇的编号结果匹配一致,则将任意一个聚类簇确定为目标聚类簇。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
选择模块,还用于从N个聚类簇中选择一个聚类簇作为目标聚类簇之后,若目标聚类簇中所包括的参与方节点数量小于节点数量阈值,则从目标聚类簇中选择所有的参与方节点;
发送模块,还用于向目标聚类簇中每个参与方节点发送梯度更新请求,以使目标聚类簇中的每个参与方节点根据梯度更新请求,分别对所述每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的第一本地模型梯度更新为第二本地模型梯度;
更新模块,还用于当接收到目标聚类簇中的每个参与方节点发送的第二本地模型梯度时,根据每个第二本地模型梯度对联合模型的第一联合模型梯度进行更新,以得到第二联合模型梯度。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,模型训练装置包括生成模块以及确定模块;
获取模块,还用于若目标聚类簇中所包括的参与方节点数量大于或等于节点数量阈值,则在选择模块从目标聚类簇中选择Ω个参与方节点之后,获取Ω个参与方节点中每个参与方节点所对应的历史响应时间;
生成模块,用于根据每个参与方节点所对应的历史响应时间,生成响应时间分布曲线;
划分模块,还用于对响应时间分布曲线进行区间划分,得到h个区间,其中,每个区间的间隔步长相等,h为大于1的整数;
确定模块,用于针对于待选择批尺寸,根据每个区间的间隔步长,参与方节点的最小响应时间,以及服务器在目标时间间隔之后接收到前b个参与方节点反馈的概率,确定服务器接收到前b个参与方节点反馈的期望等待时间,其中,待选择批尺寸表示为b,b为大于或等于1,且小于或等于Ω的整数;
确定模块,还用于针对于待选择批尺寸,根据服务器接收到前b个参与方节点反馈的期望等待时间,预设最大训练时间以及参与方节点的平均样本数量,确定服务器在接收到前b个更新响应后的梯度收敛程度;
确定模块,还用于当获取到Ω个梯度收敛程度时,从Ω个梯度收敛程度中选择最小梯度收敛程度,并将最小梯度收敛程度所对应的待选择批尺寸确定为联邦批尺寸。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
获取模块,具体用于获取响应时间关系表,其中,响应时间关系表用于记录每个参与方节点在预设时间段内的至少一个响应时间;
针对于Ω个参与方节点中的每个参与方节点,从响应时间关系表中获取每个参与方节点在预设时间段内的至少一个响应时间;
针对于Ω个参与方节点中的每个参与方节点,对每个参与方节点在预设时间段内的至少一个响应时间求进行平均值的处理,以得到历史响应时间。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
获取模块,具体用于获取响应时间关系表,其中,响应时间关系表用于记录每个参与方节点在前一次迭代所对应的响应时间;
针对于Ω个参与方节点中的每个参与方节点,从响应时间关系表中获取每个参与方节点在前一次迭代所对应的响应时间;
针对于Ω个参与方节点中的每个参与方节点,将每个参与方节点在前一次迭代所对应的响应时间作为历史响应时间。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
生成模块,还用于当接收到Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,根据T个第二本地模型梯度对联合模型进行模型训练,以将联合模型的第一联合模型梯度更新为第二联合模型梯度之后,根据第二联合模型梯度生成区块加入请求,其中,区块链加入请求携带第二联合模型梯度以及区块加入指令;
发送模块,还用于向区块链节点发送区块加入请求,以使区块链节点对第二联合模型梯度进行信息校验,若校验成功,则区块链节点创建当前区块,其中,当前区块存储第二联合模型梯度。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,模型训练装置包括接收模块以及确定模块;
发送模块,还用于当接收到Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,根据T个第二本地模型梯度对联合模型进行模型训练,以将联合模型的第一联合模型梯度更新为第二联合模型梯度之后,向K个参与方节点发送第二联合模型梯度,以使K个参与方节点中的每个参与方节点将本地模型的第二本地模型梯度更新为第二联合模型梯度;
发送模块,还用于在第二目标时刻向K个参与方节点发送梯度更新请求,以使K个参与方节点中的每个参与方节点根据梯度更新请求,分别对每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的第二联合模型梯度更新为第三本地模型梯度;
接收模块,用于接收K个参与方节点中每个参与方节点发送的第三本地模型梯度,并记录每个第三本地模型梯度所对应的接收时刻;
确定模块,还用于根据第二目标时刻以及每个第三本地模型梯度所对应的接收时刻,确定K个参与方节点中每个参与方节点所对应的响应时间。
本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方面所提供的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,提供了一种基于联邦学习的模型训练方法,首先获取K个参与方节点中每个参与方节点的响应时间,然后根据每个参与方节点的响应时间,对K个参与方节点进行聚类簇的划分处理,得到N个聚类簇,再从N个聚类簇中选择一个聚类簇作为目标聚类簇,如果目标聚类簇中包括的参与方节点大于或等于节点数量阈值,则对目标聚类簇中的参与方节点进行选择,得到Ω个参与方节点。接下来,可以向Ω个参与方节点发送梯度更新请求,以使Ω个参与方节点中的每个参与方节点根据梯度更新请求,分别对所述每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的第一本地模型梯度更新为第二本地模型梯度,最后,当接收到Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,根据T个第二本地模型梯度对联合模型进行模型训练,以将联合模型的第一联合模型梯度更新为第二联合模型梯度。通过上述方式,基于聚类的动态节点选择方法,按照每个参与方节点的响应时间,筛选出具有相近响应时间的参与方节点作为同一个聚类簇,由此,可从多个聚类簇中选择任意一个聚类簇进行后续的梯度更新。一方面,由于聚类簇内所有参与方节点的响应时间相近,因此,降低服务器的总等待时间,另一方面,从聚类簇的维度上筛选参与方节点,对于部分响应时间较慢的参与方节点而言,仍然有一定几率被选中,因此,这部分参与方节点也能加入到联合模型的训练中,从而提升模型训练的效果。
附图说明
图1为本申请实施例中横向联邦学习的一个示意图;
图2为本申请实施例中基于联邦学习系统的一个架构示意图;
图3为本申请实施例中联邦学习的一个工作流程示意图;
图4为本申请实施例中基于联邦学习的模型训练方法的一个实施例示意图;
图5为本申请实施例中基于聚类自动选择节点的一个联邦学习工作流程示意图;
图6为本申请实施例中基于响应时间分布曲线划分区间的一个示意图;
图7为本申请实施例中数据共享系统的一个架构示意图;
图8为本申请实施例中区块链的一个示意图;
图9为本申请实施例中生成区块链中的各个区块的一个流程示意图;
图10为本申请实施例中基于联邦学习的模型训练方法的一个整体流程示意图;
图11为本申请实施例中不同联邦批尺寸的模型预测准确率对比示意图;
图12为本申请实施例中模型训练装置的一个实施例示意图;
图13为本申请实施例中服务器的一个结构示意图。
具体实施方式
本申请实施例提供了一种基于联邦学习的模型训练方法、装置及存储介质。一方面,由于聚类簇内所有参与方节点的响应时间相近,因此,降低服务器的总等待时间,另一方面,从聚类簇的维度上筛选参与方节点,对于部分响应时间较慢的参与方节点而言,仍然有一定几率被选中,从而提升模型训练的效果。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
对于个人数据而言,由于终端设备(例如,手机和可穿戴设备等)每天都会产生大量的数据,考虑到算力需求,数据传输以及个人隐私限制,系统部署越来越倾向于本地数据存储的形式。对于行业数据而言,数据是以孤岛形式存在的,由于行业竞争、隐私安全以及行政手续复杂等问题,将分散在各地和各个机构的数据进行整合需要非常高的成本。基于此,为了解决数据孤岛的问题,提出了一个满足隐私保护和数据安全的可行解决方案,即联邦学习(Federated-learning)。联邦学习又名联合学习、联盟学习或者联邦机器学习。联邦学习是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。
可以理解的是,机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
机器学习涉及到人工智能(Artificial Intelligence,AI)技术领域,其中,人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
联邦学习需要利用大量参与方节点中存储的数据学习到一个全局的联合模型,而这些参与方节点彼此之间是不会共享数据的,由此实现多个参与方节点在不暴露各自隐私数据的前提下进行联合建模。其中,联邦学习可以分为横向联邦学习、纵向联邦学习与联邦迁移学习,本申请提供的模型训练方法可应用于横向联邦学习,请参阅图1,图1为本申请实施例中横向联邦学习的一个示意图,如图所示,在两个数据集的用户特征重叠较多而用户重叠较少的情况下,可以把数据集按照横向即特征维度切分,并取出双方特征相同而用户不完全相同的那部分数据进行训练。例如,有两家不同地区银行,它们的用户群体分别来自各自所在的地区,用户的交集很小,但是由于业务很相似,因此,记录的用户特征是相同的,于是可以使用横向联邦学习来构建联合模型。具体地,下面将结合不同的示例对联合建模的场景进行介绍。
一、不同银行或信贷机构之间实现联合建模;
商业银行有客户资金流的数据特征,互联网有客户信息流的数据特征,二者数据融汇联合建模之后,会得到一个更好的模型算法,但是出于合规和商业利益等考虑,这些数据是无法直接共享。假设银行机构A和银行机构B需要联合训练一个风控预测模型,出于数据隐私保护和安全考虑,两个机构之间无法直接进行数据交换,于是,银行机构A和银行机构B分别使用本地的数据训练本地模型,将训练得到的本地模型梯度加密后,上传至服务器,由服务器根据不同银行机构上报的本地模型梯度,训练得到一个联合模型。
二、不同医疗机构之间实现联合建模;
在重大疾病早期筛查和预测领域,如果需要建立大数据疾病预测模型,就需要将居民在不同医院的医疗信息与健康档案进行整合与建模。但由于信息系统不统一,医院管理机构对于数据隐私泄露的担忧,和相关数据保护法规的限制,相关机构之间形成了数据壁垒。假设医疗机构A和医疗机构B需要联合训练一个疾病预测模型,出于数据隐私保护和安全考虑,两个机构之间无法直接进行数据交换,于是,医疗机构A和医疗机构B分别使用本地的数据训练本地模型,将训练得到的本地模型梯度加密后,上传至服务器,由服务器根据不同医疗机构上报的本地模型梯度,训练得到一个联合模型。
三、不同电商平台之间实现联合建模;
随着互联网技术的发展,电商交易越来越深入人们的生活,同一个用户可能会使用多个不同的电商机构进行购物。由于这些电商机构无法直接共享数据,电商机构之间形成了数据壁垒。假设电商机构A和电商机构B需要联合训练一个商品推荐模型,出于数据隐私保护和安全考虑,两个机构之间无法直接进行数据交换,于是,电商机构A和电商机构B分别使用本地的数据训练本地模型,将训练得到的本地模型梯度加密后,上传至服务器,由服务器根据不同电商机构上报的本地模型梯度,训练得到一个联合模型。
从应用角度而言,本申请不仅局限于上述联合建模场景,对在隐私保护约束下的多客户端联合建模的多种场景均可应用。从模型角度而言,服务器在对所有参与方进行聚类的聚类算法,以及联合建模时使用的模型架构均可根据实际应场景灵活变动。
联邦学习需要在服务器和多个参与方节点之间通过网络通信进行多轮交互训练,而每个参与方具有独立的设备或网络环境,例如,不同设备、不同的网络运营商以及不同的网络负载等。由于部分参与方节点的设备与网络环境可能存在不稳定的情况,例如,个别参与方节点的设备性能差,网络负载过高甚至网络中断等,造成这些参与方节点与服务器响应时间较长,严重拖慢整个基于联邦学习的联合模型训练时间。针对联邦学习跨设备训练速度慢问题,本申请实施例提供了一种基于联邦学习的模型训练方法,能够自动调整跨设备的参与方节点的批尺寸大小,提升联邦学习跨设备训练效率。
该方法应用于图2所示的联邦学习系统,如图所示,联邦学习系统包括服务器和参与方节点,参与方节点可以是客户端,且客户端部署于终端设备上。此外,参与方节点也可以是本地服务器,图2以参与方节点是客户端为例进行说明。本申请涉及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、掌上电脑、个人电脑、智能电视、智能手表等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。服务器和终端设备的数量也不做限制。
由图2所示的联邦学习系统可见,将联合模型作为共享模型,不同的参与方节点可以分别从服务器下载联合模型到本地,然后将已下载的联合模型作为参与方节点的本地模型,再使用本地数据对本地模型进行训练,每个参与方节点训练完成后,分别向服务器上传变更后的本地模型梯度,服务器根据各个参与方节点上报的本地模型梯度对联合模型进行训练,由此,完成联合模型的一次迭代更新。
接下来将结合图2所示的联邦学习系统,介绍基于联邦学习的工作流程,请参阅图3,图3为本申请实施例中联邦学习的一个工作流程示意图,如图所示,图中示出若干个参与方节点,为了便于说明,下面将以参与方节点1为例进行说明,具体地;
在步骤A1中,参与方节点1(例如,手机、机构内部的服务器或者产品使用方等)从服务器端下载联合模型梯度,基于联合模型梯度更新本地模型。
在步骤A2中,参与方节点1采用本地数据对本地模型进行训练迭代,以得到本地模型梯度。
在步骤A3中,参与方节点1将本地模型梯度加密后,上传至服务器。
在步骤A4中,服务器等待来自多个参与方节点的本地模型梯度,并将这些本地模型梯度进行整合,然后在服务器侧对联合模型进行更新。
在步骤A5中,重复步骤A1至步骤A4,参与方节点不断将服务器端每次更新的联合模型下载到本地,然后在本地进行训练迭代,直到模型收敛,停止更新。
结合上述介绍,下面将对本申请中基于联邦学习的模型训练方法进行介绍,请参阅图3,本申请实施例中基于联邦学习的模型训练方法的一个实施例包括:
101、服务器获取K个参与方节点中每个参与方节点的响应时间,其中,K为大于1的整数;
本实施例中,服务器获取K个参与方节点中每个参与方节点的响应时间,其中,参与方节点是指与服务器通信的设备,且参与联邦学习的参与方节点数量大于1。
具体地,参与方节点的响应时间表示服务器向某一个参与方节点发送请求,到服务器接收到来自参与方节点反馈的时间。在一个示例中,服务器分别向每个参与方节点发送梯度更新请求,参与方节点响应于梯度更新请求并上报数据,于是服务器记录每个参与方节点的响应时间。在另一个示例中,服务器分别向每个参与方节点发送测试请求,参与方节点根据测试请求生成相应的测试响应,于是将生成测试响应所消耗的时间确定为响应时间。在另一个示例中,每个参与方节点都会统计自身的网络延时,于是将网络延时作为响应时间,并上报给服务器。
102、服务器根据每个参与方节点的响应时间,对K个参与方节点进行聚类簇的划分处理,得到N个聚类簇,其中,每个聚类簇包括至少一个参与方节点,N为大于或等于2的整数;
本实施例中,服务器结合K个参与方节点的响应时间,对K个参与方节点进行聚类簇的划分处理,得到N个聚类簇,N为大于或等于2的整数,因此,需要将K个参与方节点划分到至少两个聚类簇,使得每个聚类簇包括至少一个参与方节点。
103、服务器从N个聚类簇中选择一个聚类簇作为目标聚类簇;
本实施例中,服务器从已划分好的N个聚类簇中选择一个聚类簇作为目标聚类簇。在一个示例中,服务器随机从N个聚类簇中选择一个聚类簇作为目标聚类簇。在另一个示例中,服务器按照顺序依次选择聚类簇作为目标聚类簇。可以理解的是,服务器还可以采用其他方式选择目标聚类簇,此处不做限定。
104、若目标聚类簇中所包括的参与方节点数量大于或等于节点数量阈值,则服务器从目标聚类簇中选择Ω个参与方节点,其中,Ω为大于1的整数;
本实施例中,服务器根据目标聚类簇,确定该目标聚类簇中参与方节点的数量,如果目标聚类簇中所包括的参与方节点数量大于或等于节点数量阈值,那么服务器进一步从目标聚类簇中选择Ω个参与方节点。
具体地,服务器可以从目标聚类簇中随机选择Ω个参与方节点,或者,服务器从目标聚类簇中优先选择响应时间最小的Ω个参与方节点。
105、服务器向Ω个参与方节点发送梯度更新请求,以使Ω个参与方节点中的每个参与方节点根据梯度更新请求,分别对所述每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的第一本地模型梯度更新为第二本地模型梯度;
本实施例中,服务器向Ω个参与方节点发送梯度更新请求,Ω个参与方节点中的每个参与方节点根据梯度更新请求,分别对自身的本地模型进行迭代训练,由此,将本地模型的第一本地模型梯度更新为第二本地模型梯度。
需要说明的是,本申请中,虽然每个本地模型更新前的梯度都称为“第一本地模型梯度”,但是每个“第一本地模型梯度”的实际取值并不一定相同,例如,参与方节点A的第一本地模型梯度为(6,4,1),而参与方节点B的第一本地模型梯度为(8,2,2)。
需要说明的是,本申请中,虽然每个本地模型更新后的梯度都称为“第二本地模型梯度”,但是每个“第二本地模型梯度”的实际取值并不一定相同,例如,参与方节点A的第二本地模型梯度为(5,8,9),而参与方节点B的第二本地模型梯度为(4,5,5)。
106、当服务器接收到Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,服务器根据T个第二本地模型梯度对联合模型进行模型训练,以将联合模型的第一联合模型梯度更新为第二联合模型梯度,其中,T表示联邦批尺寸,T为大于或等于1,且小于或等于Ω的整数。
本实施例中,由于不同参与方节点在训练过程所消耗的时间以及响应服务器的时间可能存在差异,因此,为了提升联合模型的训练效率,服务器还可以设置一个联邦批尺寸(federated batch size),即T值,可以理解的是,本申请中采用的联邦批尺寸可以是一个预先设定好的取值,也可以是一个动态调整的取值。基于此,服务器在接收到T个参与方节点发送的第二本地模型梯度之后,可以对这T个第二本地模型梯度进行聚合。聚合的方式可以是求T个第二本地模型梯度的平均值,从而得到第二联合模型梯度,或者,聚合的方式可以是求T个第二本地模型梯度的进行加权平均,从而得到第二联合模型梯度,又或者采用其他方式进行聚合,此处不做限定。最后,服务器将第一联合模型梯度更新为第二联合模型梯度,由此,完成对联合模型的一次迭代训练。
可以理解的是,在机器模型训练过程中,批尺寸(batch size)对应一次模型迭代所使用的样本量大小,批尺寸的大小将影响到模型的优化程度和速度。而联邦批尺寸是指参与一次联合模型训练迭代的参与方节点个数。
为了便于理解,请参阅图5,图5为本申请实施例中基于聚类自动选择节点的一个联邦学习工作流程示意图,如图所示,具体地:
在步骤B1中,参与方节点从服务器端下载联合模型梯度,基于联合模型梯度更新本地模型。该联合模型在训练开始阶段被服务器进行随机初始化。
在步骤B2中,参与方节点采用本地数据对本地模型进行训练迭代,以得到本地模型梯度。
在步骤B3中,服务器基于每个参与方节点的响应时间划分为多个聚类簇,然后从这些聚类簇中选择一个聚类簇作为目标聚类簇,例如,选择聚类簇A作为目标聚类簇,于是从聚类簇A中选择Ω个参与方节点发送梯度更新请求,联邦模型训练通过控制Ω值的大小,来调节参与每轮迭代的参与方节点的最大个数。接收到请求的参与方节点将本地迭代后得到的本地模型梯度进行加密,然后上传至服务器。
在步骤B4中,服务器等待收集来自聚类簇A的本地模型梯度。当服务器接收到前T个参与方节点的本地模型梯度后,将所有收集到的本地模型梯度进行聚合,并在服务器对联合模型进行更新,提前进入下一轮迭代。此外,服务器还可以邀请所有参与方节点进行联合模型下载和本地模型更新。
在步骤B5中,重复步骤B1至步骤B4,参与方节点不断将服务器端每次更新的联合模型下载到本地,然后在本地进行训练迭代,直到模型收敛,停止更新。
进一步地,在服务器侧还可以进行参与方节点的选择以及联邦批尺寸的计算,具体地:
在步骤C1中,服务器基于每个参与方节点的响应时间,将所有参与方节点聚类为多个聚类簇,使得落入同一个聚类簇的参与方节点具有相近的响应时间。在每轮训练迭代中,服务器只选择一个聚类簇并选择该聚类簇内的Ω个参与方节点发送梯度更新请求。
在步骤C2中,服务器从所有的聚类簇中选择一个聚类簇作为目标聚类簇。
在步骤C3中,服务器基于响应时间分布的计算联邦批尺寸计算,得到联邦批尺寸T。
在步骤C4中,服务器等待目标聚类簇中前T个参与方节点反馈的本地模型梯度。
本申请实施例中,提供了一种基于联邦学习的模型训练方法,通过上述方式,基于聚类的动态节点选择方法,按照每个参与方节点的响应时间,筛选出具有相近响应时间的参与方节点作为同一个聚类簇,由此,可从多个聚类簇中选择任意一个聚类簇进行后续的梯度更新。一方面,由于聚类簇内所有参与方节点的响应时间相近,因此,降低服务器的总等待时间,另一方面,从聚类簇的维度上筛选参与方节点,对于部分响应时间较慢的参与方节点而言,仍然有一定几率被选中,因此,这部分参与方节点也能加入到联合模型的训练中,从而提升模型训练的效果。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,服务器获取K个参与方节点中每个参与方节点的响应时间,具体可以包括:
服务器在第一目标时刻向K个参与方节点发送梯度更新请求;
服务器接收K个参与方节点中每个参与方节点发送的第一本地模型梯度,并记录每个第一本地模型梯度所对应的接收时刻;
服务器根据第一目标时刻以及每个第一本地模型梯度所对应的接收时刻,确定K个参与方节点中每个参与方节点所对应的响应时间。
本实施例中,介绍了一种获取每个参与方节点响应时间的方式。服务器分别向每个参与方节点发送梯度更新请求,参与方节点响应于梯度更新请求并上报本地模型梯度,于是服务器根据接收到本地模型梯度的时刻,记录每个参与方节点的响应时间。
具体地,假设共有3个参与方节点,分别为参与方节点A、参与方节点B和参与方节点C。服务器在第一目标时刻(例如,10点50分00秒00毫秒)向3个参与方节点分别发送梯度更新请求。在一种实现方式中,每个参与方节点分别根据梯度更新请求,对本地模型进行迭代更新,以得到第一本地模型梯度。在另一个种实现方式中,参与方节点也可以在收到梯度更新请求之前,对本地模型进行迭代更新,以得到第一本地模型梯度。于是,服务器会接收到每个参与方节点发送的第一本地模型梯度,由此,服务器需要记录接收到每个第一本地模型梯度的时刻。
假设服务器在10点50分00秒20毫秒收到参与方节点A发送的第一本地模型梯度,因此,参与方节点A的响应时间为20毫秒。服务器在10点50分00秒30毫秒收到参与方节点B发送的第一本地模型梯度,因此,参与方节点B的响应时间为30毫秒。服务器在10点50分00秒50毫秒收到参与方节点C发送的第一本地模型梯度,因此,参与方节点B的响应时间为50毫秒。
其次,本申请实施例中,提供了一种获取每个参与方节点响应时间的方式,通过上述方式,考虑到联邦学习各个参与方的响应时间各不相同,在同一个联邦批尺寸中响应时间慢的参与方节点将严重拖累整体训练时间,因此,需要分别获取每个参与方节点的响应时间,然后基于参与方节点的响应时间分布将联邦学习的所有参与方节点聚类成不同的簇,使得落入相同簇的参与方节点具有相近的响应时间。在联邦学习的每次训练迭代中,服务器只选择相同簇内的多个参与方进行联合模型迭代,从而极大降低响应慢的参与方对响应快的参与方的拖累,在不损失联合建模效果的前提下提升联邦学习整体效率。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,服务器根据每个参与方节点的响应时间,对K个参与方节点进行聚类簇的划分处理,得到N个聚类簇,具体可以包括:
服务器获取至少两个待划分的聚类簇中每个聚类簇所对应的预设响应时间范围;
针对于每个聚类簇所对应的预设响应时间范围,服务器将响应时间属于预设响应时间范围的参与方节点,加入至预设响应时间范围所对应的聚类簇中;
当K个参与方节点均加入至对应的聚类簇时,服务器得到N个聚类簇。
本实施例中,介绍了一种基于固定时段划分聚类簇的方式。服务器预设划分好不同的预设响应时间范围,每个预设响应时间范围对应于一个聚类簇,然后根据每个参与方节点的响应时间,将参与方节点加入至对应的聚类簇中,划分完毕后,即可得到N个聚类簇。
具体地,假设预先划分了6个预设响应时间范围,为了便于理解,请参阅表1,表1为预设响应时间范围与聚类簇之间对应关系的一个示意。
表1
由表1可见,每个待划分的聚类簇对应于一个预设响应时间范围,假设有100个参与方节点,每个参与方节点具有一个响应时间,例如,参与方节点A的响应时间是33毫秒,那么参与方节点A加入至4号聚类簇。基于此,假设对100个参与方节点进行分组后,得到如表2所示的分簇结果。
表2
由表2可见,1号聚类簇和6号聚类簇中没有加入任何参与方节点,即最终划分为4个聚类簇,即N可以为4。需要说明的是,上述例子仅为一个示例,不应理解为对本申请的限定。
其次,本申请实施例中,提供了一种基于固定时段划分聚类簇的方式,通过上述方式,按照提前设定的预设响应时间范围,可直接将参与方节点划分至对应的聚类簇中,划分聚类簇的方式较为简便,从而提升聚类簇划分的效率。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,服务器根据每个参与方节点的响应时间,对K个参与方节点进行聚类簇的划分处理,得到N个聚类簇,具体可以包括:
服务器根据每个参与方节点的响应时间,确定最大响应时间以及最小响应时间;
服务器根据最大响应时间以及最小响应时间,确定总体响应时间范围;
服务器对总体响应时间范围进行时间范围的划分处理,得到至少两个响应时间范围,其中,每个响应时间范围对应于一个聚类簇;
针对于每个聚类簇所对应的响应时间范围,服务器将响应时间属于响应时间范围的参与方节点,加入至响应时间范围所对应的聚类簇中;
当K个参与方节点均加入至对应的聚类簇时,服务器得到N个聚类簇。
本实施例中,介绍了一种基于动态时段划分聚类簇的方式,服务器在获取到K个参与方节点中每个参与方节点的响应时间之后,根据最大响应时间以及最小响应时间,合理划分为N干个响应时间范围,然后根据每个参与方节点的响应时间,将参与方节点加入至对应的聚类簇中,划分完毕后,即可得到N个聚类簇。
具体地,假设最大响应时间是60毫秒,最小响应时间为10毫秒,基于此,总体响应时间范围为50毫秒,于是,可以预先划分为5个响应时间范围,为了便于理解,请参阅表3,表3为响应时间范围与聚类簇之间对应关系的一个示意。
表3
由表3可见,每个聚类簇对应于一个响应时间范围,假设有100个参与方节点,每个参与方节点具有一个响应时间,例如,参与方节点A的响应时间是33毫秒,那么参与方节点A加入至3号聚类簇。基于此,假设对100个参与方节点进行分组后,得到如表4所示的分簇结果。
表4
由表4可见,最终划分为5个聚类簇,即N可以为5。需要说明的是,上述例子仅为一个示例,不应理解为对本申请的限定。
其次,本申请实施例中,提供了一种基于动态时段划分聚类簇的方式,通过上述方式,根据每轮迭代所得到的每个参与方节点的响应时间,划分若干个响应时间范围,按照响应时间范围,可将参与方节点划分至对应的聚类簇中,划分聚类簇的方式较为灵活,从而提升聚类簇划分的准确度。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,服务器从N个聚类簇中选择一个聚类簇作为目标聚类簇,具体可以包括:
服务器对N个聚类簇中每个聚类簇所包括的参与方节点进行编号处理,得到每个参与方节点的编号结果,其中,任意两个参与方节点的编号结果均不重复;
服务器生成一个随机数;
若随机数与N个聚类簇中任意一个参与方节点的编号结果匹配一致,则服务器将任意一个参与方节点对应的聚类簇确定为目标聚类簇。
本实施例中,介绍了一种基于权重概率选择目标聚类簇的方式。由于不同的聚类簇中所包括的参与方节点数量可能不同,因此,从这些聚类簇中选择目标聚类簇时,可考虑到聚类簇中所包括的参与方节点数量。
具体地,假设有3个聚类簇,聚类簇A包括3个参与方节点,聚类簇B包括4个参与方节点,聚类簇C包括5个参与方节点,基于此,服务器对这3个聚类簇中每个聚类簇所包括的参与方节点进行编号处理,请参阅表5,表5为每个参与方节点对应的编号结果的一个示意。
表5
由表5可知,假设服务器基于1至12这个范围生成一个随机数,那么这个随机数命中聚类簇A的概率为3/12,命中聚类簇B的概率为4/12,命中聚类簇C的概率为5/12,即每个聚类簇被服务器选中作为目标聚类簇的概率与聚类簇所包括的参与方节点数量成正比。例如,随机数为5,则与聚类簇B中“参与方节点5”的编号结果一致,于是服务器将该节点(即“参与方节点5”)对应的聚类簇(即“聚类簇B”)确定为目标聚类簇。
其次,本申请实施例中,提供了一种基于权重概率选择目标聚类簇的方式,通过上述方式,联邦学习通常包含多个参与方节点,每个参与方节点可能具有独立的样本分布,因此,联合模型训练应该尽可能覆盖所有参与方节点的样本。基于此,为了使得模型训练尽可能公平地覆盖所有的参与方节点,由于参与方节点的聚类簇具有不同大小,可采用基于聚类簇大小选簇方法,即在每一轮梯度迭代中拥有参与方节点更多的聚类簇,被服务器选中参与梯度迭代的可能性越高,由此提升训练的公平性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,从N个聚类簇中选择一个聚类簇作为目标聚类簇,具体可以包括:
对N个聚类簇中每个聚类簇进行编号处理,得到每个聚类簇的编号结果,其中,任意两个聚类簇的编号结果均不重复;
生成一个随机数;
若随机数与N个聚类簇中任意一个聚类簇的编号结果匹配一致,则将任意一个聚类簇确定为目标聚类簇。
本实施例中,介绍了一种随机选择目标聚类簇的方式。虽然不同的聚类簇中所包括的参与方节点数量可能不同,但是从这些聚类簇中选择目标聚类簇时,可按照相等的概率进行抽取,即不考虑每个聚类簇中参与方节点数量对选择目标聚类簇的影响。
具体地,假设有3个聚类簇,聚类簇A包括3个参与方节点,聚类簇B包括4个参与方节点,聚类簇C包括5个参与方节点,基于此,服务器对这3个聚类簇进行编号处理,请参阅表6,表6为每个聚类簇对应的编号结果的一个示意。
表6
由表6可知,假设服务器基于1至3这个范围生成一个随机数,那么这个随机数命中聚类簇A的概率为1/3,命中聚类簇B的概率为1/3,命中聚类簇C的概率为1/3。例如,随机数为2,则与聚类簇B的编号结果一致,于是服务器将该聚类簇(即“聚类簇B”)确定为目标聚类簇。
其次,本申请实施例中,提供了一种随机选择目标聚类簇的方式,通过上述方式,联邦学习通常包含多个参与方节点,每个参与方节点可能具有独立的样本分布,因此,联合模型训练应该尽可能覆盖所有参与方节点的样本。基于此,为了使得模型训练尽可能公平地覆盖所有的参与方节点,可直接从多个聚类簇中随机选择一个聚类簇作为目标聚类簇,而选中每个聚类簇的概率是一样的,从而提升训练的公平性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,服务器从N个聚类簇中选择一个聚类簇作为目标聚类簇之后,还可以包括:
若目标聚类簇中所包括的参与方节点数量小于节点数量阈值,则服务器从目标聚类簇中选择所有的参与方节点;
服务器向目标聚类簇中每个参与方节点发送梯度更新请求,以使目标聚类簇中的每个参与方节点根据梯度更新请求,分别对所述每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的第一本地模型梯度更新为第二本地模型梯度;
当接收到目标聚类簇中的每个参与方节点发送的第二本地模型梯度时,服务器根据每个第二本地模型梯度对联合模型的第一联合模型梯度进行更新,以得到第二联合模型梯度。
本实施例中,介绍了一种选择参与方节点进行模型训练的方式。服务器根据目标聚类簇,确定该目标聚类簇中参与方节点的数量,如果目标聚类簇中所包括的参与方节点数量小于节点数量阈值,那么服务器进一步从目标聚类簇中选择所有的参与方节点。
具体地,假设节点数量阈值为20,如果目标聚类簇中所包括的参与方节点数量为15,则确定目标聚类簇中所包括的参与方节点数量小于节点数量阈值,于是,服务器选中目标聚类簇中所有的参与方节点,然后分别向每个参与方节点发送梯度更新请求。这些参与方节点收到梯度更新请求之后,分别对本地模型进行迭代训练,将本地模型的第一本地模型梯度更新为第二本地模型梯度。基于此,服务器在接收到每个参与方节点发送的第二本地模型梯度之后,可以对这些第二本地模型梯度进行聚合,得到第二联合模型梯度。服务器将第一联合模型梯度更新为第二联合模型梯度,由此,完成对联合模型的一次迭代训练。
其次,本申请实施例中,提供了一种选择参与方节点进行模型训练的方式,通过上述方式,如果所选择的目标聚类簇中所包括的参与方节点数量较少,则将该目标聚类簇中所有的参与方节点都加入训练,从而在最大程度上提升模型训练的多样性。在联邦学习或分布式训练等场景下,能在有限的训练时间预算内有效提升模型的训练效率,同时保证模型的准确率。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,若目标聚类簇中所包括的参与方节点数量大于或等于节点数量阈值,则服务器从目标聚类簇中选择Ω个参与方节点之后,还可以包括:
服务器获取Ω个参与方节点中每个参与方节点所对应的历史响应时间;
服务器根据每个参与方节点所对应的历史响应时间,生成响应时间分布曲线;
服务器对响应时间分布曲线进行区间划分,得到h个区间,其中,每个区间的间隔步长相等,h为大于1的整数;
针对于待选择批尺寸,服务器根据每个区间的间隔步长,参与方节点的最小响应时间,以及服务器在目标时间间隔之后接收到前b个参与方节点反馈的概率,确定服务器接收到前b个参与方节点反馈的期望等待时间,其中,待选择批尺寸表示为b,b为大于或等于1,且小于或等于Ω的整数;
针对于待选择批尺寸,服务器根据服务器接收到前b个参与方节点反馈的期望等待时间,预设最大训练时间以及参与方节点的平均样本数量,确定服务器在接收到前b个更新响应后的梯度收敛程度;
当获取到Ω个梯度收敛程度时,从Ω个梯度收敛程度中选择最小梯度收敛程度,并将最小梯度收敛程度所对应的待选择批尺寸确定为联邦批尺寸。
本实施例中,介绍了一种基响应时间分布曲线的动态计算联邦批尺寸的方式。服务器发送完Ω个梯度更新请求后便进入等待状态,直到收集到前T个参与方节点反馈的本地模型梯度,然后服务器再进行聚合以及联合模型的更新。其中,T即为联邦批尺寸,其值小于参与方节点的数量Ω。为了保证在有限的训练时间预算下达到很好的联合模型精确度,下面将介绍基于响应时间分布动态计算联邦批尺寸的方法。
具体地,服务器首先获取Ω个参与方节点中每个参与方节点所对应的历史响应时间,然后生成响应时间分布曲线。基于此,服务器对响应时间分布曲线进行区间划分,得到h个区间,为了便于理解,请参阅图6,图6为本申请实施例中基于响应时间分布曲线划分区间的一个示意图,如图所示,假设将响应时间分布曲线划分为6个区间,且每个区间的间隔步长相等,均为10毫秒。服务器遍历所有待选择批尺寸的取值,其中,待选择批尺寸表示为b,即b∈[1,Ω]。于是,服务器需要计算接收到前b个更新响应后的梯度收敛程度J(Ω,b,m),该J(Ω,b,m)越小代表模型收敛越好,且模型的正确度越高。
在计算前b个更新响应后的梯度收敛程度之前,还需要计算服务器接收到前b个参与方节点反馈的期望等待时间。服务器接收到前b个参与方节点反馈的期望等待时间满足如下关系:
其中,表示服务器接收到前b个参与方节点反馈的期望等待时间。表示服务器向Ω个参与方节点发送梯度更新请求,并接收到前b个参与方节点反馈的总响应时间。Ω表示从目标聚类簇中选择出来的参与方节点数量。b表示待选择批尺寸。h表示划分的区间总数。i表示第i个区间。△表示每个区间的间隔步长。μ表示参与方节点的最小响应时间。表示服务器在目标时间间隔之后接收到前b个参与方节点反馈的概率。μ+i△表示目标时间间隔。表示响应时间为μ+i△的概率。
基于此,服务器在接收到前b个更新响应后的梯度收敛程度满足如下关系:
其中,J(Ω,b,m)表示接收到前b个更新响应后的梯度收敛程度。表示约束符号,即小于或等于。表示服务器接收到前b个参与方节点反馈的期望等待时间。b表示待选择批尺寸。m表示预计一轮迭代的最大训练时间,即预设最大训练时间。s表示参与方节点的平均样本数量。
在服务器计算出每个待选择批尺寸所对应的梯度收敛程度之后,即得到Ω个梯度收敛程度,于是从Ω个梯度收敛程度中选择最小梯度收敛程度,将最小梯度收敛程度所对应的待选择批尺寸(即b值)确定为联邦批尺寸(即T值)。
其次,本申请实施例中,提供了一种基响应时间分布曲线的动态计算联邦批尺寸的方式,通过上述方式,在每轮迭代序列中,服务器根据被选中的目标聚类簇内参与方节点的响应时间分布曲线,动态计算服务器等待接收的最大参与方反馈个数,即服务器在接收到前T个参与方的计算结果反馈后可更新联合模型,然后进入下一轮迭代,由此,进一步缩短服务器的等待时间。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,服务器获取Ω个参与方节点中每个参与方节点所对应的历史响应时间,具体可以包括:
服务器获取响应时间关系表,其中,响应时间关系表用于记录每个参与方节点在预设时间段内的至少一个响应时间;
针对于Ω个参与方节点中的每个参与方节点,服务器从响应时间关系表中获取每个参与方节点在预设时间段内的至少一个响应时间;
针对于Ω个参与方节点中的每个参与方节点,服务器对每个参与方节点在预设时间段内的至少一个响应时间求进行平均值的处理,以得到历史响应时间。
本实施例中,介绍了一种基于固定参数获取历史响应时间的方式。服务器侧存储一个响应时间关系表,基于该响应时间关系表中记录的数据,能够计算出每个参与方节点所对应的历史响应时间。
具体地,假设Ω个参与方节点包括参与方节点A、参与方节点B和参与方节点C,预设时间段包括5个时间段,即时间段1至时间段5。为了便于理解,请参阅表7,表7为响应时间关系表的一个示意。
表7
由此表7可见,参与方节点A在预设时间段内的平均响应时间为16毫秒,即参与方节点A的历史响应时间为16毫秒。类似地,参与方节点B在预设时间段内的平均响应时间为14毫秒,即参与方节点B的历史响应时间为14毫秒。参与方节点C在预设时间段内的平均响应时间为18毫秒,即参与方节点C的历史响应时间为18毫秒。
再次,本申请实施例中,提供了一种基于固定参数获取历史响应时间的方式,通过上述方式,对于每个参与方节点而言,可基于多个响应时间计算得到历史响应时间,该历史响应时间是一个平均值,由此,为方案的实现提供的具体依据,从而提升方案的可行性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,服务器获取Ω个参与方节点中每个参与方节点所对应的历史响应时间,具体可以包括:
服务器获取响应时间关系表,其中,响应时间关系表用于记录每个参与方节点在前一次迭代所对应的响应时间;
针对于Ω个参与方节点中的每个参与方节点,服务器从响应时间关系表中获取每个参与方节点在前一次迭代所对应的响应时间;
针对于Ω个参与方节点中的每个参与方节点,服务器将每个参与方节点在前一次迭代所对应的响应时间作为历史响应时间。
本实施例中,介绍了一种基于动态参数获取历史响应时间的方式。服务器侧存储一个响应时间关系表,基于该响应时间关系表中记录的数据,能够计算出每个参与方节点所对应的历史响应时间。
具体地,假设Ω个参与方节点包括参与方节点A、参与方节点B和参与方节点C,预设时间段包括5个时间段,即时间段1至时间段5。为了便于理解,请参阅表8,表8为响应时间关系表的一个示意。
表8
由此表8可见,参与方节点A的最近一次响应时间为10毫秒,即参与方节点A的历史响应时间为10毫秒。类似地,参与方节点B的最近一次响应时间为20毫秒,即参与方节点B的历史响应时间为20毫秒。参与方节点C的最近一次响应时间为20毫秒,即参与方节点C的历史响应时间为20毫秒。
再次,本申请实施例中,提供了一种基于动态参数获取历史响应时间的方式,通过上述方式,对于每个参与方节点而言,可将最近一次响应时间作为历史响应时间,由此,为方案的实现提供的具体依据,从而提升方案的可行性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,当接收到Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,服务器根据T个第二本地模型梯度对联合模型进行模型训练,以将联合模型的第一联合模型梯度更新为第二联合模型梯度之后,还可以包括:
服务器根据第二联合模型梯度生成区块加入请求,其中,区块链加入请求携带第二联合模型梯度以及区块加入指令;
服务器向区块链节点发送区块加入请求,以使区块链节点对第二联合模型梯度进行信息校验,若校验成功,则区块链节点创建当前区块,其中,当前区块存储第二联合模型梯度。
本实施例中,介绍了一种引入区块链系统存储梯度的方式。服务器在更新得到第二联合模型梯度之后,将第二联合模型梯度添加至区块加入请求,其中,区块加入请求还可以包括区块加入指、校验值以及服务器的标识等。服务器将区块加入请求发送给区块链节点,区块链节点解析区块加入请求之后,对待加入区块的第二联合模型梯度进行校验,如果校验成功,则确定第二联合模型梯度在传输过程中未被篡改,于是,区块链节点创建当前区块,并将第二联合模型梯度添加至当前区块中。
具体地,为了便于理解,请参见图7所示的数据共享系统,数据共享系统200是指用于进行节点与节点之间数据共享的系统,该数据共享系统中可以包括多个节点201,多个节点201可以是指数据共享系统中各个客户端。每个节点201在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享系统内的共享数据。为了保证数据共享系统内的信息互通,数据共享系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当数据共享系统中的任意节点接收到输入信息时,数据共享系统中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享系统中全部节点上存储的数据均一致。
对于数据共享系统中的每个节点,均具有与其对应的节点标识,而且数据共享系统中的每个节点均可以存储有数据共享系统中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至数据共享系统中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为网络之间互联的协议(Internet Protocol,IP)地址以及其他任一种能够用于标识该节点的信息,表9中仅以IP地址为例进行说明。
表9
数据共享系统中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图8,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
在生成区块链中的各个区块时,参见图9,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享系统中其他节点的节点标识,将新生成的区块分别发送给其所在的数据共享系统中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
其次,本申请实施例中,提供了一种引入区块链系统存储梯度的方式,通过上述方式,服务器将训练得到的联合模型梯度加入至区块后进行上链处理,由于区块链能够更好地保护用户隐私,因此,能够防止联合模型梯度被恶意篡改,从而提升模型训练的可靠性。而区块链中的数据可对外开放,因此,也便于各个参与方节点下载相关的数据。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,当接收到Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,服务器根据T个第二本地模型梯度对联合模型进行模型训练,以将联合模型的第一联合模型梯度更新为第二联合模型梯度之后,方法还包括:
服务器向K个参与方节点发送第二联合模型梯度,以使K个参与方节点中的每个参与方节点将本地模型的第二本地模型梯度更新为第二联合模型梯度;
服务器在第二目标时刻向K个参与方节点发送梯度更新请求,以使K个参与方节点中的每个参与方节点根据梯度更新请求,分别对每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的第二联合模型梯度更新为第三本地模型梯度;
服务器接收K个参与方节点中每个参与方节点发送的第三本地模型梯度,并记录每个第三本地模型梯度所对应的接收时刻;
服务器根据第二目标时刻以及每个第三本地模型梯度所对应的接收时刻,确定K个参与方节点中每个参与方节点所对应的响应时间。
本实施例中,介绍了一种基于联合模型更新本地模型的方式。服务器完成一次联合模型的迭代训练之后,即可开始下一轮的迭代。由前述实施例可知,服务器还可以继续向K个参与方节点发送第二联合模型梯度,于是,K个参与方节点中的每个参与方节点根据第二联合模型梯度,分别更新本地模型,也就是将本地模型的第二本地模型梯度更新为第二联合模型梯度,由此完成本地模型的更新。在进入下一轮联合模型训练之前,服务器还可以重新获取每个参与方节点的响应节点的时间,然后选择下一轮迭代所需的目标聚类簇,以及计算下一轮迭代所需的联邦批尺寸。
具体地,服务器分别向每个参与方节点发送梯度更新请求,参与方节点响应于梯度更新请求并上报本地模型梯度,于是服务器根据接收到本地模型梯度的时刻,记录每个参与方节点的响应时间。假设共有3个参与方节点,分别为参与方节点A、参与方节点B和参与方节点C。服务器在第二目标时刻(例如,11点15分00秒00毫秒)向3个参与方节点分别发送梯度更新请求。在一种实现方式中,每个参与方节点分别根据梯度更新请求,对本地模型进行迭代更新,以得到第三本地模型梯度。在另一个种实现方式中,参与方节点也可以在收到梯度更新请求之前,对本地模型进行迭代更新,以得到第三本地模型梯度。于是,服务器会接收到每个参与方节点发送的第三本地模型梯度,由此,服务器需要记录接收到每个第三本地模型梯度的时刻。
假设服务器在11点15分00秒20毫秒收到参与方节点A发送的第三本地模型梯度,因此,参与方节点A的响应时间为20毫秒。服务器在11点15分00秒30毫秒收到参与方节点B发送的第三本地模型梯度,因此,参与方节点B的响应时间为30毫秒。服务器在11点15分00秒50毫秒收到参与方节点C发送的第三本地模型梯度,因此,参与方节点B的响应时间为50毫秒。
进一步地,本申请实施例中,提供了一种基于联合模型更新本地模型的方式,通过上述方式,对于参与方节点而言,在服务器更新联合模型的梯度之后,可从服务器中下载更新后的联合模型梯度,然后将联合模型梯度作为本地模型梯度,由此,可进入下一轮本地模型的迭代训练,从而提升方案的可行性。
为了便于理解,下面将结合图10,介绍本申请提供的模型训练方法,请参阅图10,图10为本申请实施例中基于联邦学习的模型训练方法的一个整体流程示意图,如图所示,具体地:
在步骤S1中,在第一目标时刻向K个参与方节点发送梯度更新请求;
在步骤S2中,接收K个参与方节点中每个参与方节点发送的第一本地模型梯度,并记录每个第一本地模型梯度所对应的接收时刻;
在步骤S3中,根据第一目标时刻以及每个第一本地模型梯度所对应的接收时刻,确定K个参与方节点中每个参与方节点所对应的响应时间;
在步骤S4中,根据每个参与方节点的响应时间,对K个参与方节点进行聚类簇的划分处理,得到N个聚类簇,其中,每个聚类簇包括至少一个参与方节点,N为大于或等于2,且小于K的整数;
在步骤S5中,从N个聚类簇中选择一个聚类簇作为目标聚类簇;
在步骤S6中,若目标聚类簇中包括的参与方节点大于或等于节点数量阈值,则对目标聚类簇中的参与方节点进行选择,得到Ω个参与方节点,其中,Ω为大于1的整数;
在步骤S7中,获取Ω个参与方节点中每个参与方节点所对应的历史响应时间;
在步骤S8中,根据每个参与方节点所对应的历史响应时间,生成响应时间分布曲线;
在步骤S9中,对响应时间分布曲线进行区间划分,得到h个区间,其中,每个区间的间隔步长相等,h为大于1的整数;
在步骤S10中,针对于待选择批尺寸,根据每个区间的间隔步长,参与方节点的最小响应时间,以及服务器在目标时间间隔之后接收到前b个参与方节点反馈的概率,确定服务器接收到前b个参与方节点反馈的期望等待时间,其中,待选择批尺寸表示为b,b为大于或等于1,且小于或等于Ω的整数;
在步骤S11中,针对于待选择批尺寸,根据服务器接收到前b个参与方节点反馈的期望等待时间,预设最大训练时间以及参与方节点的平均样本数量,确定服务器在接收到前b个更新响应后的梯度收敛程度;
在步骤S12中,当获取到Ω个梯度收敛程度时,从Ω个梯度收敛程度中选择最小梯度收敛程度,并将最小梯度收敛程度所对应的待选择批尺寸确定为联邦批尺寸;
在步骤S13中,向Ω个参与方节点发送梯度更新请求,以使Ω个参与方节点中的每个参与方节点根据梯度更新请求,分别对所述每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的第一本地模型梯度更新为第二本地模型梯度;
在步骤S14中,当接收到Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,根据T个第二本地模型梯度对联合模型进行模型训练,以将联合模型的第一联合模型梯度更新为第二联合模型梯度,其中,T表示联邦批尺寸,T为大于或等于1,且小于或等于Ω的整数。
结合上述实施例,为了通过相关试验验证方案的有效性,基于3000个参与方节点,采用4种不同响应时间分布的混合国家标准和技术研究所数据库(Mixed NationalInstitute of Standards and Technology database,MNIST)图像进行分类实验,并得到对比结果。为了便于理解,请参阅图11,图11为本申请实施例中不同联邦批尺寸的模型预测准确率对比示意图,如图所示,α表示控制参与方节点的时间响应分布,α取值越大,响应时间分布越分散,反之,α取值越小,响应时间分布越集中。横轴为不同的联邦批尺寸,纵轴为模型的正确率,箭头标记处为采用本申请提供的方法自动计算出的最优联邦批尺寸。实验结果表明,在不同的响应分布条件下,本方案所计算的联邦批尺寸能够达到最佳的模型准确率,因此,进一步验证了本方案的有效性。本申请能够在有限的模型训练预算下,通过降低响应慢节点对响应快节点的拖累影响,提升联邦学习系统的模型训练效率,并实现在有限的训练时间内达到最大的模型正确性。
下面对本申请中的模型训练装置进行详细描述,请参阅图12,图12为本申请实施例中模型训练装置的一个实施例示意图,模型训练装置30包括:
获取模块301,用于获取K个参与方节点中每个参与方节点的响应时间,其中,K为大于1的整数;
划分模块302,用于根据每个参与方节点的响应时间,对K个参与方节点进行聚类簇的划分处理,得到N个聚类簇,其中,每个聚类簇包括至少一个参与方节点,N为大于或等于2的整数;
选择模块303,用于从N个聚类簇中选择一个聚类簇作为目标聚类簇;
选择模块303,还用于若目标聚类簇中所包括的参与方节点数量大于或等于节点数量阈值,则对目标聚类簇中的参与方节点进行选择,得到Ω个参与方节点,其中,Ω为大于1的整数;
发送模块304,用于向Ω个参与方节点发送梯度更新请求,以使Ω个参与方节点中的每个参与方节点根据梯度更新请求,分别对所述每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的第一本地模型梯度更新为第二本地模型梯度;
更新模块305,用于当接收到Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,根据T个第二本地模型梯度对联合模型进行模型训练,以将联合模型的第一联合模型梯度更新为第二联合模型梯度,其中,T表示联邦批尺寸,T为大于或等于1,且小于或等于Ω的整数。
本申请实施例中,提供了一种模型训练装置,采用上述装置,基于聚类的动态节点选择方法,按照每个参与方节点的响应时间,筛选出具有相近响应时间的参与方节点作为同一个聚类簇,由此,可从多个聚类簇中选择任意一个聚类簇进行后续的梯度更新。一方面,由于聚类簇内所有参与方节点的响应时间相近,因此,降低服务器的总等待时间,另一方面,从聚类簇的维度上筛选参与方节点,对于部分响应时间较慢的参与方节点而言,仍然有一定几率被选中,因此,这部分参与方节点也能加入到联合模型的训练中,从而提升模型训练的效果。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的模型训练装置30的另一实施例中,
获取模块301,具体用于在第一目标时刻向K个参与方节点发送梯度更新请求;
接收K个参与方节点中每个参与方节点发送的第一本地模型梯度,并记录每个第一本地模型梯度所对应的接收时刻;
根据第一目标时刻以及每个第一本地模型梯度所对应的接收时刻,确定K个参与方节点中每个参与方节点所对应的响应时间。
本申请实施例中,提供了一种模型训练装置,采用上述装置,考虑到联邦学习各个参与方的响应时间各不相同,在同一个联邦批尺寸中响应时间慢的参与方节点将严重拖累整体训练时间,因此,需要分别获取每个参与方节点的响应时间,然后基于参与方节点的响应时间分布将联邦学习的所有参与方节点聚类成不同的簇,使得落入相同簇的参与方节点具有相近的响应时间。在联邦学习的每次训练迭代中,服务器只选择相同簇内的多个参与方进行联合模型迭代,从而极大降低响应慢的参与方对响应快的参与方的拖累,在不损失联合建模效果的前提下提升联邦学习整体效率。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的模型训练装置30的另一实施例中,
划分模块302,具体用于获取至少两个待划分的聚类簇中每个聚类簇所对应的预设响应时间范围;
针对于每个聚类簇所对应的预设响应时间范围,将响应时间属于预设响应时间范围的参与方节点,加入至预设响应时间范围所对应的聚类簇中;
当K个参与方节点均加入至对应的聚类簇时,得到N个聚类簇。
本申请实施例中,提供了一种模型训练装置,采用上述装置,按照提前设定的预设响应时间范围,可直接将参与方节点划分至对应的聚类簇中,划分聚类簇的方式较为简便,从而提升聚类簇划分的效率。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的模型训练装置30的另一实施例中,
划分模块302,具体用于根据每个参与方节点的响应时间,确定最大响应时间以及最小响应时间;
根据最大响应时间以及最小响应时间,确定总体响应时间范围;
对总体响应时间范围进行时间范围的划分处理,得到至少两个响应时间范围,其中,每个响应时间范围对应于一个聚类簇;
针对于每个聚类簇所对应的响应时间范围,将响应时间属于响应时间范围的参与方节点,加入至响应时间范围所对应的聚类簇中;
当K个参与方节点均加入至对应的聚类簇时,得到N个聚类簇。
本申请实施例中,提供了一种模型训练装置,采用上述装置,根据每轮迭代所得到的每个参与方节点的响应时间,划分若干个响应时间范围,按照响应时间范围,可将参与方节点划分至对应的聚类簇中,划分聚类簇的方式较为灵活,从而提升聚类簇划分的准确度。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的模型训练装置30的另一实施例中,
选择模块303,具体用于对N个聚类簇中每个聚类簇所包括的参与方节点进行编号处理,得到每个参与方节点的编号结果,其中,任意两个参与方节点的编号结果均不重复;
生成一个随机数;
若随机数与N个聚类簇中任意一个参与方节点的编号结果匹配一致,则将任意一个参与方节点对应的聚类簇确定为目标聚类簇。
本申请实施例中,提供了一种模型训练装置,采用上述装置,联邦学习通常包含多个参与方节点,每个参与方节点可能具有独立的样本分布,因此,联合模型训练应该尽可能覆盖所有参与方节点的样本。基于此,为了使得模型训练尽可能公平地覆盖所有的参与方节点,由于参与方节点的聚类簇具有不同大小,可采用基于聚类簇大小选簇方法,即在每一轮梯度迭代中拥有参与方节点更多的聚类簇,被服务器选中参与梯度迭代的可能性越高,由此提升训练的公平性。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的模型训练装置30的另一实施例中,
选择模块303,具体用于对N个聚类簇中每个聚类簇进行编号处理,得到每个聚类簇的编号结果,其中,任意两个聚类簇的编号结果均不重复;
生成一个随机数;
若随机数与N个聚类簇中任意一个聚类簇的编号结果匹配一致,则将任意一个聚类簇确定为目标聚类簇。
本申请实施例中,提供了一种模型训练装置,采用上述装置,联邦学习通常包含多个参与方节点,每个参与方节点可能具有独立的样本分布,因此,联合模型训练应该尽可能覆盖所有参与方节点的样本。基于此,为了使得模型训练尽可能公平地覆盖所有的参与方节点,可直接从多个聚类簇中随机选择一个聚类簇作为目标聚类簇,而选中每个聚类簇的概率是一样的,从而提升训练的公平性。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的模型训练装置30的另一实施例中,
选择模块303,还用于从N个聚类簇中选择一个聚类簇作为目标聚类簇之后,若目标聚类簇中所包括的参与方节点数量小于节点数量阈值,则从目标聚类簇中选择所有的参与方节点;
发送模块304,还用于向目标聚类簇中每个参与方节点发送梯度更新请求,以使目标聚类簇中的每个参与方节点根据梯度更新请求,分别对所述每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的第一本地模型梯度更新为第二本地模型梯度;
更新模块305,还用于当接收到目标聚类簇中的每个参与方节点发送的第二本地模型梯度时,根据每个第二本地模型梯度对联合模型的第一联合模型梯度进行更新,以得到第二联合模型梯度。
本申请实施例中,提供了一种模型训练装置,采用上述装置,如果所选择的目标聚类簇中所包括的参与方节点数量较少,则将该目标聚类簇中所有的参与方节点都加入训练,从而在最大程度上提升模型训练的多样性。在联邦学习或分布式训练等场景下,能在有限的训练时间预算内有效提升模型的训练效率,同时保证模型的准确率。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的模型训练装置30的另一实施例中,模型训练装置30包括生成模块306以及确定模块307;
获取模块301,还用于若目标聚类簇中所包括的参与方节点数量大于或等于节点数量阈值,则在选择模块从目标聚类簇中选择Ω个参与方节点之后,获取Ω个参与方节点中每个参与方节点所对应的历史响应时间;
生成模块306,用于根据每个参与方节点所对应的历史响应时间,生成响应时间分布曲线;
划分模块302,还用于对响应时间分布曲线进行区间划分,得到h个区间,其中,每个区间的间隔步长相等,h为大于1的整数;
确定模块307,用于针对于待选择批尺寸,根据每个区间的间隔步长,参与方节点的最小响应时间,以及服务器在目标时间间隔之后接收到前b个参与方节点反馈的概率,确定服务器接收到前b个参与方节点反馈的期望等待时间,其中,待选择批尺寸表示为b,b为大于或等于1,且小于或等于Ω的整数;
确定模块307,还用于针对于待选择批尺寸,根据服务器接收到前b个参与方节点反馈的期望等待时间,预设最大训练时间以及参与方节点的平均样本数量,确定服务器在接收到前b个更新响应后的梯度收敛程度;
确定模块307,还用于当获取到Ω个梯度收敛程度时,从Ω个梯度收敛程度中选择最小梯度收敛程度,并将最小梯度收敛程度所对应的待选择批尺寸确定为联邦批尺寸。
本申请实施例中,提供了一种模型训练装置,采用上述装置,在每轮迭代序列中,服务器根据被选中的目标聚类簇内参与方节点的响应时间分布曲线,动态计算服务器等待接收的最大参与方反馈个数,即服务器在接收到前T个参与方的计算结果反馈后可更新联合模型,然后进入下一轮迭代,由此,进一步缩短服务器的等待时间。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的模型训练装置30的另一实施例中,
获取模块301,具体用于获取响应时间关系表,其中,响应时间关系表用于记录每个参与方节点在预设时间段内的至少一个响应时间;
针对于Ω个参与方节点中的每个参与方节点,从响应时间关系表中获取每个参与方节点在预设时间段内的至少一个响应时间;
针对于Ω个参与方节点中的每个参与方节点,对每个参与方节点在预设时间段内的至少一个响应时间求进行平均值的处理,以得到历史响应时间。
本申请实施例中,提供了一种模型训练装置,采用上述装置,对于每个参与方节点而言,可基于多个响应时间计算得到历史响应时间,该历史响应时间是一个平均值,由此,为方案的实现提供的具体依据,从而提升方案的可行性。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的模型训练装置30的另一实施例中,
获取模块301,具体用于获取响应时间关系表,其中,响应时间关系表用于记录每个参与方节点在前一次迭代所对应的响应时间;
针对于Ω个参与方节点中的每个参与方节点,从响应时间关系表中获取每个参与方节点在前一次迭代所对应的响应时间;
针对于Ω个参与方节点中的每个参与方节点,将每个参与方节点在前一次迭代所对应的响应时间作为历史响应时间。
本申请实施例中,提供了一种模型训练装置,采用上述装置,对于每个参与方节点而言,可将最近一次响应时间作为历史响应时间,由此,为方案的实现提供的具体依据,从而提升方案的可行性。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的模型训练装置30的另一实施例中,
生成模块306,还用于当接收到Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,根据T个第二本地模型梯度对联合模型进行模型训练,以将联合模型的第一联合模型梯度更新为第二联合模型梯度之后,根据第二联合模型梯度生成区块加入请求,其中,区块链加入请求携带第二联合模型梯度以及区块加入指令;
发送模块304,还用于向区块链节点发送区块加入请求,以使区块链节点对第二联合模型梯度进行信息校验,若校验成功,则区块链节点创建当前区块,其中,当前区块存储第二联合模型梯度。
本申请实施例中,提供了一种模型训练装置,采用上述装置,服务器将训练得到的联合模型梯度加入至区块后进行上链处理,由于区块链能够更好地保护用户隐私,因此,能够防止联合模型梯度被恶意篡改,从而提升模型训练的可靠性。而区块链中的数据可对外开放,因此,也便于各个参与方节点下载相关的数据。
可选地,在上述图12所对应的实施例的基础上,本申请实施例提供的模型训练装置30的另一实施例中,模型训练装置30包括接收模块308以及确定模块307;
发送模块304,还用于当接收到Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,根据T个第二本地模型梯度对联合模型进行模型训练,以将联合模型的第一联合模型梯度更新为第二联合模型梯度之后,向K个参与方节点发送第二联合模型梯度,以使K个参与方节点中的每个参与方节点将本地模型的第二本地模型梯度更新为第二联合模型梯度;
发送模块304,还用于在第二目标时刻向K个参与方节点发送梯度更新请求,以使K个参与方节点中的每个参与方节点根据梯度更新请求,分别对每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的第二联合模型梯度更新为第三本地模型梯度;
接收模块308,用于接收K个参与方节点中每个参与方节点发送的第三本地模型梯度,并记录每个第三本地模型梯度所对应的接收时刻;
确定模块307,还用于根据第二目标时刻以及每个第三本地模型梯度所对应的接收时刻,确定K个参与方节点中每个参与方节点所对应的响应时间。
本申请实施例中,提供了一种模型训练装置,采用上述装置,对于参与方节点而言,在服务器更新联合模型的梯度之后,可从服务器中下载更新后的联合模型梯度,然后将联合模型梯度作为本地模型梯度,由此,可进入下一轮本地模型的迭代训练,从而提升方案的可行性。
本申请提供的模型训练装置可应用于服务器,请参阅图13,图13是本申请实施例提供的一种服务器结构示意图,该服务器400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在服务器400上执行存储介质430中的一系列指令操作。
服务器400还可以包括一个或一个以上电源426,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,和/或,一个或一个以上操作系统441,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图13所示的服务器结构。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如前述各个实施例描述的方法。
本申请实施例中还提供一种包括程序的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例描述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (15)
1.一种基于联邦学习的模型训练方法,其特征在于,包括:
获取K个参与方节点中每个参与方节点的响应时间,其中,所述K为大于1的整数;
根据所述每个参与方节点的响应时间,对所述K个参与方节点进行聚类簇的划分处理,得到N个聚类簇,其中,每个聚类簇包括至少一个参与方节点,所述N为大于或等于2的整数;
从所述N个聚类簇中选择一个聚类簇作为目标聚类簇;
若所述目标聚类簇中所包括的参与方节点数量大于或等于节点数量阈值,则对所述目标聚类簇中的参与方节点进行选择,得到Ω个参与方节点,其中,所述Ω为大于1的整数;
向所述Ω个参与方节点发送梯度更新请求,以使所述Ω个参与方节点中的每个参与方节点根据所述梯度更新请求,分别对每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的第一本地模型梯度更新为第二本地模型梯度;
当接收到所述Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,根据T个第二本地模型梯度对联合模型进行模型训练,以将所述联合模型的第一联合模型梯度更新为第二联合模型梯度,其中,所述T表示联邦批尺寸,所述T为大于或等于1,且小于或等于所述Ω的整数。
2.根据权利要求1所述的模型训练方法,其特征在于,所述获取K个参与方节点中每个参与方节点的响应时间,包括:
在第一目标时刻向所述K个参与方节点发送梯度更新请求;
接收所述K个参与方节点中每个参与方节点发送的第一本地模型梯度,并记录每个第一本地模型梯度所对应的接收时刻;
根据所述第一目标时刻以及所述每个第一本地模型梯度所对应的接收时刻,确定所述K个参与方节点中每个参与方节点所对应的响应时间。
3.根据权利要求1所述的模型训练方法,其特征在于,所述根据所述每个参与方节点的响应时间,对所述K个参与方节点进行聚类簇的划分处理,得到N个聚类簇,包括:
获取至少两个待划分的聚类簇中每个聚类簇所对应的预设响应时间范围;
针对于所述每个聚类簇所对应的预设响应时间范围,将响应时间属于所述预设响应时间范围的参与方节点,加入至所述预设响应时间范围所对应的聚类簇中;
当所述K个参与方节点均加入至对应的聚类簇时,得到所述N个聚类簇。
4.根据权利要求1所述的模型训练方法,其特征在于,所述根据所述每个参与方节点的响应时间,对所述K个参与方节点进行聚类簇的划分处理,得到N个聚类簇,包括:
根据所述每个参与方节点的响应时间,确定最大响应时间以及最小响应时间;
根据所述最大响应时间以及所述最小响应时间,确定总体响应时间范围;
对所述总体响应时间范围进行时间范围的划分处理,得到至少两个响应时间范围,其中,每个响应时间范围对应于一个聚类簇;
针对于所述每个聚类簇所对应的响应时间范围,将响应时间属于所述响应时间范围的参与方节点,加入至所述响应时间范围所对应的聚类簇中;
当所述K个参与方节点均加入至对应的聚类簇时,得到所述N个聚类簇。
5.根据权利要求1所述的模型训练方法,其特征在于,所述从所述N个聚类簇中选择一个聚类簇作为目标聚类簇,包括:
对所述N个聚类簇中每个聚类簇所包括的参与方节点进行编号处理,得到每个参与方节点的编号结果,其中,任意两个参与方节点的编号结果均不重复;
生成一个随机数;
若所述随机数与所述N个聚类簇中任意一个参与方节点的编号结果匹配一致,则将所述任意一个参与方节点对应的聚类簇确定为所述目标聚类簇。
6.根据权利要求1所述的模型训练方法,其特征在于,所述从所述N个聚类簇中选择一个聚类簇作为目标聚类簇,包括:
对所述N个聚类簇中每个聚类簇进行编号处理,得到每个聚类簇的编号结果,其中,任意两个聚类簇的编号结果均不重复;
生成一个随机数;
若所述随机数与所述N个聚类簇中任意一个聚类簇的编号结果匹配一致,则将所述任意一个聚类簇确定为所述目标聚类簇。
7.根据权利要求1所述的模型训练方法,其特征在于,所述从所述N个聚类簇中选择一个聚类簇作为目标聚类簇之后,所述方法还包括:
若所述目标聚类簇中所包括的参与方节点数量小于所述节点数量阈值,则从所述目标聚类簇中选择所有的参与方节点;
向所述目标聚类簇中每个参与方节点发送梯度更新请求,以使所述目标聚类簇中的每个参与方节点根据所述梯度更新请求,分别对所述每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的第一本地模型梯度更新为第二本地模型梯度;
当接收到所述目标聚类簇中的每个参与方节点发送的第二本地模型梯度时,根据每个第二本地模型梯度对联合模型的第一联合模型梯度进行更新,以得到第二联合模型梯度。
8.根据权利要求1所述的模型训练方法,其特征在于,所述若所述目标聚类簇中所包括的参与方节点数量大于或等于节点数量阈值,则对所述目标聚类簇中的参与方节点进行选择,得到Ω个参与方节点之后,所述方法还包括:
获取所述Ω个参与方节点中每个参与方节点所对应的历史响应时间;
根据所述每个参与方节点所对应的历史响应时间,生成响应时间分布曲线;
对所述响应时间分布曲线进行区间划分,得到h个区间,其中,每个区间的间隔步长相等,所述h为大于1的整数;
针对于待选择批尺寸,根据所述每个区间的间隔步长,参与方节点的最小响应时间,以及服务器在目标时间间隔之后接收到前b个参与方节点反馈的概率,确定所述服务器接收到所述前b个参与方节点反馈的期望等待时间,其中,所述待选择批尺寸表示为所述b,所述b为大于或等于1,且小于或等于所述Ω的整数;
针对于所述待选择批尺寸,根据所述服务器接收到所述前b个参与方节点反馈的期望等待时间,预设最大训练时间以及参与方节点的平均样本数量,确定所述服务器在接收到前b个更新响应后的梯度收敛程度;
当获取到Ω个梯度收敛程度时,从所述Ω个梯度收敛程度中选择最小梯度收敛程度,并将所述最小梯度收敛程度所对应的待选择批尺寸确定为所述联邦批尺寸。
9.根据权利要求8所述的模型训练方法,其特征在于,所述获取所述Ω个参与方节点中每个参与方节点所对应的历史响应时间,包括:
获取响应时间关系表,其中,所述响应时间关系表用于记录每个参与方节点在预设时间段内的至少一个响应时间;
针对于所述Ω个参与方节点中的每个参与方节点,从所述响应时间关系表中获取所述每个参与方节点在所述预设时间段内的至少一个响应时间;
针对于所述Ω个参与方节点中的每个参与方节点,对所述每个参与方节点在所述预设时间段内的至少一个响应时间求进行平均值的处理,以得到历史响应时间。
10.根据权利要求8所述的模型训练方法,其特征在于,所述获取所述Ω个参与方节点中每个参与方节点所对应的历史响应时间,包括:
获取响应时间关系表,其中,所述响应时间关系表用于记录每个参与方节点在前一次迭代所对应的响应时间;
针对于所述Ω个参与方节点中的每个参与方节点,从所述响应时间关系表中获取所述每个参与方节点在前一次迭代所对应的响应时间;
针对于所述Ω个参与方节点中的每个参与方节点,将所述每个参与方节点在前一次迭代所对应的响应时间作为历史响应时间。
11.根据权利要求1所述的模型训练方法,其特征在于,所述当接收到所述Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,根据T个第二本地模型梯度对联合模型进行模型训练,以将所述联合模型的第一联合模型梯度更新为第二联合模型梯度之后,所述方法还包括:
根据所述第二联合模型梯度生成区块加入请求,其中,所述区块加入请求携带所述第二联合模型梯度以及区块加入指令;
向区块链节点发送所述区块加入请求,以使所述区块链节点对所述第二联合模型梯度进行信息校验,若校验成功,则所述区块链节点创建当前区块,其中,所述当前区块存储所述第二联合模型梯度。
12.根据权利要求1至11中任一项所述的模型训练方法,其特征在于,所述当接收到所述Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,根据T个第二本地模型梯度对联合模型进行模型训练,以将所述联合模型的第一联合模型梯度更新为第二联合模型梯度之后,所述方法还包括:
向所述K个参与方节点发送所述第二联合模型梯度,以使所述K个参与方节点中的每个参与方节点将本地模型的所述第二本地模型梯度更新为所述第二联合模型梯度;
在第二目标时刻向所述K个参与方节点发送梯度更新请求,以使所述K个参与方节点中的每个参与方节点根据所述梯度更新请求,分别对所述每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的所述第二联合模型梯度更新为第三本地模型梯度;
接收所述K个参与方节点中每个参与方节点发送的第三本地模型梯度,并记录每个第三本地模型梯度所对应的接收时刻;
根据所述第二目标时刻以及所述每个第三本地模型梯度所对应的接收时刻,确定所述K个参与方节点中每个参与方节点所对应的响应时间。
13.一种模型训练装置,其特征在于,包括:
获取模块,用于获取K个参与方节点中每个参与方节点的响应时间,其中,所述K为大于1的整数;
划分模块,用于根据所述每个参与方节点的响应时间,对所述K个参与方节点进行聚类簇的划分处理,得到N个聚类簇,其中,每个聚类簇包括至少一个参与方节点,所述N为大于或等于2的整数;
选择模块,用于从所述N个聚类簇中选择一个聚类簇作为目标聚类簇;
所述选择模块,还用于若所述目标聚类簇中所包括的参与方节点数量大于或等于节点数量阈值,则对所述目标聚类簇中的参与方节点进行选择,得到Ω个参与方节点,其中,所述Ω为大于1的整数;
发送模块,用于向所述Ω个参与方节点发送梯度更新请求,以使所述Ω个参与方节点中的每个参与方节点根据所述梯度更新请求,分别对所述每个参与方节点所对应的本地模型进行模型训练,以将每个本地模型的第一本地模型梯度更新为第二本地模型梯度;
更新模块,用于当接收到所述Ω个参与方节点中T个参与方节点发送的第二本地模型梯度时,根据T个第二本地模型梯度对联合模型进行模型训练,以将所述联合模型的第一联合模型梯度更新为第二联合模型梯度,其中,所述T表示联邦批尺寸,所述T为大于或等于1,且小于或等于所述Ω的整数。
14.一种服务器,其特征在于,包括:存储器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,所述处理器用于根据程序代码中的指令执行权利要求1至12中任一项所述的模型训练方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
15.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至12中任一项所述的模型训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110331713.6A CN112712182B (zh) | 2021-03-29 | 2021-03-29 | 一种基于联邦学习的模型训练方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110331713.6A CN112712182B (zh) | 2021-03-29 | 2021-03-29 | 一种基于联邦学习的模型训练方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112712182A CN112712182A (zh) | 2021-04-27 |
CN112712182B true CN112712182B (zh) | 2021-06-01 |
Family
ID=75550402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110331713.6A Active CN112712182B (zh) | 2021-03-29 | 2021-03-29 | 一种基于联邦学习的模型训练方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112712182B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312667B (zh) * | 2021-06-07 | 2022-09-02 | 支付宝(杭州)信息技术有限公司 | 一种风险防控方法、装置及设备 |
CN113313266B (zh) * | 2021-06-15 | 2023-10-24 | 厦门大学 | 基于两阶段聚类的联邦学习模型训练方法和存储设备 |
CN113344220B (zh) * | 2021-06-18 | 2022-11-11 | 山东大学 | 一种联邦学习中基于局部模型梯度的用户筛选方法、系统、设备及存储介质 |
CN113487041B (zh) * | 2021-07-15 | 2024-05-07 | 深圳市与飞科技有限公司 | 横向联邦学习方法、装置及存储介质 |
CN113469373B (zh) * | 2021-08-17 | 2023-06-30 | 北京神州新桥科技有限公司 | 基于联邦学习的模型训练方法、系统、设备及存储介质 |
CN113673696B (zh) * | 2021-08-20 | 2024-03-22 | 山东鲁软数字科技有限公司 | 一种基于强化联邦学习的电力行业起重作业违章检测方法 |
CN113837108B (zh) * | 2021-09-26 | 2023-05-23 | 重庆中科云从科技有限公司 | 人脸识别方法、装置及计算机可读存储介质 |
CN114580087B (zh) * | 2022-05-06 | 2022-08-02 | 山东大学 | 一种船载设备的联邦剩余使用寿命预测方法、装置及系统 |
CN116502709A (zh) * | 2023-06-26 | 2023-07-28 | 浙江大学滨江研究院 | 一种异质性联邦学习方法和装置 |
CN116777009B (zh) * | 2023-08-24 | 2023-10-20 | 之江实验室 | 基于内存池的智能计算系统架构和并行训练方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299728A (zh) * | 2018-08-10 | 2019-02-01 | 深圳前海微众银行股份有限公司 | 联邦学习方法、系统及可读存储介质 |
CN110516161A (zh) * | 2019-08-30 | 2019-11-29 | 深圳前海微众银行股份有限公司 | 一种推荐方法及装置 |
CN112506753A (zh) * | 2020-12-14 | 2021-03-16 | 德清阿尔法创新研究院 | 一种联邦学习场景中高效的贡献评估方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190043487A1 (en) * | 2017-08-02 | 2019-02-07 | Veritone, Inc. | Methods and systems for optimizing engine selection using machine learning modeling |
-
2021
- 2021-03-29 CN CN202110331713.6A patent/CN112712182B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299728A (zh) * | 2018-08-10 | 2019-02-01 | 深圳前海微众银行股份有限公司 | 联邦学习方法、系统及可读存储介质 |
CN110516161A (zh) * | 2019-08-30 | 2019-11-29 | 深圳前海微众银行股份有限公司 | 一种推荐方法及装置 |
CN112506753A (zh) * | 2020-12-14 | 2021-03-16 | 德清阿尔法创新研究院 | 一种联邦学习场景中高效的贡献评估方法 |
Non-Patent Citations (2)
Title |
---|
From Distributed Machine Learning To Federated Learning:In TheViewOf Data Privacy And Security;ShengShen et al;《CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE 》;20201231;第1-19页 * |
联邦学习模型在涉密数据处理中的应用;贾延延等;《中国电子科学研究院学报》;20200131;第43-49页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112712182A (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112712182B (zh) | 一种基于联邦学习的模型训练方法、装置及存储介质 | |
Yan et al. | Automatic virtual network embedding: A deep reinforcement learning approach with graph convolutional networks | |
Zhang et al. | Federated learning for the internet of things: Applications, challenges, and opportunities | |
CN111814985B (zh) | 联邦学习网络下的模型训练方法及其相关设备 | |
CN110084377B (zh) | 用于构建决策树的方法和装置 | |
CN112235384B (zh) | 分布式系统中的数据传输方法、装置、设备及存储介质 | |
WO2021051610A1 (zh) | 数据的训练方法及装置、系统 | |
CN107800787A (zh) | 一种分布式大数据实时交换共享的计算机网络系统 | |
Du et al. | Exploring attention-aware network resource allocation for customized metaverse services | |
CN113505882B (zh) | 基于联邦神经网络模型的数据处理方法、相关设备及介质 | |
CN111245903B (zh) | 一种基于边缘计算的联合学习方法及系统 | |
Song et al. | Networking systems of AI: On the convergence of computing and communications | |
CN113033082B (zh) | 基于异构算力感知的去中心化联邦学习框架及建模方法 | |
CN112799708B (zh) | 联合更新业务模型的方法及系统 | |
Zhu et al. | Blockchain-enabled federated learning for UAV edge computing network: Issues and solutions | |
Qi et al. | Model aggregation techniques in federated learning: A comprehensive survey | |
CN112600697B (zh) | 基于联邦学习的QoS预测方法及系统、客户端和服务端 | |
CN109144661A (zh) | 一种基于docker的深度学习管理方法 | |
Jiang et al. | Distributed deep learning optimized system over the cloud and smart phone devices | |
Pham et al. | Optimized IoT service chain implementation in edge cloud platform: A deep learning framework | |
CN110610098A (zh) | 数据集生成方法及装置 | |
CN115759289A (zh) | 基于用户分组协同的联邦学习方法、系统及装置 | |
CN116366673A (zh) | 一种面向电网信息机房管理的数据分析与共享方法 | |
CN115802398A (zh) | 干扰优化方法及装置、存储介质及电子设备 | |
CN112348197A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40041992 Country of ref document: HK |