基于区块链的分布式模型训练方法和装置、电子设备与流程

文档序号:29313174发布日期:2022-03-19 20:48阅读:139来源:国知局
基于区块链的分布式模型训练方法和装置、电子设备与流程

1.本技术涉及计算机技术领域,尤其涉及一种基于区块链的分布式模型训练方法和装置、电子设备及计算机可读存储介质。


背景技术:

2.在边缘计算场景下,边缘服务器部署在数据源头附近,为无法完成大型训练与计算的本地设备提供计算与模型训练服务。边缘计算的应用程序是在数据源头边缘侧发起的,相比于云计算减少了数据在网络上转移的过程,那么所产生的网络服务也会更快,在一些行业中的实时业务、应用智能、安全与隐私保护等方面应用都很不错。但是,现阶段边缘计算还是存在隐私争议,虽然数据能够在近端计算,但是依然离开了本地设备,同时边缘计算场景下也存在安全隐患,数据在传输过程中也可能被篡改。机器学习与人工智能的提出使得很多任务能够通过模型的训练完成,比如说图像识别、语音识别等。但是模型训练需要大量的数据,这些数据又存储在用户的本地设备中,用户为了保护自身隐私不愿意分享数据,但是没有数据又无法完成模型训练为用户提供更好更方便的服务。因此,亟需解决这一技术问题。


