1.本发明涉及联邦学习领域,特别涉及一种联邦学习加速方法、装置、设备及存储介质。
背景技术:2.联邦学习作为一种多方安全计算方法,受到越来越多的关注。多个组织共同进行联邦学习训练,任务的进度及完成时间受最慢的组织影响,即存在木桶效应。组织之间通常只能共享联邦学习的模型,不能共享数据。联邦学习任务的训练过程通常都比较耗时。一个组织通常不会只有一个联邦学习任务,因为业务的需要,通常有多个联邦学习任务。如何提高联邦学习的效率是目前有待解决的问题。
技术实现要素:3.有鉴于此,本发明的目的在于提供一种联邦学习加速方法、装置、设备及存储介质,能够通过对学习效率低的当前联邦学习任务进行fpga加速,削弱联邦学习中的短板效应,并提高联邦学习的整体效率。其具体方案如下:第一方面,本技术提供了一种联邦学习加速方法,包括:构建fpga资源池和联邦学习集群,并获取所述联邦学习集群中的联邦学习服务器参与的当前联邦学习任务中的针对联邦模型的当前训练轮次;判断所述当前训练轮次是否达到预设训练轮次,如果达到,则判断所述当前联邦学习任务的学习效率是否小于其他组织对应的学习效率;如果小于,则基于所述当前联邦学习任务的学习效率确定所述当前联邦学习任务需要的硬件加速资源,并将基于所述硬件加速资源确定的硬件资源请求发送至所述fpga资源池,以及判断是否从所述fpga资源池中申请到与所述硬件资源请求对应的目标fpga加速卡;如果申请到,则利用所述目标fpga加速卡对所述当前联邦学习任务进行加速,以完成针对联邦模型的本轮训练。
4.可选的,所述判断所述当前训练轮次是否达到预设训练轮次之后,还包括:如果未达到所述预设训练轮次,则判断所述当前联邦学习任务的当前优先级是否小于预设优先级;如果所述当前优先级不小于所述预设优先级,则跳转至所述基于所述当前联邦学习任务的学习效率确定所述当前联邦学习任务需要的硬件加速资源的步骤;如果所述当前优先级小于所述预设优先级,则直接对联邦模型进行训练,以完成针对联邦模型的本轮训练。
5.可选的,所述判断所述当前联邦学习任务的学习效率是否小于其他组织对应的学习效率,包括:获取相对于本轮训练的前n轮训练中联邦模型在本组织的第一停留时间;所述n为
预设数量;获取所述前n轮训练中联邦模型在其他组织的第二停留时间;判断所述第一停留时间是否小于所述第二停留时间;相应的,所述如果小于,则基于所述当前联邦学习任务的学习效率确定所述当前联邦学习任务需要的硬件加速资源,包括:如果所述第一停留时间大于所述第二停留时间,则基于所述当前联邦学习任务的学习效率确定所述当前联邦学习任务需要的硬件加速资源。
6.可选的,所述获取相对于本轮训练的前n轮训练中联邦模型在本组织的第一停留时间,包括:获取联邦模型在第一目标轮训练中的训练起始时间,以及获取联邦模型在所述第一目标轮训练中的训练结束时间;所述第一目标轮训练为所述前n轮训练中的任意一轮;基于所述训练起始时间和所述训练结束时间确定出所述第一目标轮训练中联邦模型在本组织的第一停留时间。
7.可选的,所述获取所述前n轮训练中联邦模型在其他组织的第二停留时间,包括:获取被检测组织在完成第二目标轮训练后将联邦模型进行输出时对应的第一时间;所述被检测组织为其他组织中的任意一方;所述第二目标轮训练为所述前n轮训练中的任意一轮;获取非被检测组织将目标联邦模型发送至所述被检测组织时对应的第二时间,以及获取所述目标联邦模型在网络上的传输时延;所述目标联邦模型为所述被检测组织进行所述第二目标轮训练时对应的训练前模型;基于所述第一时间、所述第二时间以及所述传输时延确定所述第二目标轮训练中联邦模型在其他组织的第二停留时间。
8.可选的,所述判断是否从所述fpga资源池中申请到与所述硬件资源请求对应的目标fpga加速卡,包括:在所述fpga资源池获取到所述硬件资源请求后,判断所述fpga资源池中是否存在空闲的fpga加速卡;如果不存在所述空闲的fpga加速卡,则直接对联邦模型进行训练,以完成针对联邦模型的本轮训练;如果存在所述空闲的fpga加速卡,则判断所述空闲的fpga加速卡中是否存在满足预设最优条件的目标fpga加速卡;如果存在所述目标fpga加速卡,则将所述目标fpga加速卡提供至所述当前联邦学习任务;如果不存在所述目标fpga加速卡,则直接对联邦模型进行训练,以完成针对联邦模型的本轮训练。
9.可选的,所述判断所述空闲的fpga加速卡中是否存在满足预设最优条件的目标fpga加速卡,包括:分别确定各所述空闲的fpga加速卡与所述联邦学习服务器之间的物理距离;从各所述物理距离中筛选出满足预设距离条件的目标物理距离,并确定出与所述目标物理距离对应的初始fpga加速卡;
确定所述初始fpga加速卡的空闲加速资源与所述当前联邦学习任务需要的硬件加速资源之间的初始差值;从所述初始差值中确定出差值最小的目标差值,以及确定出与所述目标差值对应的目标fpga加速卡。
10.第二方面,本技术提供了一种联邦学习加速装置,包括:训练轮次获取模块,用于构建fpga资源池和联邦学习集群,并获取所述联邦学习集群中的联邦学习服务器参与的当前联邦学习任务中的针对联邦模型的当前训练轮次;学习效率判断模块,用于判断所述当前训练轮次是否达到预设训练轮次,如果达到,则判断所述当前联邦学习任务的学习效率是否小于其他组织对应的学习效率;资源申请模块,用于如果小于,则基于所述当前联邦学习任务的学习效率确定所述当前联邦学习任务需要的硬件加速资源,并将基于所述硬件加速资源确定的硬件资源请求发送至所述fpga资源池,以及判断是否从所述fpga资源池中申请到与所述硬件资源请求对应的目标fpga加速卡;联邦学习加速模块,用于如果申请到,则利用所述目标fpga加速卡对所述当前联邦学习任务进行加速,以完成针对联邦模型的本轮训练。
11.第三方面,本技术提供了一种电子设备,包括:存储器,用于保存计算机程序;处理器,用于执行所述计算机程序以实现前述的联邦学习加速方法。
12.第四方面,本技术提供了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的联邦学习加速方法。
13.本技术中,构建fpga资源池和联邦学习集群,并获取所述联邦学习集群中的联邦学习服务器参与的当前联邦学习任务中的针对联邦模型的当前训练轮次;判断所述当前训练轮次是否达到预设训练轮次,如果达到,则判断所述当前联邦学习任务的学习效率是否小于其他组织对应的学习效率;如果小于,则基于所述当前联邦学习任务的学习效率确定所述当前联邦学习任务需要的硬件加速资源,并将基于所述硬件加速资源确定的硬件资源请求发送至所述fpga资源池,以及判断是否从所述fpga资源池中申请到与所述硬件资源请求对应的目标fpga加速卡;如果申请到,则利用所述目标fpga加速卡对所述当前联邦学习任务进行加速,以完成针对联邦模型的本轮训练。由此可见,本技术在当前联邦学习任务中的针对联邦模型的当前训练轮次达到预设训练轮次时,通过对当前联邦学习任务的学习效率与其他组织对应的学习效率进行对比,若当前联邦学习任务的学习效率小于其他组织对应的学习效率,则从fpga资源池中申请对应的fpga加速卡,并利用fpga加速卡对当前联邦学习任务进行加速,以避免由于当前联邦学习任务的学习效率过低所导致的联邦学习的整体效率被拉低的问题,削弱联邦学习中的短板效应,进而提高联邦学习的整体效率。
附图说明
14.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
15.图1为本技术公开的一种联邦学习加速方法流程图;图2为本技术公开的一种联邦学习加速流程图;图3为本技术公开的一种fpga资源池处理申请流程图;图4为本技术公开的一种具体的联邦学习加速方法流程图;图5为本技术公开的另一种具体的联邦学习加速方法流程图;图6为本技术公开的一种联邦学习加速装置结构示意图;图7为本技术公开的一种电子设备结构图。
具体实施方式
16.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
17.联邦学习作为一种多方安全计算方法,受到越来越多的关注。多个组织共同进行联邦学习训练,任务的进度及完成时间受最慢的组织影响,即存在木桶效应,并且联邦学习任务的训练过程通常都比较耗时。如何提高联邦学习的效率是目前有待解决的问题。为此,本技术提供了一种联邦学习加速方法,通过对学习效率低的当前联邦学习任务进行fpga加速,削弱联邦学习中的短板效应,并提高联邦学习的整体效率。
18.参见图1所示,本发明实施例公开了一种联邦学习加速方法,包括:步骤s11、构建fpga资源池和联邦学习集群,并获取所述联邦学习集群中的联邦学习服务器参与的当前联邦学习任务中的针对联邦模型的当前训练轮次。
19.本实施例中,联邦学习是由多个组织共同对联邦模型进行训练,对于本组织来说,需要构建一个fpga(field programmable gate array,现场可编程门阵列)资源池,该fpga资源池中包括多个fpga加速卡,并记录了每一个fpga加速卡的硬件计算能力以及每一个fpga加速卡的当前工作状态,并且该fpga资源池拥有同步互斥机制。另外,本组织中构建的联邦学习集群中包括多个联邦学习服务器,每个联邦学习服务器对应一个或多个联邦学习任务,同时联邦学习集群中记录了每个联邦学习任务的优先级,不同优先级对应不同的fpga资源的优先使用权。另外,联邦学习集群中的联邦学习服务器的数量应大于或者等于fpga资源池中fpga加速卡的数量。进一步的,如图2所示,在构建好fpga资源池和联邦学习集群之后,本组织开始对联邦模型进行训练,并在针对联邦模型的任意一轮训练中,也即相当于在一轮训练的内部起点,需要先获取联邦学习集群中的联邦学习服务器参与的当前联邦学习任务中的针对联邦模型的当前训练的轮数。
20.步骤s12、判断所述当前训练轮次是否达到预设训练轮次,如果达到,则判断所述当前联邦学习任务的学习效率是否小于其他组织对应的学习效率。
21.本实施例中,如图2所示,在获取到当前训练轮次之后,先判断当前训练轮次是否达到预先设定的训练轮次,如果当前训练轮次达到预设训练轮次,则进一步判断本组织的联邦学习服务器参与的当前联邦学习任务的学习效率是否小于其他组织对应的学习效率。其中,其他组织指的是执行上述当前联邦学习任务的除了本组织之外的剩余组织;其他组织对应的学习效率指的是其他组织的联邦学习服务器参与的上述当前联邦学习任务对应
的学习效率。
22.本实施例中,如图2所示,如果本组织的当前训练轮次未达到预设训练轮次,则进一步判断当前联邦学习任务的当前优先级是否小于预设优先级;如果当前优先级不小于预设优先级,则跳转至步骤s13的基于所述当前联邦学习任务的学习效率确定所述当前联邦学习任务需要的硬件加速资源的步骤;如果当前优先级小于预设优先级,则直接对联邦模型进行训练,以完成针对联邦模型的本轮训练。需要说明的是,由于联邦学习集群中记录了每一个联邦学习任务的优先级,对于优先级高的联邦学习任务具有fpga资源的优先使用权。因此在当前联邦学习任务的当前优先级大于或者等于预先设定的优先级时,说明当前联邦学习任务具有fpga资源的优先使用权,可以从fpga资源池中申请对应的硬件加速资源,也即会跳转至步骤s13中基于当前联邦学习任务的学习效率确定当前联邦学习任务需要的硬件加速资源的步骤。在当前联邦学习任务的当前优先级小于预先设定的优先级时,则说明不具有使用fpga硬件资源的资格,也即将会直接对联邦模型进行训练,以完成针对联邦模型的本轮训练。此时为图2中的本轮训练的内部终点,同时会判断当前对联邦模型的训练是否满足预设模型结束条件,如果是,则退出模型训练,如果否,则继续进行相对于当前训练轮次的下一轮模型训练。其中,预设模型结束条件包括但不限于当前训练轮次达到预设训练结束轮次、当前联邦模型的损失率小于预设损失阈值。这样一来,通过确定当前联邦学习任务对应的当前优先级,优先级高的任务可以申请fpga资源,以进行联邦学习的加速,削弱联邦学习中的短板效应,进而提高联邦学习的整体效率;优先级低的任务不具有申请fpga资源的资格,避免优先级低的任务占用过多的fpga资源,导致优先级高的任务申请不到合适的fpga资源。
23.步骤s13、如果小于,则基于所述当前联邦学习任务的学习效率确定所述当前联邦学习任务需要的硬件加速资源,并将基于所述硬件加速资源确定的硬件资源请求发送至所述fpga资源池,以及判断是否从所述fpga资源池中申请到与所述硬件资源请求对应的目标fpga加速卡。
24.本实施例中,如图2所示,如果当前联邦学习任务的学习效率小于其他组织对应的学习效率,则根据当前联邦学习任务的学习效率确定当前联邦学习任务需要多少fpga硬件加速资源,并基于硬件加速资源生成用于向fpga资源池申请资源的硬件资源请求,然后将上述硬件资源请求发送至fpga资源池。在fpga资源池接收到该硬件资源请求之后,会尝试从fpga资源池中申请对应的fpga加速卡,并进一步判断是否从fpga资源池中申请到了与硬件资源请求对应的目标fpga加速卡。需要说明的是,fpga资源池可以接收多个联邦学习服务器发送的fpga硬件资源请求,并可以根据硬件资源请求确定出对应的0个或多个最优的目标fpga加速卡,但是,一个fpga加速卡同时最多只能被分配给一个联邦学习任务。如果当前联邦学习任务的学习效率大于或者等于其他组织对应的学习效率,则说明当前联邦学习任务不需要申请fpga资源,直接对联邦模型进行训练即可,以完成针对联邦模型的本轮训练。
25.本实施例中,所述判断是否从fpga资源池中申请到与硬件资源请求对应的目标fpga加速卡,可以包括在fpga资源池获取到硬件资源请求后,判断fpga资源池中是否存在空闲的fpga加速卡;如果不存在空闲的fpga加速卡,则直接对联邦模型进行训练,以完成针对联邦模型的本轮训练;如果存在空闲的fpga加速卡,则判断空闲的fpga加速卡中是否存
在满足预设最优条件的目标fpga加速卡;如果存在目标fpga加速卡,则将目标fpga加速卡提供至当前联邦学习任务;如果不存在目标fpga加速卡,则直接对联邦模型进行训练,以完成针对联邦模型的本轮训练。可以理解的是,如图3所示,在fpga资源池接收到硬件资源请求之后,需要先判断fpga资源池中是否存在空闲的fpga加速卡,如果不存在空闲的fpga加速卡,则不提供fpga资源,也即直接对联邦模型进行训练,如果存在空闲的fpga加速卡,则尝试从空闲的fpga加速卡中确定出最优的目标fpga加速卡。然后判断是否存在上述目标fpga加速卡,如果不存在目标fpga加速卡,则不提供fpga资源,直接对联邦模型进行训练,如果存在目标fpga加速卡,则将该目标fpga加速卡提供给当前联邦学习任务。这样一来,通过对fpga资源池中的fpga加速卡进行多次判断,以便从fpga资源池中找出最优的目标fpga加速卡。
26.步骤s14、如果申请到,则利用所述目标fpga加速卡对所述当前联邦学习任务进行加速,以完成针对联邦模型的本轮训练。
27.本实施例中,如图2所示,如果从fpga资源池中申请到目标fpga加速卡,则利用目标fpga加速卡对当前联邦学习任务进行加速,以完成本轮训练,并在使用完目标fpga加速卡之后,将目标fpga加速卡归还给fpga资源池。如果没有从fpga资源池中申请到目标fpga加速卡,则直接对联邦模型进行训练,以完成针对联邦模型的本轮训练。在完成本轮训练之后,也即为图2中的内部终点,则需要进一步判断当前对联邦模型的训练是否满足预设模型结束条件,如果是,则退出模型训练,如果否,则继续进行相对于当前训练轮次的下一轮模型训练。其中,预设模型结束条件包括但不限于当前训练轮次达到预设训练结束轮次、当前联邦模型的损失率小于预设损失阈值。这样一来,通过组建一个fpga资源池来为学习效率低的任务进行加速,能够提高联邦学习的训练效率。
28.由此可见,本技术在当前联邦学习任务中的针对联邦模型的当前训练轮次达到预设训练轮次时,通过对当前联邦学习任务的学习效率与其他组织对应的学习效率进行对比,若当前联邦学习任务的学习效率小于其他组织对应的学习效率,则从fpga资源池中申请对应的fpga加速卡,并利用fpga加速卡对当前联邦学习任务进行加速,以避免由于当前联邦学习任务的学习效率过低所导致的联邦学习的整体效率被拉低的问题,削弱联邦学习中的短板效应,进而提高联邦学习的整体效率。
29.基于前一实施例可知,在当前联邦学习任务的当前训练轮次达到预设训练轮次时,本技术需要判断当前联邦学习任务的学习效率是否小于其他组织对应的学习效率,为此,本技术接下来将对如何获取当前联邦学习任务的学习效率以及其他组织对应的学习效率进行详细阐述。参见图4所示,本发明实施例公开了一种学习效率获取的过程,包括:步骤s21、获取相对于本轮训练的前n轮训练中联邦模型在本组织的第一停留时间;所述n为预设数量。
30.本实施例中,对于相对于本轮训练的前n轮训练中的任意一轮训练,要想获取在该轮训练中模型在本组织的第一停留时间,需要先获取联邦模型在第一目标轮训练中的训练起始时间,以及获取联邦模型在第一目标轮训练中的训练结束时间;其中,上述第一目标轮训练为前n轮训练中的任意一轮;基于训练起始时间和训练结束时间确定出第一目标轮训练中联邦模型在本组织的第一停留时间。可以理解的是,由于本实施例需要选取相对于本轮训练的前n轮训练,其中,n可以由用户根据自身需求进行设置,但不可过小,这样一来,可
以避免由于选取的训练轮数过少所导致的后续对当前联邦学习任务的学习效率的判断出现错误。进一步的,对于前n轮训练中的任意一轮的模型停留时间,具体步骤包括获取本组织收到联邦模型并对联邦模型进行第一目标轮训练的训练起始时间,获取本组织结束针对联邦模型的第一目标轮训练的训练结束时间,计算训练结束时间与训练起始时间之间的时间差,以得到第一目标轮训练中联邦模型在本组织的第一停留时间。
31.步骤s22、获取所述前n轮训练中联邦模型在其他组织的第二停留时间。
32.本实施例中,对于前n轮训练中的任意一轮,要想获取在该轮训练中联邦模型在其他组织的停留时间,需要先获取被检测组织在完成第二目标轮训练后将联邦模型进行输出时对应的第一时间;其中,上述被检测组织为其他组织中的任意一方;上述第二目标轮训练为前n轮训练中的任意一轮。获取非被检测组织将目标联邦模型发送至被检测组织时对应的第二时间,以及获取目标联邦模型在网络上的传输时延;其中,上述目标联邦模型为被检测组织进行第二目标轮训练时对应的训练前模型;基于第一时间、第二时间以及传输时延确定第二目标轮训练中联邦模型在其他组织的第二停留时间。需要说明的是,被检测组织为执行联邦学习任务的除了本组织之外的其他组织中的任意一个,非被检测组织为执行联邦学习任务的除了被检测组织之外的剩余组织中的任意一个,非被检测组织既可以是本组织,也可以是除了本组织以及被检测组织之外的剩余组织。可以理解的是,获取被检测组织完成第二目标轮训练并将训练后的联邦模型输出时对应的第一时间,获取非检测组织完成一轮训练将目标联邦模型发送给被检测组织时对应的第二时间,获取目标联邦模型在网络上的传输时延,计算第一时间与第二时间以及传输时间之和的时间差,该时间差即为第二目标轮训练中联邦模型在其他组织的第二停留时间。
33.步骤s23、判断所述第一停留时间是否小于所述第二停留时间。
34.本实施例中,如果第一停留时间小于或者等于第二停留时间,则表明当前联邦学习任务的学习效率大于或者等于其他组织对应的学习效率,也即不需要从fpga资源池中申请对应的fpga加速卡,可以直接对联邦模型进行训练,以完成针对联邦模型的本轮训练。
35.步骤s24、如果所述第一停留时间大于所述第二停留时间,则基于当前联邦学习任务的学习效率确定所述当前联邦学习任务需要的硬件加速资源。
36.本实施例中,如果第一停留时间大于第二停留时间,则表明当前联邦学习任务的学习效率低于其他组织对应的学习效率,需要为当前联邦学习任务从fpga资源池中申请对应的fpga加速卡,此时会先根据当前联邦学习任务的学习效率确定出当前联邦学习任务需要多少硬件加速资源,并将基于硬件加速资源确定的硬件资源请求发送给fpga资源池,以便根据硬件资源请求尝试从fpga资源池中申请最优的目标fpga加速卡,以对当前联邦学习任务进行加速。
37.由此可见,本技术通过确定前n轮训练中联邦模型在本组织的第一停留时间,以及前n轮训练中联邦模型在其他组织的第二停留时间,并对第一停留时间和第二停留时间进行对比,从而确定出当前联邦学习任务的学习效率是否小于其他组织对应的学习效率。如此一来,通过对学习效率低的联邦学习任务进行加速,不仅可以为学习进度落后的联邦学习任务进行加速,而且能够提高联邦学习的训练效率。
38.基于前一实施例可知,本技术需要判断空闲的fpga加速卡中是否存在满足预设最优条件的目标fpga加速卡,为此,本技术接下来将对如何确定满足预设最优条件的目标
fpga加速卡进行详细描述。参见图5所示,本发明实施例公开了一种目标fpga加速卡确定的过程,包括:步骤s31、分别确定各空闲的fpga加速卡与联邦学习服务器之间的物理距离。
39.本实施例中,由于fpga资源池中保存了若干个fpga加速卡,并记录了每一个fpga加速卡的当前工作状态以及硬件计算能力。因此,在fpga资源池接收到硬件资源请求之后,先从若干个fpga加速卡中筛选出若干个空闲的fpga加速卡,其中,若干个空闲的fpga加速卡包括0个空闲的fpga加速卡或者多个空闲的fpga加速卡。如果为0个空闲的fpga加速卡,则直接对联邦模型进行训练,以完成针对联邦模型的本轮训练。如果为多个空闲的fpga加速卡,则分别确定每一个空闲的fpga加速卡与联邦学习服务器之间的物理距离。
40.步骤s32、从各所述物理距离中筛选出满足预设距离条件的目标物理距离,并确定出与所述目标物理距离对应的初始fpga加速卡。
41.本实施例中,在得到各空闲的fpga加速卡与联邦学习服务器之间的物理距离之后,需要从各个物理距离中筛选出满足预设距离阈值范围的目标物理距离,并确定出与目标物理距离对应的初始fpga加速卡。其中,预设距离阈值范围可以由用户根据自身的距离需求进行设置。目标物理距离可能为0个或多个,如果为0个,则表明当前不存在满足预设最优条件的目标fpga加速卡,直接对联邦模型进行训练即可,如果为多个,则进一步确定与目标物理距离对应的初始fpga加速卡。
42.步骤s33、确定所述初始fpga加速卡的空闲加速资源与当前联邦学习任务需要的硬件加速资源之间的初始差值。
43.本实施例中,在确定出初始fpga加速卡之后,需要获取初始fpga加速卡对应的空闲加速资源,并对空闲加速资源与当前联邦学习任务需要的硬件加速资源进行比较,计算空闲加速资源与硬件加速资源之间的初始差值。
44.步骤s34、从所述初始差值中确定出差值最小的目标差值,以及确定出与所述目标差值对应的目标fpga加速卡。
45.本实施例中,从空闲加速资源与硬件加速资源之间的初始差值中筛选出差值最小的目标差值,并确定出与目标差值对应的目标fpga加速卡。也即,从初始fpga加速卡的空闲硬件资源中筛选出与当前联邦学习任务需要的硬件加速资源相差最小的目标空闲加速资源,并将与目标空闲加速资源对应的初始fpga加速卡作为目标fpga加速卡。然后利用目标fpga加速卡对当前联邦学习任务进行加速,以完成针对联邦模型的本轮训练。这样一来,通过筛选与差值最小的目标差值对应目标fpga加速卡对当前联邦学习任务进行加速,可以在保证具有足够加速资源的情况下,尽量节约硬件资源的使用。
46.由此可见,本技术通过从空闲的fpga加速卡中先筛选出满足预设距离条件的初始fpga加速卡,再从初始fpga加速卡中筛选出与当前联邦学习任务需要的硬件加速资源相差最小的目标fpga加速卡,最后利用目标fpga加速卡对学习效率低的当前联邦学习任务进行加速,不仅可以削弱联邦学习中的短板效应,提高联邦学习的训练效率,而且可以在保证当前联邦学习任务具有足够加速资源的情况下,避免对fpga资源池中fpga硬件资源的浪费。
47.参见图6所示,本发明实施例公开了一种联邦学习加速装置,包括:训练轮次获取模块11,用于构建fpga资源池和联邦学习集群,并获取所述联邦学习集群中的联邦学习服务器参与的当前联邦学习任务中的针对联邦模型的当前训练轮次;
学习效率判断模块12,用于判断所述当前训练轮次是否达到预设训练轮次,如果达到,则判断所述当前联邦学习任务的学习效率是否小于其他组织对应的学习效率;资源申请模块13,用于如果小于,则基于所述当前联邦学习任务的学习效率确定所述当前联邦学习任务需要的硬件加速资源,并将基于所述硬件加速资源确定的硬件资源请求发送至所述fpga资源池,以及判断是否从所述fpga资源池中申请到与所述硬件资源请求对应的目标fpga加速卡;联邦学习加速模块14,用于如果申请到,则利用所述目标fpga加速卡对所述当前联邦学习任务进行加速,以完成针对联邦模型的本轮训练。
48.由此可见,本技术在当前联邦学习任务中的针对联邦模型的当前训练轮次达到预设训练轮次时,通过对当前联邦学习任务的学习效率与其他组织对应的学习效率进行对比,若当前联邦学习任务的学习效率小于其他组织对应的学习效率,则从fpga资源池中申请对应的fpga加速卡,并利用fpga加速卡对当前联邦学习任务进行加速,以避免由于当前联邦学习任务的学习效率过低所导致的联邦学习的整体效率被拉低的问题,削弱联邦学习中的短板效应,进而提高联邦学习的整体效率。
49.在一些具体实施例中,所述联邦学习加速装置,还可以包括:优先级判断单元,用于如果未达到所述预设训练轮次,则判断所述当前联邦学习任务的当前优先级是否小于预设优先级;步骤跳转单元,用于如果所述当前优先级不小于所述预设优先级,则跳转至所述基于所述当前联邦学习任务的学习效率确定所述当前联邦学习任务需要的硬件加速资源的步骤;第一训练单元,用于如果所述当前优先级小于所述预设优先级,则直接对联邦模型进行训练,以完成针对联邦模型的本轮训练。
50.在一些具体实施例中,所述学习效率判断模块12,具体可以包括:第一停留时间获取子模块,用于获取相对于本轮训练的前n轮训练中联邦模型在本组织的第一停留时间;所述n为预设数量;第二停留时间获取子模块,用于获取所述前n轮训练中联邦模型在其他组织的第二停留时间;停留时间判断单元,用于判断所述第一停留时间是否小于所述第二停留时间;相应的,所述资源申请模块13,具体可以用于如果所述第一停留时间大于所述第二停留时间,则基于所述当前联邦学习任务的学习效率确定所述当前联邦学习任务需要的硬件加速资源。
51.在一些具体实施例中,所述第一停留时间获取子模块,具体可以包括:训练时间获取单元,用于获取联邦模型在第一目标轮训练中的训练起始时间,以及获取联邦模型在所述第一目标轮训练中的训练结束时间;所述第一目标轮训练为所述前n轮训练中的任意一轮;第一停留时间确定单元,用于基于所述训练起始时间和所述训练结束时间确定出所述第一目标轮训练中联邦模型在本组织的第一停留时间。
52.在一些具体实施例中,所述第二停留时间获取子模块,具体可以包括:第一时间获取单元,用于获取被检测组织在完成第二目标轮训练后将联邦模型进
行输出时对应的第一时间;所述被检测组织为其他组织中的任意一方;所述第二目标轮训练为所述前n轮训练中的任意一轮;第二时间获取单元,用于获取非被检测组织将目标联邦模型发送至所述被检测组织时对应的第二时间,以及获取所述目标联邦模型在网络上的传输时延;所述目标联邦模型为所述被检测组织进行所述第二目标轮训练时对应的训练前模型;第二停留时间确定单元,用于基于所述第一时间、所述第二时间以及所述传输时延确定所述第二目标轮训练中联邦模型在其他组织的第二停留时间。
53.在一些具体实施例中,所述资源申请模块13,具体可以包括:空闲加速卡判断单元,用于在所述fpga资源池获取到所述硬件资源请求后,判断所述fpga资源池中是否存在空闲的fpga加速卡;第二训练单元,用于如果不存在所述空闲的fpga加速卡,则直接对联邦模型进行训练,以完成针对联邦模型的本轮训练;目标加速卡判断子模块,用于如果存在所述空闲的fpga加速卡,则判断所述空闲的fpga加速卡中是否存在满足预设最优条件的目标fpga加速卡;加速卡提供单元,用于如果存在所述目标fpga加速卡,则将所述目标fpga加速卡提供至所述当前联邦学习任务;第三训练单元,用于如果不存在所述目标fpga加速卡,则直接对联邦模型进行训练,以完成针对联邦模型的本轮训练。
54.在一些具体实施例中,所述目标加速卡判断子模块,具体可以包括:物理距离确定单元,用于分别确定各所述空闲的fpga加速卡与所述联邦学习服务器之间的物理距离;初始加速卡确定单元,用于从各所述物理距离中筛选出满足预设距离条件的目标物理距离,并确定出与所述目标物理距离对应的初始fpga加速卡;初始差值确定单元,用于确定所述初始fpga加速卡的空闲加速资源与所述当前联邦学习任务需要的硬件加速资源之间的初始差值;目标加速卡确定单元,用于从所述初始差值中确定出差值最小的目标差值,以及确定出与所述目标差值对应的目标fpga加速卡。
55.进一步的,本技术实施例还公开了一种电子设备,图7是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本技术的使用范围的任何限制。
56.图7为本技术实施例提供的一种电子设备20的结构示意图。该电子设备 20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的联邦学习加速方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
57.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵 循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进 行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
58.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、 磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222 等,存储方式可以是短暂存储或者永久存储。
59.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算 机程序222,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的联邦学习加速方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
60.进一步的,本技术还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的联邦学习加速方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
61.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
62.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
63.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
64.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
65.以上对本技术所提供的技术方案进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。