CN112699414B - 一种基于区块链的机器学习数据存证方法和系统 - Google Patents

一种基于区块链的机器学习数据存证方法和系统 Download PDF

Info

Publication number
CN112699414B
CN112699414B CN202010816377.XA CN202010816377A CN112699414B CN 112699414 B CN112699414 B CN 112699414B CN 202010816377 A CN202010816377 A CN 202010816377A CN 112699414 B CN112699414 B CN 112699414B
Authority
CN
China
Prior art keywords
data
node
machine learning
information
abstract
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.)
Active
Application number
CN202010816377.XA
Other languages
English (en)
Other versions
CN112699414A (zh
Inventor
林健
余波
罗明宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Qianyun Software Development Center LP
Original Assignee
Wuhan Qianyun Software Development Center LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Qianyun Software Development Center LP filed Critical Wuhan Qianyun Software Development Center LP
Priority to CN202010816377.XA priority Critical patent/CN112699414B/zh
Publication of CN112699414A publication Critical patent/CN112699414A/zh
Application granted granted Critical
Publication of CN112699414B publication Critical patent/CN112699414B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种基于区块链的机器学习数据存证方法和系统,区块链的网络下第一节点对机器学习相关的数据进行处理,获得机器学习的模型训练过程的中间数据的过程采样数据,获得机器学习相关的数据相应的摘要信息;摘要信息包括训练摘要信息、过程摘要信息、以及测试摘要信息,过程摘要信息基于过程采样数据生成,利用过程摘要信息建立机器学习的模型的训练过程与测试过程之间的关联,该关联可增强数据存证的说服力;将这些摘要信息作为机器学习数据保存至区块链的网络;由区块链的网络下第二节点使用预设摘要操作方式对第一节点的机器学习数据验证。对机器学习研究成果所涉及的各项机器学习数据进行存证,提升研究成果的可信度和可复现性。

Description

一种基于区块链的机器学习数据存证方法和系统
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于区块链的机器学习数据存证方法和系统。
背景技术
近年来,随着人工智能技术的高速发展,关于机器学习(包括深度学习、强化学习等)的学术研究变得非常热门。本领域的学术会议和期刊层出不穷,相关研究论文数量也呈快速增长趋势。在不断涌现的研究成果中,难免出现鱼龙混杂的情况。不少研究成果已被学术机构或读者指出存在数据造假、无法复现等问题。为了对论文成果的真实性加以确实,已有若干学术会议和期刊要求作者提供并公开论文相关的源代码、数据集等原始资料,以便评审者或读者进行验证或复现。这类要求旨在规范作者的投稿行为,在一定程度上防止学术造假,从而有助于确保研究成果的质量和真实性。
不过,现有的这类要求仍属于一种君子协定,其有效性取决于被验证人的自觉性与操作的规范性。一方面,基于传统技术公开研究成果的原始资料时,普遍存在完整性和不可抵赖性难以保证的问题。另一方面,基于被验证人手工提交原始资料的方式难免出现错误和疏漏,从而对事后可能的验证带来困难。此外,现有的机制只能要求被验证人提交源代码、数据集这类相对静态的数据,却不能反映出机器学习模型训练的动态过程中的信息。由于模型训练过程本身存在一定的随机因素,这些信息如果不能被存证,就会对事后验证带来困扰,从而降低验证结果的有效性。
区块链技术因具有数据篡改代价极大的特性,因而经常被用于实现存证或公证系统。然而,现有的区块链存证或公证系统均没有为机器学习数据存证的特点专门设计。无论概念还是实践,现有系统均难以直接满足在机器学习场景应用的需求。
发明内容
本发明针对这以上技术问题,提出一种基于区块链的机器学习数据存证方法与系统,能够有效地解决机器学习场景对数据存证的需求。
所述区块链的网络至少包括第一节点和第二节点,所述基于区块链的机器学习数据存证方法包括:
所述第一节点按照预设摘要操作方式对机器学习相关的数据进行处理,获得所述机器学习的模型训练过程的中间数据的过程采样数据,并获得所述机器学习相关的数据相应的摘要信息;所述摘要信息包括训练摘要信息、过程摘要信息、以及测试摘要信息,其中,所述过程摘要信息基于所述过程采样数据生成,利用所述过程摘要信息建立所述机器学习的模型的训练过程与测试过程之间的关联;
所述第一节点将所述摘要信息作为预存摘要信息写入目标区块链交易,并生成与所述目标区块链交易相应的区块链交易标识;并将所述区块链交易提交到所述区块链的网络;
所述第一节点在所述第二节点发起验证请求时,向所述第二节点提供所述区块链交易标识和所述机器学习相关的数据;
所述第二节点根据所述区块链交易标识从所述区块链的网络中获取目标区块链交易;
所述第二节点从所述目标区块链交易提取所述预存摘要信息,所述预存摘要信息包括预存训练摘要信息、预存过程摘要信息、以及预存测试摘要信息;
所述第二节点按照所述预设摘要操作方式重新对所述第一节点提供的机器学习相关的数据进行处理,得到待验证摘要信息,所述待验证摘要信息包括待验证训练摘要信息、待验证过程摘要信息、以及待验证测试摘要信息;
所述第二节点将所述各预存摘要信息与所述第一节点提供的各待验证摘要信息进行相等性测试比对,以对所述第一节点提供的机器学习相关的数据进行验证。
优选地,所述预设摘要操作表征为接受任意长度的输入字节数组,通过哈希摘要算法的计算,生成一个固定长度的输出字节数组;
其中,所述输入字节数组为所述机器学习相关的数据,所述输出字节数组为摘要信息。
优选地,所述第一节点按照预设摘要操作方式对机器学习相关的数据进行处理的步骤,获得相应的摘要信息,包括:
基于哈希函数或哈希树,对所述机器学习相关的数据实施预设摘要操作,并获取摘要信息。
优选地,所述机器学习相关的数据包括训练相关数据、训练过程的中间数据和测试相关的数据;
所述第一节点按照预设摘要操作方式对机器学习相关的数据进行处理,获得相应的摘要信息的步骤,具体包括:
所述第一节点按照预设摘要操作方式对机器学习模型的训练相关数据进行处理,以获得训练摘要信息;
所述第一节点按照预设数据采样操作方式对所述机器学习模型的训练过程的中间数据实施采样操作,以获取过程采样数据;
所述第一节点按照所述预设摘要操作方式对所述过程采样数据进行处理,以获取过程摘要信息;
所述第一节点按照所述预设摘要操作方式对所述机器学习模型的测试相关的数据进行处理,以获取测试摘要信息。
优选地,所述第一节点按照预设数据采样操作方式对所述机器学习模型的训练过程的中间数据实施采样操作,以获取过程采样数据的步骤,具体包括:
在所述第一节点上的模型训练组件对所述机器学习模型进行训练的过程中,周期性地调用所述模型训练组件中包含的采样函数;
其中,所述第一节点在所述采样函数每次被调用时,对当前时刻的采样记录、中间模型、训练日志、汇总文件等数据项目中的一项或多项实施采样;
所述模型训练组件在完成机器学习模型的训练之后,对于所述采样函数获得的每一次采样数据,以数据结构列表方式进行处理,以获取过程采样数据。
优选地,所述对于所述采样函数获得的每一次采样数据,以数据结构列表方式进行处理,以获取过程采样数据的步骤,具体包括:
将所述采样函数获得的每一次采样数据中的各个数据项目组合为一个数据结构,将各个所述数据结构按照生成时间的先后顺序组织为一个数据结构列表,所述数据结构列表为过程采样数据。
优选地,所述第二节点将所述各预存摘要信息与所述第一节点提供的各待验证摘要信息进行相等性测试比对,以对所述第一节点提供的机器学习相关的数据进行验证的步骤,具体包括:
所述第二节点将所述各预存摘要信息与所述第一节点提供的各待验证摘要信息进行相等性测试比对,在测试比对结果为所述预存训练摘要信息与所述待验证训练摘要信息相同、所述预存过程摘要信息与所述待验证过程摘要信息相同、且所述预存测试摘要信息与所述待验证测试摘要信息相同时,判定所述第一节点提供的机器学习相关的数据验证通过;否则,判定所述第一节点提供的机器学习相关的数据验证失败。
可选地,所述方法还包括:
将测试比对结果广播到所述区块链的网络。
此外,为实现上述目的,本发明还提出一种基于区块链的机器学习数据存证系统,所述系统位于所述区块链的网络,所述区块链的网络包括多个区块链网络节点,所述区块链网络节点至少包括第一节点和第二节点;
所述第一节点,用于按照预设摘要操作方式对机器学习相关的数据进行处理,获得所述机器学习的模型训练过程的中间数据的过程采样数据,并获得所述机器学习相关的数据相应的摘要信息;所述摘要信息包括训练摘要信息、过程摘要信息、以及测试摘要信息,其中,所述过程摘要信息基于所述过程采样数据信息生成,并利用所述过程摘要信息建立所述机器学习的模型的训练过程与测试过程之间的关联;
所述第一节点,用于将所述摘要信息作为预存摘要信息写入目标区块链交易,并生成与所述目标区块链交易相应的区块链交易标识;并将所述区块链交易提交到所述区块链的网络;
所述第一节点,用于在所述第二节点发起验证请求时,向所述第二节点提供所述区块链交易标识和所述机器学习相关的数据;
所述第二节点,用于根据所述区块链交易标识从所述区块链的网络中获取目标区块链交易;
所述第二节点,用于从所述目标区块链交易提取所述预存摘要信息,所述预存摘要信息包括预存训练摘要信息、预存过程摘要信息、以及预存测试摘要信息;
所述第二节点,用于按照所述预设摘要操作方式重新对所述第一节点提供的机器学习相关的数据进行处理,得到待验证摘要信息,所述待验证摘要信息包括待验证训练摘要信息、待验证过程摘要信息、以及待验证测试摘要信息;
所述第二节点,用于将所述各预存摘要信息与所述第一节点提供的各待验证摘要信息进行相等性测试比对,以对所述第一节点提供的机器学习相关的数据进行验证。
优选地,每个区块链网络节点包括数据摘要组件、模型训练组件和节点控制组件;
数据摘要组件,用于按照预设摘要操作方式对机器学习模型的训练相关数据进行处理,以获得训练摘要信息;
所述模型训练组件,用于按照预设数据采样操作方式对所述机器学习模型的训练过程的中间数据实施采样操作,以获取过程采样数据;
数据摘要组件,用于按照所述预设摘要操作方式对所述过程采样数据进行处理,以获取过程摘要信息;
数据摘要组件,用于按照所述预设摘要操作方式对所述机器学习模型的测试相关的数据进行处理,以获取测试摘要信息;
所述节点控制组件,用于将所述摘要信息作为预存摘要信息写入目标区块链交易,并生成与所述目标区块链交易相应的区块链交易标识;并将所述区块链交易提交到所述区块链的网络。
本发明的有益效果:本发明对机器学习研究成果所涉及的各项机器学习数据进行存证,使其达到事后可验证、不可被抵赖的目标,能够促进机器学习研究人员诚信从事研究活动,提升研究成果的可信度和可复现性,并且使得研究结果可以被学术会议和期刊的组织者或其他任何人验证。
附图说明
图1为本发明一种基于区块链的机器学习数据存证方法的第一实施例的流程示意图;
图2为本发明实施例的总体步骤示意图;
图3为本发明所述的区块链网络的示意图;
图4为本发明所述的区块链网络节点的结构示意框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明中涉及的专业术语包括:
区块链:即去中心化的分布式账本数据库。区块链本身其实是一串使用密码学算法所产生的数据块,每一个数据块中包含了多次区块链网络交易有效确认的信息。区块链技术起源于比特币的应用,是一种成熟技术,并非本文阐述的发明内容。本文阐述的是将区块链技术用于金融领域的资产交易业务。
联盟链:介于公有链和私有链之间。由若干组织一起合作维护一条区块链,该区块链的使用必须是有权限的管理,相关信息会得到保护,典型如金融组织。
节点:特指参与到区块链网络里,进行交易和数据交换的网络节点,每个独立机构可以拥有一个到多个交易节点,每个交易节点是一组物理网络,计算机,区块链应用软件以及数据库的组合。节点和节点之间,通过通信网络互相连接。
本发明实施例定义的机器学习数据具体涉及三类数据:(1)模型训练相关的数据;(2)训练过程的中间数据;(3)模型测试相关的数据。
(1)模型训练相关的数据,是指被验证人在向机器学习引擎提交模型训练作业时,所需要提供的各类输入数据。具体而言,这类数据包括以下数据项目中的一项或多项:算法程序、训练数据集、超参配置、训练环境文件等。
(2)训练过程的中间数据,是指机器学习引擎在执行模型训练工作时,持续不断产出的各类输出数据。具体而言,这类数据包括以下数据项目中的一项或多项:采样记录、中间模型、训练日志、汇总文件等。
(3)模型测试相关的数据,是指被验证人在向机器学习引擎提交模型测试作业时,所需要提供的各类输入数据,以及所获得的各类输出数据。具体而言,这类数据包括以下数据项目中的一项或多项:最终模型、测试数据集、测试输出结果、测试统计信息等。
对于一次特定的机器学习模型训练或测试作业而言,上述三类数据中的每一类数据项目在计算机系统上的存在形式均为一个或多个文件。这些文件既可以保存在本地磁盘、网络存储等持久存储系统中,也可以保存在内存等临时存储系统中。
可理解的是,对机器学习研究成果所涉及的各项数据(统称为“机器学习数据”)进行存证,使其达到事后可验证、不可被抵赖的目标,能够促进机器学习研究人员(即“被验证人”)诚信从事研究活动,提升研究成果的可信度和可复现性,并且使得研究结果可以被学术会议和期刊的组织者或其他任何人(即“验证人”)验证。针对这一目的,本发明提出一种基于区块链的机器学习数据存证方法与系统。
针对现有技术存在的问题,本发明提供一种基于区块链的机器学习数据存证方法。
参照图1,图1为本发明基于区块链的机器学习数据存证方法的第一实施例的流程示意图。
在本实施例中,所述区块链的网络至少包括第一节点和第二节点,
所述第一节点表征被验证人所在的区块链节点,所述第二节点表征验证人所在的区块链节点;
所述基于区块链的机器学习数据存证方法具体包括三个过程:(一)针对机器学习模型训练过程;(二)针对机器学习数据存证过程;(三)针对机器学习数据验证过程:
(一)针对机器学习模型训练过程
步骤S10:所述第一节点按照预设摘要操作方式对机器学习相关的数据进行处理,获得所述机器学习的模型训练过程的中间数据的过程采样数据,并获得所述机器学习相关的数据相应的摘要信息;所述摘要信息包括训练摘要信息、过程摘要信息、以及测试摘要信息,其中,所述过程摘要信息基于所述过程采样数据生成,利用所述过程摘要信息建立所述机器学习的模型的训练过程与测试过程之间的关联;
需要说明的是,所述预设摘要操作表征为接受任意长度的输入字节数组(对机器学习相关的数据),通过哈希摘要算法的计算,生成一个固定长度的输出字节数组(摘要信息),具体地,本实施例设数据摘要组件中的哈希函数为Hash(),则有:训练摘要信息=Hash(模型训练相关的数据);过程摘要信息=Hash(过程采样数据);测试摘要信息=Hash(模型测试相关的数据)。
在具体实现中,参照图2,图2为本发明实施例的总体步骤示意图;
本步骤S10,具体包括:
(1.1)获取训练摘要信息:基于哈希函数或哈希树,所述第一节点按照预设摘要操作方式对机器学习模型的训练相关数据进行处理,以获得训练摘要信息;
机器学习数据往往非常庞大。例如,训练数据集的大小有可能是数GB(吉字节)甚至数TB(太字节);单个中间模型的大小有可能是数百MB(兆字节),但一次训练过程中的大量采样操作则有可能使得所有中间模型的总大小达到数百GB。然而,区块链系统往往具有存储空间小、处理速度慢的特点。因此,如果直接使用区块链来对机器学习数据本身进行存证,那么效率和性能将是非常低下的。针对此问题,本发明提出,对机器学习数据实施摘要操作,并将摘要操作所得到的摘要信息存储于区块链系统,从而间接实现对机器学习数据的存证。
摘要操作是这样一类操作:它接受任意长度的输入字节数组,通过特定摘要算法的计算,生成一个固定长度的输出字节数组。输出字节数组的长度通常较小,例如为几十个字节。当输入字节数组发生哪怕微小的变化时,输出字节数组也会发生非常明显的变化。对于两组不同的输入字节数组,摘要操作生成相同输出字节数组的概率极低。想要人为构建两组不同的输入字节数组,使得其输出字节数组相同的难度极大。
对于单个文件,对其实施摘要操作的主要方法是使用哈希函数,以哈希函数的返回值作为摘要信息。常见的哈希函数包括MD5、SHA-1、SHA-256等。对于多个文件,对它们整体实施摘要操作的一种方法是将它们以特定方式排序,然后连接成一个整体,并对整体使用哈希函数,得到摘要信息;另一种方法是将它们以特定方式排序,对每个文件分别使用哈希函数,然后使用哈希树对所有哈希函数输出的摘要信息进行级联计算,得到层次化汇总的返回值作为摘要信息。常见的哈希树包括Merkle Tree(默克尔树)、Sparse Merkle Tree(稀疏默克尔树)、Trie(字典树)等。前述的“特定方式排序”是指使用任意一种确定的排序规则,来决定多个文件之间的前后顺序关系。常见的排序规则包括文件名的字典序、文件内容的字典序、文件名的哈希序等。
本发明对模型训练相关的数据实施摘要操作的具体流程描述如下:
step1:被验证人在向机器学习引擎提交模型训练作业时,本发明要求被验证人提供算法程序、训练数据集、超参配置、训练环境文件等数据项目中的一项或多项。在具体实施过程中,可由使用本发明的机构(例如学术会议和期刊的组织者)规定具体需要提供的数据项目种类。
Step2:对于上述的每个数据项目,数据摘要组件对其实施摘要操作,并获取这种数据项目对应的摘要信息。
如果该数据项目是由单个文件构成的,那么获取摘要信息的方法,是对该文件执行特定的哈希函数,以哈希函数的返回值作为摘要信息。在具体实施例中,可以选用任意一种确定的哈希函数。
如果该数据项目是由多个文件构成的,那么获取摘要信息的方法,可以从以下两种方法中任选其一:(a)对多个文件以特定方式排序,然后连接成一个整体,并对整体使用哈希函数,得到摘要信息;(b)对多个文件以特定方式排序,对每个文件分别使用哈希函数,然后使用哈希树对所有哈希函数输出的摘要信息进行级联计算,得到层次化汇总的返回值作为摘要信息。在具体实施过程中,可以选用任意一种确定的排序规则、哈希函数和哈希树。
step3对于上述每个数据项目对应摘要信息,以键值对列表方式加以组织。具体而言,是指以表示数据项目名称的字符串作为键,以该种数据项目的摘要信息作为值,所有这样的键值对构成一个键值对列表。这个键值对列表在本发明中定义为训练摘要信息。
step4对于上述模型训练相关的数据,保存在被验证人本地计算机系统,以便在后文所述的机器学习数据验证过程中使用;对于上述训练摘要信息,作为提交给区块链网络存证的数据的一部分,将会在后文所述的机器学习数据存证过程中使用。
(1.2)获取过程采样数据:基于周期性的采样函数,所述第一节点按照预设数据采样操作方式对所述机器学习模型的训练过程的中间数据实施采样操作,以获取过程采样数据;
在对机器学习数据进行存证时,仅仅对训练和测试过程的输入数据及输出数据进行存证是不够的,这是因为这些数据不能充分证明被验证人声称的测试过程所使用的模型是由被验证人声称的训练过程所生成的。为了增强存证的说服力,有必要用特定的信息建立起训练过程与测试过程之间的关联。为此,本发明要求对机器学习模型训练过程的中间数据实施采样操作。通过采样数据的渐变过程,在一定程度上说明测试过程所使用的模型是通过训练过程逐步形成的。采样过程中的采样操作越密集,存证的说服力越强,但存证所需要的时间和空间开销也越大。本发明允许被验证人自行选择采样周期,在说服力和开销之间做出权衡。
本发明对机器学习模型训练过程的中间数据实施采样操作的具体流程描述如下:
step1:由所述第一节点上的模型训练组件在对机器学习模型进行训练的过程中,周期性地调用本组件中包含的采样函数。
step2:采样函数每次被调用时,对当前时刻的采样记录、中间模型、训练日志、汇总文件等数据项目中的一项或多项实施采样。具体而言,是指将上述数据项目保存在被验证人本地计算机系统。在具体实施过程中,可由使用本发明的机构规定具体需要采样的数据项目种类。
step3:由所述第一节点上的模型训练组件在完成机器学习模型的训练之后,对于上述采样函数获得的每一次采样数据,以数据结构列表方式加以组织。具体而言,是指将每一次采样数据中的各个数据项目组合为一个数据结构,然后将所有这样的数据结构按照其生成的时间顺序组织为一个数据结构列表。这个数据结构列表在本发明中定义为过程采样数据。
(1.3)获取过程摘要信息:基于哈希函数或哈希树,所述第一节点按照所述预设摘要操作方式对所述过程采样数据进行处理,以获取过程摘要信息;
获取过程摘要信息的方法与获取训练摘要信息的方法类似,不同点在于:
首先,由所述第一节点上的数据摘要组件处理的输入数据类型不同,这里它处理的并非模型训练相关的数据,而是训练过程的中间数据;
其次,训练过程的中间数据包含多次的采样数据,需要对每一次的采样数据分别获取过程摘要信息。
本发明对模型训练相关的数据实施摘要操作的方法描述如下:
Step1:对于在上述“获取过程采样数据”的步骤中,模型训练组件获取到的过程采样数据,按照列表的顺序,依次取出其中的每一次采样数据。采样数据中包含采样记录、中间模型、训练日志、汇总文件等数据项目中的一项或多项。
Step2:对于上述的每个数据项目,数据摘要组件对其实施摘要操作,并获取这种数据项目对应的摘要信息。
如果该数据项目是由单个文件构成的,那么获取摘要信息的方法,是对该文件执行特定的哈希函数,以哈希函数的返回值作为摘要信息。在具体实施例中,可以选用任意一种确定的哈希函数。
如果该数据项目是由多个文件构成的,那么获取摘要信息的方法,可以从以下两种方法中任选其一:(a)对多个文件以特定方式排序,然后连接成一个整体,并对整体使用哈希函数,得到摘要信息;(b)对多个文件以特定方式排序,对每个文件分别使用哈希函数,然后使用哈希树对所有哈希函数输出的摘要信息进行级联计算,得到层次化汇总的返回值作为摘要信息。在具体实施过程中,可以选用任意一种确定的排序规则、哈希函数和哈希树。
Step3:对于上述每个数据项目对应摘要信息,以键值对列表方式加以组织。具体而言,是指以表示数据项目名称的字符串作为键,以该种数据项目的摘要信息作为值,所有这样的键值对构成一个键值对列表。这个键值对列表在本发明中定义为过程摘要信息。
Step4:对于上述过程采样数据,保存在被验证人本地计算机系统,以便在后文所述的机器学习数据验证过程中使用;对于上述过程摘要信息,作为提交给区块链网络存证的数据的一部分,将会在后文所述的机器学习数据存证过程中使用。
(1.4)获取测试摘要信息:基于哈希函数或哈希树,所述第一节点按照所述预设摘要操作方式对所述机器学习模型的测试相关的数据进行处理,以获取测试摘要信息;
获取测试摘要信息的方法与获取训练摘要信息的方法类似,不同点在于:数据摘要组件处理的输入数据类型不同,这里它处理的并非模型训练相关的数据,而是模型测试相关的数据。
本发明对模型测试相关的数据实施摘要操作的方法描述如下:
Step1:被验证人在向机器学习引擎提交模型测试作业时,本发明要求被验证人提供最终模型、测试数据集、测试输出结果、测试统计信息等数据项目中的一项或多项。在具体实施过程中,可由使用本发明的机构规定具体需要提供的数据项目种类。
Step2:对于上述的每个数据项目,数据摘要组件对其实施摘要操作,并获取这种数据项目对应的摘要信息。
如果该数据项目是由单个文件构成的,那么获取摘要信息的方法,是对该文件执行特定的哈希函数,以哈希函数的返回值作为摘要信息。在具体实施例中,可以选用任意一种确定的哈希函数。
如果该数据项目是由多个文件构成的,那么获取摘要信息的方法,可以从以下两种方法中任选其一:(a)对多个文件以特定方式排序,然后连接成一个整体,并对整体使用哈希函数,得到摘要信息;(b)对多个文件以特定方式排序,对每个文件分别使用哈希函数,然后使用哈希树对所有哈希函数输出的摘要信息进行级联计算,得到层次化汇总的返回值作为摘要信息。在具体实施过程中,可以选用任意一种确定的排序规则、哈希函数和哈希树。
Step3:对于上述每个数据项目对应摘要信息,以键值对列表方式加以组织。具体而言,是指以表示数据项目名称的字符串作为键,以该种数据项目的摘要信息作为值,所有这样的键值对构成一个键值对列表。这个键值对列表在本发明中定义为测试摘要信息。
Step4:对于上述模型测试相关的数据,保存在被验证人本地计算机系统,以便在后文所述的机器学习数据验证过程中使用;对于上述测试摘要信息,作为提交给区块链网络存证的数据的一部分,将会在后文所述的机器学习数据存证过程中使用。
(二)针对机器学习数据存证过程
步骤S20:所述第一节点将所述摘要信息作为预存摘要信息写入目标区块链交易,并生成与所述目标区块链交易相应的区块链交易标识;并将所述区块链交易提交到所述区块链的网络;
可理解的是,在获取(1.1)训练摘要信息、(1.3)过程摘要信息和(1.4)测试摘要信息之后,本发明要求被验证人将上述三种摘要信息提交到区块链网络,对这些信息实现持久的、难以篡改的存证,以便用于未来可能的机器学习数据验证过程。
本实施例所述第一节点执行机器学习数据存证的方法描述如下:
Step1:所述第一节点的节点控制组件将训练摘要信息、过程摘要信息和测试摘要信息以键值对方式加以组织,然后写入一个区块链交易;
Step2:所述第一节点的节点控制组件将上述区块链交易提交到区块链网络。
(三)针对机器学习数据验证过程
可理解的是,针对验证人提出的、对被验证人存证的机器学习数据实施验证的请求,本发明提出一种由验证人与被验证人配合发起的机器学习数据验证方法。通过本方法,验证人可以获知被验证人此前提交存证的摘要信息是否是由真实有效的机器学习模型训练及测试作业产生的,进而可以判断被验证人研究成果的真实性。
本发明执行机器学习数据验证的方法描述如下:
步骤S30:所述第一节点在所述第二节点发起验证请求时,向所述第二节点提供所述区块链交易标识和所述机器学习相关的数据;
需要说明的是,所述机器学习相关的数据包括验证人在机器学习模型训练和测试时所使用的模型训练数据、过程采样数据和模型测试数据;
可理解的是,验证人要求被验证人提供其在机器学习模型训练和测试时所使用的模型训练数据、过程采样数据和模型测试数据,将这些数据提交给区块链网络系统的节点控制组件。
步骤S40:所述第二节点根据所述区块链交易标识从所述区块链的网络中获取目标区块链交易;
在具体实现中,由区块链网络系统的节点控制组件使用被验证人提供的区块链交易标识,从区块链网络中检索到存储对应摘要信息的区块链交易。
步骤S50:所述第二节点从所述目标区块链交易提取所述预存摘要信息,所述预存摘要信息包括预存训练摘要信息、预存过程摘要信息、以及预存测试摘要信息;
在具体实现中,节点控制组件从上述区块链交易中提取预存的三种摘要信息(训练摘要信息、过程摘要信息、测试摘要信息)。
步骤S60:所述第二节点按照所述预设摘要操作方式重新对所述第一节点提供的机器学习相关的数据进行处理,得到待验证摘要信息,所述待验证摘要信息包括待验证训练摘要信息、待验证过程摘要信息、以及待验证测试摘要信息;
在具体实现中,由所述第二节点上的节点控制组件调用数据摘要组件,以步骤S30中的模型训练数据、过程采样数据和模型测试数据作为输入,分别计算训练摘要信息、过程摘要信息和测试摘要信息。具体计算方法与本实施例所述步骤S10提出的获取训练摘要信息、获取过程摘要信息及获取测试摘要信息的方法相同。但在此步骤S60中,执行计算的位置不同。此步骤S60是在验证人的本地计算机系统上执行(第二节点),而非在被验证人的本地计算机系统上执行(第一节点)。
步骤S70:所述第二节点将所述各预存摘要信息与所述第一节点提供的各待验证摘要信息进行相等性测试比对,以对所述第一节点提供的机器学习相关的数据进行验证;并将测试比对结果广播到所述区块链的网络。
在具体实现中,由所述第二节点的节点控制组件对比步骤S50得到的三种摘要信息和步骤S60得到的三种摘要信息,如果同种摘要信息两两之间相等,则验证通过;如果至少有一组不相等,则验证失败;可选地,本实施例可将测试比对结果广播到所述区块链的网络的全部节点进行公证;当然,测试结果不一定要通过区块链来公开,也可以通过其他渠道公开,或者不公开,本实施例在此不予赘述。
本实施例的有益效果:本实施例区块链的网络下的第一节点按照预设摘要操作方式对机器学习相关的数据进行处理,获得所述机器学习的模型训练过程的中间数据的过程采样数据,并获得所述机器学习相关的数据相应的摘要信息;所述摘要信息包括训练摘要信息、过程摘要信息、以及测试摘要信息,所述过程摘要信息基于所述过程采样数据生成,并利用所述过程摘要信息建立所述机器学习的模型的训练过程与测试过程之间的关联,这一关联可以增强数据存证的说服力;然后将这些摘要信息作为机器学习数据保存至区块链的网络;由区块链的网络下第二节点使用所述预设摘要操作方式对第一节点的机器学习数据验证,使其达到事后可验证、不可被抵赖的目标,能够促进机器学习研究人员诚信从事研究活动,提升研究成果的可信度和可复现性,并且使得研究结果可以被学术会议和期刊的组织者或其他任何人验证。
进一步地,基于区块链的机器学习数据存证方法的第一实施例,提出另一实施例,本实施例基于TensorFlow引擎设计,用于描述本方法的实现过程:
模型训练相关的数据包括算法程序、训练数据集、超参配置和训练环境文件。其中,算法程序和训练数据集分别由一个文件夹下的多个文件构成;超参配置由一个JSON文件构成;训练环境文件由一个Docker镜像文件构成。
训练过程的中间数据包括采样记录和中间模型。其中,采样记录由一个JSON文件构成;中间模型由一个文件夹下的多个文件(如元信息文件、检查点文件)构成。
模型测试相关的数据包括最终模型、测试数据集、测试输出结果和测试统计信息。其中,最终模型和测试数据集分别由一个文件夹下的多个文件构成;测试输出结果和测试统计信息分别由一个JSON文件构成。
在本实施例中,组件的具体实现说明如下:
数据摘要组件是一套实现了本发明所述的获取训练摘要信息、获取过程摘要信息和获取测试摘要信息等方法,并且实现了SHA-1哈希函数、Merkle哈希树、字典序排序等算法的计算机程序。
模型训练组件是一套实现了本发明所述的获取过程采样数据方法的计算机程序。具体而言,本组件是在TensorFlow引擎基础上修改而来,在原版TensorFlow基础上增加了采样函数,该采样函数可以在机器学习模型训练过程中被周期性地调用(下文将本组件称之为“修改过的TensorFlow引擎”)。
节点控制组件是一套实现了本发明所述的机器学习数据存证和机器学习数据验证等方法的计算机程序。
区块链重量级功能组件具有区块链验证转发、打包交易、主导共识机制功能。具体而言,本组件基于Hyperledger Fabric Node SDK实现。它包含了共识服务节点及对等节点的功能。在区块链网络上,本组件主要负责接收包含背书签名的交易,对未打包的交易进行排序生成区块,并广播给所有的区块链功能组件,从而保证整个区块链网络上各节点的数据一致性,同时也包含了ACL访问控制功能。
区块链轻量级功能组件具有区块链验证转发、参与共识机制功能。具体而言,本组件基于Hyperledger Fabric Node SDK实现。它主要包含了对等节点的功能。在区块链网络上,本组件主要负责通过执行链码(Chaincode)实现对账本的读写操作,以维护状态数据和账本的副本;根据策略的设定,部分节点也会执行交易并对结果进行签名背书,充当背书节点的角色。
区块链网络由多个区块链重量级功能组件和区块链轻量级功能组件构成。具体而言,本组件基于Hyperledger Fabric及周边组件实现。它包括成员管理、共识服务、分布式账本、排序服务、P2P网络,链码服务,安全和加密服务等功能。
获取训练摘要信息
本实施例对模型训练相关的数据实施摘要操作的方法描述如下:
被验证人在向修改过的TensorFlow引擎提交模型训练作业时,本实施例要求被验证人提供算法程序、训练数据集、超参配置和训练环境文件这四类数据项目。
对于上述的每个数据项目,数据摘要组件对其实施摘要操作,并获取这种数据项目对应的摘要信息。
对于超参配置和训练环境文件,获取摘要信息的方法,是对该文件执行SHA-1哈希函数,以哈希函数的返回值作为摘要信息。
对于算法程序和训练数据集,获取摘要信息的方法,是对多个文件以文件名字典序排序,对每个文件分别使用SHA-1哈希函数,然后使用Merkle
哈希树对所有哈希函数输出的摘要信息进行级联计算,得到层次化汇总的返回值作为摘要信息。
对于上述每个数据项目对应的摘要信息,以键值对列表方式加以组织。在本实施例中,键值对列表以JSON格式表示,其中以表示数据项目名称的字符串作为键,以该种数据项目的摘要信息作为值,所有这样的键值对构成一个键值对列表。下面给出这种键值对列表的一个代码示例。
对于上述模型训练相关的数据,保存在被验证人本地计算机系统,以便在后文所述的机器学习数据验证过程中使用;对于上述训练摘要信息,作为提交给区块链网络存证的数据的一部分,将会在后文所述的机器学习数据存证过程中使用。
获取过程采样数据
本实施例对机器学习模型训练过程的中间数据实施采样操作的方法描述如下:
修改过的TensorFlow引擎在对机器学习模型进行训练的过程中,周期性地调用自身包含的采样函数。
采样函数每次被调用时,对当前时刻的采样记录和中间模型这两类数据项目实施采样。具体而言,是指将上述数据项目保存在被验证人本地计算机系统。
修改过的TensorFlow引擎在完成机器学习模型的训练之后,对于上述采样函数获得的每一次采样数据,以数据结构列表方式加以组织。在本实施例中,数据结构列表以JSON格式表示,将每一次采样数据中的各个数据项目组合为一个数据结构,然后将所有这样的数据结构按照其生成的时间顺序组织为一个数据结构列表。下面给出这种键值对列表的代码示例:
/>
获取过程摘要信息
本实施例对模型训练相关的数据实施摘要操作的方法描述如下:
对于在上述“获取过程采样数据”的步骤中,修改过的TensorFlow引擎获取到的过程采样数据,按照列表的顺序,依次取出其中的每一次采样数据。采样数据中包含采样记录和中间模型这两类数据项目。
对于上述的每个数据项目,数据摘要组件对其实施摘要操作,并获取这种数据项目对应的摘要信息。
对于采样记录,获取摘要信息的方法,是对该文件执行SHA-1哈希函数,以哈希函数的返回值作为摘要信息。
对于中间模型,获取摘要信息的方法,是对多个文件以文件名字典序排序,对每个文件分别使用SHA-1哈希函数,然后使用Merkle哈希树对所有哈希函数输出的摘要信息进行级联计算,得到层次化汇总的返回值作为摘要信息。
对于上述每个数据项目对应的摘要信息,以键值对列表方式加以组织。在本实施例中,键值对列表以JSON格式表示,其中以表示数据项目名称的字符串作为键,以该种数据项目的摘要信息作为值,所有这样的键值对构成一个键值对列表。下面给出这种键值对列表的代码示例:
对于上述过程采样数据,保存在被验证人本地计算机系统,以便在后文所述的机器学习数据验证过程中使用;对于上述过程摘要信息,作为提交给区块链网络存证的数据的一部分,将会在后文所述的机器学习数据存证过程中使用。
获取测试摘要信息
本实施例对模型测试相关的数据实施摘要操作的方法描述如下:
被验证人在向修改过的TensorFlow引擎提交模型测试作业时,本实施例要求被验证人提供最终模型、测试数据集、测试输出结果和测试统计信息这四类数据项目。
对于上述的每个数据项目,数据摘要组件对其实施摘要操作,并获取这种数据项目对应的摘要信息。
对于测试输出结果和测试统计信息,获取摘要信息的方法,是对该文件执行SHA-1哈希函数,以哈希函数的返回值作为摘要信息。
对于最终模型和测试数据集,获取摘要信息的方法,是对多个文件以文件名字典序排序,对每个文件分别使用SHA-1哈希函数,然后使用Merkle哈希树对所有哈希函数输出的摘要信息进行级联计算,得到层次化汇总的返回值作为摘要信息。
对于上述每个数据项目对应的摘要信息,以键值对列表方式加以组织。在本实施例中,键值对列表以JSON格式表示,其中以表示数据项目名称的字符串作为键,以该种数据项目的摘要信息作为值,所有这样的键值对构成一个键值对列表。下面给出这种键值对列表的代码示例:
(4)对于上述模型测试相关的数据,保存在被验证人本地计算机系统,以便在后文所述的机器学习数据验证过程中使用;对于上述测试摘要信息,作为提交给区块链网络存证的数据的一部分,将会在后文所述的机器学习数据存证过程中使用。
机器学习数据存证
在获取训练摘要信息、过程摘要信息和测试摘要信息之后,本实施例要求被验证人将上述三种摘要信息提交到区块链网络,对这些信息实现持久的、难以篡改的存证,以便用于未来可能的机器学习数据验证过程。
本实施例执行机器学习数据存证的方法描述如下:
(1)节点控制组件将训练摘要信息、过程摘要信息和测试摘要信息以键值对方式加以组织,然后写入一个区块链交易。
(2)节点控制组件将上述区块链交易提交到区块链网络。
机器学习数据验证
针对验证人提出的、对被验证人存证的机器学习数据实施验证的请求,本实施例提出一种由验证人与被验证人配合发起的机器学习数据验证方法。通过本方法,验证人可以获知被验证人此前提交存证的摘要信息是否是由真实有效的机器学习模型训练及测试作业产生的,进而可以判断被验证人研究成果的真实性。
本实施例执行机器学习数据验证的方法描述如下:
Step1:节点控制组件使用被验证人提供的区块链交易标识,从区块链网络中检索到存储对应摘要信息的区块链交易。
Step2:节点控制组件从上述区块链交易中提取三种摘要信息(训练摘要信息、过程摘要信息、测试摘要信息)。
Step3:验证人要求被验证人提供其在机器学习模型训练和测试时所使用的模型训练数据、过程采样数据和模型测试数据,将这些数据提交给节点控制组件。
Step4:节点控制组件调用数据摘要组件,以Step3所述的模型训练数据、过程采样数据和模型测试数据作为输入,分别计算训练摘要信息、过程摘要信息和测试摘要信息。具体计算方法与本实施例提出的获取训练摘要信息、获取过程摘要信息及获取测试摘要信息的方法相同。但在此步骤中,执行计算的位置不同。此步骤是在验证人的本地计算机系统上执行,而非在被验证人的本地计算机系统上执行。
Step5:节点控制组件对比Step2得到的三种摘要信息和Step4得到的三种摘要信息,如果同种摘要信息两两之间相等,则验证通过;如果至少有一组不相等,则验证失败。
区块链网络工作流程
本实施例中,机器学习数据存证和机器学习数据验证所涉及的区块链网络的工作流程描述如下:
节点控制组件构造业务提案
节点控制组件利用区块链客户端SDK/API构造业务提案。该提案是一个调用智能合约功能函数的请求,用来确认哪些数据可以读取或写入账本。节点控制组件把业务提案发送给一个或多个对等节点,业务提案中包含本次业务要调用的合约标识、合约方法和参数信息以及客户端签名等。
背书节点模拟执行业务
背书节点收到业务提案后,验证签名并确定提交者是否有权执行操作。背书节点将业务提案的参数作为输入,在当前状态K-V数据库上执行业务,生成包含执行返回值、读操作集合和写操作集合的业务结果(此时不会更新账本),这些值的集合、背书节点的签名和背书结果(Yes/No)作为提案的结果返回给客户端SDK,SDK解析这些信息判断是否应用于后续的业务。
节点控制组件把业务发送到共识服务节点
节点控制组件使用区块链SDK验证背书节点签名,并比较各节点返回的提案结果,判断提案结果是否一致以及是否参照指定的背书策略执行。节点控制组件收到各个背书节点的应答后,打包到一起组成一个业务并签名,发送给共识服务节点。
共识排序、生成新区块、提交业务
共识服务节点对接收到的业务进行共识排序,然后按照区块生成策略,将一批业务打包到一起,生成新的区块,调用Deliver API投递消息,发送给提交节点。提交节点收到区块后,会基于PBFT等共识算法对区块中的每笔业务进行校验,检查业务依赖的输入输出是否符合当前区块链的状态,完成后将区块追加到本地的区块链,并修改K-V状态数据库。
最后,每个区块追加到区块链都会有一个消息通知,节点控制组件可以注册监听这些通知消息,从而获取每笔业务的运行结果。
此外,为实现上述目的,本发明还提供一种基于区块链的机器学习数据存证系统的实施例;
本实施例中,所述系统位于所述区块链的网络,所述区块链的网络包括多个区块链网络节点,所述区块链网络节点至少包括第一节点和第二节点;
所述第一节点,用于按照预设摘要操作方式对机器学习相关的数据进行处理,获得所述机器学习的模型训练过程的中间数据的过程采样数据,并获得所述机器学习相关的数据相应的摘要信息;所述摘要信息包括训练摘要信息、过程摘要信息、以及测试摘要信息,其中,所述过程摘要信息基于所述过程采样数据信息生成,并利用所述过程摘要信息建立所述机器学习的模型的训练过程与测试过程之间的关联;
所述第一节点,还用于将所述摘要信息作为预存摘要信息写入目标区块链交易,并生成与所述目标区块链交易相应的区块链交易标识;并将所述区块链交易提交到所述区块链的网络;
所述第一节点,还用于在所述第二节点发起验证请求时,向所述第二节点提供所述区块链交易标识和所述机器学习相关的数据;
所述第二节点,用于根据所述区块链交易标识从所述区块链的网络中获取目标区块链交易;
所述第二节点,还用于从所述目标区块链交易提取所述预存摘要信息,所述预存摘要信息包括预存训练摘要信息、预存过程摘要信息、以及预存测试摘要信息;
所述第二节点,还用于按照所述预设摘要操作方式重新对所述第一节点提供的机器学习相关的数据进行处理,得到待验证摘要信息,所述待验证摘要信息包括待验证训练摘要信息、待验证过程摘要信息、以及待验证测试摘要信息;
所述第二节点,还用于将所述各预存摘要信息与所述第一节点提供的各待验证摘要信息进行相等性测试比对,以对所述第一节点提供的机器学习相关的数据进行验证。
具体地,本实施例的每个区块链网络节点包括数据摘要组件、模型训练组件和节点控制组件;
数据摘要组件,用于按照预设摘要操作方式对机器学习模型的训练相关数据进行处理,以获得训练摘要信息;
所述模型训练组件,用于按照预设数据采样操作方式对所述机器学习模型的训练过程的中间数据实施采样操作,以获取过程采样数据;
数据摘要组件,还用于按照所述预设摘要操作方式对所述过程采样数据进行处理,以获取过程摘要信息;
数据摘要组件,还用于按照所述预设摘要操作方式对所述机器学习模型的测试相关的数据进行处理,以获取测试摘要信息;
所述节点控制组件,用于将所述摘要信息作为预存摘要信息写入目标区块链交易,并生成与所述目标区块链交易相应的区块链交易标识;并将所述区块链交易提交到所述区块链的网络。
可理解的是,图3给出了本发明所述的区块链网络的示意图。该区块链网络由多个分布式部署的区块链网络节点构成。区块链网络节点之间存在着连接关系,相互连接的节点代表节点之间可以同步区块链交易数据。需要注意的是,图3仅仅是一个示例,本发明并不限制区块链网络节点的数量、连接的数量,以及连接的起止节点。任意数量的区块链网络节点及任意的连接关系只要形成图(graph)状结构后,均可构成本发明所述的区块链网络。
本发明实施例的所述区块链网络为联盟链模式。联盟链是由多个机构或个人共同参与管理的区块链,每个机构或个人管理一个或多个节点,其数据只允许系统内不同的机构或个人进行读写和发送。联盟链的各个节点通常有与之对应的参与实体,通过授权后才能加入与退出网络;各参与实体组成利益相关的联盟,共同维护区块链的健康运转。联盟链模式尤其适用于数字存证、防伪、医疗、金融等行业及用途。
图4给出了本发明所述的区块链网络节点的示意图。该区块链网络节点由数据摘要组件、模型训练组件、节点控制组件、区块链功能组件,以及本地计算机存储系统构成。其中,本地计算机存储系统上存储的内容包括:模型训练数据、过程采样数据、模型测试数据、训练摘要信息、过程摘要信息、测试摘要信息。上述区块链网络节点的所有组件均运行于被验证人或验证人的本地计算机系统上,每个区块链网络节点对应一个本地计算机系统,其用户为一个被验证人或验证人。
上述区块链功能组件分为两类:区块链重量级功能组件、区块链轻量级功能组件。其中,区块链重量级功能组件具有区块链验证转发、打包交易、主导共识机制功能,区块链轻量级功能组件具有区块链验证转发、参与共识机制功能。
在区块链网络中,运行区块链重量级功能组件的节点被标识为共识服务节点(Orderer),运行区块链轻量级功能组件的节点被标识为对等节点(Peer)或背书节点(Endorser)。
本实施例对在被验证人及验证人的本地计算机系统上运行区块链重量级功能组件还是区块链轻量级功能组件并没有硬性要求,但整个区块链网络中应至少具有一个区块链重量级功能组件,该组件可以由使用本发明的机构来运行。优选地,为了确保区块链网络能以较高的效率运行,使用本发明的机构可以要求尽可能高比例数量的被验证人及验证人使用区块链重量级功能组件。
本实施例的有益效果:本实施例对机器学习研究成果所涉及的各项机器学习数据进行存证,使其达到事后可验证、不可被抵赖的目标,能够促进机器学习研究人员诚信从事研究活动,提升研究成果的可信度和可复现性,并且使得研究结果可以被学术会议和期刊的组织者或其他任何人验证。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (7)

1.一种基于区块链的机器学习数据存证方法,其特征在于,所述区块链的网络至少包括第一节点和第二节点,所述基于区块链的机器学习数据存证方法包括:
所述第一节点按照预设摘要操作方式对机器学习相关的数据进行处理,获得所述机器学习的模型训练过程的中间数据的过程采样数据,并获得所述机器学习相关的数据相应的摘要信息;所述摘要信息包括训练摘要信息、过程摘要信息、以及测试摘要信息,其中,所述过程摘要信息基于所述过程采样数据生成,利用所述过程摘要信息建立所述机器学习的模型的训练过程与测试过程之间的关联;
所述第一节点将所述摘要信息作为预存摘要信息写入目标区块链交易,并生成与所述目标区块链交易相应的区块链交易标识;并将所述区块链交易提交到所述区块链的网络;
所述第一节点在所述第二节点发起验证请求时,向所述第二节点提供所述区块链交易标识和所述机器学习相关的数据;
所述第二节点根据所述区块链交易标识从所述区块链的网络中获取目标区块链交易;
所述第二节点从所述目标区块链交易提取所述预存摘要信息,所述预存摘要信息包括预存训练摘要信息、预存过程摘要信息、以及预存测试摘要信息;
所述第二节点按照所述预设摘要操作方式重新对所述第一节点提供的机器学习相关的数据进行处理,得到待验证摘要信息,所述待验证摘要信息包括待验证训练摘要信息、待验证过程摘要信息、以及待验证测试摘要信息;
所述第二节点将所述各预存摘要信息与所述第一节点提供的各待验证摘要信息进行相等性测试比对,以对所述第一节点提供的机器学习相关的数据进行验证;
其中,所述机器学习相关的数据包括训练相关数据、训练过程的中间数据和测试相关的数据;
所述第一节点按照预设摘要操作方式对机器学习相关的数据进行处理,获得相应的摘要信息的步骤,具体包括:
所述第一节点按照预设摘要操作方式对机器学习模型的训练相关数据进行处理,以获得训练摘要信息;
所述第一节点按照预设数据采样操作方式对所述机器学习模型的训练过程的中间数据实施采样操作,以获取过程采样数据;
所述第一节点按照所述预设摘要操作方式对所述过程采样数据进行处理,以获取过程摘要信息;
所述第一节点按照所述预设摘要操作方式对所述机器学习模型的测试相关的数据进行处理,以获取测试摘要信息;
其中,所述第一节点按照预设数据采样操作方式对所述机器学习模型的训练过程的中间数据实施采样操作,以获取过程采样数据的步骤,具体包括:
在所述第一节点上的模型训练组件对所述机器学习模型进行训练的过程中,周期性地调用所述模型训练组件中包含的采样函数;
其中,所述第一节点在所述采样函数每次被调用时,对当前时刻的采样记录、中间模型、训练日志、汇总文件等数据项目中的一项或多项实施采样;
所述模型训练组件在完成机器学习模型的训练之后,对于所述采样函数获得的每一次采样数据,以数据结构列表方式进行处理,以获取过程采样数据;
其中,所述对于所述采样函数获得的每一次采样数据,以数据结构列表方式进行处理,以获取过程采样数据的步骤,具体包括:
将所述采样函数获得的每一次采样数据中的各个数据项目组合为一个数据结构,将各个所述数据结构按照生成时间的先后顺序组织为一个数据结构列表,所述数据结构列表为过程采样数据。
2.如权利要求1所述的方法,其特征在于,所述预设摘要操作表征为接受任意长度的输入字节数组,通过哈希摘要算法的计算,生成一个固定长度的输出字节数组;
其中,所述输入字节数组为所述机器学习相关的数据,所述输出字节数组为摘要信息。
3.如权利要求2所述的方法,其特征在于,所述第一节点按照预设摘要操作方式对机器学习相关的数据进行处理的步骤,获得相应的摘要信息,包括:
基于哈希函数或哈希树,对所述机器学习相关的数据实施预设摘要操作,并获取摘要信息。
4.如权利要求1所述的方法,其特征在于,所述第二节点将所述各预存摘要信息与所述第一节点提供的各待验证摘要信息进行相等性测试比对,以对所述第一节点提供的机器学习相关的数据进行验证的步骤,具体包括:
所述第二节点将所述各预存摘要信息与所述第一节点提供的各待验证摘要信息进行相等性测试比对,在测试比对结果为所述预存训练摘要信息与所述待验证训练摘要信息相同、所述预存过程摘要信息与所述待验证过程摘要信息相同、且所述预存测试摘要信息与所述待验证测试摘要信息相同时,判定所述第一节点提供的机器学习相关的数据验证通过;否则,判定所述第一节点提供的机器学习相关的数据验证失败。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
将测试比对结果广播到所述区块链的网络。
6.一种基于区块链的机器学习数据存证系统,所述系统位于所述区块链的网络,所述区块链的网络包括多个区块链网络节点,所述区块链网络节点至少包括第一节点和第二节点;
所述第一节点,用于按照预设摘要操作方式对机器学习相关的数据进行处理,获得所述机器学习的模型训练过程的中间数据的过程采样数据,并获得所述机器学习相关的数据相应的摘要信息;所述摘要信息包括训练摘要信息、过程摘要信息、以及测试摘要信息,其中,所述过程摘要信息基于所述过程采样数据信息生成,并利用所述过程摘要信息建立所述机器学习的模型的训练过程与测试过程之间的关联;
所述第一节点,用于将所述摘要信息作为预存摘要信息写入目标区块链交易,并生成与所述目标区块链交易相应的区块链交易标识;并将所述区块链交易提交到所述区块链的网络;
所述第一节点,用于在所述第二节点发起验证请求时,向所述第二节点提供所述区块链交易标识和所述机器学习相关的数据;
所述第二节点,用于根据所述区块链交易标识从所述区块链的网络中获取目标区块链交易;
所述第二节点,用于从所述目标区块链交易提取所述预存摘要信息,所述预存摘要信息包括预存训练摘要信息、预存过程摘要信息、以及预存测试摘要信息;
所述第二节点,用于按照所述预设摘要操作方式重新对所述第一节点提供的机器学习相关的数据进行处理,得到待验证摘要信息,所述待验证摘要信息包括待验证训练摘要信息、待验证过程摘要信息、以及待验证测试摘要信息;
所述第二节点,用于将所述各预存摘要信息与所述第一节点提供的各待验证摘要信息进行相等性测试比对,以对所述第一节点提供的机器学习相关的数据进行验证。
7.如权利要求6所述的系统,其特征在于,每个区块链网络节点包括数据摘要组件、模型训练组件和节点控制组件;
数据摘要组件,用于按照预设摘要操作方式对机器学习模型的训练相关数据进行处理,以获得训练摘要信息;
所述模型训练组件,用于按照预设数据采样操作方式对所述机器学习模型的训练过程的中间数据实施采样操作,以获取过程采样数据;
数据摘要组件,用于按照所述预设摘要操作方式对所述过程采样数据进行处理,以获取过程摘要信息;
数据摘要组件,用于按照所述预设摘要操作方式对所述机器学习模型的测试相关的数据进行处理,以获取测试摘要信息;
所述节点控制组件,用于将所述摘要信息作为预存摘要信息写入目标区块链交易,并生成与所述目标区块链交易相应的区块链交易标识;并将所述区块链交易提交到所述区块链的网络。
CN202010816377.XA 2020-08-14 2020-08-14 一种基于区块链的机器学习数据存证方法和系统 Active CN112699414B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010816377.XA CN112699414B (zh) 2020-08-14 2020-08-14 一种基于区块链的机器学习数据存证方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010816377.XA CN112699414B (zh) 2020-08-14 2020-08-14 一种基于区块链的机器学习数据存证方法和系统

Publications (2)

Publication Number Publication Date
CN112699414A CN112699414A (zh) 2021-04-23
CN112699414B true CN112699414B (zh) 2024-03-15

Family

ID=75506533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010816377.XA Active CN112699414B (zh) 2020-08-14 2020-08-14 一种基于区块链的机器学习数据存证方法和系统

Country Status (1)

Country Link
CN (1) CN112699414B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12014606B2 (en) * 2020-12-09 2024-06-18 New York University System, method and computer-accessible medium for artificial intelligent market microstructure
WO2024042566A1 (ja) * 2022-08-22 2024-02-29 connectome.design株式会社 ニューラルネットワーク学習過程記録システム、ニューラルネットワーク学習過程記録方法及びプログラム
WO2024147292A1 (ja) * 2023-01-05 2024-07-11 学校法人芝浦工業大学 機械学習データ管理システム
US11991299B1 (en) * 2023-01-10 2024-05-21 Citibank, N.A. Systems and methods for facilitating use of artificial intelligence platforms trained on blockchain action lineages to conduct blockchain actions

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107292621A (zh) * 2017-06-22 2017-10-24 丁江 海量数据确权存证方法和节点
CN107864198A (zh) * 2017-11-07 2018-03-30 济南浪潮高新科技投资发展有限公司 一种基于深度学习训练任务的区块链共识方法
CN109639410A (zh) * 2018-10-31 2019-04-16 阿里巴巴集团控股有限公司 基于区块链的数据存证方法及装置、电子设备
CN110490305A (zh) * 2019-08-22 2019-11-22 腾讯科技(深圳)有限公司 基于区块链网络的机器学习模型处理方法及节点

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107292621A (zh) * 2017-06-22 2017-10-24 丁江 海量数据确权存证方法和节点
CN107864198A (zh) * 2017-11-07 2018-03-30 济南浪潮高新科技投资发展有限公司 一种基于深度学习训练任务的区块链共识方法
CN109639410A (zh) * 2018-10-31 2019-04-16 阿里巴巴集团控股有限公司 基于区块链的数据存证方法及装置、电子设备
CN110490305A (zh) * 2019-08-22 2019-11-22 腾讯科技(深圳)有限公司 基于区块链网络的机器学习模型处理方法及节点

Also Published As

Publication number Publication date
CN112699414A (zh) 2021-04-23

Similar Documents

Publication Publication Date Title
CN112699414B (zh) 一种基于区块链的机器学习数据存证方法和系统
US11743137B2 (en) Systems, methods, and apparatuses for implementing a metadata driven rules engine on blockchain using distributed ledger technology (DLT)
US11431486B2 (en) System or method to implement consensus on read on distributed ledger/blockchain
US11811769B2 (en) Systems, methods, and apparatuses for implementing a declarative, metadata driven, cryptographically verifiable multi-network (multi-tenant) shared ledger
US11876910B2 (en) Systems, methods, and apparatuses for implementing a multi tenant blockchain platform for managing Einstein platform decisions using distributed ledger technology (DLT)
US11824864B2 (en) Systems, methods, and apparatuses for implementing a declarative and metadata driven blockchain platform using distributed ledger technology (DLT)
US11451530B2 (en) Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment
US11875400B2 (en) Systems, methods, and apparatuses for dynamically assigning nodes to a group within blockchains based on transaction type and node intelligence using distributed ledger technology (DLT)
US11971874B2 (en) Systems, methods, and apparatuses for implementing efficient storage and validation of data and metadata within a blockchain using distributed ledger technology (DLT)
US20230342734A1 (en) Systems, methods, and apparatuses for implementing smart flow contracts using distributed ledger technologies in a cloud based computing environment
US10873457B1 (en) Data structure having internal self-references suitable for immutably representing and verifying data generated over time
US20190236562A1 (en) Systems, methods, and apparatuses for implementing document interface and collaboration using quipchain in a cloud based computing environment
US20190238316A1 (en) Systems, methods, and apparatuses for implementing intelligent consensus, smart consensus, and weighted consensus models for distributed ledger technologies in a cloud based computing environment
US20190236606A1 (en) Systems, methods, and apparatuses for implementing a virtual chain model for distributed ledger technologies in a cloud based computing environment
KR20200106000A (ko) 블록체인-기반 디지털 인증서를 구현하기 위한 시스템 및 방법
US11551229B2 (en) Payslip verification for blockchain transaction
WO2019223681A1 (en) Blockchain-based transaction platform with enhanced scalability, testability and usability
Nguyen Gradubique: An academic transcript database using blockchain architecture
Manevich et al. Redacting transactions from execute-order-validate blockchains
Khaleelullah et al. Verifcation of academic records using hyperledger fabric and ipfs
Alam et al. Utilizing hyperledger fabric based private blockchain and ipfs to secure educational certificate management
Lalitha et al. Digital Verification And Face Recognition
Bitjoka et al. Blockchain Study and Analysis with a View to Optimizing Security on the Aspects of Land Registry
Vaishnavi et al. A Secure Auditing Scheme to Provide Multi-Level
CN117807158A (zh) 基于用户可视化配置合约的数据上链方法、系统及设备

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