基于机器学习竞赛的区块链架构的制作方法

文档序号:22678939发布日期:2020-10-28 12:37阅读:186来源:国知局
基于机器学习竞赛的区块链架构的制作方法

本发明涉及区块链技术领域,具体而言涉及一种基于机器学习竞赛的区块链架构。



背景技术:

区块链本质上是一个去中心化的分布式账本,也是一个公共的数据库。它由网络中的节点共同维护,这些节点在比特币中被称为“矿工”(miner)。区块链具有不可篡改、全程留痕、可以追溯、公开透明等特点,这些特点保证了区块链的“诚实”与“透明”,为区块链创造信任奠定基础。区块链能够解决多种应用场景中的信息不对称问题,从而实现多个主体之间的协作信任与一致行动。

区块链的以上特性决定了区块链可以作为一个去中心化的系统开展各种机器学习任务。区块链去中心化的特点使得机器学习可以获取大量异构的数据,丰富机器学习的数据分布,让机器学习的结果更具有普适性。在区块链中记录数据需要通过节点审核,被确认后才能被添加到区块中,因此区块链中的数据具有更高的可信度。区块链可以记录机器学习,尤其是深度学习的每一步操作,从而方便人们理解机器学习的优化过程,提高机器学习的可解释性。

区块链的共识机制是指用于在多个区块链实体之间对账本的相同内容和区块链网络状态达成一致意见的协议,它是区块链有序运转的保证。区块链可视为一个去中心化的市场,其中数据存储、交易执行等操作的执行无需中心化机构的监管,区块链的共识机制解决可以很大概率上保证记录在记账节点上的交易的一致性与正确性。此外,传统的工作量证明(proofofwork)共识机制在解决无用的哈希难题上消耗大量资源,这并不利于开展机器学习任务。因此,开发新型区块链架构,在避免能源浪费的同时,保证区块链的有序运转至关重要。



技术实现要素:

发明目的:为解决现有区块链架构中存在的资源浪费严重等诸多问题,本发明提供了一种基于机器学习竞赛的区块链架构,所述架构允许用户发布奖金寻找合适的机器学习模型,并激励更多用户参加机器学习训练,同时创建了一个机器学习模型和数据集存储库,推动机器学习模型与算法的不断优化。

技术方案:一种基于机器学习竞赛的区块链架构,包括以下步骤:

1)用户在区块链中注册节点,并广播到区块链网络中;该区块链网络包括任务发布者、模型训练师和模型验证者三种不同身份的节点;

2)任务发布者在区块链中发布机器学习任务,区块链更新当前任务列表;

3)模型训练师查看任务列表,选择有能力进行的任务开展机器学习训练;

4)区块链网络随机选择节点(除模型训练师节点外)组成模型验证者委员会,委员会中的模型验证者各自下载模型以及对应的测试数据集、运行评估脚本测试模型性能、给出模型排名;随后,模型验证者委员会基于一致性协议确定最终的模型排名并标记优胜模型;

5)完成排名共识后,模型验证者委员会随机选择一个模型验证者节点发布新的区块,包括前一个区块哈希、任务相关交易以及机器学习任务的信息;

6)区块链网络中的节点可对区块链数据库进行查询。

进一步的,步骤1)中,所述在区块链中注册节点的具体过程如下:

1.1)首先由一个节点以json格式向网址“节点地址+/nodes/register”发送申请注册的节点地址,从而以post方式向区块链发送注册节点请求;

1.2)区块链收到请求后,将申请注册的节点和本地节点列表作对比,如果出现重复节点则不予添加,没有重复的节点则添加到节点列表中;

1.3)完成添加后,系统提示节点注册成功,并将节点列表的信息广播到区块链所有节点中,更新节点信息。

进一步的,步骤2)中,所述任务发布者采用post方法以json格式向区块链网络中发布任务信息,具体的,所述任务信息包括:

(1)任务发布时间戳,由系统自动生成;

(2)机器学习的任务概要;

(3)训练所需的数据集;

(4)以coins为单位表示的机器学习模型优胜者奖励;

(5)模型性能指标;

(6)评估模型,用于测试出模型的各个性能指标;

(7)提交模型的截止时间和发布测试数据集的时间;所述截止时间和发布测试数据集的时间均用区块的高度表示,即区块链的长度,当区块高度超过限制时,模型训练师将不能提交新的机器学习模型,系统将随机选定模型验证者,并发布测试数据集;

(8)用于托管任务所花费的保证金,保证任务发布者能够提供任务所需数据集以及相关信息,否则该保证金用将被模型验证者平分;

区块链网络为任务创建单独的任务列表,以便网络中的各个节点查看任务,从而选择自己有能力开展的机器学习任务来训练模型;当任务发布者发布新的任务后,区块链网络更新当前的任务列表,并将任务信息广播到所有节点中;网络中的其他节点可调用查询任务的接口,查询任务的基本信息以及任务的序号;随后,模型训练师和模型验证者将根据指定的任务序号提交相对应的模型以及验证结果。

