CN112990481A - 一种基于区块链的机器学习模型自动化评测方法 - Google Patents

一种基于区块链的机器学习模型自动化评测方法 Download PDF

Info

Publication number
CN112990481A
CN112990481A CN202110270724.8A CN202110270724A CN112990481A CN 112990481 A CN112990481 A CN 112990481A CN 202110270724 A CN202110270724 A CN 202110270724A CN 112990481 A CN112990481 A CN 112990481A
Authority
CN
China
Prior art keywords
evaluation
machine learning
learning model
model
data
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
Application number
CN202110270724.8A
Other languages
English (en)
Other versions
CN112990481B (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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN202110270724.8A priority Critical patent/CN112990481B/zh
Publication of CN112990481A publication Critical patent/CN112990481A/zh
Application granted granted Critical
Publication of CN112990481B publication Critical patent/CN112990481B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种基于区块链的机器学习模型自动化评测方法,包括:建立区块链系统及基于区块链系统的评测平台,区块链系统作为数据存储、数据处理及自动化评测的评测实体,评测平台用于处理机器学习模型的正确率评测;进行机器学习模型的评测。机器学习模型来源包括用户自主上传或第三方上传,自动化评测分为:平台评测与用户评测,其中平台评测使用评测平台拥有的物理机器,通过在适配的公共机器学习模型运行环境中运行机器学习模型数据来得出该模型正确率,以用于和上传时该模型自主声明的正确率做对比,用户评测需要用户自行安装平台的机器学习模型执行环境,在用户自己的机器上进行评测,并将评测结果上传至评测平台。

Description

一种基于区块链的机器学习模型自动化评测方法
技术领域
本发明涉及区块链技术领域,特别是涉及一种基于区块链的机器学习模型自动化评测方法。
背景技术
机器学习技术作为人工智能浪潮中的重要组成部分,为各种技术手段提供了坚实的理论基础和实现支持,机器学习技术在各个领域的落地与应用正在深刻的改变着人类社会的运行方式。机器学习模型作为机器学习技术的可用性基础,缺乏一种统一、可信的自动化评测方法。区块链技术提供了可信的分布式存储平台,利用区块链的可编程性,结合对机器学习模型的链上自动化运行,可实现基于区块链的机器学习模型自动化评测方案,以解决在科研领域中机器学习模型的统一化评判问题。
对机器学习模型的评测方式的改进,首先要了解机器学习模型本身的运行形式。机器学习技术作为一种处理实际问题的方法,其通常流程为:建立机器学习模型、模型代码实现、优化与测试、投入生产环境。其中,模型代码实现是决定一个机器学习模型是否可用的关键步骤,是科研领域范围内非常重要的环节。评价机器学习模型的好坏就是观察该模型代码实现在测试数据集上的表现。所以,为了更加公正的评价机器学习模型,相关领域将会指定标准的数据集,例如计算机视觉领域的ImageNet、MNIST等。这些数据集都是开源的,任何人均可以通过网络将其下载到本地并且使用。相关问题领域的科研人员将以这些标准数据集作为自己机器学习模型的数据原材料,基于此建立差异化、定制化的机器学习模型,以处理自身领域的对应问题。
从计算机程序运行的角度出发,机器学习模型的代码实现本身可以被认为是一种对特定格式数据进行处理,并输出结果的程序。机器学习模型在编码完成后,首先会使用训练集数据进行模型训练,训练集数据作为真实世界中的数据,将会被转换成机器学习模型可识别的数据格式并放入机器学习模型中,通过不断的测试、迭代、优化等手段来提高机器学习模型的精准度。在机器学习模型的训练完成后,将会使用测试集数据来验证机器学习模型的正确率。简而言之,机器学习的输入是固定格式的数据,输出是对输入数据的判定结果。相较于其他的计算机程序而言,机器学习模型代码实现有着输入输出格式规范,结果可复现,程序复杂性较低,外部依赖关系较简单等特点,这些特点是实现机器学习模型的自动化评测的基础。如Kaggle等数据科学竞赛平台等均实现了对特定问题的模型自动化评测,平台通过描述问题、规范训练集数据格式、提供评测环境等方式,实现了不同参与者模型的统一评测与评比。所以,目前对于机器学习模型的自动化评测技术是较为成熟的。
针对面向科研领域的机器学习模型。通常情况下,科研领域的机器学习模型由科研工作者创造完成后,将会以科研论文的形式进行发表,论文中将会对其模型进行详细的描述:如面向的问题,模型的理论论证、详细设计等;最为重要的是展示该模型在公共测试集上的正确率——作为该论文的核心价值与科研竞争力。然而,由于科研本身的特殊性质,存在知识产权保护等方面的问题,从而导致开放模型源代码变得困难重重。并且大量的机器学习模型存在一些非理论领域的成分,如编程技巧等,这些成为使模型取得良好表现的重要组成成分。由于源代码无法开发、论文中又无须提及,导致相关领域的其他工作者难以复现机器学习模型,从而减弱了该模型的可用度与表现可信度。机器学习模型的训练代码和模型数据由于各式各样的原因无法开源,导致了某些科研论文的结果难以复现。
因此需要采用新的对于机器学习模型的评测方式,以克服现有技术中的一些限制和缺陷。
发明内容
本发明的目的在于提供一种基于区块链的机器学习模型自动化评测方法,以群治的方式,实现公平、公正、同时保护知识产权的自动化评测方案,为机器学习模型的正确率验证提供一种公平、公正、公开的保证,以解决上述背景技术中提出的问题。
本发明的目的在于提供一种基于区块链的机器学习模型自动化评测方法,包括:
步骤1,建立区块链系统以及基于区块链系统的评测平台,其中所述区块链系统作为数据存储、数据处理以及自动化评测的评测实体,所述评测平台用于处理机器学习模型的正确率评测;
步骤2,进行机器学习模型的评测。
优选的,所述步骤1中所述区块链系统为链式存储结构,并且可编程。
优选的,所述机器学习模型的来源包括用户自主上传或第三方上传,所述机器学习模型符合自动化评测的标准,包括:拥有完整已加密的机器学习模型数据;拥有指定的公开测试集,所述测试集被整个业界承认;所述评测平台的公共机器学习模型运行环境支持其运行;具有自主声明的正确率;所述机器学习模型会作为一个公开的事件,在评测平台上公开,所有的用户均可见。
优选的,所述步骤2中所述机器学习模型的评测分为两种形式:平台评测与用户评测,其中所述平台评测使用评测平台拥有的物理机器,通过在适配的公共机器学习模型运行环境中运行机器学习模型数据来得出该模型正确率,以用于和上传时该模型自主声明的正确率做对比,所述用户评测需要用户自行安装平台的机器学习模型执行环境,在用户自己的机器上进行评测,并且将评测结果上传至评测平台。
优选的,所述平台评测采用基于智能合约驱动的模型评测和基于共识的评测结果投票,包括如下步骤:
评测平台发布了新的模型评测事件,以交易的形式广播到区块链网络;
在执行该交易时,每一个节点以智能合约的形式,调用本地的公共机器学习模型运行环境,运行可执行体并得到模型的正确率;
节点广播自己得到的正确率至整个区块链网络,作为共识投票;
每一个节点将收到的共识投票进行汇总,对比和被运行的机器学习模型自主声明的正确率,记为a,若整个投票中,正确率超过a的投票数量超过投票总数的2/3,则认为该模型自主声明的正确率是可信的;反之则认为是不可信的;
将平台评测的投票结果上链,保证整个平台评测的投票生成过程公平、公正、公开。
优选的,所述评测平台支持以加密的形式上传模型,用户将指定加密算法,并使用该算法将机器学习模型数据进行加密后上传至评测平台,同时上传自己的秘钥,所述评测平台将会使用基于智能合约的方式将机器学习模型数据的密文解密为明文,以进行正常的评测流程,平台将不对明文进行记录和公开,以保证用户的隐私安全。
优选的,所述用户评测在自己的机器上安装公共机器学习运行环境,并且使用评测平台的配套工具,即用户客户端以参与评测投票工作,包括:
评测平台发布了新的模型评测事件,用户客户端收到该事件;
用户客户端从评测平台下载相应的可执行体;
用户客户端运行可执行体,得到模型的正确率,以及运行证明;
用户客户端将模型正确率和运行证明打包作为投票数据,上传至评测平台;
平台将处理所有用户评测的投票,以其中的运行证明判断该投票是否可用,将可用投票中正确率大于等于该模型自主声明正确率的记为赞成票,反之记为反对票;
将所有用户评测的投票结果汇总上链,保证整个用户评测的投票生成过程公平、公正、公开。
优选的,所述步骤2采用基于运行证明的评测方法,在测试模型的过程中加入确定性的输出信息以证明用户真实运行过模型,通过在模型运行脚本中设置自定义确定性问题,结合用户客户端和公共机器学习模型运行环境,可生成对应的运行证明,所述用户评测的流程采用如下的函数表达式表示:
Output=PublicExecutor(Script,Model,TestSet,Skey)
Script作为指导模型运行的脚本,需在脚本代码中设置问题P。
优选的,所述评测平台使用账户模型作为区块链系统的数据组织模型,所述评测平台的数据作为区块链系统中的应用层数据,将会以账户数据的形式存放在区块链系统中;所述评测平台的数据处理均基于区块链系统:用户的注册、机器学习模型的上传、平台自动化评测、评测结果投票、投票结果统计等过程均使用区块链进行记录,并且使用区块链作为数据存储技术,链上存放的数据类型分类规划为如下类型:
测试数据集:机器学习模型的输入数据,通常数据集会公开给所有人使用,相关工作者们使用公开的数据集测试自己的机器学习模型,并且模型的正确率;
问题统一描述:通常为自然语言,其内容为对某一种问题的具体描述,针对某一个公开的问题,通过官方或业界共识的方式生成对应的问题统一描述,相关工作者将会针对问题进行机器学习模型的建立;
机器学习模型:机器学习模型的具体数据,包括区块链系统可执行的机器学习模型代码和资源文件;
自动化评测过程数据:模型的自动化评测会生成过程数据,包括被评测机器学习模型在运行时的数据摘要,评测投票数据。
优选的,所述步骤2使用公共机器学习模型运行环境进行模型测试,得到所述模型的正确率,包括:
上传机器学习模型数据至平台;
索引相应问题的测试数据集;
生成可执行实体;
公共机器学习模型运行环境载入可执行实体与对应秘钥;
获取运行结果;
其中,所述可执行实体拥有测试集数据、机器学习模型数据密文与一段执行脚本,执行脚本用于调用机器学习模型数据和测试集数据,生成正确率结果;所述公共机器学习模型运行环境仅用于接收固定格式的可执行实体,并且输出固定格式的数据,所述数据中存储对应机器学习模型执行过后的正确率,所述步骤2的流程用如下的函数表达式表示:
Output=PublicExecutor(Script,Model,TestSet,Skey)
其中,Output为输出的结果,即正确率等;PublicExecutor函数代表公共机器学习模型运行环境,每一次运行将会接收4个输入参数:Script为运行模型的启动脚本、Model为机器学习模型数据密文、TestSet为公共测试集、Skey为密钥;其中,Script和TestSet为明文数据,Model将需要由Skey解密后生成明文方可使用;解密的过程在PublicExecutor中执行。
本发明的有益效果:
公共机器学习运行模型的系统调用客观上阻止了参与评测的用户进行虚假投票。参与评测的根本要求是用户需要真实而公正的使用公共机器学习运行模型运行需要评测的模型,并且将评测结果发送回评测平台。公共机器学习运行模型在评测结束后,使用基于加密的相关技术,获取了发布模型的用户指定的公钥——由于这一过程发生在模型评测结束、正确率数据已经获取成功后,该过程本身的发生就已经要求参与评测的用户需要真正的运行模型。在公共机器学习运行模型中对正确率数据加密,使得输出结果屏蔽了参与评测的用户,用户无法在模型测试结果生成后恶意修改该结果。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:
附图1为根据本发明实施例的平台评测方法流程图;
附图2为根据本发明实施例的用户评测方法流程图。
具体实施方式
一、本实施例的区块链系统与评测平台
本方案中,需要一个区块链系统作为评测实体。区块链网络将作为数据存储、数据处理以及自动化评测等功能的实现主体,为整个方案提供公开、公平、可信的数据系统,并且具备区块链技术的各种特点:如链式存储、可编程等。
基于区块链系统之上,将搭建一个评测平台,参与者以用户的形式存在于平台中。评测平台的主要任务是处理机器学习模型的正确率评测。机器学习模型的来源可以有多种形式:用户自主上传、第三方上传等。上传的机器学习模型需要符合自动化评测的标准:
1、拥有完整的机器学习模型数据(已加密)
2、拥有指定的公开测试集(该测试集应该被整个业界承认)
3、评测平台的公共机器学习模型运行环境支持其运行
4、自主声明的正确率
上传的机器学习模型将会等待评测。被评测的机器学习模型将会作为一个公开的事件,在评测平台上公开,所有的用户均可见。
机器学习模型的评测可分为两种形式:平台评测与用户评测。平台评测将使用评测平台拥有的物理机器,通过运行机器学习模型数据来得出该模型正确率,以用于和上传时该模型自主声明的正确率做对比。用户评测则需要用户自行安装平台的机器学习模型执行环境,在用户自己的机器上进行评测,并且将评测结果上传至评测平台。
对于某一个机器学习模型的评测事件中,当平台收集了足够的评测信息后,将会进行公开投票:对于每一条评测信息,将读取其中的正确率结果,若该结果大于等于模型自重声明的正确率,则记为赞成票,否则为反对票。赞成票过半则平台认定该模型正确率是真实可靠的,否则认为该模型的正确率是虚假的。投票结果将会在平台中进行公告,使得每一个用户得知。
平台的数据处理均基于区块链系统:用户的注册、机器学习模型的上传、平台自动化评测、评测结果投票、投票结果统计等过程均使用区块链进行记录,保证了这个过程的公正、公平、公开,防止中心化系统中使用后台等方式篡改评测结果、投票信息及投票结果等,有利于反应每一个机器学习模型的真实正确率水平及模型可复现性。
二、链上数据管理方案
本实施例中使用区块链作为数据存储技术,链上存放的数据类型可分类规划为如下类型:
1、测试数据集:机器学习模型的输入数据,通常数据集会公开给所有人使用,相关工作者们使用公开的数据集测试自己的机器学习模型,并且模型的正确率。
2、问题统一描述:通常为自然语言,其内容为对某一种问题的具体描述。针对某一个公开的问题,通过官方或业界共识的方式生成对应的问题统一描述,相关工作者将会针对问题进行机器学习模型的建立。
3、机器学习模型:机器学习模型的具体数据,包括但不限于区块链系统可执行的机器学习模型代码和资源文件(通常机器学习模型的源代码难以公开)
4、自动化评测过程数据:模型的自动化评测会生成过程数据,包括被评测机器学习模型在运行时的数据摘要,评测投票数据等。这些数据的存在为自动化评测的可信性提供了基础。
本实施例使用账户模型作为区块链系统的数据组织模型。上述数据作为区块链系统中的应用层数据,将会以账户数据的形式存放在区块链系统中。
三、本实施例的公共机器学习模型运行环境
本方案使用Python作为区块链系统的智能合约编程语言,以支持绝大多数的机器学习模型。Python运行环境本身已经可以完成机器学习模型的运行,并且Python基于解释器和虚拟机的运行模式,本方案中将使用公共机器学习运行环境进行模型测试,得到该模型的正确率,其过程如下:
1、上传机器学习模型数据至平台
2、索引相应问题的测试数据集
3、生成可执行实体
4、公共机器学习模型运行环境载入可执行实体与对应秘钥
5、获取运行结果
在如上的步骤中,可执行实体是相对于公共机器学习模型运行环境的概念。本质上,可执行实体需要拥有测试集数据、机器学习模型数据密文与一段执行脚本,执行脚本用于调用机器学习模型数据和测试集数据,生成正确率结果。公共机器学习模型运行环境仅用于接收固定格式的可执行实体,并且输出固定格式的数据(这些数据中将会存储对应机器学习模型执行过后的正确率,以及其他的相关数据信息)。其流程可以用如下的函数表达式表示:
Output=PublicExecutor(Script,Model,TestSet,Skey)
其中,Output为输出的结果,即正确率等;PublicExecutor函数代表公共机器学习模型运行环境,每一次运行将会接收4个输入参数:Script为运行模型的启动脚本、Model为机器学习模型数据密文、TestSet为公共测试集、Skey为密钥。其中,Script和TestSet为明文数据,Model将需要由Skey解密后生成明文方可使用。解密的过程在PublicExecutor中执行。
公共机器学习运行环境是一套基于Python运行环境、支持多种机器学习依赖的运行容器,可视为是一个可迁移、跨平台的独立模块。其既可以集成在评测平台中,以服务的形式存在;也可以作为独立的单机程序供用户在本地安装使用。除了面向常规机器学习模型的测试需求之外,公共机器学习模型运行环境将会支持一些自定义的系统调用,完成特定的功能。
四、本实施例的平台评测——基于区块链技术的评测方案
自动化评测可以分为两种形式:平台评测和用户评测。
平台评测即评测平台自身进行评测。平台拥有一些用于自动化评测的机器,其适配了公共机器学习模型运行环境。平台评测使用了基于区块链技术的评测方案,主要使用了基于智能合约驱动的模型评测和基于共识的评测结果投票。方案具体的流程如图1所示:
1、评测平台发布了新的模型评测事件,以交易的形式广播到区块链网络
2、在执行该交易时,每一个节点以智能合约的形式,调用本地的公共机器学习模型运行环境,运行可执行体并得到模型的正确率
3、节点广播自己得到的正确率至整个区块链网络,作为共识投票
4、每一个节点将收到的共识投票进行汇总,对比和被运行的机器学习模型自主声明的正确率(记为a)。若整个投票中,正确率超过a的投票数量超过投票总数的2/3,则认为该模型自主声明的正确率是可信的;反之则认为是不可信的
5、将平台评测的投票结果上链,保证整个平台评测的投票生成过程公平、公正、公开,平台评测的结果可以认为是评测平台通过投票产生的,具有一定程度的公信力。
为了保证用户的隐私,评测平台支持以加密的形式上传模型。用户将指定加密算法,并使用该算法将机器学习模型数据进行加密后上传至评测平台,同时上传自己的秘钥。评测平台将会使用基于智能合约的方式将机器学习模型数据的密文解密为明文,以进行正常的评测流程,平台将不对明文进行记录和公开,以保证用户的隐私安全。
五、本实施例的用户评测——基于运行证明的评测方案
用户评测作为机器学习正确率投票的另一个来源,其主导的群体是评测平台的用户。在本方实施例中,评测平台的用户面向的是广泛的机器学习从业者或集团:由于行业的相关性,这些用户群体有着自发的对于“机器学习模型正确率的可信度”的强烈关注,并且对于不可信、无法复现的机器学习模型有着更强的纠正偏向——因为,当一个问题领域对应的机器学习模型正确率被“难以复现的论文”将正确率阈值推向一个新高度时,很多现存的、正确率低于该论文但高于上一个正确率阈值的工作将会变得失去意义。
用户评测的流程和平台评测类似:用户需要在自己的机器上安装公共机器学习运行环境,并且使用评测平台的配套工具(即用户客户端)以参与评测投票工作。用户评测的流程如图2所示:
1、评测平台发布了新的模型评测事件,用户客户端收到该事件;
2、用户客户端从评测平台下载相应的可执行体;
3、用户客户端运行可执行体,得到模型的正确率,以及运行证明;
4、用户客户端将模型正确率和运行证明打包作为投票数据,上传至评测平台;
5、平台将处理所有用户评测的投票,以其中的运行证明判断该投票是否可用,将可用投票中正确率大于等于该模型自主声明正确率的记为赞成票,反之记为反对票;
6、将所有用户评测的投票结果汇总上链,保证整个用户评测的投票生成过程公平、公正、公开。
由于用户客户端是开源软件,不可避免的会出现用户对客户端进行源代码级别的修改,以达到用户自定义的功能实现——这导致了一个重要的问题:用户可以通过更改用户客户端的投票逻辑,恶意发送虚假投票信息,造成正确的机器学习模型无法投票通过;或者蓄意抱团使得虚假的机器学习模型投票通过。在该过程中,用户无需调用公共机器学习运行环境就可以进行投票。
【注:为用户提取模型明文加大难度,但是要保证投票是真实的】
为了防止该类问题造成的不良影响。本方案实现了一种基于运行证明的评测方案:在测试模型的过程中加入确定性的输出信息以证明用户真实运行过模型。
广义上当程序的运行中没有随机过程时,通常此类程序的目标是在异构的执行环境下均可获得相同的执行结果——如区块链系统中交易的执行结果是需要不同节点共识的,不同节点可能处于不同的物理机器、操作系统等,但是对同一个交易所调用的智能合约的运行结果是一致的。进一步,若执行环境相同(如使用相同的虚拟机),可以通过比较程序运行过程中执行环境的中间数据:如最大栈深度、PC总跳变数或内存消耗记录等,可以更加有力的证明不同的执行环境通过相同的执行过程得到了相同的执行数据——即任何一个程序的执行主体既可以声明自己的执行结果与集体相同,又可以证明自己的执行过程与集体相同,最终证明自己是真实运行、正确运行过该程序的。
然而,现代机器学习模型中通常会引入随机过程,随机过程由运行时生成的随机数进行控制,而随机数的生成与运行时的系统环境是强相关的。所以,同一个模型在不同的时间、不同的物理机器上运行同一个测试集,可能得到的正确率也不完全一样。所以,通过对比运行模型的过程数据输出(如虚拟机运行时最大栈深度等)是不合适的。
在本方实施例中,通过在模型运行脚本中设置自定义确定性问题,结合用户客户端和公共机器学习模型运行环境,可生成对应的运行证明。用户评测的流程同样可以用如下的函数表达式表示:
Output=PublicExecutor(Script,Model,TestSet,Skey)
Script作为指导模型运行的脚本,需在脚本代码中设置问题P。Script在设置了P后的可能形式如下:
Figure BDA0002974270030000101
在1~8行是Script显式的内容,用于输出模型的正确率。发起评测的用户需要额外指定一个Cons(见第6行)。公共机器学习运行模型在执行时,将会隐式的添加9~12行所描述的功能(隐式添加即Script中不存在,而公共机器学习运行模型默认实现)。第10行,公共机器学习运行模型将使用系统调用_problem_(),获取Cons的值并且对评测平台发出请求,并获取数据P_Result,作为运行证明。第12行,公共机器学习运行模型将使用系统调用_combine_(),将模型的结果和运行证明组合成Output,作为用户评测的投票内容。
由于公共机器学习运行模型具有一定的独立性,可保证其运行状态难以被人为恶意操控。系统调用_problem_需要参数Cons,Cons的来源推荐发起评测的用户指定一个Script运行时生成的确定性常量,但是也可以设置成默认值或空值。发起评测的用户事先会对本次评测准备多组公私钥对KSet,并发布到评测平台上(仅本用户和平台可见),当公共机器学习运行模型PE发生_problem_调用后,选择一对公私钥对的公钥发送给PE,作为Script中的P_Result。PE在执行_combine_调用时,将P_Result和Result进行字符串拼接并使用P_Result作为公钥进行加密,得到的密文为Output。对于PE的执行方——即参与评测的用户而言,无法获取P_Result,且Output不可读,便不存在捏造PE执行结果与恶意投票的机会。Output作为投票信息发送至评测平台后,评测平台使用KSet中的所有私钥依次对Output进行解密,当发现使用私钥a解密结果字符串拥有私钥a对应公钥b的前缀时,可以认为解密成功,解密结果字符串中删去公钥b前缀后,余下的内容即Output中记录的PE执行模型正确率数据。
本实施例的方案,公共机器学习运行模型的系统调用客观上阻止了参与评测的用户进行虚假投票。参与评测的根本要求是用户需要真实而公正的使用公共机器学习运行模型运行需要评测的模型,并且将评测结果发送回评测平台。公共机器学习运行模型在评测结束后,使用基于加密的相关技术,获取了发布模型的用户指定的公钥——由于这一过程发生在模型评测结束、正确率数据已经获取成功后,该过程本身的发生就已经要求参与评测的用户需要真正的运行模型。在公共机器学习运行模型中对正确率数据加密,使得输出结果屏蔽了参与评测的用户,用户无法在模型测试结果生成后恶意修改该结果。
虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。

Claims (10)

1.一种基于区块链的机器学习模型自动化评测方法,其特征在于包括:
步骤1,建立区块链系统以及基于区块链系统的评测平台,其中所述区块链系统作为数据存储、数据处理以及自动化评测的评测实体,所述评测平台用于处理机器学习模型的正确率评测;
步骤2,进行机器学习模型的评测。
2.根据权利要求1所述的一种基于区块链的机器学习模型自动化评测方法,其特征在于:所述步骤1中所述区块链系统为链式存储结构,并且可编程。
3.根据权利要求1所述的一种基于区块链的机器学习模型自动化评测方法,其特征在于:所述机器学习模型的来源包括用户自主上传或第三方上传,所述机器学习模型符合自动化评测的标准,包括:拥有完整已加密的机器学习模型数据;拥有指定的公开测试集,所述测试集被整个业界承认;所述评测平台的公共机器学习模型运行环境支持其运行;具有自主声明的正确率;所述机器学习模型会作为一个公开的事件,在评测平台上公开,所有的用户均可见。
4.根据权利要求1所述的一种基于区块链的机器学习模型自动化评测方法,其特征在于所述步骤2中所述机器学习模型的评测分为两种形式:平台评测与用户评测,其中所述平台评测使用评测平台拥有的物理机器,通过在适配的公共机器学习模型运行环境中运行机器学习模型数据来得出该模型正确率,以用于和上传时该模型自主声明的正确率做对比,所述用户评测需要用户自行安装平台的机器学习模型执行环境,在用户自己的机器上进行评测,并且将评测结果上传至评测平台。
5.根据权利要求4所述的一种基于区块链的机器学习模型自动化评测方法,其特征在于所述平台评测采用基于智能合约驱动的模型评测和基于共识的评测结果投票,包括如下步骤:
评测平台发布了新的模型评测事件,以交易的形式广播到区块链网络;
在执行该交易时,每一个节点以智能合约的形式,调用本地的公共机器学习模型运行环境,运行可执行体并得到模型的正确率;
节点广播自己得到的正确率至整个区块链网络,作为共识投票;
每一个节点将收到的共识投票进行汇总,对比和被运行的机器学习模型自主声明的正确率,记为a,若整个投票中,正确率超过a的投票数量超过投票总数的2/3,则认为该模型自主声明的正确率是可信的;反之则认为是不可信的;
将平台评测的投票结果上链,保证整个平台评测的投票生成过程公平、公正、公开。
6.根据权利要求5所述的一种基于区块链的机器学习模型自动化评测方法,其特征在于:所述评测平台支持以加密的形式上传模型,用户将指定加密算法,并使用该算法将机器学习模型数据进行加密后上传至评测平台,同时上传自己的秘钥,所述评测平台将会使用基于智能合约的方式将机器学习模型数据的密文解密为明文,以进行正常的评测流程,平台将不对明文进行记录和公开,以保证用户的隐私安全。
7.根据权利要求4所述的一种基于区块链的机器学习模型自动化评测方法,其特征在于所述用户评测在自己的机器上安装公共机器学习运行环境,并且使用评测平台的配套工具,即用户客户端以参与评测投票工作,包括:
评测平台发布了新的模型评测事件,用户客户端收到该事件;
用户客户端从评测平台下载相应的可执行体;
用户客户端运行可执行体,得到模型的正确率,以及运行证明;
用户客户端将模型正确率和运行证明打包作为投票数据,上传至评测平台;
平台将处理所有用户评测的投票,以其中的运行证明判断该投票是否可用,将可用投票中正确率大于等于该模型自主声明正确率的记为赞成票,反之记为反对票;
将所有用户评测的投票结果汇总上链,保证整个用户评测的投票生成过程公平、公正、公开。
8.根据权利要求1-7任一所述的一种基于区块链的机器学习模型自动化评测方法,其特征在于:所述步骤2采用基于运行证明的评测方法,在测试模型的过程中加入确定性的输出信息以证明用户真实运行过模型,通过在模型运行脚本中设置自定义确定性问题,结合用户客户端和公共机器学习模型运行环境,可生成对应的运行证明,所述用户评测的流程采用如下的函数表达式表示:
Output=PublicExecutor(Script,Model,TestSet,Skey)
Script作为指导模型运行的脚本,需在脚本代码中设置问题P。
9.根据权利要求1所述的一种基于区块链的机器学习模型自动化评测方法,其特征在于:所述评测平台使用账户模型作为区块链系统的数据组织模型,所述评测平台的数据作为区块链系统中的应用层数据,将会以账户数据的形式存放在区块链系统中;所述评测平台的数据处理均基于区块链系统:用户的注册、机器学习模型的上传、平台自动化评测、评测结果投票、投票结果统计过程均使用区块链进行记录,并且使用区块链作为数据存储技术,链上存放的数据类型分类规划为如下类型:
测试数据集:机器学习模型的输入数据,通常数据集会公开给所有人使用,相关工作者们使用公开的数据集测试自己的机器学习模型,并且模型的正确率;
问题统一描述:通常为自然语言,其内容为对某一种问题的具体描述,针对某一个公开的问题,通过官方或业界共识的方式生成对应的问题统一描述,相关工作者将会针对问题进行机器学习模型的建立;
机器学习模型:机器学习模型的具体数据,包括区块链系统可执行的机器学习模型代码和资源文件;
自动化评测过程数据:模型的自动化评测会生成过程数据,包括被评测机器学习模型在运行时的数据摘要,评测投票数据。
10.根据权利要求1所述的一种基于区块链的机器学习模型自动化评测方法,其特征在于:所述步骤2使用公共机器学习模型运行环境进行模型测试,得到所述模型的正确率,包括:
上传机器学习模型数据至平台;
索引相应问题的测试数据集;
生成可执行实体;
公共机器学习模型运行环境载入可执行实体与对应秘钥;
获取运行结果;
其中,所述可执行实体拥有测试集数据、机器学习模型数据密文与一段执行脚本,执行脚本用于调用机器学习模型数据和测试集数据,生成正确率结果;所述公共机器学习模型运行环境仅用于接收固定格式的可执行实体,并且输出固定格式的数据,所述数据中存储对应机器学习模型执行过后的正确率,所述步骤2的流程用如下的函数表达式表示:
Output=PublicExecutor(Script,Model,TestSet,Skey)
其中,Output为输出的结果,即正确率等;PublicExecutor函数代表公共机器学习模型运行环境,每一次运行将会接收4个输入参数:Script为运行模型的启动脚本、Model为机器学习模型数据密文、TestSet为公共测试集、Skey为密钥;其中,Script和TestSet为明文数据,Model将需要由Skey解密后生成明文方可使用;解密的过程在PublicExecutor中执行。
CN202110270724.8A 2021-03-12 2021-03-12 一种基于区块链的机器学习模型自动化评测方法 Active CN112990481B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110270724.8A CN112990481B (zh) 2021-03-12 2021-03-12 一种基于区块链的机器学习模型自动化评测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110270724.8A CN112990481B (zh) 2021-03-12 2021-03-12 一种基于区块链的机器学习模型自动化评测方法

Publications (2)

Publication Number Publication Date
CN112990481A true CN112990481A (zh) 2021-06-18
CN112990481B CN112990481B (zh) 2022-10-28

Family

ID=76335072

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110270724.8A Active CN112990481B (zh) 2021-03-12 2021-03-12 一种基于区块链的机器学习模型自动化评测方法

Country Status (1)

Country Link
CN (1) CN112990481B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168446A (zh) * 2022-02-10 2022-03-11 浙江大学 一种面向移动端运行算法模型的模拟评测方法及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110378463A (zh) * 2019-07-15 2019-10-25 北京智能工场科技有限公司 一种人工智能模型标准化训练平台及自动化系统
CN110517020A (zh) * 2019-08-27 2019-11-29 腾讯科技(深圳)有限公司 基于区块链网络的项目开发方法及区块链网络的节点
CN111339201A (zh) * 2020-02-28 2020-06-26 中国工商银行股份有限公司 基于区块链的测评方法及系统
CN111507477A (zh) * 2019-01-31 2020-08-07 杭州深想科技有限公司 一种基于区块链的自动化机器学习平台
CN111832606A (zh) * 2020-05-27 2020-10-27 东南大学 基于机器学习竞赛的区块链架构
CN111950738A (zh) * 2020-08-10 2020-11-17 中国平安人寿保险股份有限公司 机器学习模型优化效果评估方法、装置、终端及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111507477A (zh) * 2019-01-31 2020-08-07 杭州深想科技有限公司 一种基于区块链的自动化机器学习平台
CN110378463A (zh) * 2019-07-15 2019-10-25 北京智能工场科技有限公司 一种人工智能模型标准化训练平台及自动化系统
CN110517020A (zh) * 2019-08-27 2019-11-29 腾讯科技(深圳)有限公司 基于区块链网络的项目开发方法及区块链网络的节点
CN111339201A (zh) * 2020-02-28 2020-06-26 中国工商银行股份有限公司 基于区块链的测评方法及系统
CN111832606A (zh) * 2020-05-27 2020-10-27 东南大学 基于机器学习竞赛的区块链架构
CN111950738A (zh) * 2020-08-10 2020-11-17 中国平安人寿保险股份有限公司 机器学习模型优化效果评估方法、装置、终端及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168446A (zh) * 2022-02-10 2022-03-11 浙江大学 一种面向移动端运行算法模型的模拟评测方法及设备

Also Published As

Publication number Publication date
CN112990481B (zh) 2022-10-28

Similar Documents

Publication Publication Date Title
CN107111710B (zh) 用于基于安全和可靠标识的计算的方法和布置装置
CN1961525B (zh) 移动智能数据载体和动态数据报转换承启的网络通讯系统
CN106055936B (zh) 可执行程序数据包加密/解密方法及装置
CN109460966A (zh) 基于请求方类别的合同签订方法、装置及终端设备
CN110932859B (zh) 用户信息的处理方法、装置、设备及可读存储介质
CN110020526A (zh) 基于区块链身份认证的审批方法、装置及存储介质
EP4216077A1 (en) Blockchain network-based method and apparatus for data processing, and computer device
CN105408912A (zh) 处理认证和资源许可
CN107872447A (zh) 电子装置、服务器、通信系统及通信方法
CN104378388B (zh) 可执行文件运行控制方法及装置
CN109361508A (zh) 数据传输方法、电子设备及计算机可读存储介质
CN111460400A (zh) 一种数据处理方法、装置及计算机可读存储介质
CN112613601A (zh) 神经网络模型更新方法、设备及计算机存储介质
CN106559386B (zh) 一种认证方法及装置
CN112990481B (zh) 一种基于区块链的机器学习模型自动化评测方法
CN112039730A (zh) 一种加密算法的性能评估方法及存储介质
CN111597586B (zh) 一种区块链隐私保护方法、系统及装置
CN113709181A (zh) 基于浏览器插件的网站登录方法、装置、设备及存储介质
CN109684802A (zh) 一种向用户提供人工智能平台的方法及系统
Ma et al. Finding flaws from password authentication code in android apps
CN112634040A (zh) 一种数据处理方法及装置
CN112084509A (zh) 一种基于生物识别技术的区块链密钥生成方法及系统
CN109889342A (zh) 接口测试鉴权方法、装置、电子设备及存储介质
CN116032494B (zh) 数据交互方法、区块链预言机、设备及介质
CN117473500A (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