混合架构系统及基于数据传输耗时的任务调度方法与流程

文档序号:29217229发布日期:2022-03-12 11:54阅读:130来源:国知局
混合架构系统及基于数据传输耗时的任务调度方法与流程

1.本技术涉及人工智能技术领域,尤其涉及一种混合架构系统及基于数据传输耗时的任务调度方法。


背景技术:

2.随着人工智能技术的发展,隐私计算(基于联邦学习)的应用也越来越广泛,隐私计算(privacy computing)是指一种由两个或多个参与方(隐私计算的参与方既可以是同一机构的不同部门,也可以是不同的机构,在保护数据安全的同时实现多源数据跨域合作)联合计算的技术和系统,参与方在不泄露各自数据的前提下通过协作对他们的数据进行联合机器学习和联合分析。
3.隐私计算过程中,可以选择不同的计算方式,不同计算方式数据传输量和数据存储量不同,现有技术中是用户手动选择具体的计算方式,然而,手动选择的计算方式往往不是最优选,造成隐私计算资源的浪费。


技术实现要素:

4.本技术的主要目的在于提供一种混合架构系统及基于数据传输耗时的任务调度方法,旨在解决现有隐私计算过程中,手动选择计算方式,易造成隐私计算资源浪费的技术问题。
5.为实现上述目的,本技术提供一种混合架构系统,所述混合架构系统包括:
6.第一参与方,所述第一参与方用于:发起待处理任务,确定关联所述待处理任务的第一数据,并计算将所述第一数据的未上传至第三方的子集传输到第三方所需的第一耗时;还用于接收各其他第二参与方的关联所述待处理任务的第二数据的未上传至第三方的子集传输到第三方所需的第二耗时,并基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型,其中,所述任务类型包括分散式类型以及集中式类型;还用于在所述待处理任务为集中式类型时将所述第一数据的未上传至第三方的子集发送到第三方,或者在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和以配合其他参与方进行分散式运算;
7.第二参与方,所述第二参与方用于:在检测到第一参与方发起待处理任务后,确定关联所述待处理任务的第二数据,计算将所述第二数据的未上传至第三方的子集传输到第三方所需的第二耗时,并将所述第二耗时发送给所述第一参与方;还用于在所述待处理任务为集中式类型时将所述第二数据的未上传至第三方的子集发送给第三方,或者在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和其他参与方进行分散式运算;
8.第三方,所述第三方用于:在所述待处理任务为集中式类型时,结合所述第一数据和所述第二数据进行集中式运算,或者在所述待处理任务为分散式类型时,通过本地计算以配合其他参与方进行分散式运算。
9.可选地,所述第二参与方为多个。
10.可选地,所述第一参与方包括第一调度模块、第一计算模块、第一通信模块和任务类型推荐模块,所述第一通信模块用于与所述第二参与方和/或所述第三方通信;所述任务类型推荐模块用于发起待处理任务,确定关联所述待处理任务的第一数据,并计算将所述第一数据的未上传至第三方的子集传输到第三方所需的第一耗时,以及用于接收各其他第二参与方的第二耗时,并基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型;所述第一调度模块用于在所述待处理任务为分散式类型时通过本地任务调度所述第一计算模块进行本地运算以配合第三方和其他参与方进行分散式运算,或者在所述待处理任务为集中式类型时,将所述第一数据的未上传至第三方的子集通过所述第一通信模块发送给第三方。
11.可选地,所述第二参与方包括第二调度模块,第二计算模块和第二通信模块,所述第二通信模块用于与所述第一参与方和/或所述第三方通信,所述第二调度模块用于:在检测到第一参与方发起待处理任务后,确定关联所述待处理任务的第二数据,计算将所述第二数据的未上传至第三方的子集传输到第三方所需的第二耗时,并通过所述第二通信模块将所述第二耗时发送给所述第一参与方,以及用于在所述待处理任务为分散式类型时,通过本地任务调度所述第二计算模块以配合第三方和其他参与方进行分散式运算,或者在所述待处理任务为集中式类型时,将所述第二数据的未上传至第三方的子集通过所述第二通信模块发送给第三方。
12.可选地,所述第三方包括第三调度模块、第三计算模块和第三通信模块,所述第三通信模块用于与所述第一参与方和/或所述第二参与方通信;所述第三调度模块用于:在所述待处理任务为集中式类型时,调度所述第三计算模块结合所述第一数据和所述第二数据进行集中式运算,或者在所述待处理任务为分散式类型时,通过本地任务调度所述第三计算模块进行本地运算以配合其他参与方进行分散式运算。
13.为实现上述目的,本技术提供一种基于数据传输耗时的任务调度方法,应用于参与方子系统中任一发起待处理任务的第一参与方,所述参与方子系统还包括至少一个关联所述待处理任务的第二参与方,所述任务调度方法包括:
14.提交待处理任务,确定关联所述待处理任务的第一数据,并计算将所述第一数据的未上传至第三方的子集传输到第三方所需的第一耗时;
15.接收各其他第二参与方的关联所述待处理任务的第二数据的未上传至第三方的子集传输到第三方所需的第二耗时;
16.基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型,其中,所述任务类型包括分散式类型以及集中式类型;
17.在所述待处理任务为集中式类型时将所述第一数据的未上传至第三方的子集发送到第三方,以供所述第三方结合所述第一数据和所述第二参与方接收到所述任务类型后上传到所述第三方的第二数据进行集中式运算,得到处理结果;或者在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和以配合其他参与方进行分散式运算,得到处理结果。
18.可选地,所述基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型的步骤,包括:
19.从所述第一耗时和所述第二耗时中选择最大耗时作为第一数据传输耗时;
20.若所述第一数据传输耗时大于预设耗时阈值时,则确定所述待处理任务的任务类型为分散式类型;
21.若所述第一数据传输耗时小于或者等于预设耗时阈值时,则确定所述待处理任务的任务类型为集中式类型。
22.可选地,所述基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型的步骤的步骤,包括:
23.获取所述待处理任务的任务信息;
24.基于所述任务信息从预设历史任务中查询与所述待处理任务相似度相匹配且任务类型为分散式类型的第一历史任务;
25.获取所述第一历史任务处理过程中第一参与方和其他各第二参与方传输中间数据过程中的中间传输量,并基于所述中间传输量和当前网络状态信息计算第二数据传输耗时;
26.从所述第一耗时和所述第二耗时中选择最大耗时作为第一数据传输耗时;
27.若所述第一数据传输耗时大于或者等于所述第二数据传输耗时,则确定所述待处理任务的类型为分散式类型;
28.若所述第一数据传输耗时小于所述第二数据传输耗时,则确定所述待处理任务的类型为集中式类型。
29.为实现上述目的,本技术还提供一种基于数据传输耗时的任务调度方法,应用于参与方子系统中任一被动关联待处理任务的第二参与方,所述参与方子系统还包括发起所述待处理任务的第一参与方,所述任务调度方法包括:
30.在检测到第一参与方发起待处理任务后,确定关联所述待处理任务的第二数据,计算将所述第二数据的未上传至第三方的子集传输到第三方所需的第二耗时,并将所述第二耗时发送给所述第一参与方;
31.接收所述第一参与方返回的所述待处理任务的任务类型,在所述待处理任务为集中式类型时将所述第二数据的未上传至第三方的子集发送给第三方,以供所述第三方结合所述第二数据和所述第一参与方基于所述任务类型上传到所述第三方的第一数据进行集中式运算,得到处理结果;或者在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和以配合其他参与方进行分散式运算,得到处理结果;
32.其中,所述任务类型是所述第一参与方依据所述第一参与方关联所述待处理任务的第一数据的未上传至第三方的子集传输到第三方所需的第一耗时、各其他第二参与方的所述第二耗时和预设耗时阈值确定的;
33.其中,所述任务类型包括分散式类型以及集中式类型。
34.可选地,所述任务调度方法还包括:
35.在处于空闲状态时,将本地的第一数据集上传给所述第三方。
36.可选地,在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和其他参与方进行分散式运算,得到处理结果的步骤,包括:
37.若所述待处理任务的分散式类型为横向联邦类型时,发送第一中间数据给所述第三方;其中,所述第一中间数据由各个参与方基于相应第一模型梯度生成,所述第一模型梯
度由各参与方基于相应本地模型计算得到;
38.接收第三方发送的聚合中间数据,其中,所述聚合中间数据是所述第三方对所述第一中间数据进行聚合得到的;
39.基于所述聚合中间数据更新模型参数,得到更新后的本地模型,并基于各自更新后的本地模型继续生成新的第一中间数据;
40.迭代返回至所述发送第一中间数据给所述第三方的步骤,直至达到第一预设完成条件,将达到第一预设完成条件时对应的数据结果作为处理结果。
41.可选地,在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和其他参与方进行分散式运算,得到处理结果的步骤,包括:
42.若所述待处理任务的分散式类型为纵向联邦类型时,对第二中间数据加密以及掩码处理后得到中间结果,将所述中间结果发送给所述第三方;
43.其中,所述第二中间数据由各参与方基于相应加密后的第二模型梯度交换生成,所述第二模型梯度由各参与方基于相应本地模型计算得到;
44.接收第三方对所述中间结果进行解密处理后发送的解密的所述中间结果,基于所述解密的中间结果更新各自的模型参数,并得到各自更新后的本地模型,并基于各自更新后的本地模型继续生成新的中间结果;
45.迭代返回至所述对第二中间数据加密以及掩码处理后得到中间结果的步骤,直至达到第二预设完成条件,将达到第二预设完成条件对应的数据结果作为处理结果。
46.本技术还提供一种基于数据传输耗时的任务调度方法,应用于第三方,所述任务调度方法包括:
47.在第一参与方发起的待处理任务的任务类型为集中式类型时,结合所述第一数据和所述第二数据进行集中式运算,得到处理结果,其中,所述第一数据是所述第一参与方上传到所述第三方的关联所述待处理任务的数据,所述第二数据是所述各第二参与方上传到所述第三方的关联所述待处理任务的数据;或者
48.在第一参与方发起的待处理任务的任务类型为分散式类型时,通过本地计算以配合其他参与方进行分散式运算,得到处理结果;
49.其中,所述第一参与方发起的待处理任务的任务类型是所述第一参与方依据所述第一参与方关联所述待处理任务的第一数据的未上传至第三方的子集传输到第三方所需的第一耗时、各其他第二参与方关联所述待处理任务的第二数据的未上传至第三方的子集传输到第三方所需的第二耗时和预设耗时阈值确定的。
50.可选地,所述在第一参与方发起的待处理任务的任务类型为集中式类型时,结合所述第一数据和所述第二数据进行集中式运算,得到处理结果,包括:
51.在第一参与方发起的待处理任务的任务类型为集中式类型时,结合所述第一数据和所述第二数据,通过采用集中式调度模式对集中式任务进行调度的方式,并配合所述第一参与方和各第二参与方根据所述任务类型对应的目标调度模式对所述待处理任务进行隐私计算,得到处理结果。
52.可选地,所述结合所述第一数据和所述第二数据,通过采用集中式调度模式对集中式任务进行调度的方式,并配合所述第一参与方和各第二参与方根据所述任务类型对应的目标调度模式对所述待处理任务进行隐私计算,得到第一处理结的步骤,包括:
53.判断本地是否存有第一参与方的第一数据的全集和各第二参与方的第二数据的全集;
54.若没有,调度第一参与方加密上传第一数据的未上传至第三方的子集,并调度其他各第二参与方加密上传第二数据的未上传至第三方的子集,存储所述第一数据的全集和所述第二数据的全集;
55.从本地调取所述第一数据的全集和所述第二数据的全集,对所述待处理任务进行集中式运算处理,得到处理结果。
56.可选地,所述在第一参与方发起的待处理任务的任务类型为分散式类型时,通过本地计算以配合其他参与方进行分散式运算,得到处理结果,包括:
57.所述在第一参与方发起的待处理任务的任务类型为分散式类型时,通过采用分散式调度模式对分散式类型任务进行调度的方式,并配合所述第一参与方和第二参与方根据所述任务类型对应的目标调度模式对所述待处理任务进行隐私计算,并得到处理结果。
58.可选地,所述通过采用分散式调度模式对分散式类型任务进行调度的方式,并配合所述第一参与方和第二参与方根据所述任务类型对应的目标调度模式对所述待处理任务进行隐私计算,并得到处理结果的步骤,包括:
59.若所述待处理任务的分散式类型为横向联邦分散式类型时,接收各个参与方加密发送的第一中间数据;
60.其中,所述第一中间数据由各参与方基于相应第一模型梯度生成,所述第一模型梯度由各参与方基于相应本地模型进行隐私计算得到;
61.对所述第一中间数据进行聚合,得到聚合中间数据;
62.将所述聚合中间数据发送给各参与方,以供各个参与方基于所述聚合中间数据更新各自的模型参数,得到各自更新后的本地模型,并基于各自更新后的本地模型进行隐私计算,以继续生成新的第一中间数据;
63.迭代返回至所述接收各个参与方发送的第一中间数据的步骤,直至达到第一预设完成条件,将达到第一预设完成条件对应的数据结果作为处理结果。
64.可选地,所述通过采用分散式调度模式对分散式类型任务进行调度的方式,并配合所述第一参与方和第二参与方根据所述任务类型对应的目标调度模式对所述待处理任务进行隐私计算,并得到处理结果的步骤,包括:
65.若所述待处理任务的分散式类型为纵向联邦类型时,接收各个参与方对第二中间数据加密以及掩码处理后发送的中间结果;
66.其中,所述第二中间数据由各参与方基于相应加密后的第二模型梯度交换生成,所述第二模型梯度由各参与方基于相应本地模型计算得到;
67.对所述中间结果进行解密处理,并将所述解密处理后的所述中间结果发送给对应参与方,以供各个参与方基于所述中间结果更新各自的模型参数,并得到各自更新后的本地模型,并基于各自更新后的本地模型继续生成新的中间结果;
68.迭代返回至所述接收各个参与方对第二中间数据加密以及掩码处理后发送的中间结果的步骤,直至达到第二预设完成条件,将达到第二预设完成条件对应的数据结果作为处理结果。
69.本技术还提供一种电子设备,所述电子设备为实体节点设备,所述电子设备包括:
存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述任务调度方法的程序,所述任务调度方法的程序被处理器执行时可实现如上述所述任务调度方法的步骤。
70.本技术还提供一种存储介质,所述存储介质上存储有实现上述基于数据传输耗时的任务调度方法的程序,所述任务调度方法的程序被处理器执行时实现如上述所述任务调度方法的步骤。
71.本技术还提供一种产品、所述产品为计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述所述基于数据传输耗时的任务调度方法的步骤。
72.本技术提供的混合架构系统及基于数据传输耗时的任务调度方法,与现有技术中用户手动选择具体的计算方式,易造成隐私计算资源浪费相比,在本技术中,提交待处理任务,确定关联所述待处理任务的第一数据,并计算将所述第一数据的未上传至第三方的子集传输到第三方所需的第一耗时;接收各其他第二参与方的关联所述待处理任务的第二数据的未上传至第三方的子集传输到第三方所需的第二耗时;基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型,其中,所述任务类型包括分散式类型以及集中式类型;在所述待处理任务为集中式类型时将所述第一数据的未上传至第三方的子集发送到第三方,以供所述第三方结合所述第一数据和所述第二参与方接收到所述任务类型后上传到所述第三方的第二数据进行集中式运算,得到处理结果;或者在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和以配合其他参与方进行分散式运算,得到处理结果。可以理解,在本技术中,不是由人工想当然的选择具体的计算方式,而是通过明确的传输耗时的判断,选择时耗最少的即最优的计算方式,避免造成隐私计算资源的浪费。
附图说明
73.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
74.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
75.图1为本技术基于数据传输耗时的任务调度方法第一实施例的流程示意图;
76.图2为本技术基于数据传输耗时的任务调度方法第一实施例中步骤s30的细化流程示意图;
77.图3为本技术实施例方案涉及的硬件运行环境的设备结构示意图;
78.图4为本技术基于数据传输耗时的任务调度方法涉及的对集中式类型任务进行集中式运算的第一场景示意图;
79.图5为本技术基于数据传输耗时的任务调度方法涉及的对待处理任务的分散式类型为横向联邦分散式类型时,进行分散式运算的第二场景示意图;
80.图6为本技术基于数据传输耗时的任务调度方法涉及的对待处理任务的分散式类型为纵向联邦分散式类型时,进行分散式运算的第三场景示意图;
81.图7为本技术基于数据传输耗时的任务调度方法第五实施例中涉及的基于数据传输耗时的任务调度的第一全流程示意图;
82.图8为本技术基于数据传输耗时的任务调度方法第十三实施例中涉及的基于数据传输耗时的任务调度的第二全流程示意图;
83.图9为本技术混合架构系统的示意图。
84.本技术目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
85.为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。
86.实施例一
87.本技术实施例提供一种基于混合架构系统的任务调度系统,所述混合架构系统包括:
88.第一参与方,所述第一参与方用于:发起待处理任务,确定关联所述待处理任务的第一数据,并计算将所述第一数据的未上传至第三方的子集传输到第三方所需的第一耗时;还用于接收各其他第二参与方的关联所述待处理任务的第二数据的未上传至第三方的子集传输到第三方所需的第二耗时,并基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型,其中,所述任务类型包括分散式类型以及集中式类型;还用于在所述待处理任务为集中式类型时将所述第一数据的未上传至第三方的子集发送到第三方,或者在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和以配合其他参与方进行分散式运算;
89.第二参与方,所述第二参与方用于:在检测到第一参与方发起待处理任务后,确定关联所述待处理任务的第二数据,计算将所述第二数据的未上传至第三方的子集传输到第三方所需的第二耗时,并将所述第二耗时发送给所述第一参与方;还用于在所述待处理任务为集中式类型时将所述第二数据的未上传至第三方的子集发送给第三方,或者在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和其他参与方进行分散式运算;
90.第三方,所述第三方用于:在所述待处理任务为集中式类型时,结合所述第一数据和所述第二数据进行集中式运算,或者在所述待处理任务为分散式类型时,通过本地计算以配合其他参与方进行分散式运算。
91.在本实施例中,所述第二参与方可以为多个。
92.在本实施例中,第一参与方发起待处理任务,该待处理任务为隐私计算任务,或者模型训练任务,具体地,可以是基于联邦学习的图像建模任务,基于联邦学习的推荐(预测)建模任务,基于联邦学习的分类建模任务,基于联邦学习的查询建模任务等,等在此不做具体限定。第一参与方发起待处理任务之后,确定关联所述待处理任务的第一数据,并计算将所述第一数据的未上传至第三方的子集传输到第三方所需的第一耗时,在本实施例中,第一耗时与第一参与方和第三方之间的第一有效带宽关联,且是未上传至第三方的子集传输到第三方所需的第一耗时。具体地,若第一参与方本地的关联所述待处理任务的第一数据
都已上传,则上传耗时为0。若未都上传,第一参与方统计第一数据中未上传部分的waiting_size(第一数据的未上传至第三方的子集的大小),进而,基于未上传的第一数据的大小和第一有效带宽,确定第一耗时;第一参与方还用于接收各其他第二参与方的关联所述待处理任务的第二数据的未上传至第三方的子集传输到第三方所需的第二耗时(直接接收),并基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型,其中,所述任务类型包括分散式类型以及集中式类型,确定该任务类型的方法例如:从所述第一耗时和所述第二耗时中选择最大耗时作为第一数据传输耗时;若所述第一数据传输耗时大于预设耗时阈值时,则确定所述待处理任务的任务类型为分散式类型;若所述第一数据传输耗时小于或者等于预设耗时阈值时,则确定所述待处理任务的任务类型为集中式类型;第一参与方还用于在所述待处理任务为集中式类型时将所述第一数据的未上传至第三方的子集发送到第三方,或者在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和以配合其他参与方进行分散式运算。在本实施例中,第一参与方还可以在处于空闲状态时,将本地的数据集上传给所述第三方。
93.在本实施例中,所述第二参与方用于:在检测到第一参与方发起待处理任务后,确定关联所述待处理任务的第二数据,计算将所述第二数据的未上传至第三方的子集传输到第三方所需的第二耗时,并将所述第二耗时发送给所述第一参与方;还用于在所述待处理任务为集中式类型时将所述第二数据的未上传至第三方的子集发送给第三方,或者在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和其他参与方进行分散式运算。其中,第二数据为第二参与方本地参与待处理任务隐私计算的数据。在本实施例中,计算将所述第二据的未上传至第三方的子集传输到第三方所需的第二耗时,第二耗时与第三方和第二参与方之间的第二有效带宽关联,且是未上传至第三方的子集传输到第三方所需的第二耗时。具体地,若第二参与方本地的数据都已上传,则上传耗时为0。若未都上传,第二参与方统计第二数据中未上传部分的waiting_size(第二数据的未上传至第三方的子集的大小),进而,基于第二数据中未上传部分的大小和第二有效带宽,确定第二耗时。在本实施例中,第二参与方还可以在处于空闲状态时,将本地的数据集上传给所述第三方。
94.在本实施例中,所述第三方用于:在所述待处理任务为集中式类型时,结合所述第一数据和所述第二数据进行集中式运算,或者在所述待处理任务为分散式类型时,通过本地计算以配合其他参与方进行分散式运算。
95.具体实施中,所述第一参与方包括第一调度模块、第一计算模块、第一通信模块和任务类型推荐模块,所述第一通信模块用于与所述第二参与方和/或所述第三方通信;所述任务类型推荐模块用于发起待处理任务,确定关联所述待处理任务的第一数据,并计算将所述第一数据的未上传至第三方的子集传输到第三方所需的第一耗时,以及用于接收各其他第二参与方的第二耗时,并基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型;所述第一调度模块用于在所述待处理任务为分散式类型时通过本地任务调度所述第一计算模块进行本地运算以配合第三方和其他参与方进行分散式运算,或者在所述待处理任务为集中式类型时,将所述第一数据的未上传至第三方的子集通过所述第一通信模块发送给第三方。
96.在本实施例中,如图9所示,第一参与方包括第一调度模块、第一计算模块、第一通信模块和任务类型推荐模块,另外,所述第一参与方还可以包括第一存储模块。
97.在本实施例中,所述第一通信模块用于:与所述第二参与方和/或所述第三方通信。
98.任务类型推荐模块用于:发起待处理任务(包括建模、预测、查询等任务),以及确定关联所述待处理任务的第一数据,并计算将所述第一数据的未上传至第三方的子集传输到第三方所需的第一耗时,以及用于接收各其他第二参与方的第二耗时,并基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型;在所述待处理任务为集中式类型时,将第一数据集通过所述第一通信模块发送给第三方。
99.第一计算模块,用于若所述待处理任务的分散式类型为横向联邦类型时,发送第一中间数据给所述第三方;其中,所述第一中间数据由各个参与方基于相应第一模型梯度生成,所述第一模型梯度由各参与方基于相应本地模型计算得到;接收第三方发送的聚合中间数据,其中,所述聚合中间数据是所述第三方对所述第一中间数据进行聚合得到的;基于所述聚合中间数据更新模型参数,得到更新后的本地模型,并基于各自更新后的本地模型继续生成新的第一中间数据;迭代返回至所述发送第一中间数据给所述第三方的步骤,直至达到第一预设完成条件,将达到第一预设完成条件时对应的数据结果作为处理结果。
100.第一计算模块,用于若所述待处理任务的分散式类型为纵向联邦类型时,对第二中间数据加密以及掩码处理后得到中间结果,将所述中间结果发送给所述第三方;其中,所述第二中间数据由各参与方基于相应加密后的第二模型梯度交换生成,所述第二模型梯度由各参与方基于相应本地模型计算得到;接收第三方对所述中间结果进行解密处理后发送的解密的所述中间结果,基于所述解密的中间结果更新各自的模型参数,并得到各自更新后的本地模型,并基于各自更新后的本地模型继续生成新的中间结果;迭代返回至所述对第二中间数据加密以及掩码处理后得到中间结果的步骤,直至达到第二预设完成条件,将达到第二预设完成条件对应的数据结果作为处理结果。
101.第一调度模块,用于在所述待处理任务为分散式类型时,通过本地任务调度所述第一计算模块进行本地运算以配合第三方和其他参与方进行分散式运算,或者在所述待处理任务为集中式类型时,将所述第一数据的未上传至第三方的子集通过所述第一通信模块发送给第三方。
102.第一存储模块,用于存储所述待处理任务的任务信息、所述第一数据。
103.所述第二参与方包括第二调度模块,第二计算模块和第二通信模块,所述第二通信模块用于与所述第一参与方和/或所述第三方通信,所述第二调度模块用于:在检测到第一参与方发起待处理任务后,确定关联所述待处理任务的第二数据,计算将所述第二数据的未上传至第三方的子集传输到第三方所需的第二耗时,并通过所述第二通信模块将所述第二耗时发送给所述第一参与方,以及用于在所述待处理任务为分散式类型时,通过本地任务调度所述第二计算模块以配合第三方和其他参与方进行分散式运算,或者在所述待处理任务为集中式类型时,将所述第二数据的未上传至第三方的子集通过所述第二通信模块发送给第三方。
104.在本实施例中,如图9所示,第二参与方包括第二调度模块、第二计算模块和第二通信模块,另外,所述第二参与方还可以包括第二存储模块。
105.在本实施例中,该第二调度模块用于在检测到第一参与方发起待处理任务后,确定关联所述待处理任务的第二数据,计算将所述第二数据的未上传至第三方的子集传输到
第三方所需的第二耗时;将所述第二耗时发送给第二通信模块,用于在所述待处理任务为分散式类型时,通过本地任务调度所述第二计算模块以配合第三方和其他参与方进行分散式运算,或者在所述待处理任务为集中式类型时,将所述第二数据的未上传至第三方的子集发送给第二通信模块。
106.在本实施例中,第二通信模块用于在将所述第二耗时发送给所述第一参与方,还用于在所述待处理任务为集中式类型时,将所述第二数据的未上传至第三方的子集发送给第三方。
107.在一种实施方式中,第二计算模块,用于在所述待处理任务的分散式类型为横向联邦类型时,发送第一中间数据给所述第三方;其中,所述第一中间数据由各个参与方基于相应第一模型梯度生成,所述第一模型梯度由各参与方基于相应本地模型计算得到;接收第三方发送的聚合中间数据,其中,所述聚合中间数据是所述第三方对所述第一中间数据进行聚合得到的;基于所述聚合中间数据更新模型参数,得到更新后的本地模型,并基于各自更新后的本地模型继续生成新的第一中间数据;迭代返回至所述发送第一中间数据给所述第三方的步骤,直至达到第一预设完成条件,将达到第一预设完成条件时对应的数据结果作为处理结果。
108.在另一种实施方式中,第二计算模块用于在所述待处理任务的分散式类型为纵向联邦类型时,对第二中间数据加密以及掩码处理后得到中间结果,将所述中间结果发送给所述第三方;其中,所述第二中间数据由各参与方基于相应加密后的第二模型梯度交换生成,所述第二模型梯度由各参与方基于相应本地模型计算得到;接收第三方对所述中间结果进行解密处理后发送的解密的所述中间结果,基于所述解密的中间结果更新各自的模型参数,并得到各自更新后的本地模型,并基于各自更新后的本地模型继续生成新的中间结果;迭代返回至所述对第二中间数据加密以及掩码处理后得到中间结果的步骤,直至达到第二预设完成条件,将达到第二预设完成条件对应的数据结果作为处理结果。
109.第二存储模块,用于存储第二数据。
110.进一步地,如图9所示,所述第三方包括第三调度模块、第三计算模块和第三通信模块,所述第三通信模块用于与所述第一参与方和/或所述第二参与方通信;所述第三调度模块用于:在所述待处理任务为集中式类型时,调度所述第三计算模块结合所述第一数据和所述第二数据进行集中式运算,或者在所述待处理任务为分散式类型时,通过本地任务调度所述第三计算模块进行本地运算以配合其他参与方进行分散式运算。
111.具体实施中,第三计算模块用于在所述待处理任务的分散式类型为集中式类型时,基于所述第一数据的全集和所述第二数据的全集,对所述待处理任务进行集中式运算处理,得到处理结果;第三存储模块用于存储所述第一数据和所述第二数据,以及存储各参与方在空闲时上传到第三方的各数据集。
112.第三计算模块还用于在所述待处理任务的分散式类型为横向联邦分散式类型时,接收各个参与方加密发送的第一中间数据;其中,所述第一中间数据由各参与方基于相应第一模型梯度生成,所述第一模型梯度由各参与方基于相应本地模型进行隐私计算得到;对所述第一中间数据进行聚合,得到聚合中间数据;将所述聚合中间数据发送给各参与方,以供各个参与方基于所述聚合中间数据更新各自的模型参数,得到各自更新后的本地模型,并基于各自更新后的本地模型进行隐私计算,以继续生成新的第一中间数据;迭代返回
至所述接收各个参与方发送的第一中间数据的步骤,直至达到第一预设完成条件,将达到第一预设完成条件对应的数据结果作为处理结果。其中,第一预设完成条件可以是待处理对应第一预设损失函数收敛或者对应第一训练次数达到第一预设次数;第一预设完成条件对应的数据结果为训练后得到的模型。
113.第三计算模块,还用于在所述待处理任务的分散式类型为纵向联邦类型时,接收各个参与方对第二中间数据加密以及掩码处理后发送的中间结果;其中,所述第二中间数据由各参与方基于相应加密后的第二模型梯度交换生成,所述第二模型梯度由各参与方基于相应本地模型计算得到;对所述中间结果进行解密处理,并将所述解密处理后的所述中间结果发送给对应参与方,以供各个参与方基于所述中间结果更新各自的模型参数,并得到各自更新后的本地模型,并基于各自更新后的本地模型继续生成新的中间结果;迭代返回至所述接收各个参与方对第二中间数据加密以及掩码处理后发送的中间结果的步骤,直至达到第二预设完成条件,将达到第二预设完成条件对应的数据结果作为处理结果。其中,第二预设完成条件是训练次数达到第二预设次数,或者第二预设损失函数收敛;处理结果可以是一个纵向联邦后得到的模型,该模型可以用于预测准确率。
114.实施例二
115.本技术实施例提供一种基于数据传输耗时的任务调度方法,参照图1,本实施例提供的基于数据传输耗时的任务调度方法,基于上述混合架构系统,应用于参与方子系统中任一发起待处理任务的第一参与方,所述参与方子系统还包括至少一个关联所述待处理任务的第二参与方,所述任务调度方法包括:
116.步骤s10,提交待处理任务,确定关联所述待处理任务的第一数据,并计算将所述第一数据的未上传至第三方的子集传输到第三方所需的第一耗时;
117.步骤s20,接收各其他第二参与方的关联所述待处理任务的第二数据的未上传至第三方的子集传输到第三方所需的第二耗时;
118.步骤s30,基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型,其中,所述任务类型包括分散式类型以及集中式类型;
119.步骤s40,在所述待处理任务为集中式类型时将所述第一数据的未上传至第三方的子集发送到第三方,以供所述第三方结合所述第一数据和所述第二参与方接收到所述任务类型后上传到所述第三方的第二数据进行集中式运算,得到处理结果;或者在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和以配合其他参与方进行分散式运算,得到处理结果。
120.在本实施例中,在第一参与方增加基于联邦学习的待处理任务对应传输耗时的判断,进而确定待处理任务的任务类型,进而从预设的不同调度模式中(至少包括分散式调度模式以及集中式调度模式,对应任务类型包括分散式类型以及集中式类型)选择得到所述待处理任务的目标调度模式,实现对所述待处理任务进行任务处理,可以理解,不是由人工想当然的选择具体的计算方式,而是通过明确的传输耗时的判断,选择时耗最少(时间资源浪费最少)的即最优的计算方式,避免造成隐私计算资源的浪费。
121.具体步骤如下:
122.步骤s10,提交待处理任务,确定关联所述待处理任务的第一数据,并计算将所述第一数据的未上传至第三方的子集传输到第三方所需的第一耗时;
123.在本实施例中,需要说明的是,基于数据传输耗时的任务调度方法可以应用于基于混合架构系统的任务调度装置,该基于混合架构系统的任务调度装置属于电子设备,该电子设备从属于基于混合架构系统的任务调度系统。
124.近年来,数据的融合应用驱动各行各业走向数字化、网络化和智能化,在各行各业走向数字化、网络化和智能化的过程中,数据安全、个人隐私保护等问题也愈发受到社会广泛关注,即如何在合规(确保数据安全、确保个人隐私得到保护)的前提下做好数据融合,成为一个亟需解决的难题。
125.隐私计算(privacy computing)是指一种由两个或多个参与方联合计算的技术和系统,参与方在不泄露各自数据的前提下通过协作对他们的数据进行联合机器学习和联合分析。隐私计算的参与方既可以是同一机构的不同部门,也可以是不同的机构。在隐私计算框架下,参与方的数据明文不出本地,在保护数据安全的同时实现多源数据跨域合作,以破解数据保护与融合应用难题。
126.目前,隐私计算(privacy computing)主要包括联邦学习计算,联邦学习是指通过联合不同的参与者进行机器学习的方法,在联邦学习的一轮参数更新环节分为两步:(a)每个参与者只使用自己拥有的数据来训练机器学习模型,并向一个中心协调者发送模型参数更新;(b)协调者将所收到的来自不同参与者的模型更新进行融合(例如,取平均),并将融合后的模型参数更新再分发给各个参与者,在联邦学习中,参与者并不需要向其它参与者或者协调者暴露自己的数据,因而联邦学习可以很好的保护用户隐私和保障数据安全。
127.联邦学习包括纵向联邦学习计算和横向联邦学习计算,纵向联邦学习即样本对齐的联邦学习(sample-aligned federated learning),适用于参与者训练样本id重叠较多,而数据特征重叠较少的情况,需要在安全保密的框架下,多方协同完成模型的训练及优化。
128.横向联邦学习(horizontal federated learning)适用于参与者训练样本数据特征重叠较多,而用户id较少的情况,需要在安全保密的框架下,多方协同完成模型的训练及优化。
129.在本实施例中,针对的具体应用场景可以是:
130.隐私计算过程中,可以选择不同的计算方式,不同计算方式数据传输量和数据存储量不同,现有技术中是用户手动选择具体的计算方式,然而,手动选择的计算方式往往不是最优选,造成隐私计算资源的浪费。
131.在本实施例中,增加基于联邦学习的待处理任务对应传输耗时的判断,进而从预设的不同调度模式中(至少包括分散式调度模式以及集中式调度模式)选择得到所述待处理任务的目标调度模式,实现对所述待处理任务进行任务处理,可以理解,不是由人工想当然的选择具体的计算方式,而是通过明确的传输耗时的判断,选择时耗最少的即最优的计算方式,避免造成隐私计算资源的浪费。
132.在本实施例中,第一参与方提交待处理任务,并确定关联所述待处理任务的第一数据,并计算将所述第一数据的未上传至第三方的子集传输到第三方所需的第一耗时。
133.在本实施例中,待处理任务为隐私计算任务,或者模型训练任务,具体地,可以是基于联邦学习的图像建模任务,基于联邦学习的推荐(预测)建模任务,基于联邦学习的分类建模任务,基于联邦学习的查询建模任务等,等在此不做具体限定。
134.在本实施例中,是第一参与方提交的待处理任务,该第一参与方可以与基于混合
架构系统的任务调度系统进行通信,或者该第一参与方是基于混合架构系统的任务调度系统的一部分,该基于混合架构系统的任务调度系统还包括其他多个第二参与方以及协调方。在本实施例中,以该第一参与方是基于混合架构系统的任务调度系统的一部分为例进行具体说明。
135.在本实施例中,基于混合架构系统的任务调度系统还可以包括第三方。
136.在本实施例中,分散式调度模式是:原始数据位于各参与方本地的服务器,参与方本地完成计算后,通过网络互相交换中间结果的密文数据,配合完成待处理任务的计算,如图5以及图6所示。
137.在本实施例中,数据集中式模式是:各参与方将原始数据的密文传输到第三方(集中计算环境),第三方(集中计算环境)在本地完成计算后,将计算结果返回到任务发起方即第一参与方,如图4所示。
138.在本实施例中,基于混合架构系统的任务调度系统可以进行待处理任务的目标调度模式的更改,进而完成待处理任务的处理。
139.具体地,在本实施例中,基于混合架构系统的任务调度系统包括分散式和集中式混合架构,进而实现待处理任务的目标调度模式的更改。
140.在本实施例中,第一参与方发起待处理任务,确定关联所述待处理任务的第一数据,并计算将所述第一数据的未上传至第三方的子集传输到第三方所需的第一耗时。
141.在本实施例中,第一数据为第一参与方本地参与待处理任务隐私计算的数据。
142.在本实施例中,计算将所述第一数据的未上传至第三方的子集传输到第三方所需的第一耗时。
143.在本实施例中,第一耗时与第三方和第一参与方之间的第一有效带宽关联,且是第一数据的未上传至第三方的子集传输到第三方所需的第一耗时。
144.具体地,基于混合架构系统的任务调度系统的网络命令(如iperf)计算或者确定第三方到第一参与方的第一有效带宽bandwidth。
145.具体地,若第一参与方本地的数据集都已上传,则上传耗时为0。若未都上传,第一参与方统计第一数据中未上传部分的waiting_size(未上传的第一数据的大小),进而,基于第一数据的未上传部分的大小和第一有效带宽,确定第一耗时。
146.在本实施例中,第一参与方还可以在处于空闲状态时,将本地的数据集主动上传给所述第三方。
147.步骤s20,接收各其他第二参与方的关联所述待处理任务的第二数据的未上传至第三方的子集传输到第三方所需的第二耗时;
148.在本实施例中,第二数据为第二参与方本地参与待处理任务隐私计算的数据。
149.在本实施例中,第一参与方作为发起方发起待处理任务,此时其他第二参与方检测到该待处理任务。
150.在本实施例中,计算将所述第二数据的未上传至第三方的子集传输到第三方所需的第二耗时。
151.在本实施例中,第二耗时与第三方和第二参与方之间的第二有效带宽关联,且是未上传至第三方的子集传输到第三方所需的第二耗时。
152.具体地,基于混合架构系统的任务调度系统的网络命令(如iperf)计算或者确定
第三方到第二参与方的第二有效带宽bandwidth。
153.具体地,若第二参与方本地的数据都已上传,则上传耗时为0。
154.若未都上传,第二参与方统计第二数据中未上传部分的waiting_size(第二数据的未上传至第三方的子集的大小),进而,基于第二数据中未上传部分的大小和第二有效带宽,确定第二耗时。
155.在本实施例中,第二参与方可以在处于空闲状态时,主动将本地的数据集上传给所述第三方。
156.步骤s30,基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型,其中,所述任务类型包括分散式类型以及集中式类型;
157.在本实施例中,基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型,具体地,从所述第一耗时、所述第二耗时中选择较大的耗时,将该较大的耗时和预设耗时阈值进行比对,得到比对结果,基于比对结果,确定待处理任务的任务类型。
158.参照图2,其中,所述基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型的步骤,包括:
159.步骤s31,从所述第一耗时和所述第二耗时中选择最大耗时作为第一数据传输耗时;
160.步骤s32,若所述第一数据传输耗时大于预设耗时阈值时,则确定所述待处理任务的任务类型为分散式类型;
161.步骤s33,若所述第一数据传输耗时小于或者等于预设耗时阈值时,则确定所述待处理任务的任务类型为集中式类型。
162.在本实施例中,整体流程图如图7所示。
163.在本实施例中,由于各个参与方与第三方是同步通信的,因而从所述第一耗时和所述第二耗时中选择最大耗时作为所述待处理任务关联的第一数据传输耗时。
164.步骤s40,在所述待处理任务为集中式类型时将所述第一数据的未上传至第三方的子集发送到第三方,以供所述第三方结合所述第一数据和所述第二参与方接收到所述任务类型后上传到所述第三方的第二数据进行集中式运算,得到处理结果;或者在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和以配合其他参与方进行分散式运算,得到处理结果。
165.在本实施例中,分散式类型待处理任务的调度模型为分散式调度模式。
166.在本实施例中,集中式类型待处理任务的调度模型为集中式调度模式。
167.即在本实施例中,基于混合架构系统的任务调度系统或者平台主要分为两大调度模式:
168.分散式调度模式:原始数据位于各参与方自己的服务器,参与方本地完成计算后,再通过网络互相交换中间结果的密文数据。
169.集中式调度模式:各参与方将原始数据的密文传输到第三方(集中计算环境),第三方(集中计算环境)在本地完成计算后,将计算结果返回到任务发起方即第一参与方。
170.当然,不同调度模式还可以包括其他调度模式,在此不做具体限定。
171.在本实施例中,若所述第一数据传输耗时大于预设耗时阈值时,则从预设的不同
调度模式中选择分散式调度模式作为所述待处理任务的目标调度模式。此时,第一参与方通过本地任务调度以配合第三方和以配合其他参与方进行分散式运算,得到处理结果。即在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和以配合其他参与方进行分散式运算,得到处理结果。
172.也即,很显然,由于第一数据传输耗时大于预设耗时阈值,此时,集中式调度模式耗时过多,造成资源浪费过多,因而,选择分散式调度模式作为所述待处理任务的目标调度模式。
173.若所述第一数据传输耗时小于或者等于预设耗时阈值时,则从预设的不同调度模式中选择集中式调度模式作为所述待处理任务的目标调度模式。将所述第一数据的未上传至第三方的子集发送到第三方,以供所述第三方结合所述第一数据和所述第二参与方接收到所述任务类型后上传到所述第三方的第二数据(第二数据中可能有一部分是第二参与方在空闲状态时已经上传到第三方的)进行集中式运算,得到处理结果。即在所述待处理任务为集中式类型时将所述第一数据的未上传至第三方的子集发送到第三方,以供所述第三方结合所述第一数据和所述第二参与方接收到所述任务类型后上传到所述第三方的第二数据(第二数据中可能有一部分是第二参与方在空闲状态时已经上传到第三方的)进行集中式运算,得到处理结果。
174.若所述第一数据传输耗时小于或者等于预设耗时阈值时,则从预设的不同调度模式中选择集中式调度模式作为所述待处理任务的目标调度模式,也即,
175.很显然,由于第一数据传输耗时小于或者等于预设耗时阈值,此时,集中式调度模式耗时较少,不会造成资源浪费过多,因而,选择集中式调度模式作为所述待处理任务的目标调度模式。
176.本技术提供一种混合架构系统及基于数据传输耗时的任务调度方法,与现有技术中用户手动选择具体的计算方式,易造成隐私计算资源浪费相比,在本技术中,提交待处理任务,确定关联所述待处理任务的第一数据,并计算将所述第一数据的未上传至第三方的子集传输到第三方所需的第一耗时;接收各其他第二参与方的关联所述待处理任务的第二数据的未上传至第三方的子集传输到第三方所需的第二耗时;基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型,其中,所述任务类型包括分散式类型以及集中式类型;在所述待处理任务为集中式类型时将所述第一数据的未上传至第三方的子集发送到第三方,以供所述第三方结合所述第一数据和所述第二参与方接收到所述任务类型后上传到所述第三方的第二数据进行集中式运算,得到处理结果;或者在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和以配合其他参与方进行分散式运算,得到处理结果。可以理解,在本技术中,不是由人工想当然的选择具体的计算方式,而是通过明确的传输耗时的判断,选择时耗最少的即最优的计算方式,避免造成隐私计算资源的浪费。
177.实施例三
178.进一步地,基于本技术中实施例一,提供本技术的另一实施例,在该实施例中,参照图8,所述基于所述第一耗时、所述第二耗时和预设耗时阈值确定所述待处理任务的任务类型的步骤的步骤,包括:
179.步骤a1,获取所述待处理任务的任务信息;
180.在本实施例中,提供确定待处理任务的类型的一种具体方式。
181.在本实施例中,任务信息可以是任务名称,任务类型等属性信息。
182.步骤a2,基于所述任务信息从预设历史任务中查询与所述待处理任务相似度相匹配且任务类型为分散式类型的第一历史任务;
183.在本实施例中,待处理任务相似度相匹配可以指的是:
184.第一,待处理任务的相似度大于第一预设相似度值;
185.第二,待处理任务任务信息的相似度大于第二预设相似度值。
186.步骤a3,获取所述第一历史任务处理过程中第一参与方和其他各第二参与方传输中间数据过程中的中间传输量,并基于所述中间传输量和当前网络状态信息计算第二数据传输耗时,将所述第二数据传输耗时作为所述预设耗时阈值;
187.步骤a4,从所述第一耗时和所述第二耗时中选择最大耗时作为第一数据传输耗时;
188.步骤a5,若所述第一数据传输耗时大于或者等于所述预设耗时阈值,则确定所述待处理任务的类型为分散式类型;
189.步骤a6,若所述第一数据传输耗时小于所述预设耗时阈值,则确定所述待处理任务的类型为集中式类型。
190.在本实施例中,获取所述第一历史任务处理过程中第一参与方和其他各第二参与方传输中间数据过程中的中间传输量,并基于所述中间传输量和当前网络状态信息计算第二数据传输耗时,从所述第一耗时和所述第二耗时中选择最大耗时作为第一数据传输耗时。
191.若所述第一数据传输耗时大于或者等于所述第二数据传输耗时,很显然,确定所述待处理任务的类型为分散式类型,也即,相比于分散式调度模式,集中式调度模式耗时过多,造成资源浪费过多,因而,选择分散式调度模式作为所述待处理任务的目标调度模式。也即,此时,第三方通过本地任务调度以配合第一参与方和其他第二参与方进行分散式运算,得到处理结果。即在所述待处理任务为分散式类型时,通过本地任务调度以配合第一参与方和其他第二参与方进行分散式运算,得到处理结果。
192.若所述第一数据传输耗时小于所述第二数据传输耗时,很显然,则确定所述待处理任务的类型为集中式类型。也即,很显然,集中式调度模式耗时较少,不会造成资源浪费过多,因而,选择集中式调度模式作为所述待处理任务的目标调度模式。也即,此时,第三方通过本地任务调度进行集中式运算,得到处理结果。即在所述待处理任务为集中式类型时,通过本地任务调度进行集中式运算,得到处理结果。
193.在本实施例中,通过获取所述待处理任务的任务信息;基于所述任务信息从预设历史任务中查询与所述待处理任务相似度相匹配且任务类型为分散式类型的第一历史任务;获取所述第一历史任务处理过程中第一参与方和其他各第二参与方传输中间数据过程中的中间传输量,并基于所述中间传输量和当前网络状态信息计算第二数据传输耗时;从所述第一耗时和所述第二耗时中选择最大耗时作为第一数据传输耗时;若所述第一数据传输耗时大于或者等于所述第二数据传输耗时,则确定所述待处理任务的类型为分散式类型;若所述第一数据传输耗时小于所述第二数据传输耗时,则确定所述待处理任务的类型为集中式类型。在本实施例中,实现准确选取耗时少的模式进行任务的调度以及处理,提升
效率,减少资源的消耗。
194.实施例四
195.进一步地,本技术提供一种基于数据传输耗时的任务调度方法,应用于参与方子系统中任一被动关联待处理任务的第二参与方,所述参与方子系统还包括发起所述待处理任务的第一参与方,所述任务调度方法包括:
196.步骤a1,在检测到第一参与方发起待处理任务后,确定关联所述待处理任务的第二数据,计算将所述第二数据的未上传至第三方的子集传输到第三方所需的第二耗时,并将所述第二耗时发送给所述第一参与方;
197.步骤a2,接收所述第一参与方返回的所述待处理任务的任务类型,在所述待处理任务为集中式类型时将所述第二数据的未上传至第三方的子集发送给第三方,以供所述第三方结合所述第二数据和所述第一参与方基于所述任务类型上传到所述第三方的第一数据进行集中式运算,得到处理结果;或者在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和以配合其他参与方进行分散式运算,得到处理结果;
198.其中,所述任务类型是所述第一参与方依据所述第一参与方关联所述待处理任务的第一数据的未上传至第三方的子集传输到第三方所需的第一耗时、各其他第二参与方的所述第二耗时和预设耗时阈值确定的;
199.其中,所述任务类型包括分散式类型以及集中式类型。
200.在本实施例中,执行主体为参与方子系统中的任一第二参与方,该第二参与方可以有多个,并且该第二参与方还可以在处于空闲状态时,主动将本地的数据集上传给所述第三方。该第一参与方进行任务调度的具体实施方式与上述所述任务调度方法各实施例基本相同,在此不再赘述。
201.实施例五
202.进一步地,基于上述实施例二、实施例三和实施例四,提供本技术的另一实施例,在该实施例中,在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和其他参与方进行分散式运算,得到处理结果的步骤,包括:
203.步骤b1,若所述待处理任务的分散式类型为横向联邦类型时,发送第一中间数据给所述第三方;其中,所述第一中间数据由各个参与方基于相应第一模型梯度生成,所述第一模型梯度由各参与方基于相应本地模型计算得到;
204.步骤b2,接收第三方发送的聚合中间数据,其中,所述聚合中间数据是所述第三方对所述第一中间数据进行聚合得到的;
205.步骤b3,基于所述聚合中间数据更新模型参数,得到更新后的本地模型,并基于各自更新后的本地模型继续生成新的第一中间数据;
206.步骤b4,迭代返回至所述发送第一中间数据给所述第三方的步骤,直至达到第一预设完成条件,将达到第一预设完成条件时对应的数据结果作为处理结果。
207.在本实施例中,具体地,如图5所示,阐述待处理任务的分散式类型为横向联邦类型,对任务进行调度或者执行的过程,具体如下:
208.(1)参与方1作为发起方发起任务,各参与方在本地计算模型梯度(第一模型梯度),并使用同态加密、差分隐私或秘密共享等加密技术,对梯度信息进行掩饰,并将掩饰后的结果发送给第三方(聚合服务器或者协调方);
209.(2)第三方(聚合服务器或者协调方)进行安全聚合操作,如使用基于同态加密的加权平均,得到聚合后的结果(聚合中间数据),其中,所述聚合中间数据是所述第三方对所述第一中间数据进行聚合得到的;
210.(3)第三方(聚合服务器或者协调方)将聚合后的结果(聚合中间数据)发送给各参与方;
211.(4)各参与方对收到的聚合中间数据(梯度结果)进行解密,并使用解密后的梯度结果更新各自的模型参数,以继续生成第一中间数据。
212.迭代步骤(1)-(4),直至达到第一预设完成条件,将达到第一预设完成条件对应的数据结果作为所述处理结果。
213.其中,第一预设完成条件可以是待处理对应第一预设损失函数收敛或者对应第一训练次数达到第一预设次数。
214.在本实施例中,第一预设完成条件对应的数据结果为训练后得到的模型。
215.在本实施例中,在对所述待处理任务进行处理(隐私计算达到第一预设完成条件)后,得到处理结果,其中,处理结果可以是一个横向联邦训练后得到的模型,该模型可以用于预测准确率。
216.在本实施例中,采用效果最佳的计算方式对横向联邦类型的分散式任务进行计算,避免造成隐私计算资源的浪费。
217.实施例六
218.进一步地,基于上述实施例二、实施例三、实施例四和实施例五,提供本技术的另一实施例,在该实施例中,在所述待处理任务为分散式类型时,通过本地任务调度以配合第三方和其他参与方进行分散式运算,得到处理结果的步骤,包括:
219.步骤c1,若所述待处理任务的分散式类型为纵向联邦类型时,对第二中间数据加密以及掩码处理后得到中间结果,将所述中间结果发送给所述第三方;
220.其中,所述第二中间数据由各参与方基于相应加密后的第二模型梯度交换生成,所述第二模型梯度由各参与方基于相应本地模型计算得到;
221.步骤c2,接收第三方对所述中间结果进行解密处理后发送的解密的所述中间结果,基于所述解密的中间结果更新各自的模型参数,并得到各自更新后的本地模型,并基于各自更新后的本地模型继续生成新的中间结果;
222.步骤c3,迭代返回至所述对第二中间数据加密以及掩码处理后得到中间结果的步骤,直至达到第二预设完成条件,将达到第二预设完成条件对应的数据结果作为处理结果。
223.具体地,如图6所示,阐述待处理任务的分散式类型为纵向联邦类型,对任务进行调度或者执行的过程,具体如下:
224.(1)参与方1作为发起方发起任务,协调方创建密钥对,并将公共密钥发送给参与方1和参与方2;
225.(2)参与方1和参与方2对中间处理结果进行加密和交换,中间处理结果用来帮助计算梯度和损失值;
226.(3)参与方1和参与方2计算加密梯度并分别加入附加掩码(additional mask),得到中间结果(参与方2还会计算加密损失),参与方1和参与方2将加密的结果发送给第三方(协调方);
227.(4)第三方(协调方)对梯度和损失信息进行解密,并将结果发送会参与方1和参与方2,参与方1和参与方2解除梯度信息上的掩码,并根据这些梯度信息来更新模型参数。
228.在本实施例中,第二预设完成条件是训练次数达到第二预设次数,或者第二预设损失函数收敛。
229.在本实施例中,在对所述待处理任务进行处理(隐私计算达到第二预设完成条件)后,得到处理结果,其中,处理结果可以是一个纵向联邦后得到的模型,该模型可以用于预测准确率。
230.可以理解,在本实施例中,采用效果最佳的计算方式对纵向联邦类型的分散式任务进行计算,避免造成隐私计算资源的浪费。
231.实施例七
232.进一步地,本技术提供一种基于数据传输耗时的任务调度方法,应用于第三方,所述任务调度方法包括:
233.步骤a1,在第一参与方发起的待处理任务的任务类型为集中式类型时,结合所述第一数据和所述第二数据进行集中式运算,得到处理结果,其中,所述第一数据是所述第一参与方上传到所述第三方的关联所述待处理任务的数据,所述第二数据是所述各第二参与方上传到所述第三方的关联所述待处理任务的数据;或者
234.步骤a2,在第一参与方发起的待处理任务的任务类型为分散式类型时,通过本地计算以配合其他参与方进行分散式运算,得到处理结果;
235.其中,所述第一参与方发起的待处理任务的任务类型是所述第一参与方依据所述第一参与方关联所述待处理任务的第一数据的未上传至第三方的子集传输到第三方所需的第一耗时、各其他第二参与方关联所述待处理任务的第二数据的未上传至第三方的子集传输到第三方所需的第二耗时和预设耗时阈值确定的。
236.在该实施例中,所述通过采用分散式调度模式对分散式类型任务进行调度的方式,并配合所述第一参与方和第二参与方根据所述任务类型对应的目标调度模式对所述待处理任务进行隐私计算,并得到处理结果的步骤,包括:
237.若所述待处理任务的分散式类型为横向联邦分散式类型时,接收各个参与方加密发送的第一中间数据;
238.其中,所述第一中间数据由各参与方基于相应第一模型梯度生成,所述第一模型梯度由各参与方基于相应本地模型进行隐私计算得到;
239.对所述第一中间数据进行聚合,得到聚合中间数据;
240.将所述聚合中间数据发送给各参与方,以供各个参与方基于所述聚合中间数据更新各自的模型参数,得到各自更新后的本地模型,并基于各自更新后的本地模型进行隐私计算,以继续生成新的第一中间数据;
241.迭代返回至所述接收各个参与方发送的第一中间数据的步骤,直至达到第一预设完成条件,将达到第一预设完成条件对应的数据结果作为处理结果。
242.其中,第一预设完成条件可以是待处理对应第一预设损失函数收敛或者对应第一训练次数达到第一预设次数。
243.在本实施例中,第一预设完成条件对应的数据结果为训练后得到的模型。
244.在本实施例中,在对所述待处理任务进行处理(隐私计算达到第一预设完成条件)
后,得到处理结果,其中,处理结果可以是一个横向联邦训练后得到的模型,该模型可以用于预测准确率。
245.在本实施例中,执行主体为第三方,该第三方进行分散式类型(横向联邦分散式类型)任务调度的具体实施方式与上述所述任务调度方法中分散式类型(横向联邦分散式类型)任务调度的各实施例基本相同,在此不再赘述。
246.在本实施例中,采用效果最佳的计算方式对横向联邦类型的分散式任务进行计算,避免造成隐私计算资源的浪费。
247.在该实施例中,所述通过采用分散式调度模式对分散式类型任务进行调度的方式,并配合所述第一参与方和第二参与方根据所述任务类型对应的目标调度模式对所述待处理任务进行隐私计算,并得到处理结果的步骤,包括:
248.若所述待处理任务的分散式类型为纵向联邦类型时,接收各个参与方对第二中间数据加密以及掩码处理后发送的中间结果;
249.其中,所述第二中间数据由各参与方基于相应加密后的第二模型梯度交换生成,所述第二模型梯度由各参与方基于相应本地模型计算得到;
250.对所述中间结果进行解密处理,并将所述解密处理后的所述中间结果发送给对应参与方,以供各个参与方基于所述中间结果更新各自的模型参数,并得到各自更新后的本地模型,并基于各自更新后的本地模型继续生成新的中间结果;
251.迭代返回至所述接收各个参与方对第二中间数据加密以及掩码处理后发送的中间结果的步骤,直至达到第二预设完成条件,将达到第二预设完成条件对应的数据结果作为处理结果。
252.在本实施例中,第二预设完成条件是训练次数达到第二预设次数,或者第二预设损失函数收敛。
253.在本实施例中,在对所述待处理任务进行处理(隐私计算达到第二预设完成条件)后,得到处理结果,其中,处理结果可以是一个纵向联邦后得到的模型,该模型可以用于预测准确率。
254.在本实施例中,执行主体为第三方,该第三方进行分散式类型(纵向联邦分散式类型)任务调度的具体实施方式与上述所述任务调度方法中分散式类型(纵向联邦分散式类型)任务调度的各实施例基本相同,在此不再赘述。
255.在本实施例中,采用效果最佳的计算方式对纵向联邦类型的分散式任务进行计算,避免造成隐私计算资源的浪费。
256.在该实施例中,所述在第一参与方发起的待处理任务的任务类型为集中式类型时,结合所述第一数据和所述第二数据进行集中式运算,得到处理结果,包括:
257.在第一参与方发起的待处理任务的任务类型为集中式类型时,结合所述第一数据和所述第二数据,通过采用集中式调度模式对集中式任务进行调度的方式,并配合所述第一参与方和各第二参与方根据所述任务类型对应的目标调度模式对所述待处理任务进行隐私计算,得到处理结果。
258.在该实施例中,所述结合所述第一数据和所述第二数据,通过采用集中式调度模式对集中式任务进行调度的方式,并配合所述第一参与方和各第二参与方根据所述任务类型对应的目标调度模式对所述待处理任务进行隐私计算,得到处理结果的步骤,包括:
259.步骤d1,判断本地是否存有第一参与方的第一数据的全集和各第二参与方的第二数据的全集;
260.步骤d2,若没有,调度第一参与方加密上传第一数据的未上传至第三方的子集,并调度其他各第二参与方加密上传第二数据的未上传至第三方的子集,存储所述第一数据的全集和所述第二数据的全集;
261.步骤d3,从本地调取所述第一数据的全集和所述第二数据的全集,对所述待处理任务进行集中式运算处理,得到处理结果。
262.在本实施例中,采用集中式调度模式对集中式类型任务进行调度,以参与方为2个参与方为例进行具体说明,具体过程可以是:
263.第三方判断本地是否存有第一参与方的第一数据的全集和各第二参与方的第二数据的全集,若没有,第一参与方将第一数据的未上传至第三方的子集加密上传到第三方中,第二参与方将第二数据的未上传至第三方的子集加密上传到第三方中。
264.或者调度第一参与方加密上传第一数据的未上传至第三方的子集,并调度其他各第二参与方加密上传第二数据的未上传至第三方的子集,存储所述第一数据的全集和所述第二数据的全集,也即,第三方从不同参与方加载双方数据并保存(可以在带宽空闲时进行)。
265.在任务执行过程中,第三方从本地调取所述第一数据的全集和所述第二数据的全集,对所述待处理任务进行集中式运算处理,得到处理结果,即第三方(集中计算环境)完全基于第三方(集中计算环境)本地数据进行计算,节省了中间数据的传输,对带宽的要求比较低。
266.在本实施例中,通过判断本地是否存有第一参与方的第一数据的全集和各第二参与方的第二数据的全集;若没有,调度第一参与方加密上传第一数据的未上传至第三方的子集,并调度其他各第二参与方加密上传第二数据的未上传至第三方的子集,存储所述第一数据的全集和所述第二数据的全集;从本地调取所述第一数据的全集和所述第二数据的全集,对所述待处理任务进行集中式运算处理,得到处理结果。在本实施例中,实现在第三方对待处理任务进行集中式模式下的计算处理。
267.在本实施例中,执行主体为第三方,该第三方进行集中式类型任务调度的具体实施方式与上述所述任务调度方法中集中式类型任务调度的各实施例基本相同,在此不再赘述。
268.实施例八
269.提供一种电子设备,所述电子设备为实体节点设备,所述电子设备包括:存储器、处理器以及存储在存储器上的用于实现所述基于数据传输耗时的任务调度方法的程序,所述存储器用于存储实现基于数据传输耗时的任务调度方法的程序;所述处理器用于执行实现所述基于数据传输耗时的任务调度方法的程序,以实现上述实施例中任务调度方法的步骤。
270.参照图3,图3是本技术实施例方案涉及的硬件运行环境的设备结构示意图。
271.如图3所示,该电子设备可以包括:处理器1001,例如cpu,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。
存储器1005可选的还可以是独立于前述处理器1001的存储设备。
272.可选地,该电子设备还可以包括矩形用户接口、网络接口、摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。矩形用户接口可以包括显示屏(display)、输入子模块比如键盘(keyboard),可选矩形用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
273.本领域技术人员可以理解,图3中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
274.如图3所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块以及基于混合架构系统的任务调度程序。操作系统是管理和控制电子设备硬件和软件资源的程序,支持基于混合架构系统的任务调度程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与基于混合架构系统的任务调度系统中其它硬件和软件之间通信。
275.在图3所示的电子设备中,处理器1001用于执行存储器1005中存储的基于混合架构系统的任务调度程序,实现上述任一项所述的基于数据传输耗时的任务调度方法的步骤。
276.本技术电子设备具体实施方式与上述基于数据传输耗时的任务调度方法各实施例基本相同,在此不再赘述。
277.实施例九
278.本技术实施例提供了一种存储介质,且所述存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述所述基于数据传输耗时的任务调度方法的步骤。
279.本技术存储介质具体实施方式与上述所述基于数据传输耗时的任务调度方法各实施例基本相同,在此不再赘述。
280.实施例十
281.本技术还提供一种计算机程序产品、包括计算机程序,该计算机程序被处理器执行时实现上述所述基于数据传输耗时的任务调度方法的步骤。
282.本技术计算机程序产品的具体实施方式与上述所述基于数据传输耗时的任务调度方法各实施例基本相同,在此不再赘述。
283.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
284.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
285.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服
务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
286.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1