CN109194508A - 基于区块链的数据处理方法和装置 - Google Patents
基于区块链的数据处理方法和装置 Download PDFInfo
- Publication number
- CN109194508A CN109194508A CN201810984384.3A CN201810984384A CN109194508A CN 109194508 A CN109194508 A CN 109194508A CN 201810984384 A CN201810984384 A CN 201810984384A CN 109194508 A CN109194508 A CN 109194508A
- Authority
- CN
- China
- Prior art keywords
- model parameter
- node
- model
- block chain
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0866—Checking the configuration
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种基于区块链的数据处理方法,应用于区块链节点,包括:获取本节点的区块链上当前最新区块中的第一模型参数,基于第一模型参数和本地数据集,训练得到第二模型参数,将所述第二模型参数广播至本节点当前所属的区块链网络中的各节点,由各节点基于各自的本地测试集对所述第二模型参数进行共识验证。当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且符合预定条件时,将所述第二模型参数作为更新的第一模型参数,根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中。本公开还提供了一种基于区块链的数据处理装置。
Description
技术领域
本公开涉及一种基于区块链的数据处理方法和装置。
背景技术
深度学习导致了人类历史上第三次人工智能的浪潮,且已被证明在计算机视觉、语音、语言处理等许多领域都有效。许多商业的人工智能的产品/服务已经可用,并使人们的生活更加美好。
人工智能模型的训练是人工智能研究领域的重要课题,越来越多的研究投入到该课题中。
发明内容
本公开的一个方面提供了一种基于区块链的数据处理方法,应用于区块链节点,包括:获取本节点的区块链上当前最新区块中的第一模型参数,基于第一模型参数和本地数据集,训练得到第二模型参数,将所述第二模型参数广播至本节点当前所属的区块链网络中的各节点,由各节点基于各自的本地测试集对所述第二模型参数进行共识验证,当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且符合预定条件时,将所述第二模型参数作为更新的第一模型参数,根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中。
可选地,上述区块链网络包括多个子网络,不同子网络对应不同的区块链,不同子网络对应不同的模型精度范围。上述将所述第二模型参数广播至本节点当前所属的区块链网络中的各节点包括:将所述第二模型参数广播至本节点当前所属的子网络中的各节点。上述预定条件包括:所述第二模型参数对应的模型精度在本节点当前所属的子网络对应的模型精度范围内。上述方法还包括:当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且不符合预定条件时,令本节点从当前所属的子网络退出并加入至所述第二模型参数对应的模型精度对应的子网络,将本节点的区块链更新为该子网络对应的区块链。
可选地,上述由各节点基于各自的本地测试集对所述第二模型参数进行共识验证包括:由各节点基于各自的本地测试集对所述第二模型参数对应的模型分别进行测试,并根据测试结果是否优于第一模型参数对应的模型得到投票结果,返回投票结果和测试结果。上述方法还包括:接收各节点返回的投票结果和测试结果,当投票结果中均为肯定投票结果时,共识验证结果表明第二模型参数对应的模型优于第一模型参数对应的模型,以及,基于各测试结果得到第二模型参数对应的模型精度,根据所述模型精度判断是否满足预定条件。
可选地,上述方法还包括:当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且所述第二模型参数对应的模型精度超过本节点当前所属的子网络对应的模型精度范围时,如果本节点当前所属的子网络对应最高的模型精度范围,则将所述第二模型参数作为更新的第一模型参数,根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中。
可选地,上述方法还包括:在上述根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中之后,获取预定数量的数字货币奖励。
本公开的另一个方面提供了一种基于区块链的数据处理方法,应用于区块链节点,包括:接收本节点当前所属的区块链网络中的其他节点广播的第二模型参数,所述第二模型参数是由所述其他节点基于本地测试集和区块链上当前最新区块中的第一模型参数训练得到的,与其他接收到所述第二模型参数的节点一同基于各自的本地测试集对所述第二模型参数进行共识验证,当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且符合预定条件时,响应于广播所述第二模型参数的节点根据所述第二模型参数创建新的区块的操作,将所述新的区块加入至本节点对应的区块链中。
可选地,所述区块链网络包括多个子网络,不同子网络对应不同的区块链,不同子网络对应不同的模型精度范围。上述接收本节点当前所属的区块链网络中的其他节点广播的第二模型参数包括:接收本节点当前所属的子网络中的其他节点广播的第二模型参数。上述预定条件包括:所述第二模型参数对应的模型精度在本节点当前所属的子网络对应的模型精度范围内。
可选地,上述与其他接收到所述第二模型参数的节点一同基于各自的本地测试集对所述第二模型参数进行共识验证包括:基于本地测试集对所述第二模型参数对应的模型进行测试,当测试结果优于第一模型参数对应的模型时,发出肯定投票结果和测试结果,否则发出否定投票结果。当与其他接收到所述第二模型参数的节点发出的投票结果中均为肯定投票结果时,共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型,当与其他接收到所述第二模型参数的节点发出的测试结果所获得第二模型参数对应的模型精度在本节点当前所属的子网络对应的模型精度范围内,共识验证结果表明所述第二模型参数对应的模型符合预定条件。
本公开的另一个方面提供了一种基于区块链的数据处理装置,应用于区块链节点,包括获取模块、训练模块、广播模块和第一更新模块。获取模块用于获取本节点的区块链上当前最新区块中的第一模型参数。训练模块用于基于第一模型参数和本地数据集,训练得到第二模型参数。广播模块用于将所述第二模型参数广播至本节点当前所属的区块链网络中的各节点,由各节点基于各自的本地测试集对所述第二模型参数进行共识验证。第一更新模块,用于当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且符合预定条件时,将所述第二模型参数作为更新的第一模型参数,根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中。
可选地,所述区块链网络包括多个子网络,不同子网络对应不同的区块链,不同子网络对应不同的模型精度范围。广播模块将所述第二模型参数广播至本节点当前所属的区块链网络中的各节点包括:广播模块用于将所述第二模型参数广播至本节点当前所属的子网络中的各节点。所述预定条件包括:所述第二模型参数对应的模型精度在本节点当前所属的子网络对应的模型精度范围内。上述装置还包括调度模块,用于当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且不符合预定条件时,令本节点从当前所属的子网络退出并加入至所述第二模型参数对应的模型精度对应的子网络,将本节点的区块链更新为该子网络对应的区块链。
可选地,上述由各节点基于各自的本地测试集对所述第二模型参数进行共识验证包括:由各节点基于各自的本地测试集对所述第二模型参数对应的模型分别进行测试,并根据测试结果是否优于第一模型参数对应的模型得到投票结果,返回投票结果和测试结果。上述装置还包括共识验证模块,用于接收各节点返回的投票结果和测试结果,当投票结果中均为肯定投票结果时,共识验证结果表明第二模型参数对应的模型优于第一模型参数对应的模型,以及基于各测试结果得到第二模型参数对应的模型精度,根据所述模型精度判断是否满足预定条件。
可选地,上述装置还包括第二更新模块,用于当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且所述第二模型参数对应的模型精度超过本节点当前所属的子网络对应的模型精度范围时,如果本节点当前所属的子网络对应最高的模型精度范围,则将所述第二模型参数作为更新的第一模型参数,根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中。
可选地,上述装置还包括奖励获取模块,用于在所述根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中之后,获取预定数量的数字货币奖励。
本公开的另一个方面提供了一种基于区块链的数据处理装置,应用于区块链节点,包括接收模块、共识验证模块和更新模块。接收模块用于接收本节点当前所属的区块链网络中的其他节点广播的第二模型参数,所述第二模型参数是由所述其他节点基于本地测试集和区块链上当前最新区块中的第一模型参数训练得到的。共识验证模块用于与其他接收到所述第二模型参数的节点一同基于各自的本地测试集对所述第二模型参数进行共识验证。更新模块用于当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且符合预定条件时,响应于广播所述第二模型参数的节点根据所述第二模型参数创建新的区块的操作,将所述新的区块加入至本节点对应的区块链中。
可选地,所述区块链网络包括多个子网络,不同子网络对应不同的区块链,不同子网络对应不同的模型精度范围。接收模块接收本节点当前所属的区块链网络中的其他节点广播的第二模型参数包括:接收模块用于接收本节点当前所属的子网络中的其他节点广播的第二模型参数。预定条件包括:所述第二模型参数对应的模型精度在本节点当前所属的子网络对应的模型精度范围内。
可选地,共识验证模块与其他接收到所述第二模型参数的节点一同基于各自的本地测试集对所述第二模型参数进行共识验证包括:共识验证模块用于基于本地测试集对所述第二模型参数对应的模型进行测试,当测试结果优于第一模型参数对应的模型时,发出肯定投票结果和测试结果,否则发出否定投票结果。当与其他接收到所述第二模型参数的节点发出的投票结果中均为肯定投票结果时,共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型,当与其他接收到所述第二模型参数的节点发出的测试结果所获得第二模型参数对应的模型精度在本节点当前所属的子网络对应的模型精度范围内,共识验证结果表明所述第二模型参数对应的模型符合预定条件。
本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开的实施例的基于区块链的数据处理方法和装置的应用场景;
图2A示意性示出了根据本公开的实施例的基于区块链的数据处理方法的流程图;
图2B示意性示出了根据本公开的另一实施例的基于区块链的数据处理方法的流程图;
图3A示意性示出了根据本公开的实施例的区块链的示意图;
图3B示意性示出了根据本公开的另一实施例的区块链的示意图;
图4示意性示出了根据本公开的另一实施例的基于区块链的数据处理方法的流程图;
图5A示意性示出了根据本公开的实施例的节点进行模型训练的流程图;
图5B示意性示出了根据本公开的实施例的节点进行模型训练的示意图;
图6示意性示出了根据本公开的实施例的基于区块链的数据处理装置的框图;
图7示意性示出了根据本公开的另一实施例的基于区块链的数据处理装置的框图;
图8示意性示出了根据本公开的另一实施例的基于区块链的数据处理装置的框图;
图9示意性示出了根据本公开的另一实施例的基于区块链的数据处理装置的框图;以及
图10示意性示出了根据本公开的实施例的计算机系统的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
本公开的实施例提供了一种基于区块链的数据处理方法和装置。该方法包括第一模型参数获取过程、第二模型参数生成过程、共识验证过程和区块链更新过程。在第一模型参数获取过程中,获取当前所属的区块链网络中前一次所获得的最优模型参数,在此基础上进行训练生成第二模型参数,经过共识验证过程验明新生成的第二模型参数对应的第二模型优于前一次的最优模型且符合预定条件时,根据第二模型参数对当前所属区块链网络对应的区块链进行更新。
区块链是通过散列指针按时间顺序链接的块的分布式数据库。这些块包含已在社区中执行和共享的所有事务。区块链中的每笔交易均通过社区中全部或大部分区块链节点按照共识规则进行验证。下面介绍区块链中包括的几个概念:
资产:可以被拥有或者被控制以产生价值的任何事,交易:资产的转移,区块:由一组交易构成的区块链条目,共识:所有或大部分参与者验证新的区块,有效的区块加入区块链,奖励:鼓励参与者做出贡献并保持诚实的奖励。
深度学习模型通常通过三个步骤进行训练:前馈评估,反向传播和权重更新。前馈评估计算每个输入的模型输出,反向传播是基于真实值计算误差项,并使用误差项来计算权重更新,更新权重后,重复此过程,直到整个训练数据集已处理完毕,这被称为训练过程。在训练过程结束时,基于测试集计算模型预测误差。通常,训练持续多个周期,每次都重新处理训练数据集,直到验证集错误收敛到期望的低值。然后对测试数据评估训练后的模型。
人工智能研究人员/组织训练人工智能模型以解决特定问题。为了创建特定问题的工作模型,人工智能研究人员需要设计模型结构,获取大量数据,并花费大量计算能力来训练模型,训练过程通常需要很长时间(几个小时到几个月)。
而且,通常,数据集是每个组织的商业秘密,不会与其他人分享。因此,目前主流的做法是各个研究人员/组织在相同的问题上,根据自己的数据集分别独立地对自己的模型进行训练。这在社会层面上训练效率不高,浪费大量的资源来构建相同模型。
由于训练过程通常需要较长时间(例如,几个小时至几个月),可以利用多个节点的分布式训练来加速这个过程。分布式训练允许在训练数据集的不同分区上并行训练相同模型的多个副本。所有模型副本共享一组通用参数。为了操作速度,每个模型副本并行操作并异步发布模型参数更新并接收更新的模型参数。
图1示意性示出了根据本公开的实施例的基于区块链的数据处理方法和装置的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该应用场景中包括多个电子设备(101-107)。电子设备(101-107)可以是个人电脑(personal computer,PC)、网络服务器、数据库服务器等。电子设备(101-107)中的每一个电子设备可以具有相同或不同的计算能力。
作为一种实施方式,多个电子设备之间可以相互通信,构成区块链网络,每个电子设备作为该区块链网络中的一个区块链节点。该区块链网络中的每个区块链节点在本地对特定问题的模型采用本地数据集进行训练,并共同生成针对特定问题的共享的区块链。
作为另一种实施方式,该区块链网络中的一个或多个电子设备可以构成一个社区,例如,该社区可以对应于一间公司或者一家医院,该社区中的每个区块链节点为该公司或者该医院中的电子设备。该区块链网络中的每个社区均在本地对特定问题的模型采用本地数据集进行训练,并共同生成针对特定问题的共享的区块链。
本发明实施例提供的基于区块链的数据处理方法可以运行于图1所示的电子设备中。
图2A示意性示出了根据本公开的实施例的基于区块链的数据处理方法的流程图。
如图2A所示,该方法可以应用于区块链网络中的任一区块链节点,以下将区块链节点简称为节点,该方法包括操作S201~S204。
在操作S201,获取本节点的区块链上当前最新区块中的第一模型参数。
其中,当前节点可以是图1中所示的运行环境的任意一个电子设备,即可以是图1中的区块链节点101-107中的任意一个。所述区块链是本节点当前所属的区块链网络中各节点共同创建和维护的与对特定问题相对应的区块链,各节点各自具有对应的区块链,在同一个网络中的各节点对应的区块链相同。当满足一定条件时,当前所属的区块链网络中的各节点同意当前节点创建区块并将该区块加入到区块链中,加入的区块作为该区块链中当前最新的区块。在某一特定时刻,维护同一区块链的节点从区块链上获取的当前最新区块是相同的。可以理解的是,区块链的区块是按照时间顺序加入的,并且时间顺序上在后加入的区块中可以是优于在前加入的区块的。作为一种实施方式,请参阅图3A。
图3A示意性示出了根据本公开的实施例的区块链的示意图。
如图3A所示,区块链中的每个区块中包含了第一模型参数,初始区块中除第一模型参数之外还包括模型定义和区块链优化目标,各节点可以从初始区块中获得模型定义和区块链优化目标并存在本地。但是,可以理解的是,图3A所示的区块仅是为了说明而不是对本公开的限制,区块的结构可以与图3A中所示的不同,可以向区块中添加其它元素或者删除图3A中所示的元素。例如,模型定义及区块链优化目标可以放在每个区块中。此时区块4为该区块链上当前最新的区块,本区块链节点获取区块4中的第一模型参数。接着返回图2A所示的方法。
在操作S202,基于第一模型参数和本地数据集,训练得到第二模型参数。
本操作在区块链当前最新区块中的第一模型参数的基础上,利用本地数据集进行训练,相当于利用本节点当前所属的区块链网络中已有的训练成果,再结合本节点的数据,得到第二模型参数。其中,模型参数是模型所对应直接或间接的数据,例如可以是模型系数,或者也可以是模型系数的梯度,以及其他能够直接或间接构建模型的参数,在此不做限制。
在操作S203,将所述第二模型参数广播至本节点当前所属的区块链网络中的各节点,由各节点基于各自的本地测试集对所述第二模型参数进行共识验证。
在操作S204,当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且符合预定条件时,将所述第二模型参数作为更新的第一模型参数,根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中。
本操作中,本节点当前所属的区块链网络中的各节点的共识验证目标不仅要求第二模型参数优于相应区块链上当前最新的第一模型参数,还要求第二模型参数符合预定条件,符合共识验证目标时,本节点当前所属的区块链网络中的各节点才同意本节点在当前的区块链上链入包含第二模型参数的新的区块。在本节点产生新的区块并将其加入区块链中后,当前所属的区块链网络中的其他节点会随之将新的区块的副本加入各自对应的区块链中,使得当前所属的区块链网络中各节点对应的区块链保持一致。
可见,在图2A所示的方法中,同一个区块链网络中的各节点可以在该区块链网络当前已有的最优的训练结果的基础上,结合自身的数据集进行训练,如果新训练得到的模型优于该区块链网络当前已有的最优的训练结果,则通过各节点的共识验证,可以产生新的区块,将新训练得到的模型参数放入新的区块并将新的区块链入区块链尾端,以完成区块链的一次更新,即,将新训练得到的模型参数作为该区块链网络新的已有的最优的训练结果。依据此方案,该区块链网络中的各节点在保持自身的数据集私密性的同时,能够针对同一问题的模型进行共同训练和监督,不断将训练得到的更优的模型参数放入区块链的新区块中,不断基于已有的最优模型参数训练得到更优的模型参数,本区块链网络的区块链中保存了逐渐优化的模型参数,使得各节点不用再浪费时间来做其它节点已经完成的训练,能够大大节省了资源,并且提升了训练的效率,共同促进模型训练不断优化。
在本公开的一个实施例中,区块链网络包括多个子网络,不同子网络对应不同的区块链,不同子网络对应不同的模型精度范围。可以理解的是,区块链网络对应于一个特定问题,区块链网络中的各子网络也均对应于该特定问题,由于不同子网络对应不同的模型精度范围,说明各子网络分别对应于该特定问题的不同精度范围,各子网络分别创建并维护对应于该特定问题的不同精度范围的不同区块链。上述本节点当前所属的区块链网络是指本节点当前所属的子网络,上述本节点得到第二模型参数并广播至各节点以及后来产生新区块并链入区块链的过程均是在本节点当前所属的子网络中进行的。图2A所示方法的操作S203将所述第二模型参数广播至本节点当前所属的区块链网络中的各节点包括:将所述第二模型参数广播至本节点当前所属的子网络中的各节点。
在此基础上,作为一个可选的实施例,上述操作S204中的预定条件包括:所述第二模型参数对应的模型精度在本节点当前所属的子网络对应的模型精度范围内。
图2B示意性示出了根据本公开的另一实施例的基于区块链的数据处理方法的流程图。
如图2B所示,该方法可以应用于区块链网络中的任一区块链节点,以下将区块链节点简称为节点,该方法包括操作S201~S205,其中,操作S201~S204在上文中已经详细说明,重复的部分不再赘述。
在操作S205,当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且不符合预定条件时,令本节点从当前所属的子网络退出并加入至所述第二模型参数对应的模型精度对应的子网络,将本节点的区块链更新为该子网络对应的区块链。
例如,本节点当前属于子网络n1,在子网络n1当前已有的最新的第一模型参数的基础上训练得到第二模型参数,将该第二模型参数广播至子网络n1中的各节点,由各节点对第二模型参数进行共识验证,当共识验证结果表明第二模型参数对应的模型劣于子网络n1当前已有的最新的第一模型参数对应的模型,本节点留在子网络n1中继续进行训练,重复图2B所示的操作。当共识验证结果表明第二模型参数对应的模型优于子网络n1当前已有的最新的第一模型参数对应的模型,且共识验证结果表明第二模型参数对应的模型精度落入子网络n1对应的模型精度范围时,本节点可以在当前所属的子网络n1中根据第二模型参数产生新的区块并将新区块链入子网络n1对应的区块链中,子网络n1中的其他节点也随之将新区块的副本链入各自对应的区块链中。当共识验证结果表明第二模型参数对应的模型优于子网络n1当前已有的最新的第一模型参数对应的模型,且共识验证结果表明第二模型参数对应的模型精度高于子网络n1对应的模型精度范围时,令本节点从当前所属的子网络n1退出并加入至所述第二模型参数对应的模型精度对应的子网络n2,将本节点的区块链更新为该子网络n2对应的区块链,本节点在子网络n2中可以重复执行图2B所示的操作直至再次转移至其他子网络。
图3B示意性示出了根据本公开的另一实施例的区块链的示意图。
如图3B所示,区块链网络分为子网络n1、n2和n3,子网络n1对应的模型精度范围最低,子网络n2次之,子网络n3对应的模型精度范围最高,三者分别对应于区块链1、区块链2和区块链3。每一条区块链与图3A所示的区块链同理,重复的部分不再赘述。对于每条区块链,随着时间的推移,新产生的区块中的第一模型参数优于旧的区块中的第一模型参数,即每条区块链中的第一模型参数不断优化,其中区块链1中的第一模型参数的精度保持在子网络n1对应的模型精度范围内,区块链2中的第一模型参数的精度保持在子网络n2对应的模型精度范围内,区块链3中的第一模型参数的精度保持在子网络n3对应的模型精度范围内,由于模型精度范围n3>n2>n1,则区块链2的第一个区块中的第一模型参数始终优于区块链1的最后一个区块中的第一模型参数,区块链3的第一个区块中的第一模型参数始终优于区块链2的最后一个区块中的第一模型参数。
可见,在图2B所示的方法中,针对于一个特定问题的区块链网络被划分为对应不同模型精度范围的子网络,可以看作是不同等级的子网络,对应的模型精度越高,子网络的等级越高,当一个子网络中的一个节点训练得到该子网络当前最优且精度超过该子网络精度范围的模型时,说明该节点的模型训练能力与当前子网络的目标程度不符,该节点可以转移至与新的子网络,依照此方式,不同等级的子网络对应的区块链中保存优化程度不同的模型参数,等级越高的子网络可以筛选出模型训练能力越好的节点,进而在等级最高的子网络中可以获得最优化的模型训练结果,与在一个大的区块链网络中进行训练优化的方案相比,占用资源更少,效率更高。
在本公开的一个实施例中,上述由各节点基于各自的本地测试集对所述第二模型参数进行共识验证包括:由各节点基于各自的本地测试集对所述第二模型参数对应的模型分别进行测试,并根据测试结果是否优于第一模型参数对应的模型得到投票结果,返回投票结果和测试结果。例如可以是,每个节点在接收到本节点广播的第二模型参数后,可以基于自己的测试集分别对该第二模型参数和所获取的区块链当前最新区块中的第一模型参数进行精度测试,当第二模型参数的测试结果优于第一模型参数的测试结果时,可以返回肯定投票结果和测试结果,反之可以仅返回否定投票结果。可选地,投票结果可以只返回至广播第二模型参数的本节点,也可以向包含广播第二模型参数的本节点在内的各节点广播。
在各节点返回投票结果和测试结果后,可以根据各节点的投票结果和测试结果来确定关于本节点所生成的第二模型参数的最终共识验证结果,作为一个可选的实施例,图2B所示的方法还包括:接收各节点返回的投票结果和测试结果,当投票结果中均为肯定投票结果时,共识验证结果表明第二模型参数对应的模型优于第一模型参数对应的模型,以及基于各测试结果得到第二模型参数对应的模型精度,根据所述模型精度判断是否满足预定条件。
在本公开的一个实施例中,当本节点当前所属的子网络是最高等级的子网络时,本节点无法向更高等级的子网络转移,则本节点留在当前所属的子网络中,并使得当前所属的子网络的模型精度范围的上限进一步提高,在此子网络中,本节点与其他模型训练能力好的节点共同训练共同监督,不断训练出对应于区块链网络的特定问题的更优模型,即,图2B所示的方法还包括:当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且所述第二模型参数对应的模型精度超过本节点当前所属的子网络对应的模型精度范围时,如果本节点当前所属的子网络对应最高的模型精度范围,则将所述第二模型参数作为更新的第一模型参数,根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中。
此外,为了激励区块链网络中的各节点都不断向着优化模型训练的目标进行训练,在本公开的一个实施例中,图2B所示的方法还可以设置奖励机制,即,图2B所示的方法在所述根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中之后,还包括:获取预定数量的数字货币奖励。例如可以是在每个子网络中,当一个节点通过共识验证产生新的区别并链入该子网络对应的区块链中时,向该节点的账户发放预定数量的数字货币,或者可以是仅对于最高等级的子网络,当一个节点从较低等级的子网络转移至最高等级的子网络,并通过共识验证产生新的区块并链入该最高等级的子网络对应的区块链中时,才向该节点的账户发放预定数量的数字货币,区块链网络中的各节点可以使用各自账户中的数字货币进行交易。
图4示意性示出了根据本公开的另一实施例的基于区块链的数据处理方法的流程图。
如图4所示,该方法可以应用于区块链网络中的任一区块链节点,该方法包括操作S401~S403。
在操作S401,接收本节点当前所属的区块链网络中的其他节点广播的第二模型参数,所述第二模型参数是由所述其他节点基于本地测试集和区块链上当前最新区块中的第一模型参数训练得到的。
其中,当前区块链节点可以是图1中所示的运行环境的任意一个电子设备,即图1中的区块链节点101-107中的任意一个。与图2A所示的方法相比,图2A所示的方法侧重于对区块链网络中的区块链节点作为训练方的角色进行说明,而图4所示的方法侧重于对区块链网络中的区块链节点作为投票方的角色进行说明,二者相互对应,重复的部分不再赘述。
在操作S402,与其他接收到所述第二模型参数的节点一同基于各自的本地测试集对所述第二模型参数进行共识验证。
在操作S403,当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且符合预定条件时,响应于广播所述第二模型参数的节点根据所述第二模型参数创建新的区块的操作,将所述新的区块加入至本节点对应的区块链中。
本操作中,当共识验证结果表明第二模型参数对应的模型优于第一模型参数对应的模型,即表明新训练得到的模型优于当前所属的网络对应的区块链上目前已有的最优模型,且当共识验证结果表明第二模型参数符合预定条件时,包括本节点在内的各区块链节点同意广播所述第二模型参数的节点进行新区块的产生和接入,并响应于该广播所述第二模型参数的节点创建新区块并加入区块链的操作,同样地将该新区块的副本加入各自对应的区块链,使得当前所属的区块链网络中的各节点对应的区块链保持一致,即区块链的最新的区块中保存当前得到的最优的模型参数,以供后续各区块链节点依据图2所示的方法在此基础上进行进一步训练,追求更优的训练结果。
可见,在图4所示的方法中,各节点不仅可以作为训练方也可以作为投票方,各节点在作为训练方时以区块链的最新区块中的模型参数为基础继续训练,各节点在作为投票方时以获得更优化的模型参数为目标对其他区块链节点训练得到的模型参数进行共识验证,在符合预定条件的前提下,不断地将更优的模型参数放入区块链中,区块链中保存了逐渐优化的模型参数,使得各节点不用再浪费时间来做其它节点已经完成的训练,能够大大节省了资源,并且提升了训练的效率,共同促进模型训练不断优化。
在本公开的一个实施例中,针对于一个特定问题的区块链网络包括多个子网络,不同子网络对应不同的区块链,不同子网络对应不同的模型精度范围。图4所示方法的操作S401接收本节点当前所属的区块链网络中的其他节点广播的第二模型参数包括:接收本节点当前所属的子网络中的其他节点广播的第二模型参数。
在此基础上,作为一个可选的实施例,上述操作S403中的预定条件包括:所述第二模型参数对应的模型精度在本节点当前所属的子网络对应的模型精度范围内。
例如,本节点当前属于子网络n1,本节点接收子网络n1中的其他节点广播的第二模型参数,本节点与子网络n1中其他接收到第二模型参数的节点一同对第二模型参数进行共识验证,当共识验证结果表明第二模型参数对应的模型劣于子网络n1对应的区块链中当前最新区块中的第一模型参数对应的模型时,子网络n1对应的区块链不做更新。当共识验证结果表明第二模型参数对应的模型优于子网络n1对应的区块链中当前最新区块中的第一模型参数对应的模型,且共识验证结果表明第二模型参数对应的模型精度落入子网络n1对应的模型精度范围内时,本节点与子网络n1中的其他节点同意广播第二模型参数的节点根据第二模型参数产生新的区块对子网络n1对应的区块链进行更新。当共识验证结果表明第二模型参数对应的模型优于子网络n1对应的区块链中当前最新区块中的第一模型参数对应的模型,且共识验证结果表明第二模型参数对应的模型精度超出子网络n1对应的模型精度范围内时,子网络n1对应的区块链不做更新,且广播第二模型参数的节点被转移至模型精度范围相符的子网络中。可以看出,在每个子网络中,各节点的共识验证目标是获得与该子网络的等级程度相匹配的当前最优的模型参数。
在本公开的一个实施例中,图4所示方法的操作S402与其他接收到所述第二模型参数的节点一同基于各自的本地测试集对所述第二模型参数进行共识验证包括:基于本地测试集对所述第二模型参数对应的模型进行测试,当测试结果优于第一模型参数对应的模型时,发出肯定投票结果和测试结果,否则发出否定投票结果。例如,包括本节点在内的接收到第二模型参数的各节点,每个节点均可以基于自己的测试集分别对该第二模型参数和当前所属的子网络对应的区块链当前最新区块中的第一模型参数进行精度测试,当第二模型参数的测试结果优于第一模型参数的测试结果时,可以返回肯定投票结果和测试结果,反之则返回否定投票结果。可选地,投票结果和测试结果可以只返回至广播第二模型参数的节点,也可以向包含广播第二模型参数的节点在内的当前所属的子网络中的其他各节点广播。
接着,可以根据各节点的投票结果和测试结果来确定关于第二模型参数的最终共识验证结果,作为一个可选的实施例,当本节点与其他接收到所述第二模型参数的节点发出的投票结果中均为肯定投票结果时,共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型,当与其他接收到所述第二模型参数的节点发出的测试结果所获得第二模型参数对应的模型精度在本节点当前所属的子网络对应的模型精度范围内,共识验证结果表明所述第二模型参数对应的模型符合预定条件。
下面参考图5A~图5B,结合具体实施例对图2A、图2B和图4所示的方法做进一步说明。
假设解决某个特定问题的区块链网络被划分成n个子网络G1、G2、…、Gn,子网络G1维护区块链C1,子网络G2维护区块链C2,…,子网络Gn维护区块链Cn,随着n的增大,训练精度依次递增,本例中模型精度为准确率。
图5A示意性示出了根据本公开的实施例的节点进行模型训练的流程图。
图5B示意性示出了根据本公开的实施例的节点进行模型训练的示意图。
图5A和图5B结合,以说明任一节点从加入区块链网络开始所经历的模型训练过程。
如图5A所示,该过程包括操作S501~S509。
操作S501,进入子网络Gi,从区块链Ci拉取最新的第一模型参数Wi。
需要说明的是,任一节点初始进入区块链网络时,均被分配至最低等级的子网络,如图5B所示,T1时刻,节点P1初始进入区块链网络,节点P1被分配至子网络G1,从子网络G1开始进行模型训练。本操作中以Gi表示节点当前所属的子网络,也就是说,如果节点初始加入区块链网络,i=1,如果节点已加入区块链网络一段时间,i可能为1也可能为其他值。
操作S502,使用本地数据集进行训练得到第二模型参数W。
本操作中,如果节点初始加入区块链网络,i=1,节点可以利用本地数据集在第一模型参数Wi的基础上训练得到第二模型参数W,或者,如果节点并非初始加入区块链网络,节点可以利用本地数据集在第一模型参数Wi以及自己已经训练得到的旧的第二模型参数W’的基础上训练得到新的第二模型参数W。
操作S503,在子网络Gi中广播第二模型参数W。
操作S504,判断第二模型参数W是否被子网络Gi中的各节点全票通过,是则执行操作S505,否则回到操作S502继续训练。
操作S505,判断子网络Gi是否为最高等级的子网络Gn,是则执行操作S506,否则执行操作S507。
操作S506,产生新的区块加入至区块链Ci,将第二模型参数W作为更新后的第一模型参数Wi。
操作S507,判断第二模型参数W对应的准确率是否落入子网络Gi+1的范围,是则执行操作S508,否则执行操作S506。
操作S508,退出子网络Gi,进入子网络Gi+1,从区块链Ci+1拉取最新的第一模型参数Wi+1。
上述操作可以通过图5B来解释,n=3,子网络G1对应于准确率0-30%,子网络G2对应的于准确率31%-60%,子网络G3对应于准确率61%-99%。以节点P1为例,起初在子网络G1中,基于区块链C1已有的训练成果得到第二模型参数W1,当第二模型参数W1被子网络G1全票通过后,通过各节点返回的测试结果计算第二模型参数W1的准确率为45%,则如图5B所示,T2时刻,节点P1退出子网络G1,加入子网络G2,并基于区块链C2的已有训练成果继续训练得到第二模型参数W2,当第二模型参数W2被子网络G2全票通过后,通过各节点返回的测试结果计算第二模型参数W1的准确率为78%,则如图5B所示,T3时刻,节点P1退出子网络G2,加入子网络G3,并基于区块链C3的已有训练成果继续训练,不断优化区块链C3中的模型参数。
操作S509,将第一模型参数Wi+1与第二模型参数W进行综合,然后回到操作S502继续训练。
本操作中,可以通过对第一模型参数Wi+1与第二模型参数W进行加权求和来综合,权重可以根据需要设置,当第一模型参数Wi+1的准确率较高时则取较大的权重,当第二模型参数W的准确率较高时则取较大的权重。
可以看到,本方案提出的面向基于区块链的人工智能模型训练场景的投票机制与广播的优化方案,将区块链网络按照一定的指标划分成不同等级的子网络,每个子网络维护一个区块链,训练和投票仅在同一子网络间进行,对于区块链网络中的节点,在进行模型训练的过程中,根据其模型训练能力转移至等级更高的子网络中。同一子网络中的通信能够降低延迟和带宽消耗,使得模型训练和共识验证过程效率提高。
图6示意性示出了根据本公开的实施例的基于区块链的数据处理装置的框图。
如图6所示,该装置600可以应用于区块链网络中的任一区块链节点,包括获取模块610、训练模块620、广播模块630和第一更新模块640。该装置600可以执行上面参考图2A、图2B和图5A描述的方法,以实现人工智能模型训练场景下的数据处理方案。
具体地,获取模块610用于获取本节点的区块链上当前最新区块中的第一模型参数。
训练模块620用于基于第一模型参数和本地数据集,训练得到第二模型参数。
广播模块630用于将所述第二模型参数广播至本节点当前所属的区块链网络中的各节点,由各节点基于各自的本地测试集对所述第二模型参数进行共识验证。
第一更新模块640用于当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且符合预定条件时,将所述第二模型参数作为更新的第一模型参数,根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中。
图7示意性示出了根据本公开的另一实施例的基于区块链的数据处理装置的框图。
如图7所示,该装置700包括获取模块610、训练模块620、广播模块630、第一更新模块640和调度模块650。其中获取模块610、训练模块620、广播模块630和第一更新模块640在上文中已经说明,重复的部分不再赘述。
区块链网络包括多个子网络,不同子网络对应不同的区块链,不同子网络对应不同的模型精度范围。广播模块630将所述第二模型参数广播至本节点当前所属的区块链网络中的各节点包括:广播模块630用于将所述第二模型参数广播至本节点当前所属的子网络中的各节点。所述预定条件包括:所述第二模型参数对应的模型精度在本节点当前所属的子网络对应的模型精度范围内。
调度模块650用于当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且不符合预定条件时,令本节点从当前所属的子网络退出并加入至所述第二模型参数对应的模型精度对应的子网络,将本节点的区块链更新为该子网络对应的区块链。
图8示意性示出了根据本公开的另一实施例的基于区块链的数据处理装置的框图。
如图8所示,该装置800包括获取模块610、训练模块620、广播模块630、第一更新模块640、调度模块650、共识验证模块660、第二更新模块670和奖励获取模块680。其中获取模块610、训练模块620、广播模块630、区块链更新模块640和调度模块650在上文中已经说明,重复的部分不再赘述。
上述由各节点基于各自的本地测试集对所述第二模型参数进行共识验证包括:由各节点基于各自的本地测试集对所述第二模型参数对应的模型分别进行测试,并根据测试结果是否优于第一模型参数对应的模型得到投票结果,返回投票结果和测试结果。在此基础上,作为一个可选的实施例,共识验证模块660用于接收各节点返回的投票结果和测试结果,当投票结果中均为肯定投票结果时,共识验证结果表明第二模型参数对应的模型优于第一模型参数对应的模型,以及基于各测试结果得到第二模型参数对应的模型精度,根据所述模型精度判断是否满足预定条件。
作为一个可选的实施例,第二更新模块670用于当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且所述第二模型参数对应的模型精度超过本节点当前所属的子网络对应的模型精度范围时,如果本节点当前所属的子网络对应最高的模型精度范围,则将所述第二模型参数作为更新的第一模型参数,根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中。
作为一个可选的实施例,奖励获取模块680用于在所述根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中之后,获取预定数量的数字货币奖励。
需要说明的是,共识验证模块660、第二更新模块670和奖励获取模块680可以都设置于装置800中,也可以是其中的任一个或任两个设置于装置800中,在此不做限制。
图9示意性示出了根据本公开的另一实施例的基于区块链的数据处理装置的框图。
如图9所示,该装置900可以应用于区块链网络中的任一区块链节点,包括接收模块910、共识验证模块920和更新模块930。该装置900可以执行上面参考图4描述的方法。
接收模块910用于接收本节点当前所属的区块链网络中的其他节点广播的第二模型参数,所述第二模型参数是由所述其他节点基于本地测试集和区块链上当前最新区块中的第一模型参数训练得到的。
共识验证模块920用于与其他接收到所述第二模型参数的节点一同基于各自的本地测试集对所述第二模型参数进行共识验证。
更新模块930用于当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且符合预定条件时,响应于广播所述第二模型参数的节点根据所述第二模型参数创建新的区块的操作,将所述新的区块加入至本节点对应的区块链中。
在本公开的一个实施例中,所述区块链网络包括多个子网络,不同子网络对应不同的区块链,不同子网络对应不同的模型精度范围。接收模块910接收本节点当前所属的区块链网络中的其他节点广播的第二模型参数包括:接收模块910用于接收本节点当前所属的子网络中的其他节点广播的第二模型参数。预定条件包括:所述第二模型参数对应的模型精度在本节点当前所属的子网络对应的模型精度范围内。
在本公开的一个实施例中,共识验证模块920与其他接收到所述第二模型参数的节点一同基于各自的本地测试集对所述第二模型参数进行共识验证包括:共识验证模块920用于基于本地测试集对所述第二模型参数对应的模型进行测试,当测试结果优于第一模型参数对应的模型时,发出肯定投票结果和测试结果,否则发出否定投票结果。当与其他接收到所述第二模型参数的节点发出的投票结果中均为肯定投票结果时,共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型,当与其他接收到所述第二模型参数的节点发出的测试结果所获得第二模型参数对应的模型精度在本节点当前所属的子网络对应的模型精度范围内,共识验证结果表明所述第二模型参数对应的模型符合预定条件。
需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块610、训练模块620、广播模块630、第一更新模块640、调度模块650、共识验证模块660、第二更新模块670和奖励获取模块680中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块610、训练模块620、广播模块630、第一更新模块640、调度模块650、共识验证模块660、第二更新模块670和奖励获取模块680中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块610、训练模块620、广播模块630、第一更新模块640、调度模块650、共识验证模块660、第二更新模块670和奖励获取模块680中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
再例如,接收模块910、共识验证模块920和更新模块930中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,接收模块910、共识验证模块920和更新模块930中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,接收模块910、共识验证模块920和更新模块930中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图10示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机系统的框图。图10示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,系统1000包括处理器1010和计算机可读存储介质1020。该系统1000可以执行根据本公开实施例的方法。
具体地,处理器1010例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1010还可以包括用于缓存用途的板载存储器。处理器1010可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质1020,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
计算机可读存储介质1020可以包括计算机程序1021,该计算机程序1021可以包括代码/计算机可执行指令,其在由处理器1010执行时使得处理器1010执行根据本公开实施例的方法或其任何变形。
计算机程序1021可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序1021中的代码可以包括一个或多个程序模块,例如包括1021A、模块1021B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器1010执行时,使得处理器1010可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,获取模块610、训练模块620、广播模块630、第一更新模块640、调度模块650、共识验证模块660、第二更新模块670和奖励获取模块680中的至少一个可以实现为参考图10描述的计算机程序模块,其在被处理器1010执行时,可以实现上面描述的相应操作。和/或,根据本发明的实施例,接收模块910、共识验证模块920和更新模块930中的至少一个可以实现为参考图10描述的计算机程序模块,其在被处理器1010执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种基于区块链的数据处理方法,应用于区块链节点,包括:
获取本节点的区块链上当前最新区块中的第一模型参数;
基于第一模型参数和本地数据集,训练得到第二模型参数;
将所述第二模型参数广播至本节点当前所属的区块链网络中的各节点,由各节点基于各自的本地测试集对所述第二模型参数进行共识验证;
当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且符合预定条件时,将所述第二模型参数作为更新的第一模型参数,根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中。
2.根据权利要求1所述的方法,其中:
所述区块链网络包括多个子网络,不同子网络对应不同的区块链,不同子网络对应不同的模型精度范围;
所述将所述第二模型参数广播至本节点当前所属的区块链网络中的各节点包括:将所述第二模型参数广播至本节点当前所属的子网络中的各节点;
所述预定条件包括:所述第二模型参数对应的模型精度在本节点当前所属的子网络对应的模型精度范围内;
所述方法还包括:当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且不符合预定条件时,令本节点从当前所属的子网络退出并加入至所述第二模型参数对应的模型精度对应的子网络,将本节点的区块链更新为该子网络对应的区块链。
3.根据权利要求2所述的方法,其中:
所述由各节点基于各自的本地测试集对所述第二模型参数进行共识验证包括:由各节点基于各自的本地测试集对所述第二模型参数对应的模型分别进行测试,并根据测试结果是否优于第一模型参数对应的模型得到投票结果,返回投票结果和测试结果;
所述方法还包括:
接收各节点返回的投票结果和测试结果;
当投票结果中均为肯定投票结果时,共识验证结果表明第二模型参数对应的模型优于第一模型参数对应的模型;以及
基于各测试结果得到第二模型参数对应的模型精度,根据所述模型精度判断是否满足预定条件。
4.根据权利要求2所述的方法,还包括:
当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且所述第二模型参数对应的模型精度超过本节点当前所属的子网络对应的模型精度范围时,如果本节点当前所属的子网络对应最高的模型精度范围,则将所述第二模型参数作为更新的第一模型参数,根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中。
5.根据权利要求4所述的方法,还包括:
在所述根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中之后,获取预定数量的数字货币奖励。
6.一种基于区块链的数据处理方法,应用于区块链节点,包括:
接收本节点当前所属的区块链网络中的其他节点广播的第二模型参数,所述第二模型参数是由所述其他节点基于本地测试集和区块链上当前最新区块中的第一模型参数训练得到的;
与其他接收到所述第二模型参数的节点一同基于各自的本地测试集对所述第二模型参数进行共识验证;
当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且符合预定条件时,响应于广播所述第二模型参数的节点根据所述第二模型参数创建新的区块的操作,将所述新的区块加入至本节点对应的区块链中。
7.根据权利要求1所述的方法,其中:
所述区块链网络包括多个子网络,不同子网络对应不同的区块链,不同子网络对应不同的模型精度范围;
所述接收本节点当前所属的区块链网络中的其他节点广播的第二模型参数包括:接收本节点当前所属的子网络中的其他节点广播的第二模型参数;
所述预定条件包括:所述第二模型参数对应的模型精度在本节点当前所属的子网络对应的模型精度范围内。
8.根据权利要求7所述的方法,其中,所述与其他接收到所述第二模型参数的节点一同基于各自的本地测试集对所述第二模型参数进行共识验证包括:
基于本地测试集对所述第二模型参数对应的模型进行测试,当测试结果优于第一模型参数对应的模型时,发出肯定投票结果和测试结果,否则发出否定投票结果;
当与其他接收到所述第二模型参数的节点发出的投票结果中均为肯定投票结果时,共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型;
当与其他接收到所述第二模型参数的节点发出的测试结果所获得第二模型参数对应的模型精度在本节点当前所属的子网络对应的模型精度范围内,共识验证结果表明所述第二模型参数对应的模型符合预定条件。
9.一种基于区块链的数据处理装置,应用于区块链节点,包括:
获取模块,用于获取本节点的区块链上当前最新区块中的第一模型参数;
训练模块,用于基于第一模型参数和本地数据集,训练得到第二模型参数;
广播模块,用于将所述第二模型参数广播至本节点当前所属的区块链网络中的各节点,由各节点基于各自的本地测试集对所述第二模型参数进行共识验证;
更新模块,用于当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且符合预定条件时,将所述第二模型参数作为更新的第一模型参数,根据所述第二模型参数创建新的区块,并将所述新的区块加入至本节点的区块链中。
10.一种基于区块链的数据处理装置,应用于区块链节点,包括:
接收模块,用于接收本节点当前所属的区块链网络中的其他节点广播的第二模型参数,所述第二模型参数是由所述其他节点基于本地测试集和区块链上当前最新区块中的第一模型参数训练得到的;
共识验证模块,用于与其他接收到所述第二模型参数的节点一同基于各自的本地测试集对所述第二模型参数进行共识验证;
更新模块,用于当共识验证结果表明所述第二模型参数对应的模型优于第一模型参数对应的模型且符合预定条件时,响应于广播所述第二模型参数的节点根据所述第二模型参数创建新的区块的操作,将所述新的区块加入至本节点对应的区块链中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810984384.3A CN109194508B (zh) | 2018-08-27 | 2018-08-27 | 基于区块链的数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810984384.3A CN109194508B (zh) | 2018-08-27 | 2018-08-27 | 基于区块链的数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109194508A true CN109194508A (zh) | 2019-01-11 |
CN109194508B CN109194508B (zh) | 2020-12-18 |
Family
ID=64916068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810984384.3A Active CN109194508B (zh) | 2018-08-27 | 2018-08-27 | 基于区块链的数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109194508B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815344A (zh) * | 2019-01-29 | 2019-05-28 | 华南师范大学 | 基于参数共享的网络模型训练系统、方法、装置和介质 |
CN110188780A (zh) * | 2019-06-03 | 2019-08-30 | 电子科技大学中山学院 | 用于定位多目标特征点的深度学习模型的构建方法及装置 |
CN110197285A (zh) * | 2019-05-07 | 2019-09-03 | 清华大学 | 基于区块链的安全协作深度学习方法及装置 |
CN110245514A (zh) * | 2019-04-30 | 2019-09-17 | 清华大学 | 一种基于区块链的分布式计算方法及系统 |
CN110321385A (zh) * | 2019-06-28 | 2019-10-11 | 联想(北京)有限公司 | 基于区块链的数据处理方法和数据处理装置 |
CN110503202A (zh) * | 2019-08-22 | 2019-11-26 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN110516475A (zh) * | 2019-08-30 | 2019-11-29 | 联想(北京)有限公司 | 一种数据处理方法、装置及服务器 |
CN110533154A (zh) * | 2019-08-30 | 2019-12-03 | 联想(北京)有限公司 | 一种数据处理方法及电子设备 |
CN110543776A (zh) * | 2019-08-30 | 2019-12-06 | 联想(北京)有限公司 | 模型处理方法、装置、电子设备和介质 |
CN110569227A (zh) * | 2019-08-09 | 2019-12-13 | 阿里巴巴集团控股有限公司 | 模型参数确定方法、装置和电子设备 |
CN110619317A (zh) * | 2019-09-26 | 2019-12-27 | 联想(北京)有限公司 | 模型训练方法、模型训练装置和电子设备 |
CN110879827A (zh) * | 2019-10-23 | 2020-03-13 | 联想(北京)有限公司 | 一种基于区块链网络的信息处理方法及设备 |
WO2020210979A1 (zh) * | 2019-04-16 | 2020-10-22 | 华为技术有限公司 | 基于区块链网络的联合学习方法和联合学习设备 |
CN112418433A (zh) * | 2020-10-30 | 2021-02-26 | 联想(北京)有限公司 | 一种模型训练方法、装置及设备 |
CN112448855A (zh) * | 2021-01-28 | 2021-03-05 | 支付宝(杭州)信息技术有限公司 | 区块链系统参数更新方法和系统 |
CN112738061A (zh) * | 2020-12-24 | 2021-04-30 | 四川虹微技术有限公司 | 信息处理方法、装置、管理平台、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180211115A1 (en) * | 2017-01-26 | 2018-07-26 | Matias Klein | Total Property Intelligence System |
CN108491266A (zh) * | 2018-03-09 | 2018-09-04 | 联想(北京)有限公司 | 基于区块链的数据处理方法、装置及电子设备 |
-
2018
- 2018-08-27 CN CN201810984384.3A patent/CN109194508B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180211115A1 (en) * | 2017-01-26 | 2018-07-26 | Matias Klein | Total Property Intelligence System |
CN108491266A (zh) * | 2018-03-09 | 2018-09-04 | 联想(北京)有限公司 | 基于区块链的数据处理方法、装置及电子设备 |
Non-Patent Citations (1)
Title |
---|
涂奔: "一种基于私有区块链的信息保护预测模型研究", 《情报理论与实践(ITA)》 * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815344A (zh) * | 2019-01-29 | 2019-05-28 | 华南师范大学 | 基于参数共享的网络模型训练系统、方法、装置和介质 |
WO2020210979A1 (zh) * | 2019-04-16 | 2020-10-22 | 华为技术有限公司 | 基于区块链网络的联合学习方法和联合学习设备 |
CN110245514A (zh) * | 2019-04-30 | 2019-09-17 | 清华大学 | 一种基于区块链的分布式计算方法及系统 |
CN110197285A (zh) * | 2019-05-07 | 2019-09-03 | 清华大学 | 基于区块链的安全协作深度学习方法及装置 |
CN110197285B (zh) * | 2019-05-07 | 2021-03-23 | 清华大学 | 基于区块链的安全协作深度学习方法及装置 |
CN110188780A (zh) * | 2019-06-03 | 2019-08-30 | 电子科技大学中山学院 | 用于定位多目标特征点的深度学习模型的构建方法及装置 |
CN110188780B (zh) * | 2019-06-03 | 2021-10-08 | 电子科技大学中山学院 | 用于定位多目标特征点的深度学习模型的构建方法及装置 |
CN110321385A (zh) * | 2019-06-28 | 2019-10-11 | 联想(北京)有限公司 | 基于区块链的数据处理方法和数据处理装置 |
CN110569227B (zh) * | 2019-08-09 | 2020-08-14 | 阿里巴巴集团控股有限公司 | 模型参数确定方法、装置和电子设备 |
CN110569227A (zh) * | 2019-08-09 | 2019-12-13 | 阿里巴巴集团控股有限公司 | 模型参数确定方法、装置和电子设备 |
CN110503202A (zh) * | 2019-08-22 | 2019-11-26 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN110516475A (zh) * | 2019-08-30 | 2019-11-29 | 联想(北京)有限公司 | 一种数据处理方法、装置及服务器 |
CN110543776A (zh) * | 2019-08-30 | 2019-12-06 | 联想(北京)有限公司 | 模型处理方法、装置、电子设备和介质 |
CN110516475B (zh) * | 2019-08-30 | 2021-07-16 | 联想(北京)有限公司 | 一种数据处理方法、装置及服务器 |
CN110533154A (zh) * | 2019-08-30 | 2019-12-03 | 联想(北京)有限公司 | 一种数据处理方法及电子设备 |
CN110533154B (zh) * | 2019-08-30 | 2023-05-12 | 联想(北京)有限公司 | 一种数据处理方法及电子设备 |
CN110619317A (zh) * | 2019-09-26 | 2019-12-27 | 联想(北京)有限公司 | 模型训练方法、模型训练装置和电子设备 |
CN110879827A (zh) * | 2019-10-23 | 2020-03-13 | 联想(北京)有限公司 | 一种基于区块链网络的信息处理方法及设备 |
CN110879827B (zh) * | 2019-10-23 | 2023-07-25 | 联想(北京)有限公司 | 一种基于区块链网络的信息处理方法及设备 |
CN112418433A (zh) * | 2020-10-30 | 2021-02-26 | 联想(北京)有限公司 | 一种模型训练方法、装置及设备 |
CN112418433B (zh) * | 2020-10-30 | 2024-10-18 | 联想(北京)有限公司 | 一种模型训练方法、装置及设备 |
CN112738061A (zh) * | 2020-12-24 | 2021-04-30 | 四川虹微技术有限公司 | 信息处理方法、装置、管理平台、电子设备及存储介质 |
CN112738061B (zh) * | 2020-12-24 | 2022-06-21 | 四川虹微技术有限公司 | 信息处理方法、装置、管理平台、电子设备及存储介质 |
CN112448855A (zh) * | 2021-01-28 | 2021-03-05 | 支付宝(杭州)信息技术有限公司 | 区块链系统参数更新方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109194508B (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109194508A (zh) | 基于区块链的数据处理方法和装置 | |
CN109194510A (zh) | 基于区块链的数据处理方法和装置 | |
US11334817B2 (en) | Blockchain-based data processing method, apparatus, and electronic device thereof | |
US10965466B2 (en) | Estimable proof-of-work for blockchain | |
Xiao et al. | A secure mobile crowdsensing game with deep reinforcement learning | |
CN107146015B (zh) | 多变量时间序列预测方法和系统 | |
Barrett et al. | Generation and analysis of large synthetic social contact networks | |
Latifi et al. | A Bayesian real-time electric vehicle charging strategy for mitigating renewable energy fluctuations | |
CN108665363A (zh) | 一种区块链共识达成装置 | |
CN110321385A (zh) | 基于区块链的数据处理方法和数据处理装置 | |
Steinitz | Which way of designing? | |
Rutagemwa et al. | Dynamic spectrum assignment for land mobile radio with deep recurrent neural networks | |
CN108648082A (zh) | 一种用于区块链共识达成的计算机系统 | |
Namiot et al. | On passenger flow data models for urban railways | |
Hosseinian et al. | A multi-objective multi-agent optimization algorithm for the multi-skill resource-constrained project scheduling problem with transfer times | |
Peters et al. | Prediction of delays in public transportation using neural networks | |
Jiao et al. | Mechanism design for wireless powered spatial crowdsourcing networks | |
CN107665362B (zh) | 用于实现机器人聊天的训练方法、预测答案的方法及装置 | |
CN112598132A (zh) | 模型训练方法及装置、存储介质、电子装置 | |
Simsek et al. | Knowledge-based machine learning boosting for adversarial task detection in mobile crowdsensing | |
CN110298593A (zh) | 人力成本计算方法及装置 | |
CN111091888B (zh) | 活动决策方法、装置、设备及存储介质 | |
Grover et al. | Understanding climate change risk perception in the USA | |
Simsek et al. | Self organizing feature map-integrated knowledge-based deep network against fake crowdsensing tasks | |
Gao et al. | PFDRL: Personalized Federated Deep Reinforcement Learning for Residential Energy Management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |