一种数据交互系统和去中心化边缘模型训练验证方法

文档序号:30223667发布日期:2022-05-31 23:40阅读:130来源:国知局
一种数据交互系统和去中心化边缘模型训练验证方法

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.所述任务分发节点质押两个资源量、所述任务解决节点质押一个资源量、所述任务验证节点质押一个资源量;
40.以第一训练结果和第二训练结果,确定出结果相同的终止轮次作为断点;
41.以预期训练轮次的一半作为分界点;
42.根据断点和分界点的比例关系,为所述任务解决节点和所述任务验证节点分配资
源量。
43.又一方面,提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述方法的步骤。
44.本技术提供的数据交互系统和去中心化边缘模型训练验证方法,通过引入由具备计算能力和验证能力的边缘节点组成可验证计算层,来进行任务结果的准确性验证,从而可以解决现有的无法对边缘计算外包结果进行有效验证的问题,实现了数据在边缘网络中的高效流通,达到了简单高效对边缘数据进行有效性验证的技术效果。
附图说明
45.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
46.图1是本技术提供的数据交互系统的架构示意图;
47.图2是本技术提供的可验证计算层一种实施例的模型结构示意图;
48.图3是本技术提供的去中心化边缘模型训练验证方法一种实施例的方法流程图。
具体实施方式
49.为了使本技术领域的人员更好地理解本技术中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
50.针对现有的边缘计算所存在的如下问题:
51.1)边缘模型外包过程中出现第三方恶意节点提交随机参数导致的信任问题;
52.2)边缘模型外包过程中验证效率低下的问题。
53.在本例中,提出了去中心化边缘模型训练方法,使得资源有限的边缘节点可以放心地外包计算任务给其他节点,在可以识别恶意边缘节点的前提下,收到一个可验证的边缘计算任务结果。提供了一种链上链下数据的交互模型,该模型通过物理网络层、区块链边缘层、可验证计算层以及链下存储层的四层数据交互,实现数据在边缘网络中的高效流通。进一步的,提出了一种基于可验证随机函数的模型训练验证算法,通过honor仲裁者、solver解决者、verifier验证者、juror陪审员四者的数据交互,使得验证节点无需重新执行一遍人工智能模型便可验证结果的有效性,提高了验证节点的验证效率。进一步的,设计了一个激励模型对网络中参与者的权利和义务进行界定,限制网络资源消耗者无限制地消耗网络资源,鼓励网络资源提供者和网络结果验证者积极参与网络共识,以此来更好地配置网络资源。可以使得在有恶意节点的情况、没有恶意节点的情况下,都可以在基本保持模型的正确率的前提下,有效降低验证时间,以证明所提出算法的可扩展性。
54.具体的,如图1所示,提供了一种数据交互系统,可以包括:
55.物理网络层101,由数据生产者边缘设备构成,用于收集和存储边缘设备生产的数
据,并将数据上传至链下存储层;
56.链下存储层102,由具备存储资源的节点构成,用于接收物理网络层的数据,并根据接收的数据生成数据摘要,将数据摘要上传至区块链边缘层;
57.区块链边缘层103,由边缘节点组成的区块链网络构成,用于数据共享;
58.可验证计算层104,位于所述区块链边缘层之上,由具备计算能力和验证能力的边缘节点组成,用于进行任务结果的准确性验证。
59.即,通过引入由具备计算能力和验证能力的边缘节点组成可验证计算层,来进行任务结果的准确性验证,从而可以解决现有的无法对边缘计算外包结果进行有效验证的问题,实现了数据在边缘网络中的高效流通,达到了简单高效对边缘数据进行有效性验证的技术效果。
60.如图2所示,上述的所述可验证计算层可以由如下节点组成包括:
61.任务分发节点,由发起计算任务的客户端构成,用于发起计算任务,并将计算任务存储在所述链下存储层;
62.任务解决节点,由边缘设备构成,用于通过执行模型训练解决所述计算任务得到第一训练结果;
63.任务验证节点,由边缘设备构成,用于执行所述计算任务,得到第二训练结果;
64.任务仲裁节点,用于根据所述第一训练结果和所述第二训练结果,进行结果仲裁;
65.任务陪审节点,用于接收所述第一训练结果、所述第二训练结果,接收所述任务仲裁节点返回的中间数据,并根据所述第一训练结果和所述第二训练结果对中间数据进行验证。
66.即,提出了一种基于可验证随机函数的模型训练验证算法,通过honor仲裁者、solver解决者、verifier验证者、juror陪审员四者的数据交互,使得验证节点无需重新执行一遍人工智能模型便可验证结果的有效性,提高了验证节点的验证效率。
67.具体的,在本例中提供了一种去中心化边缘模型训练验证方法,如图3所示,可以包括如下步骤:
68.步骤301:验证计算层响应于任务分发节点发布的任务请求,选取任务解决节点,通过选取的任务解决节点执行计算任务,得到第一训练结果;
69.其中,任务请求中可以但不限于携带有:任务的数据来源、任务的计算方式、任务所需的结算结果。具体的,通过选取的任务解决节点执行计算任务,得到第一训练结果,包括:所述任务解决节点根据映射地址获取待训练模型和训练数据;所述任务解决节点在本地执行模型训练,生成第一训练结果;将所述第一训练结果存储在链下存储层,并将映射地址和每一轮训练结果的摘要提交至所述验证计算层的所有节点。
70.其中,任务解决节点可以通过轮询算法顺序选出一个边缘节点,由选出的边缘节点执行模型训练。
71.步骤302:通过随机选择的任务验证节点执行所述计算任务,得到第二训练结果;
72.对于任务验证节点而言,可以是随机选取的。例如,可验证计算层可以依据可验证随机函数选取其他边缘训练节点作为任务验证节点。只有生成的随机数小于可验证计算层预定的阈值,那么该节点才可以作为任务验证节点。其中,预定的阈值可以根据任务仲裁节点的私钥生成,随后由任务仲裁节点验证结果的准确性。然而,在选择任务验证节点的过程
中可能存在以下三种情况:1)仅有一个边缘节点的随机数小于阈值,此时该节点即为任务验证节点;2)没有一个边缘节点的随机数小于阈值,此时网络将通过轮询算法选择一个边缘节点作为本次的任务验证节点;3)当多个边缘节点的随机数小于阈值,此时第一个将验证结果发送至任务仲裁节点的边缘节点成为该任务的任务验证节点。
73.步骤303:将所述第一训练结果和所述第二训练结果提交至任务仲裁节点;
74.对于任务仲裁节点而言,可以是在任务分发节点将任务提交到区块链网络共识时,通过共识算法产生的主节点即作为任务仲裁节点,其中,任务仲裁节点对任务计算节点和任务验证节点的训练结果具有一票否决权,因此,任务仲裁节点需要通过共识机制选举得出,以防止作弊行为出现。例如,在bft类算法中,任务仲裁节点可以为主节点;在satoshi类算法中,任务仲裁节点可以是拥有记账权的矿工。在本例中,将通过共识算法产生的记账节点作为任务仲裁节点。
75.步骤304:任务仲裁节点将所述第一训练结果和所述第二训练结果进行比较,以确定第一训练结果的准确性。
76.具体的,任务仲裁节点可以对所述第一训练结果逐轮与第二训练结果进行比较,确定出训练结果相同的终止轮次;将确定出的终止轮次作为断点;获取预期训练轮次;根据所述断点和所述预期训练轮次,确定第一训练结果的准确性。例如:任务仲裁节点接收任务解决节点和任务验证节点返回的映射地址和任务摘要,首先对比任务摘要以定位checkpoint(断点),然后从checkpoint处执行一个训练轮次以判断获取的结果。最坏的情况是,任务解决节点和任务验证节点全部是恶意节点并且提交随机生成的不同的任务摘要,此时checkpoint为0,仲裁者仅执行epoch=1的结果,任务分发者仅收获一个epoch的结果。
77.在实现的时候,可以引入任务陪审节点以辅助任务仲裁节点,在将确定出的终止轮次作为断点之后,可以将所述终止轮次作为中间结果,发送至任务陪审节点;所述任务陪审节点根据所述第一训练结果和所述第二训练结果对中间数据进行验证。
78.为了实现对验证节点的激励,任务解决节点可以提供一些激励资源,例如,任务解决节点在本地执行模型训练,生成第一训练结果可以包括:所述任务解决节点根据任务请求中的训练轮次进行训练;在最后一个训练轮次结束所生成的训练结果中添加激励资源,其中,所述激励资源用于在所述第二训练结果与所述第一训练结果仅最后一个训练轮次的结果不同的情况下,转移给所述任务验证节点。
79.为了对网络中所有节点进行激励,可以采用基于断点的边缘节点信誉激励模型,例如任务分发节点质押两个资源量、所述任务解决节点质押一个资源量、所述任务验证节点质押一个资源量;以第一训练结果和第二训练结果,确定出结果相同的终止轮次作为断点;以预期训练轮次的一半作为分界点;根据断点和分界点的比例关系,为所述任务解决节点和所述任务验证节点分配资源量。
80.下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本技术,并不构成对本技术的不当限定。
81.在本例中提供了一种系统模型根据数据流向可以分为如下四层:物理网络层、区块链边缘层、可验证计算层和链下存储层,其中,物理网络层用于数据生产、区块链边缘层用于数据共享、可验证计算层用于模型训练、链下存储层用于数据存储。
82.1)物理网络层:该层由数据生产者边缘设备(即,边缘终端设备)构成,其作用是收集和存储边缘设备生产的数据。由于边缘设备的计算和存储能力有限,其首先将边缘数据(边缘设备产生的数据,都可以作为边缘数据)上传给链下存储层,链下存储层生成数据摘要后上传到区块链边缘层用于下一步的数据训练和共享。
83.2)区块链边缘层:该层由边缘训练节点组成的区块链网络构成。边缘训练节点由较强计算能力的边缘节点组成以执行消耗资源的计算任务。下文中,将边缘训练节点称为边缘节点。区块链边缘层利用区块链的不可篡改、可追溯特性支撑无信任边缘节点的数据共享。
84.3)可验证计算层:该层是构建于区块链边缘层之上的由具备计算能力和验证能力的边缘节点组成。在可验证计算层中,边缘节点的角色分为giver、solver、verifier、honor、juror,其主要作用是验证去中心化模型训练机制的有效性。
85.4)链下存储层:为了降低存储庞大数据量对区块链共识效率的影响,在本例中采用链下存储层共识拓展区块链的存储能力,以空间换时间的方式,使得大量数据在区块链和边缘节点之间流转。该层由边缘节点、云服务器等具备存储资源的节点组成,其通过消耗资源获取奖励reward的方式参与数据存储。
86.共识模型,依据数据交互的不同位置分为三个部分,分别是区块链边缘层共识、可验证计算层共识以及链下存储层共识,区块链边缘层共识用于数据共享、可验证计算层共识用于算力共享、链下存储层共识用于存储共享。
87.1)区块链边缘层共识:边缘计算任务的开放性导致边缘节点可以随意加入或者退出边缘网络,不同信任域的边缘节点难以进行数据交互。因此,在本例中采用区块链实现边缘数据在无信任的边缘节点之间低成本高效流转。区块链边缘层共识由边缘节点组成共识节点,边缘节点拥有记账和数据共享能力,可在区块链网络中参与共识过程。
88.2)可验证计算层共识:为了减少计算资源浪费等问题,在本例中采用可验证计算层共识验证去中心化模型训练机制的有效性,以充分利用计算资源。可验证计算层共识选取solver执行计算任务、verifier执行验证任务,verifier的结果作为可验证计算层的结果提交给honor,honor比较结果的准确性并给出checkpoint,最后juror验证checkpoint的正确性。这里的honor可以由区块链边缘层共识选出,因此honor成为恶意节点的概率由区块链边缘层共识采用的共识算法决定。
89.3)链下存储层共识:链下存储层的共识算法实现方案包括无激励层的ipfs(点对点的分布式文件系统协议)以及有激励层的filecoin和crust,其通过merkle dag等技术实现数据的存储和验证,防止数据在链下被篡改。
90.验证模型,根据处理的任务类型将节点分为五个角色,如图2所示,可以分别是任务分发者(对应上述的任务分发节点)、任务解决者(对应上述的任务解决节点)、任务验证者(对应上述的任务验证节点)、任务仲裁者(对应上述的任务仲裁节点)和任务陪审员(对应上述的任务陪审节点)。
91.1)任务分发者:是发起计算任务提案的边缘区块链客户端,该节点期待利用其它节点的算力以解决计算任务。任务分发者先将计算任务存储于链下存储层,并将返回的映射地址作为交易内容提交到边缘区块链中共识,以实现任务信息共享。
92.2)任务解决者和任务验证者:任务解决者和任务验证者根据映射地址获取模型和
训练数据,随后在本地执行模型训练,将训练结果存储于链下存储层,将返回的映射地址和每一轮训练结果的摘要提交给全网节点,包括任务仲裁者,等待仲裁。
93.3)任务仲裁者:任务仲裁者接收任务解决者和任务验证者返回的映射地址和任务摘要,其首先对比任务摘要以定位checkpoint(断点),然后从checkpoint处执行一个epoch(训练轮次)以判断获取的结果。最坏的情况是,任务解决者和任务验证者全部是恶意节点并且提交随机生成的不同的任务摘要,此时checkpoint为0,仲裁者仅执行epoch=1的结果,任务分发者仅收获一个epoch的结果。
94.4)任务陪审员:任务陪审员接收任务解决者和任务验证者返回的映射地址和任务摘要,并接收任务仲裁者的checkpoint以及相应结果,通过对比任务摘要快速验证checkpoint。
95.可验证模型训练机制,可以包括如下步骤:
96.s1:初始化:可验证计算层需要与区块链边缘层、链下存储层、物理网络层进行交互。
97.因此,gi(发布者),sj(解决者),vk(验证者),hm(仲裁者),jn(陪审员)选择安全参数作为输入,并且输出公私钥对(skb,pkb)用于区块链边缘层,(sks,pks)用于可验证计算网络,(skv,pkv)用于链下存储层,其中,sk表示公钥,pk表示私钥,下标表示角色(例如:发布者g、解决者s、验证者等v)。
98.s2:分发计算任务:gi将需要解决的计算任务task存储于链下存储层,并将唯一映射该计算任务的地址提交到可验证计算层参与共识,以共享待解决的任务。
99.数据集d
t
的损失函数可以表示为:
100.f
t
(w)=f(h(w,x),y)
101.其中,f(h(w,x),y)是每个epoch的损失函数。每个边缘模型根据w
t
(r-1)和d
t
在本地训练w
t
(r),如下公式所示:
[0102][0103]
其中,η表示学习率。
[0104]
s3:分配计算任务:任务对应的sj通过轮询算法顺序选出一个边缘节点,由选出的边缘节点执行模型训练。由于选取sj的方式不具备随机性,导致sj可以被其他节点预测。但是,sj在解决任务的时候需要消耗算力资源,并且其结果需要经过完全随机的vk的验证,当验证结果不一致时由hm仲裁。因此,轮询算法导致的偏见对该过程并不产生影响,最终的目的是解决计算任务。
[0105]
sj=e
p
(sequence,height)mod|sn|
[0106][0107]
s4:确定任务仲裁者:gi将任务提交到区块链网络共识时,通过共识算法产生的主节点即为hm。hm对sj和vk结果具有一票否决权,因此hm需要通过共识机制选举得出,以防止作弊行为出现。在bft类算法中,hm为主节点;在satoshi类算法中,hm为拥有记账权的矿工。在本例中,将通过共识算法产生的记账节点作为本次任务的任务仲裁者。
[0108][0109]
s5:确定任务验证者:可验证计算层依据可验证随机函数选取其他边缘训练节点作为vk。只有生成的随机数小于可验证计算层预定的阈值,该节点才可作为验证者。其中,预定的阈值可以根据hm私钥生成,随后由hm验证结果的准确性。然而,在选择验证者的过程中可能存在以下三种情况:1)仅有一个边缘节点的随机数小于阈值,此时该节点即为验证者;2)没有一个边缘节点的随机数小于阈值,此时网络将通过轮询算法选择一个边缘节点作为本次验证者;3)当多个边缘节点的随机数小于阈值,此时第一个将验证结果发送至仲裁者的边缘节点成为该任务的验证者。
[0110]
在确定任务验证者的过程中,由于边缘节点在本地生成随机数,除非其自己公开随机数,否则其他节点无法得知当前轮次的验证者,以此提高选举的随机性。
[0111][0112]
s6:任务验证:vk从链下存储层获取地址映射的模型和数据,在本地执行任务,将任务的结果按照每个epoch保留摘要,广播给其他节点,等待hm和jn验证。计算任务中的所有内容都相同,包括:input_set、loss_reduce、output_set、seed、param_set等。一般情况下,只要sj和vk不是恶意节点,两者的结果相同,这就可能导致vk没有动力给sj纠错。为鼓励vk的积极性,sj可以在最后一轮epoch结束后生成的参数结果中加入一个easter egg(w
egg
),让vk有动力去找出网络中的非法节点。sj在最后一轮结果的摘要处生成一个随机的摘要,只要vk和sj正常执行计算任务,vk与sj除最后一轮结果外的其他结果均相同,其可获得相应的激励。
[0113][0114]
s7:任务仲裁:hm需要执行以下三项操作:首先,如果可验证计算层中有多个vk,则hm判定第一个发送结果并且通过可验证随机函数的vk为有效vk;其次,如果可验证计算层中没有vk,由于可验证计算层中的各节点处于分布式环境中,采用的时间戳服务器不同,导致节点本地时钟不尽相同,因此需要设置一个算上网络时延的timeout以便hm知晓在当前这个slot内并未有vk被选出。在本例中,采用先表明身份后执行训练的方式,即在任务分发到区块链共识的过程中,vk即可表明身份,如果timeout时没有vk,则hm根据轮询算法选取vk;最后,如果vk与sj的计算结果不一致,则hm执行checkpoint处该轮epoch的代码,以减少验证资源浪费。为监督hm的行为,仲裁之后的结果需要广播给网络中的其他jn,由jn验证checkpoint的有效性。由于检查checkpoint的行为非常简单,只需要比较每个epoch下的结果的摘要,无需消耗大量资源,因此这种方式可以满足该设计满足难解决的问题,通过简单方式可验证的原则hm发送仲裁后的模型参数到链下去中心化存储,并将优化后的数据映射地址回调给gi,本次计算任务结束。
[0115]
根据上述工作业务流,网络中的jn通过跳过基于可验证随机函数的模型训练验证
机制可能获得的收益是:
[0116]
adv(p)=t
p-td[0117]
其中,td是违背共识协议的成本,td可以是随机选择一个值提交,或者每次上传的结果为常数。基于此,节点在每次计算任务中可能获得的收益是:
[0118][0119]
其中,pj表示每个计算任务中每个epoch需要执行的基于可验证随机函数的模型训练验证机制,则其应该满足:
[0120][0121]
其中,∈取决于区块链网络采用的共识算法、网络状态等。
[0122]
边缘节点激励模型:
[0123]
虽然通过上述方式可以检测出恶意节点,但是为了提高节点参与网络共识的积极性,需要设计激励模型对好的节点实施奖励,对恶意节点实施惩罚。
[0124]gi
希望利用边缘节点的资源来解决计算任务,但是,也存在gi恶意消耗边缘节点资源的情况,因此,需要对gi发布任务的权利予以限制,为此,在本例中,任务分发者需要消耗一定资源才能发布任务。例如:gi首先发布任务,由愿意接收计算任务的节点组成该任务的可验证计算层,执行计算任务。
[0125]
在本例中,采用基于checkpoint的边缘节点信誉激励模型。例如,训练了100轮,a和b在第51轮的时候结果不同,那么checkpoint就是50,epoch就是100。由于在本例中假设恶意节点之间无法通信,因此其生成的随机的结果难以完全一致,因此采用checkpoint衡量节点的贡献是合理的。gi,sj,vk可以分别质押2s,s,s以参与贡献。激励模型以为分水岭,当checkpoint超过则认为节点值得奖励。如果checkpoint与sj或vk相同,该节点可以获得s,另一个节点的奖励数额根据checkpoint与epoch的比例给出,gi质押的金额作为奖励sj和vk的资金池;当checkpoint不超过则认为节点不值得奖励,checkpoint与sj或vk相同的,该节点的奖励数额根据checkpoint与epoch的比例给出,另一个节点的奖励为0并且没收质押的s补偿给gi。hm的激励则从整体激励模型中增加s,即rh=s。具体的,可以按照如下公式进行奖励确定:
[0126]
[0127]
其中,rs表示任务解决者获得的奖励,e表示epoch,c表示checkpoint,w和b标识训练结果,下标表示角色,∨表示并集,∧表示交集。
[0128][0129][0130]
在上例中,为了解决边缘设备外包计算任务产生的第三方恶意节点提交错误结果和验证效率低下的问题,提出基于区块链的去中心化模型训练验证方法,通过区块链层、物理网络层、可验证计算层和链下存储层的交互实现数据传输,并提出高效的基于可验证随机函数的模型训练验证机制,以识别恶意节点和解决验证效率低的问题,最后提出激励模型以提高边缘节点参与计算的积极性。
[0131]
本技术的实施例还提供能够实现上述实施例中的去中心化边缘模型训练验证方法中全部步骤的一种电子设备的具体实施方式,所述电子设备具体包括如下内容:处理器(processor)、存储器(memory)、通信接口(communications interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的去中心化边缘模型训练验证方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
[0132]
步骤1:验证计算层响应于任务分发节点发布的任务请求,选取任务解决节点,通过选取的任务解决节点执行计算任务,得到第一训练结果;
[0133]
步骤2:通过随机选择的任务验证节点执行所述计算任务,得到第二训练结果;
[0134]
步骤3:将所述第一训练结果和所述第二训练结果提交至任务仲裁节点;
[0135]
步骤4:所述任务仲裁节点,将所述第一训练结果和所述第二训练结果进行比较,以确定第一训练结果的准确性。
[0136]
从上述描述可知,本技术实施例通过引入由具备计算能力和验证能力的边缘节点组成可验证计算层,来进行任务结果的准确性验证,从而可以解决现有的无法对边缘计算外包结果进行有效验证的问题,实现了数据在边缘网络中的高效流通,达到了简单高效对
边缘数据进行有效性验证的技术效果。
[0137]
本技术的实施例还提供能够实现上述实施例中的去中心化边缘模型训练验证方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的去中心化边缘模型训练验证方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
[0138]
步骤1:验证计算层响应于任务分发节点发布的任务请求,选取任务解决节点,通过选取的任务解决节点执行计算任务,得到第一训练结果;
[0139]
步骤2:通过随机选择的任务验证节点执行所述计算任务,得到第二训练结果;
[0140]
步骤3:将所述第一训练结果和所述第二训练结果提交至任务仲裁节点;
[0141]
步骤4:所述任务仲裁节点,将所述第一训练结果和所述第二训练结果进行比较,以确定第一训练结果的准确性。
[0142]
从上述描述可知,本技术实施例通过引入由具备计算能力和验证能力的边缘节点组成可验证计算层,来进行任务结果的准确性验证,从而可以解决现有的无法对边缘计算外包结果进行有效验证的问题,实现了数据在边缘网络中的高效流通,达到了简单高效对边缘数据进行有效性验证的技术效果。
[0143]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0144]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0145]
虽然本技术提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
[0146]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0147]
虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变
体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
[0148]
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0149]
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0150]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0151]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0152]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0153]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0154]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0155]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动
态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0156]
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0157]
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0158]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0159]
以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1