技术实现要素:

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.图1示出了根据本技术实施例提供的应用于训练任务发布方的基于区块链的分布式模型训练方法的流程图;
40.图2示出了根据本技术实施例提供的应用于参与模型训练的边缘节点的基于区块链的分布式模型训练方法的流程图;
41.图3示出了根据本技术实施例提供的结合训练任务发布方和参与模型训练的边缘节点的基于区块链的分布式模型训练方法的流程图;
42.图4示出了根据本技术一实施例的应用于训练任务发布方的基于区块链的分布式模型训练装置的结构图;
43.图5示出了根据本技术一实施例的应用于参与模型训练的边缘节点的基于区块链的分布式模型训练装置的结构图;
44.图6示出了根据本技术一实施例的电子设备的结构图。
具体实施方式
45.下面将参照附图更详细地描述本技术的示例性实施例。虽然附图中显示了本技术的示例性实施例,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
46.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。
47.本技术实施例提供了一种基于区块链的分布式模型训练方法,可以应用在训练任务发布方,该训练任务发布方具体可以是服务器、个人电脑、智能手机、平板电脑、智能手表等电子设备,如图1所示,该基于区块链的分布式模型训练方法可以包括以下步骤s101至s103:
48.步骤s101,确定与模型训练任务对应的任务相关内容和初始模型结构;
49.步骤s102,将任务相关内容和初始模型结构发送给所有参与模型训练的边缘节
点;其中,各个边缘节点各自基于本地训练数据和任务相关内容对初始模型结构中的初始参数进行训练得到训练后的本地模型参数,进而在边缘节点之间进行数据交互时,在传输的数据包中携带本地模型参数,本地模型参数每经过一个边缘节点进行聚合处理,得到聚合后的本地模型参数,将聚合后的本地模型参数保存到区块链;
50.步骤s103,当所有边缘节点都参与过聚合后,根据区块链上保存的聚合后的本地模型参数计算出参与聚合次数最多的边缘节点,由参与聚合次数最多的边缘节点广播其上的本地模型参数给参与模型训练的其它边缘节点,从而其它边缘节点各自将自身的本地模型参数更新为参与聚合次数最多的边缘节点广播的本地模型参数。
51.本技术实施例通过参与模型训练的边缘节点采用分布式的方式代替集中式方式训练模型参数,使本地数据不离开本地的基础上训练模型,保证了数据的安全性;并且,本技术实施例将模型参数的变动记录在区块链上,保障了信息可溯源防篡改,提高了模型训练的准确性;另外,本技术实施例利用数据交互中的数据传递过程传输参数并完成聚合,与单独进行模型传输并且完成聚合相比减少了通信的数据量,提高了传输效率。
52.本技术实施例中提供了一种可能的实现方式,上文步骤s102中在得到聚合后的本地模型参数后,将聚合后的本地模型参数分别替换数据包中的本地模型参数和聚合处理所在的边缘节点上的本地模型参数。
53.本技术实施例中提供了一种可能的实现方式,上文步骤s103中其它边缘节点各自将自身的本地模型参数更新为参与聚合次数最多的边缘节点广播的本地模型参数之后,还可以包括以下步骤a1至a4:
54.步骤a1,接收所有参与模型训练的边缘节点各自基于本地模型参数对当前模型结构进行评估的评估结果;
55.步骤a2,根据评估结果分析当前模型结构是否达到任务条件;若是,则继续执行步骤a3,若否,则继续执行步骤a4;
56.步骤a3,将当前模型结构部署到各个边缘节点投入使用;
57.步骤a4,将本地模型参数作为初始参数,并由各个边缘节点各自基于本地训练数据和任务相关内容对当前模型结构进行训练,训练完成后再次依靠边缘节点之间的信息交互进行聚合。
58.本实施例中根据评估结果分析当前模型结构是否达到任务条件,如果是,则将当前模型结构部署到各个边缘节点投入使用;如果不是,则将本地模型参数作为初始参数,并由各个边缘节点各自基于本地训练数据和任务相关内容对当前模型结构进行训练,训练完成后再次依靠边缘节点之间的信息交互进行聚合,可以提高模型训练的准确性,满足模型训练的任务要求。
59.本技术实施例提供了一种基于区块链的分布式模型训练方法,可以应用在参与模型训练的边缘节点,该边缘节点具体可以是服务器、个人电脑等电子设备,如图2所示,该基于区块链的分布式模型训练方法可以包括以下步骤s201至s205:
60.步骤s201,接收训练任务发布方发送的与模型训练任务对应的任务相关内容和初始模型结构;
61.步骤s202,基于本地训练数据和任务相关内容对初始模型结构中的初始参数进行训练得到训练后的本地模型参数;
62.步骤s203,在边缘节点之间进行数据交互时,在传输的数据包中携带本地模型参数,本地模型参数每经过一个边缘节点进行聚合处理,得到聚合后的本地模型参数,将聚合后的本地模型参数保存到区块链;
63.步骤s204,接收训练任务发布方发起的由参与聚合次数最多的边缘节点广播其上的本地模型参数给参与模型训练的其它边缘节点的指令;
64.步骤s205,根据指令由参与聚合次数最多的边缘节点广播其上的本地模型参数给参与模型训练的其它边缘节点,且其它边缘节点各自将自身的本地模型参数更新为参与聚合次数最多的边缘节点广播的本地模型参数。
65.本技术实施例通过参与模型训练的边缘节点采用分布式的方式代替集中式方式训练模型参数,使本地数据不离开本地的基础上训练模型,保证了数据的安全性,解决了边缘计算场景下集中式模型训练存在隐私争议与过度依赖核心服务器等问题;并且,本技术实施例将模型参数的变动记录在区块链上,使得关键数据的可信溯源变得可行,保障了信息可溯源防篡改,提高了模型训练的准确性;另外,本技术实施例利用数据交互中的数据传递过程传输参数并完成聚合,与单独进行模型传输并且完成聚合相比减少了通信的数据量,提到了传输效率。
66.本技术实施例中提供了一种可能的实现方式,上文步骤s203在得到聚合后的本地模型参数后,可以将聚合后的本地模型参数分别替换数据包中的本地模型参数和聚合处理所在的边缘节点上的本地模型参数。
67.本技术实施例中提供了一种可能的实现方式,上文步骤s203中在边缘节点之间进行数据交互时,在传输的数据包中携带本地模型参数,本地模型参数每经过一个边缘节点进行聚合处理,得到聚合后的本地模型参数,将聚合后的本地模型参数保存到区块链,具体可以包括以下步骤b1至b3:
68.步骤b1,在边缘节点之间进行数据交互,不妨称为源节点与目的节点之间进行数据交互,且中间经过一个或多个中继节点;
69.步骤b2,在传输的数据包中不仅携带数据交互需要的交互信息数据,还携带源节点训练得到的本地模型参数;
70.步骤b3,每当数据包经过一个中继节点,该中继节点会收下该数据包中的本地模型参数,并且将该本地模型参数与该中继节点的本地模型参数计算每个维度的平均值进行聚合处理,得到聚合后的本地模型参数;进而将聚合后的本地模型参数替换数据包中的本地模型参数以及该中继节点的本地模型参数;随后将数据包传输到下一个中继节点,在下一个中继节点中执行上述聚合过程。
71.本技术实施例利用数据交互中的数据传递过程传输参数并完成聚合,与单独进行模型传输并且完成聚合相比减少了通信的数据量,提到了传输效率。并且,通过聚合的方式保证本地模型参数的实时更新,提高模型的准确性。
72.本技术实施例中提供了一种可能的实现方式,上文步骤s205中其它边缘节点各自将自身的本地模型参数更新为参与聚合次数最多的边缘节点广播的本地模型参数之后,还可以包括以下步骤c1至c2:
73.步骤c1,所有参与模型训练的边缘节点各自基于本地模型参数对当前模型结构进行评估,将评估结果发送给训练任务发布方;其中,训练任务发布方根据评估结果分析当前
模型结构是否达到任务条件;若是,则将当前模型结构部署到各个边缘节点投入使用;若否,则将本地模型参数作为初始参数,并由各个边缘节点各自基于本地训练数据和任务相关内容对当前模型结构进行训练,训练完成后再次依靠边缘节点之间的信息交互进行聚合;
74.步骤c2,接收训练任务发布方发送的训练指令,各个边缘节点各自基于本地训练数据和任务相关内容对当前模型结构进行训练,训练完成后再次依靠边缘节点之间的信息交互进行聚合。
75.本实施例中根据评估结果分析当前模型结构是否达到任务条件,如果是,则将当前模型结构部署到各个边缘节点投入使用;如果不是,则将本地模型参数作为初始参数,并由各个边缘节点各自基于本地训练数据和任务相关内容对当前模型结构进行训练,训练完成后再次依靠边缘节点之间的信息交互进行聚合,可以提高模型训练的准确性,满足模型训练的任务要求。
76.以上介绍了图1和图2所示实施例的各个环节的实施例方式,下面通过一具体实施例来详细介绍本技术实施例的基于区块链的分布式模型训练方法。
77.图3示出了根据本技术实施例提供的结合训练任务发布方和参与模型训练的边缘节点的基于区块链的分布式模型训练方法的流程图,如图3所示,该基于区块链的分布式模型训练方法可以包括以下步骤s301至s306:
78.步骤s301,训练任务发布方提出模型训练任务,确定与模型训练任务对应的任务相关内容和初始模型结构,并将任务相关内容和初始模型结构发送给所有参与模型训练的边缘节点。
79.该步骤中,模型训练任务比如是语音识别任务或者图像识别任务等。根据模型训练任务可以确定初始模型结构,可以包括模型的层数、模型的初始参数等等。
80.步骤s302,各个参与模型训练的边缘节点各自基于本地训练数据和任务相关内容对初始模型结构中的初始参数进行训练得到训练后的本地模型参数。
81.该步骤中,本地训练的轮数和一次训练送入的数据量可以由训练任务发布方指定,具体可以在任务相关内容里面获取到,本地训练根据要求完成指定轮数的训练后停止。
82.步骤s303,在边缘节点之间进行数据交互,不妨称为源节点与目的节点之间进行数据交互,且中间经过一个或多个中继节点;在传输的数据包中不仅携带数据交互需要的交互信息数据,还携带源节点训练得到的本地模型参数;每当数据包经过一个中继节点,该中继节点会收下该数据包中的本地模型参数,并且将该本地模型参数与该中继节点的本地模型参数计算每个维度的平均值进行聚合处理,得到聚合后的本地模型参数;进而将聚合后的本地模型参数替换数据包中的本地模型参数以及该中继节点的本地模型参数;随后将数据包传输到下一个中继节点,在下一个中继节点中执行上述聚合过程。
83.该步骤中,各个边缘节点之间因为各种需求会发生信息交互,例如传递邮件、聊天信息、短信等等,这些信息包之间传输时可以携带一些额外信息。并且,当两个边缘节点进行数据交互时,从源节点到目的节点可能会经过其他的节点,可以称为中继节点。因此,当两个边缘节点进行数据交互时,将要发送的信息从源节点发出,通过中间的其他节点到达目的节点。发送的信息包中不仅携带信息发送需要的交互信息也携带源节点训练得到的本地模型参数。该信息包每经过一个边缘节点就和该节点训练得到的本地模型参数聚合。其
聚合方式为数据包中携带的本地模型参数与路过的中继节点的本地模型参数计算均值,并将得到的均值保存在数据包中。同时,计算所得的均值也将覆盖路过的中继节点的本地模型参数成为新的本地模型参数。该均值也将上链保存,防止篡改。发送的数据包完成参数聚合之后继续发送到下一个节点,完成同样的聚合、更新工作。直到该数据包从源节点发送到目的节点,并完成了从源节点到目的节点中的其他中继节点的聚合任务,则表示一次聚合任务完成。由于各个节点会进行频繁的交互,各个节点都会参与到这个分布式训练过程之中,直到所有节点都参与了这个聚合过程。后面,参与过最多次数聚合的节点会将其参数广播给所有节点,所有节点保存这个新的参数。
84.步骤s304,各个边缘节点会定时或不定时的发送交互信息,数据包会从不同的源节点发送到目的节点;数据包在传输过程中与其路过的所有节点完成聚合;当所有的参与节点都参与过参数聚合时,停止聚合任务;此时各个节点之间传输信息转发的数据包不再携带参数信息。
85.步骤s305,当所有边缘节点都参与过聚合后,训练任务发布方根据区块链上保存的聚合后的本地模型参数计算出参与聚合次数最多的边缘节点,由参与聚合次数最多的边缘节点广播其上的本地模型参数给参与模型训练的其它边缘节点,从而其它边缘节点各自将自身的本地模型参数更新为参与聚合次数最多的边缘节点广播的本地模型参数。
86.步骤s306,所有参与模型训练的边缘节点各自基于本地模型参数对当前模型结构进行评估,将评估结果发送给训练任务发布方;进而训练任务发布方根据评估结果分析当前模型结构是否达到任务条件;若是,则将当前模型结构部署到各个边缘节点投入使用;若否,则将本地模型参数作为初始参数,并由各个边缘节点各自基于本地训练数据和任务相关内容对当前模型结构进行训练,训练完成后再次依靠边缘节点之间的信息交互进行聚合,即重复上面的步骤s303至s305。
87.本技术实施例通过参与模型训练的边缘节点采用分布式的方式代替集中式方式训练模型参数,使本地数据不离开本地的基础上训练模型,保证了数据的安全性,解决了边缘计算场景下集中式模型训练存在隐私争议与过度依赖核心服务器等问题;并且,本技术实施例将模型参数的变动记录在区块链上,使得关键数据的可信溯源变得可行,保障了信息可溯源防篡改,提高了模型训练的准确性;另外,本技术实施例利用数据交互中的数据传递过程传输参数并完成聚合,与单独进行模型传输并且完成聚合相比减少了通信的数据量,提到了传输效率。进一步,根据评估结果分析当前模型结构是否达到任务条件,如果是,则将当前模型结构部署到各个边缘节点投入使用;如果不是,则将本地模型参数作为初始参数,并由各个边缘节点各自基于本地训练数据和任务相关内容对当前模型结构进行训练,训练完成后再次依靠边缘节点之间的信息交互进行聚合,可以提高模型训练的准确性,满足模型训练的任务要求。
88.需要说明的是,实际应用中,上述所有可能的实施方式可以采用结合的方式任意组合,形成本技术的可能的实施例,在此不再一一赘述。
89.基于上文各个实施例提供的基于区块链的分布式模型训练方法,基于同一发明构思,本技术实施例还提供了一种基于区块链的分布式模型训练装置。
90.图4示出了根据本技术一实施例的应用于训练任务发布方的基于区块链的分布式模型训练装置的结构图。如图4所示,该基于区块链的分布式模型训练装置可以包括确定模
块410、发送模块420以及计算模块430。
91.确定模块410,用于确定与模型训练任务对应的任务相关内容和初始模型结构;
92.发送模块420,用于将任务相关内容和初始模型结构发送给所有参与模型训练的边缘节点;其中,各个边缘节点各自基于本地训练数据和任务相关内容对初始模型结构中的初始参数进行训练得到训练后的本地模型参数,进而在边缘节点之间进行数据交互时,在传输的数据包中携带本地模型参数,本地模型参数每经过一个边缘节点进行聚合处理,得到聚合后的本地模型参数,将聚合后的本地模型参数保存到区块链;
93.计算模块430,用于当所有边缘节点都参与过聚合后,根据区块链上保存的聚合后的本地模型参数计算出参与聚合次数最多的边缘节点,由参与聚合次数最多的边缘节点广播其上的本地模型参数给参与模型训练的其它边缘节点,从而其它边缘节点各自将自身的本地模型参数更新为参与聚合次数最多的边缘节点广播的本地模型参数。
94.本技术实施例中提供了一种可能的实现方式,上文图4展示的装置还可以包括评估模块,用于接收所有参与模型训练的边缘节点各自基于本地模型参数对当前模型结构进行评估的评估结果;根据评估结果分析当前模型结构是否达到任务条件;若是,则将当前模型结构部署到各个边缘节点投入使用;若否,则将本地模型参数作为初始参数,并由各个边缘节点各自基于本地训练数据和任务相关内容对当前模型结构进行训练,训练完成后再次依靠边缘节点之间的信息交互进行聚合。
95.图5示出了根据本技术一实施例的应用于参与模型训练的边缘节点的基于区块链的分布式模型训练装置的结构图。如图5所示,该基于区块链的分布式模型训练装置可以包括接收模块510和训练模块520。
96.接收模块510,用于接收训练任务发布方发送的与模型训练任务对应的任务相关内容和初始模型结构;
97.训练模块520,用于基于本地训练数据和任务相关内容对初始模型结构中的初始参数进行训练得到训练后的本地模型参数;在边缘节点之间进行数据交互时,在传输的数据包中携带本地模型参数,本地模型参数每经过一个边缘节点进行聚合处理,得到聚合后的本地模型参数,将聚合后的本地模型参数保存到区块链;接收训练任务发布方发起的由参与聚合次数最多的边缘节点广播其上的本地模型参数给参与模型训练的其它边缘节点的指令;根据指令由参与聚合次数最多的边缘节点广播其上的本地模型参数给参与模型训练的其它边缘节点,且其它边缘节点各自将自身的本地模型参数更新为参与聚合次数最多的边缘节点广播的本地模型参数。
98.本技术实施例中提供了一种可能的实现方式,训练模块520还用于:
99.在边缘节点之间进行数据交互,不妨称为源节点与目的节点之间进行数据交互,且中间经过一个或多个中继节点;
100.在传输的数据包中不仅携带数据交互需要的交互信息数据,还携带源节点训练得到的本地模型参数;
101.每当数据包经过一个中继节点,该中继节点会收下该数据包中的本地模型参数,并且将该本地模型参数与该中继节点的本地模型参数计算每个维度的平均值进行聚合处理,得到聚合后的本地模型参数;进而将聚合后的本地模型参数替换数据包中的本地模型参数以及该中继节点的本地模型参数;随后将数据包传输到下一个中继节点,在下一个中
继节点中执行上述聚合过程。
102.本技术实施例中提供了一种可能的实现方式,训练模块520还用于:
103.其它边缘节点各自将自身的本地模型参数更新为参与聚合次数最多的边缘节点广播的本地模型参数之后,所有参与模型训练的边缘节点各自基于本地模型参数对当前模型结构进行评估,将评估结果发送给训练任务发布方;其中,训练任务发布方根据评估结果分析当前模型结构是否达到任务条件;若是,则将当前模型结构部署到各个边缘节点投入使用;若否,则将本地模型参数作为初始参数,并由各个边缘节点各自基于本地训练数据和任务相关内容对当前模型结构进行训练,训练完成后再次依靠边缘节点之间的信息交互进行聚合;
104.接收训练任务发布方发送的训练指令,各个边缘节点各自基于本地训练数据和任务相关内容对当前模型结构进行训练,训练完成后再次依靠边缘节点之间的信息交互进行聚合。
105.基于同一发明构思,本技术实施例还提供了一种电子设备,包括处理器和存储器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任意一个实施例的基于区块链的分布式模型训练方法。
106.在示例性的实施例中,提供了一种电子设备,如图6所示,图6所示的电子设备600包括:处理器601和存储器603。其中,处理器601和存储器603相连,如通过总线602相连。可选地,电子设备600还可以包括收发器604。需要说明的是,实际应用中收发器604不限于一个,该电子设备600的结构并不构成对本技术实施例的限定。
107.处理器601可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic(application specific integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器601也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
108.总线602可包括一通路,在上述组件之间传送信息。总线602可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线602可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
109.存储器603可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
110.存储器603用于存储执行本技术方案的应用程序代码,并由处理器601来控制执行。处理器601用于执行存储器603中存储的应用程序代码,以实现前述方法实施例所示的内容。
111.其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
112.基于同一发明构思,本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任意一个实施例的基于区块链的分布式模型训练方法。
113.所属领域的技术人员可以清楚地了解到,上述描述的系统、装置、模块的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。
114.本领域普通技术人员可以理解:本技术的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干程序指令,用以使得一电子设备(例如个人计算机,服务器,或者网络设备等)在运行所述程序指令时执行本技术各实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom)、随机存取存储器(ram)、磁碟或者光盘等各种可以存储程序代码的介质。
115.或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的电子设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被电子设备的处理器执行时,所述电子设备执行本技术各实施例所述方法的全部或部分步骤。
116.以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:在本技术的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1