进一步的,步骤3)具体包括以下内容:

3.1)模型训练师可查看当前区块链网络中的未被解决的任务,下载训练数据集并在本地开展机器学习训练,以找到合适的机器学习模型,包括模型结构和权重信息;

3.2)在完成本地的模型训练后,模型训练师将机器学习模型提交到区块链网络中,系统为模型生成哈希;随后,模型训练师无法更改模型,否则改动后模型的哈希与原模型哈希不匹配,被判定无效;

3.3)区块链网络中的节点仅可观察到模型的哈希,只有被选为模型验证者的节点有权在区块高度达到截止时间后下载模型。

进一步优选的,所述步骤3)还包括:

3.4)为了避免恶意节点提交多个相同模型以提升自我排名,参与机器学习的模型训练师需缴纳少许参与费用,若其模型最终被判定排名在前百分之五十则可以赎回预先缴纳的费用。

进一步的,步骤4)具体包括以下内容:

4.1)区块高度达到截止时间后,区块链网络随机选出除模型训练师节点外的一系列节点,组成模型验证者委员会;

4.2)各模型验证者节点下载对应任务的模型,运行测试脚本,得到各模型的性能指标;

4.3)各模型验证者节点根据测试性能的对比,给出自己的模型排名,并标记出模型优胜者;

4.4)所有验证者节点完成评估和排名后,区块链收集排名信息并基于一致性协议投票决定最终的模型排名,标记出优胜模型及对应模型训练师的节点地址。

进一步的,步骤5)具体包括以下内容:

5.1)投票环节完成后,模型验证者委员会随机选择一个模型验证者向区块链提交新的区块;

5.2)新增区块的内容包括前一个块的哈希、区块中的交易以及机器学习信息;

具体的,所述交易包括以下种类:

①将任务发布者提供的优胜奖励交易给优胜模型训练师的交易;

②将任务托管费从任务发布者平均分配给所有有效验证者的交易;

③允许模型排名在前二分之一的训练师平分参会费的交易;

④模型验证者平均分配产生新区块所得coin奖励的交易;

所述机器学习信息包括:

①机器学习任务概要;

②机器学习优胜者的模型;

进一步的,步骤6)中,所述区块链网络中的节点对区块链数据库进行如下查询:

6.1)查询网络中所有节点的列表;

6.2)查询区块链的信息,包括区块链中的交易和区块链中存储的机器学习信息;

其中,区块链中的交易包括以下种类:

①将任务发布者提供的优胜奖励交易给优胜模型训练师的交易;

②将任务托管费从任务发布者平均分配给所有有效验证者的交易;

③允许模型排名在前二分之一的训练师平分参会费的交易;

④模型验证者平均分配产生新区块所得coin奖励的交易;

区块链中存储的机器学习信息包括:

①机器学习任务概要;

②机器学习优胜者的模型;

6.3)查询任务列表,所述任务列表包括:

(1)任务发布时间戳,由系统自动生成;

(2)机器学习的任务概要;

(3)训练所需的数据集;

(4)以coins为单位表示的机器学习模型优胜者奖励;

(5)模型性能指标;

(6)评估模型,用于测试出模型的各个性能指标;

(7)提交模型的截止时间;所述截止时间用区块的高度表示,即区块链的长度,当区块数量超过限制时,模型训练师将不能提交新的机器学习模型,系统将随机选定模型验证者,并发布测试数据集;

(8)用于托管任务所花费的保证金,保证任务发布者能够提供任务所需数据集以及相关信息,否则该保证金用将被模型验证者平分;

6.4)查询某个节点上传过的模型信息;

6.5)查询节点承担的工作,以列表形式显示不同任务对应的任务发布者、模型训练师和模型验证者的信息。

本发明的有益效果是:

1)将工作证明(proofofwork)共识机制花费在解决哈希谜题上的大量算力用于解决机器学习问题,推动了资源的有效利用。

2)允许寻求机器学习解决方案的代理商或个人提交机器学习模型需求,从而在整个区块链网络的协作下得到所需要的最优模型,让机器学习的成果普惠不同的行业。

3)区块链中的个体可以通过训练机器学习模型或是验证其他模型的性能来获得相应的奖励,这种激励机制能够吸引更多的用户加入机器学习模型的训练中,推动机器学习模型与算法的不断优化。

4)基于区块链分布式、去中心化、公开透明等特点,本发明创建一个机器学习模型和数据集存储库,方便用户查找机器学习任务的解决方案,使机器学习的成果易于分享,开源的环境能推动机器学习的模型不断优化。

附图说明

图1为该区块链架构的运作流程图;

图2为节点注册算法流程图;

图3为节点注册示意图;

图4为任务发布者机器学习任务发布示意图;

图5为任务列表查询示意图;

图6为机器学习模型上传示意图;

图7为达到截止时间前查看上传模型看到的哈希图;

图8为模型评估示意图;

图9为模型排名上传示意图;

图10为确定模型最终排名示意图;

图11为区块链节点身份查询示意图;

图12为新增区块及其响应示意图;

图13为区块链信息查询示意图;

图14为基于机器学习竞赛的区块链架构示意图。

具体实施方式

以下将结合具体实施例对本发明提供的技术方案进行详细说明。

如图1所示,本发明涉及的架构涉及三种不同身份的节点:

1)任务发布者,负责主持机器学习竞赛;

2)模型训练师,负责为任何可用任务进行培训并提交模型;

3)模型验证者,他们根据测试数据评估模型,就获胜模型及排名达成共识,并为区块链中添加新的区块。

节点注册完毕后,首先由任务发布者节点向区块链发送新的任务请求,区块链将新的任务填加到任务列表中。其次,模型训练师节点查看任务列表,选择任务在本地开展机器学习,训练完成后将模型上传到区块链中。此后,区块链随机选择模型训练师以外的节点担任模型验证者。模型验证者评估模型性能,提出排名,并在一致性协议下投票确定最终排名,之后将机器学习任务、优胜模型、交易信息以及前一个区块哈希打包成新的区块,添加到区块链中。至此,基于区块链创造了一个机器学习模型和数据集存储库,可以调用查询接口查看区块链中机器学习的信息,具体过程如下所示。

如图2与图3所示,在本发明的区块链中注册节点工作过程为:首先由一个节点以json格式向网址“节点地址+/nodes/register”发送申请注册的节点地址,从而以post方式向区块链发送注册节点请求。区块链收到请求后,将申请注册的节点和本地节点列表作对比,如果出现重复节点则不予添加,没有重复的节点则添加到节点列表中。完成添加后,系统提示节点注册成功,并将节点列表的信息广播到区块链所有节点中,更新节点信息。

如图4所示,发布机器学习任务的节点工作流程为:确认节点已经在区块链网络中注册后,向网址“节点地址+/task”以post方式发送任务发布请求,post内容包括以json格式撰写的以下信息:任务发布时间戳(发布时系统自动生成)、任务概要、基础模型、训练数据集、任务优胜者奖励、任务托管费用、截止时间(以区块高度即区块链长度表示)、模型追求的性能指标和测试用的评估模型。

如图5所示,所有任务发布者发布的任务都会被保存在一个任务列表中,区块链中的所有节点都可以向网址“节点地址+/tasklist”发送request请求,得到的响应就是区块链中保存的任务列表,模型训练师可以选择与自身能力匹配的机器学习任务训练模型。

如图6与图7所示,模型训练师上传模型时,区块链中会生成模型的哈希,通过“节点地址+/train”发送模型上传请求,机器学习模型与机器学习任务必须对应,避免错乱情况发生。如图7所示,在截止时间到达前,查看某个训练师节点的模型只能看到模型和参数的哈希,并不能看到具体的模型。截止时间到达后,模型训练师需要再次上传模型,由于任何微小的改动都会导致模型哈希发生巨大变化,所以训练师必须上传与原哈希对应的模型。为了避免恶意节点提交多个相同模型以提升自我排名,参与机器学习的模型训练师需要上缴少许参与费用,模型被判定在前百分之五十则可以赎回。

如图8所示,截止时间到达后,区块链网络会随机选择一系列节点组成模型验证者委员会,并发布测试数据集。被选中的模型验证者可以向网址“节点地址+/validate”发送request请求,模型验证者会自动下载测试数据集并运行评估脚本,得到各模型的性能对比结果。

如图9所示,在脚本评估完成后,模型验证者需要提交基于评估结果的模型排名,标记好对应的机器学习任务并给出自己认为的优胜模型及对应模型训练师。

如图10所示,模型验证者都提交完排名后,区块链网络基于一致性共识协议投票选出最终的优胜模型,并给出模型训练师排名,为新区块的添加做准备。

如图11所示,基于以上步骤,任务发布者、模型训练师与模型验证者已经完成了自己的职责,任意节点可以通过向网址“节点地址+/checkid”发送request请求查看机器学习任务对应的任务发布者、模型训练师与模型验证者节点信息,确定三者工作已经完成。

如图12所示,被选定的模型验证者向网址“节点地址+/addblock”发送post请求,为指定序号的机器学习任务添加新的区块,如果任务发布者、模型训练师与模型验证者都已经完成了自己的工作,则显示新的区块已经添加成功,系统响应会给出新的区块信息,包括前一个区块哈希、交易和机器学习相关信息。交易包括任务发布者给模型优胜者的奖励、模型有效的模型训练师赎回的参会费用、任务验证者平分的托管费用以及新增区块系统给予的奖励。机器学习信息包括机器学习任务概要、数据集以及优胜者模型。如果三者工作没有全部完成,系统会提示任务还在进行中。

如图13所示,任意节点可向网址“节点地址+/chain”发送request请求,可以查看当前区块链中的区块,包括机器学习的相关信息,由此区块链成为了一个机器学习模型和数据集的存储库,能够方便区块链网络中的所有节点获取机器学习的知识,推动机器学习的发展。区块链的结构如图14所示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1