一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

机器学习模型的训练方法和调用方法以及机器学习系统与流程

2022-02-20 22:24:36 来源:中国专利 TAG:


1.本说明书实施例属于机器学习技术领域,尤其涉及一种机器学习模型的训练方法和调用方法以及机器学习系统。


背景技术:

2.作为一门人工智能的科学,机器学习可以根据数据或以往的经验来优化计算机程序的性能。在机器学习中,一般当所提供的训练数据越多,所训练出来的机器学习模型的准确率也就越高。因此,拥有大量数据的机构或者企业通常可以训练出质量较好的机器学习模型。然而,出于隐私保护和数据安全等方面的考虑,这样的机器学习模型通常仅限于由该模型的训练者本身使用,导致这些数据和相应的模型的价值难以被充分地利用。因此,需要提供一种有效的方案来更好地实现和保护数据和模型的价值。


技术实现要素:

3.本发明的目的在于提供一种机器学习模型的训练方法和调用方法以及机器学习系统,以更好地实现和保护数据和模型的价值。
4.根据本说明书一个或多个实施例的第一方面,提供了一种机器学习模型的训练方法,包括:
5.由可验证计算引擎平台获取一个或多个参与者中的每个参与者的包括训练数据的第一训练数据集;
6.在所述可验证计算引擎平台的可信执行环境中,根据所述一个或多个参与者的所有第一训练数据集获取水印化训练数据集,其中,所述水印化训练数据集包括具有水印标签的水印训练数据和不具有水印标签的训练数据;以及
7.在所述可信执行环境中,基于所述水印化训练数据集进行训练,以产生所述机器学习模型。
8.根据本说明书一个或多个实施例的第二方面,提供了一种机器学习模型的调用方法,其中,所述机器学习模型被配置为能够执行水印化验证,所述水印化验证用于识别待验证数据是否为具有水印标签的水印验证数据,所述调用方法包括:
9.由可验证计算引擎平台获取来自调用者的调用请求信息;
10.在所述可验证计算引擎平台的可信执行环境中,根据所述调用请求信息,利用所述机器学习模型对待验证数据进行水印化验证;以及
11.当确定待验证数据中的具有水印标签的水印验证数据的数目大于或等于预设验证数目时,确定为通过水印化验证,并在所述可信执行环境中,根据为所述调用者分配的调用权限来运行所述机器学习模型,以根据所获取的所述调用者提供的待分析数据来产生分析结果。
12.根据本说明书一个或多个实施例的第三方面,提供了一种机器学习系统,包括可验证计算引擎平台,所述可验证计算引擎平台包括:
13.第一通信单元,所述第一通信单元被配置为获取来自调用者的调用请求信息;
14.验证单元,所述验证单元被设置在所述可验证计算引擎平台的可信执行环境中,且所述验证单元被配置为根据所述调用请求信息,利用所述机器学习模型对待验证数据进行水印化验证,其中,所述机器学习模型被配置为能够执行水印化验证,所述水印化验证用于识别待验证数据是否为具有水印标签的水印验证数据;
15.分配单元,所述分配单元被配置为为所述调用者分配调用权限;以及
16.模型运行单元,所述模型运行单元被设置在所述可信执行环境中,且所述模型运行单元被配置为运行所述机器学习模型。
17.根据本说明书一个或多个实施例的第四方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现如上所述的训练方法或如上所述的调用方法的步骤。
18.根据本说明书一个或多个实施例的第五方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令被处理器执行时实现如上所述的训练方法或如上所述的调用方法的步骤。
附图说明
19.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
20.图1是本说明书一实施例中机器学习系统的架构图;
21.图2是本说明书一实施例中机器学习模型的训练方法的流程图;
22.图3是本说明书一实施例中机器学习模型的训练方法中步骤s130的流程图;
23.图4是本说明书另一实施例中机器学习模型的训练方法的流程图;
24.图5是本说明书又一实施例中机器学习模型的训练方法的流程图;
25.图6是本说明书再一实施例中机器学习模型的训练方法的流程图;
26.图7是本说明书一实施例中机器学习模型的调用方法的流程图;
27.图8是本说明书一实施例中机器学习模型的调用方法的步骤s330的流程图;
28.图9是本说明书另一实施例中机器学习模型的调用方法的步骤s330流程图。
具体实施方式
29.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
30.目前,存在多种针对数据隐私的攻击方式,例如,成员推断攻击可以判断训练数据集,模型窃取攻击可以通过有限的黑盒信息对模型进行偷窃。在这两种攻击方式中,普通的白盒或黑盒的机器学习模型都有被攻击的风险,因为上述两种攻击方式只需要模型的api
接口,而对应的数据量要求很低。虽然可以通过模型水印来验证参与训练模型的参与者的身份,从而在一定程度上防御模型被窃取,但是模型水印仍然无法抵御恶意参与者的攻击。因为对于拥有模型和数据的参与者而言,其若想进行成员推断攻击来攻击其他参与者,在白盒状态下还是可能做到的。
31.为了解决机器学习中,数据价值的挖掘、流转和评价问题,以更充分地利用数据和模型的价值,本说明书一个或多个实施例提出了一种机器学习模型的训练方法、机器学习模型的调用方法、机器学习系统、非暂态计算机可读存储介质和计算机程序产品。这里的机器学习模型可以包括但不限于多方学习模型、深度学习模型等。
32.如图1所示,为机器学习系统的架构图。机器学习系统可以包括可验证计算引擎(mytf)平台910,其可以利用可信执行环境(tee)和webassembly(wasm)虚拟机等技术,允许在可信执行环境中执行可验证计算任务(例如,可验证应用或可信应用(tapp)),同时可以向任何人证明该计算任务是在可信执行环境中按照用户预期被执行的。
33.其中,可信执行环境可以是处理器中的安全可信区域,以保证放入其中的代码和数据的安全性、机密性和完整性。可信执行环境提供了一种隔离的执行环境,代码和数据可以在可信执行环境中运行,且在运行过程中可以保证不被常规操作系统干扰的计算的运行,从而保证代码和数据的机密性和完整性。在可信执行环境中执行的代码程序可以被称为enclave。用户在使用enclave程序前,通常需要测量enclave程序的代码和数据,并且经过远程验证,以确认该enclave程序是用户所期望被执行的程序。
34.其中,wasm虚拟机是一种基于二进制操作指令的栈式结构的虚拟机。wasm代码可以被编译成机器码,并被加载到该wasm虚拟机中执行。
35.其中,tapp是使用可验证计算(verifiable computation)技术实现的应用,可以在mytf中运行,例如运行在wasm虚拟机中。具体而言,任何人可以通过将wasm字节码上传到可验证计算引擎平台中,并调用该wasm字节码来执行计算任务,并获得计算结果。
36.在一些实施例中,机器学习系统还可以包括一一对应地设置在一个或多个参与者中的每个参与者的本地的一个或多个参与设备920。参与设备920可以用于进行相应的参与者的本地的数据处理和与可验证计算引擎平台进行信息或数据的交换。
37.当对机器学习模型进行调用时,可以利用可验证计算引擎平台910来对调用者进行水印化验证,并在通过水印化验证后,由可验证计算引擎平台910对其接收到的来自参与设备920的密文模型进行解密,从而产生机器学习模型,并基于所分配的调用权限在可验证计算引擎平台910的可信执行环境中运行该机器学习模型,从而为调用者提供相应的服务。
38.在一些实施例中,机器学习系统还可以包括具有一个或多个节点931的区块链930。区块链930是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。在区块链系统中,可以按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证不可篡改和不可伪造的分布式账本。在本说明书一个或多个实施例中,至少部分与机器学习模型的训练、调用等相关的信息可以被记录在区块链930的相应的节点931中,或者,训练好的机器学习模型可以被视为区块链930上的非同质化代币(nft),从而为数据价值的流转和评价,以及相应的收益的分配等提供可靠性高的凭证信息。
39.如图2所示,在本说明书的一实施例中,提出了一种机器学习模型的训练方法,该
训练方法可以包括:
40.步骤s110,由可验证计算引擎平台获取一个或多个参与者中的每个参与者的包括训练数据的第一训练数据集。
41.具体而言,第一训练数据集可以包括多条训练数据。在一些实施例中,每个参与者提供的训练数据都可以包括特征部分和相应的标签部分。其中,训练数据的特征部分可以作为所训练的模型的输入,在模型对输入进行一系列计算后,可以产生相应的输出,而训练数据的标签部分可以用于与模型基于相应的特征部分所产生的输出进行比较,从而根据比较结果来调整所训练的模型中的相关参数,直至模型达到预设的准确率。但是,每个参与者提供的训练数据可以具有不同的数据标识(id)。其中,数据标识与每条训练数据是一一对应的,以唯一地指示这条训练数据。例如,数据标识可以是根据训练数据对应的对象的身份信息来生成的,身份信息例如可以包括唯一地指示该对象的身份证号码、电话号码等。而在另一些实施例中,不同的参与者的第一训练数据集中的训练数据可以具有相同或基本上相同的数据标识。然而,不同的参与者的第一训练数据集中的训练数据的特征部分可能是不同的。并且,机器学习模型的对应的标签部分可能仅分布在某个或某些参与者的训练数据中,而不是在多个参与者中的所有参与者的训练数据中都有分布。
42.此外,为了保证数据的安全性,可以以加密的方式来将每个参与者的第一训练数据集传输给可验证计算引擎平台,并由可验证计算引擎平台对获取到的加密的第一训练数据集进行解密。
43.如图2所示,训练方法还可以包括:
44.步骤s130,在可验证计算引擎平台的可信执行环境中,根据一个或多个参与者的所有第一训练数据集获取水印化训练数据集,其中,水印化训练数据集包括具有水印标签的水印训练数据和不具有水印标签的训练数据。
45.通过对每个参与者所提供的第一训练数据集中的部分训练数据进行水印化处理,可以获得相应的水印训练数据。具体而言,如图3所示,根据一个或多个参与者的所有第一训练数据集获取水印化训练数据集可以包括:
46.步骤s131,合并一个或多个参与者的所有第一训练数据集,以产生第二训练数据集;
47.步骤s133,从第二训练数据集中提取第三训练数据集,其中,第三训练数据集为第二训练数据集的非空真子集,且第三训练数据集包括来自一个或多个参与者中的每个参与者的训练数据;
48.步骤s135,根据第三训练数据集来产生第四训练数据集,其中,第四训练数据集中的每条训练数据的特征部分由对第三训练数据集中的相应的训练数据的特征部分进行水印化处理而产生,且第四训练数据集中的每条训练数据的标签部分由将第三训练数据集中的相应的训练数据的标签部分修改为水印标签而产生;以及
49.步骤s137,将第四训练数据集与第二训练数据集的至少一部分合并为水印化训练数据集。
50.其中,合并一个或多个参与者的所有第一训练数据集,以产生第二训练数据集可以包括:
51.将一个或多个参与者中的每个参与者的具有相同或相应的数据标识的训练数据
合并为第二训练数据集中的同一条训练数据,并将一个或多个参与者中的每个参与者的具有不相同且不相应的数据标识的训练数据作为第二训练数据集中的不同条训练数据;以及
52.按照相同的方式排布第二训练数据集中的每条训练数据的特征部分和标签部分。
53.在一具体示例中,可以将所有参与者提供的第一训练数据集合并产生的第二训练数据集的特征部分表示为n*d维的矩阵的形式。其中,n为总的数据的数目,即不相同且不相应的数据标识的总数;而d为数据的特征的数量,即机器学习中的维度。在该矩阵中,同一行上的各个矩阵元分别表示对应于同一数据标识的一条训练数据的各个特征,而同一列上的各个矩阵元分别表示各条训练数据的特征部分中的同一个特征。此外,第二训练数据集中的每条训练数据还可以包括与其相应的标签部分。
54.从第二训练数据集中提取的第三训练数据集可以被水印化,以产生第四训练数据集。在一些实施例中,从第二训练数据集中提取第三训练数据集可以包括:
55.使用分别与每个参与者一一对应的参与者身份标识来标记相应的参与者的第一训练数据集中的所有训练数据;以及
56.基于参与者身份标识来提取第二训练数据集中的部分训练数据作为第三训练数据集中的训练数据,以使得第三训练数据集包括来自一个或多个参与者中的每个参与者的训练数据。
57.其中,参与者身份标识可以标记相应的训练数据来源于一个或多个参与者中的哪个参与者。在提取第三训练数据集时,为了保证在后续调用机器学习模型之前的验证或投票过程中,参与者的验证或投票权限与其提供的训练数据的量相匹配,从而更好地实现数据和模型的价值,可以基于参与者身份标识来确定被提取到第三训练数据集中的训练数据,使得这些将被水印化处理的训练数据来源于一个或多个参与者中的所有参与者,尤其是在存在多个参与者的情况下,避免水印训练数据仅来源于其中一个或几个参与者,导致其他参与者失去与其提供的训练数据的量相应的验证或投票权限。然而,在从第二训练数据集中提取训练数据以产生第三训练数据集的过程中,对于每个参与者而言,第三训练数据集中的每个参与者的训练数据可以是从该参与者的第一训练数据集中随机提取的。或者,在一些实施例中,可以按照预设的提取规律来提取第三训练数据集。
58.进一步地,对第三训练数据集中的每条训练数据的特征部分进行水印化处理而产生第四训练数据集中的相应的训练数据的特征部分可以包括:
59.将噪声与第三训练数据集中的训练数据的特征部分进行叠加,并将叠加的结果作为第四训练数据集中的相应的训练数据的特征部分。
60.其中,噪声的维度、第三训练数据集中的训练数据的特征部分的维度和第四训练数据集中的训练数据的特征部分的维度彼此相等,以方便叠加。例如,如果第三训练数据集中的某一训练数据的特征部分可以被表示为a3=(ax3,ay3,az3),与该训练数据的特征部分进行叠加的噪声可以被表示为n=(nx,ny,nz),那么作为第四训练数据集中的相应的训练数据的特征部分的叠加的结果可以被表示为a4=(ax4,ay4,az4)=(ax3 nx,ay3 ny,az3 nz),即ax4=ax3 nx,ay4=ay3 ny,且az4=az3 nz。需要注意的是,根据实际需求,叠加到各条训练数据的特征部分上的噪声可以是彼此相同的、部分相同的或者是不同的,在此不作限制。
61.在一些实施例中,噪声可以包括根据非训练数据而产生的噪声。或者,噪声可以包
括基于图像对抗算法(fgsm)等产生的噪声。或者,噪声可以包括高斯噪声等,其中,高斯噪声是指随机生成的、噪声值符合高斯分布的噪声,且这里高斯噪声的噪声平均值可以是零。
62.另外,可以将第三训练数据集中的每条训练数据的标签部分统一修改为水印标签,以作为第四数据训练集中的相应的训练数据的标签部分。其中,若机器学习模型为分类模型,则水印标签可以被设置为对应于水印类型的标签,即不同于未水印化的模型中的已有分类类型标签的一种新的分类类型的标签;若机器学习模型为回归模型,则水印标签可以被设置为对应于机器学习模型的最小输出值或最大输出值的标签,以区分于未水印化的模型可能输出的数值结果。
63.根据水印化处理所产生的第四训练数据集中的训练数据的特征部分,可以产生每个参与者的水印验证数据。如后文中将详细描述的,在模型调用之前的验证或投票过程中,参与者可以使用水印验证数据来验证自身的合法身份,或者将水印验证数据作为同意其他调用者的调用请求的投票。因此,为了使每个参与者的验证或投票权限与其在模型训练过程中所贡献的数据的量相匹配,在多个参与者中,第三训练数据集中的每个参与者的训练数据的数目(其等于第四训练数据集中的每个参与者的训练数据的数目)与该参与者的第一训练数据集中的训练数据的数目的比例可以是彼此相等的。也就是说,可以从每个参与者提供的训练数据中提取相等比例的数据用于水印化处理,那么,在后文所述的验证或投票过程中,提供了更多的训练数据的参与者就可以拥有占比更多的验证或投票权。
64.根据本说明书另一实施例,如图4所示,在根据一个或多个参与者的所有第一训练数据集获取水印化训练数据集之后,训练方法还可以包括:
65.步骤s132,将水印训练数据中的来源于每个参与者的训练数据的水印训练子数据分别返回给相应的参与者。
66.具体而言,当每个参与者提供的训练数据都包括特征部分和相应的标签部分时,可以将来源于每个参与者的水印训练数据的全部特征部分作为水印训练子数据返回给相应的参与者。或者,当不同的参与者提供的训练数据的特征部分不同时,可以将水印训练数据的特征部分中的来源于每个参与者的特征提取出来,并将这部分特征作为水印训练子数据分别返回给相应的参与者。参与者可以将从可验证计算引擎平台接收到的水印训练子数据作为其水印验证数据,在后续调用机器学习模型的过程中,如果参与者需要验证其自身身份或者同意其他调用者调用机器学习模型,则可以将其水印验证数据传输给可验证计算引擎平台用于验证或投票。由于水印训练子数据是按照具体的参与者来返还的,因此每个参与者都没有办法拿到其他参与者的水印训练子数据用于验证或投票,从而能够很好地保障模型的安全性,且能够满足不同参与者的验证或投票需求。此外,为了避免水印训练子数据在传输过程中的泄露,保证其安全性,可验证计算引擎平台也可以在对水印训练子数据进行加密或其他转换计算后再传输给相应的参与者。
67.在一些实施例中,第三训练数据集中的每个参与者的训练数据的数目与该参与者的第一训练数据集中的训练数据的数目的比例可以由参与者事先共同商议来确定。例如,上述比例可以在从5%至35%的范围内。在具体示例中,上述比例可以为10%、20%或30%。
68.在将第四训练数据集与第二训练数据集的至少一部分合并为水印化训练数据集时,在一些实施例中,为了最大限度地保留每个参与者所提供的训练数据用于模型的训练,可以将第四训练数据集与完整的第二训练数据集进行合并,从而产生水印化训练数据集。
或者,在一些实施例中,为了避免合并所得的水印化训练数据集过大而导致训练成本增高、训练效率降低等,也可以将第四训练数据集与第二训练数据集的一部分合并为水印化训练数据集。
69.返回图2,训练方法还可以包括:
70.步骤s150,在可信执行环境中,基于水印化训练数据集进行训练,以产生机器学习模型。
71.在机器学习模型的训练过程中,具体可以通过数据的分布或标签对线性/非线性模型进行拟合,以达到逼近真实值的效果。此外,在训练结束后,基于所得的线性/非线性模型,可以对同样的数据进行预测,从而得到相应的预测结果,这一预测过程可以用于后文中所述的对参与者的身份验证。其中,基于水印化训练数据集所训练的机器学习模型可以识别出水印验证数据,即当水印验证数据被输入机器学习模型中时,该机器学习模型将输出水印标签,以在后续的模型调用中用于验证或投票。
72.在本说明书又一实施例中,如图5所示,在基于水印化训练数据集进行训练,以产生机器学习模型之后,训练方法还可以包括:
73.步骤s171,在可信执行环境中,利用公钥对机器学习模型进行加密以产生密文模型;以及
74.步骤s173,分别将密文模型返回给一个或多个参与者中的每个参与者,以供相应的参与者在其本地存储密文模型。
75.在这个实施例中,通过对机器学习模型进行加密以产生密文模型,并将密文模型返回给一个或多个参与者中的每个参与者供其本地存储,使得可验证计算引擎平台本身可以不存储机器学习模型或密文模型,从而节约了可验证计算引擎平台上的存储资源,并且,在传输过程中和参与者本身都不涉及明文形式的机器学习模型,从而保证了模型的安全性。在需要使用机器学习模型时,参与者可以将其密文模型传输给可验证计算引擎平台,并在可验证计算引擎平台的可信执行环境中进行解密,后文中还将详细阐述。
76.在一些实施例中,每个参与者的相匹配的用于加密的公钥和用于解密的私钥可以在可验证计算引擎平台中的可信执行环境中产生。此外,在一些实施例中,私钥可以被存储在可信执行环境中。这样,当需要使用机器学习模型时,可以在可信执行环境中利用存储的私钥解密所接收到的密文模型以得到机器学习模型,并在可信执行环境中运行该机器学习模型,从而避免了某个参与者或调用者直接接触机器学习模型,进而更好地保证了机器学习模型的安全性。在一些实施例中,对机器学习模型的加密和对密文模型的解密可以都在可信执行环境中进行,因此对应于多个参与者的公钥和私钥可以是相同的,以节约密钥资源,且能够保证安全性。或者,在一些实施例中,多个参与者的相匹配的公钥和私钥也可以是彼此不同的。
77.在一些实施例中,每个参与者的相匹配的公钥和私钥可以基于rsa算法而产生。rsa算法是一种使用不同的公钥与私钥,由已知公钥推导出私钥在计算上是不可行的密码算法体制,其可以很好地抵抗各种攻击,具有优异的安全性。可以理解的是,在其他一些实施例中,也可以基于其他密钥算法来产生公钥和相匹配的私钥。
78.进一步地,如图6所示,在本说明书再一实施例中,训练方法还可以包括:
79.步骤s190,在可信执行环境中,测试并记录机器学习模型的对具有水印标签的水
印测试数据的水印识别准确率。
80.具体而言,在可信执行环境中,可以基于水印测试数据来单独测试并记录机器学习模型的水印识别准确率,该水印识别准确率可以用于后文中所述的机器学习模型的调用方法中。在一些实施例中,水印测试数据可以包括水印化训练数据集中的水印训练数据的特征部分。
81.在本说明书一个或多个实施例提供的机器学习模型的训练方法中,基于具有水印标签的水印化训练数据集对机器学习模型进行训练,从而得到了能够识别出水印验证数据的机器学习模型,其为数据的价值的挖掘、流转和评价提供了基础,有助于更好地实现和保护数据和模型的价值。
82.此外,本说明书一个或多个实施例还提出了一种机器学习模型的调用方法,其中,机器学习模型可以被配置为能够执行水印化验证,该水印化验证可以用于识别待验证数据是否为具有水印标签的水印验证数据。如上文所述,水印验证数据可以为相应的水印训练数据的特征部分。或者,水印验证数据可以是采用其他方式所获得的数据,例如通过对水印训练数据的特征部分进行一些转换计算而产生。在一些实施例中,可以采用如上所述的机器学习模型的训练方法来训练产生这样的机器学习模型。或者,也可以采用其他方式来获得这样的机器学习模型。
83.如图7所示,在本说明书一实施例中,机器学习模型的调用方法可以包括:
84.步骤s310,由可验证计算引擎平台获取来自调用者的调用请求信息;
85.步骤s330,在可验证计算引擎平台的可信执行环境中,根据调用请求信息,利用机器学习模型对待验证数据进行水印化验证;以及
86.步骤s350,当确定待验证数据中的具有水印标签的水印验证数据的数目大于或等于预设验证数目时,确定为通过水印化验证,并在可信执行环境中,根据为调用者分配的调用权限来运行机器学习模型,以根据所获取的调用者提供的待分析数据来产生分析结果。
87.其中,调用请求信息可以包括第一调用请求信息和第二调用请求信息,第一调用请求信息用于指示以参与者身份对机器学习模型的调用请求,而第二调用请求信息用于指示以非参与者身份对机器学习模型的调用请求。在一些实施例中,调用请求信息、尤其是第二调用请求信息可以被发布在区块链上,以便可靠地记录对机器学习模型的调用。
88.在一实施例中,如图8所示,当调用请求信息为第一调用请求信息时,根据调用请求信息,利用机器学习模型对待验证数据进行水印化验证可以包括:
89.步骤s331,可验证计算引擎平台获取来自调用者的密文模型和待验证数据;
90.步骤s333,在可信执行环境中,利用私钥对密文模型进行解密,以获得机器学习模型;以及
91.步骤s335,在可信执行环境中,将待验证数据中的每条数据分别输入机器学习模型中,以确定该数据是否为具有水印标签的水印验证数据。
92.也就是说,当以参与者身份发起调用请求时,只要该调用者本身能够通过参与者身份验证,即可以获取对机器学习模型的一定的调用权限。为了进行身份验证,该参与者将存储在其本地的密文模型以及其提供的待验证数据上传到可验证计算引擎平台中,该待验证数据可以是根据第四训练数据集中的水印训练数据生成的与该参与者相应的水印训练子数据。
93.在一些实施例中,尤其是在存在多个参与者的情况下,待验证数据的数目可以由多个参与者商议确定。例如,待验证数据的数目可以至少为来源于一个或多个参与者中的提供最小的第一训练数据集的参与者的水印训练数据的数目的一半,或者可以至少为发出第一调用请求信息的参与者的水印训练数据的数目的一半等。
94.在一些实施例中,当调用者为模型的参与者时,调用者可以通过区块链节点验签以基于所分配的调用权限来调用机器学习模型。这样,调用相关信息可以被记录在区块链上,以方便以后的查验,提高模型的安全性。此外,机器学习模型可以在可信执行环境中运行,而调用者可以将待分析的数据传输给可验证计算引擎平台,并从可验证计算引擎平台接收机器学习模型根据待分析的数据所输出的分析结果。这样,调用者本身并不会直接接触到明文形式的机器学习模型,从而可以很好地保证模型的安全性。此外,如上文所述,基于可验证计算引擎平台,调用者也可以确认对机器学习模型的调用是按照其期望的方式进行的,保障了输出的分析结果的可靠性。
95.在另一实施例中,如图9所示,当调用请求信息为第二调用请求信息时,根据调用请求信息,利用机器学习模型对待验证数据进行水印化验证可以包括:
96.步骤s332,可验证计算引擎平台向一个或多个参与者广播第二调用请求信息;
97.步骤s334,当可验证计算引擎平台获取到来自该一个或多个参与者中的至少一个参与者的密文模型时,在可信执行环境中,利用私钥对密文模型进行解密,以获得机器学习模型;
98.步骤s336,当可验证计算引擎平台获取到来自该一个或多个参与者中的至少部分参与者的待验证数据时,在可信执行环境中,将待验证数据中的每条数据分别输入机器学习模型中,以确定该数据是否为具有水印标签的水印验证数据。
99.也就是说,当以非参与者身份发起调用请求时,需要机器学习模型的参与者利用其水印验证数据进行投票来验证是否同意该调用者的调用。调用者可以通过购买等方式使参与者同意为其进行投票验证。具体而言,可验证计算引擎平台可以将第二调用请求信息广播给所有的参与者。当调用者和参与者之间确认了对机器学习模型的调用权的交易可以继续进行时,则相应的参与者可以将其水印验证数据上传到可验证计算引擎平台上用于投票验证,否则可以不上传其水印验证数据。在一些实施例中,如果每个参与者提供的训练数据包括完整的特征部分和相应的标签部分,而不同的参与者提供的训练数据只是具有不同的数据标识,那么当大于或等于预设验证数目的水印验证数据被识别出来时,可以认为该调用已经得到了参与者的同意,因此该调用者可以调用机器学习模型。在另一些实施例中,如果不同的参与者的第一训练数据集中的训练数据具有相同或基本上相同的数据标识,但不同的参与者的第一训练数据集中的训练数据的特征部分不同,甚至机器学习模型的对应的标签部分仅分布在某个或某些参与者的训练数据中,而不是在多个参与者中的所有参与者的训练数据中都有分布,那么在投票验证过程中,需要能够提供完整的特征部分和标签部分的一个或多个参与者(通常为所有的参与者)同意该交易,使得大于或等于预设验证数目的水印验证数据被识别出来,交易才可能继续进行。
100.此外,当确定待验证数据中的具有水印标签的水印验证数据的数目小于预设验证数目,或者可验证计算引擎平台未获取到密文模型时,可以确定为未通过水印化验证,返回拒绝调用信息以告知调用者调用失败,并记录调用请求信息以供后续查验,从而更好地保
障机器学习模型的安全性。
101.在一些实施例中,可验证计算引擎平台可以从任意一个或多个参与者处获取密文模型用于水印化验证。为了避免密文模型的重复上传造成资源的占用,一旦可验证计算引擎平台从任一参与者处获取到可用的密文模型时,其也可以向其他参与者发出信号以避免其他参与者重复上传密文模型。或者,在一些实施例中,可验证计算引擎平台可以仅从提供最大的第一训练数据集的参与者处获取密文模型。这样,仅当提供了最多的训练数据的参与者同意该调用时,对机器学习模型的调用才可能继续,而如果提供最多的训练数据的参与者不同意调用者的本次调用,则该调用无法进行下去,即提供最多的训练数据的参与者在决定是否同意调用这件事上拥有着更大的权利。
102.在一些实施例中,待验证数据的数目可以是参与者事先商议决定的。例如,待验证数据的数目可以至少为水印化训练数据集中的水印训练数据的数目的一半。
103.在一些实施例中,在根据为调用者分配的调用权限来运行机器学习模型之前,调用方法还可以包括:
104.当确定为通过水印化验证时,可验证计算引擎平台获取来自一个或多个参与者中的至少一个参与者的密文模型;以及
105.在可信执行环境中,利用私钥对密文模型进行解密,以获得机器学习模型。
106.在一些实施例中,可验证计算引擎平台可以从任意一个或多个参与者处获取密文模型。为了避免密文模型的重复上传造成资源的占用,一旦可验证计算引擎平台从任一参与者处获取到可用的密文模型时,其也可以向其他参与者发出信号以避免其他参与者重复上传密文模型。或者,在一些实施例中,可验证计算引擎平台也可以从提供最大的水印化训练数据集的参与者处获取密文模型。
107.密文模型的解密和所产生的机器学习模型的运行可以都在可信执行环境中进行,而调用者可以将待分析的数据上传到可验证计算引擎平台,并从可验证计算引擎平台接收机器学习模型基于待分析的数据所产生的分析结果。这样,调用者或者参与者都不会直接接触到机器学习模型,有助于更好地保障机器学习的安全性。此外,如上文所述,基于可验证计算引擎平台,调用者可以确认对机器学习模型的调用是按照其期望的方式进行的,保障了输出的分析结果的可靠性。
108.在一些实施例中,预设验证数目可以至少是根据机器学习模型的水印识别准确率来确定的。例如,如果参与者商议在每次验证时,所有参与者需要提供共至少100条的水印验证数据时,方可通过验证,且测试得到的机器学习模型的水印识别准确率为95%,那么,所设定的预设验证数目可以为100*95%=95条,即当机器学习模型确定待验证数据中存在至少95条具有水印标签的水印验证数据时,即可通过水印化验证。
109.在一些实施例中,为了避免恶意的调用者频繁调用机器学习系统带来可能的攻击风险,和/或为了帮助实现对调用权限的可定制的交易,调用权限可以是有限的。例如,调用权限可以是在通过水印化验证之后的预设时间段内,对机器学习模型调用预设次数的权限。可以理解是,调用权限也可以有其他具体的形式。而如果对机器学习模型的调用超出了调用权限,则以参与者身份发起调用的调用者可以通过再次验证身份来获取新的调用权限,而以非参与者身份发起调用的调用者可以通过再次购买等,使参与者为其进行投票验证来获取新的调用权限。可以理解的是,调用者也可以通过其他约定的方式来获得新的调
用权限,在此不作限制。
110.在一些实施例中,可以将机器学习模型的参与者相关信息保存在区块链上。其中,参与者相关信息可以包括来源于每个参与者的水印训练数据的哈希值,来源于每个参与者的水印训练数据的数目和每个参与者的参与者身份标识中的至少一者,这些信息可以帮助确定每个参与者对机器学习模型的训练贡献。在一具体示例中,可以对每个参与者的水印训练数据进行md5哈希,得到一个128位的哈希值,然后将这个哈希值存储在区块链上,形成一个nft。相应地,调用方法还可以包括:
111.在通过水印化验证后,根据区块链上记录的参与者相关信息,为一个或多个参与者中的每个参与者分配相应的收益。
112.基于上文所述的机器学习模型的调用方法,调用者可以实现对机器学习模型的调用。在调用过程中,调用者本身并不会直接接触机器学习模型,从而很好地保障了数据和模型的安全性。此外,本说明书一个或多个实施例中的调用方法很好地解决了作为重要数据资产的明文的机器学习模型无法自由流转的问题,使得参与者之外的其他调用者也可以调用机器学习模型,从而更好地挖掘了数据和模型的价值,也有助于在保障数据安全的前提下使得参与者获得更多的收益。
113.本说明书一个或多个实施例还提出了一种机器学习系统,如图1所示,机器学习系统可以包括可验证计算引擎平台910,该可验证计算引擎平台910可以包括:
114.第一通信单元911,可以被配置为获取来自调用者的调用请求信息;
115.验证单元912,其被设置在可验证计算引擎平台911的可信执行环境中,并可以被配置为根据调用请求信息,利用机器学习模型对待验证数据进行水印化验证,其中,机器学习模型被配置为能够执行水印化验证,水印化验证用于识别待验证数据是否为具有水印标签的水印验证数据;
116.分配单元913,其可以被配置为为调用者分配调用权限;以及
117.模型运行单元914,其可以被设置在可信执行环境中,并被配置为运行机器学习模型,以实现调用者对机器学习模型的调用。
118.进一步地,如图1所示,可验证计算引擎平台910还可以包括以下中的至少一者:
119.测试单元915,其可以被设置在可信执行环境中,并被配置为测试机器学习模型的对具有水印标签的水印测试数据的水印识别准确率;
120.密钥单元916,其可以被设置在可信执行环境中,并被配置为生成用于对机器学习模型进行加密以产生密文模型的公钥,和与公钥匹配的、用于对密文模型进行解密以产生机器学习模型的私钥;以及
121.存储单元917,其可以被设置在可信执行环境中,并被配置为存储私钥和/或记录水印识别准确率。
122.如图1所示,机器学习系统还可以包括一个或多个参与设备920,该一个或多个参与设备920中的每个参与设备920一一对应地设置在与该参与设备920相应的参与者的本地,且一个或多个参与设备920中的每个参与设备920可以包括:
123.第二通信单元921,其可以被配置为与第一通信单元911通信以传输第一训练数据集、密文模型、待验证数据、待分析数据和分析结果中的至少一者。
124.进一步地,如图1所示,机器学习系统还可以包括具有一个或多个节点931的区块
链930,其中,一个或多个节点931中可以记录有机器学习模型的调用请求信息和参与者相关信息中的至少一者。
125.本说明书一个或多个实施例还提出了一种非暂态计算机可读存储介质,其上可以存储有计算机指令,计算机指令被处理器执行时可以实现如上所述的机器学习模型的训练方法或调用方法的步骤。
126.本说明书一个或多个实施例中的非暂态计算机可读存储介质可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。应注意,本文描述的计算机可读存储介质旨在包括但不限于这些和任意其他适合类型的存储器。
127.本说明书一个或多个实施例也提出了一种计算机程序产品,该计算机程序产品可以包括指令,当指令被处理器执行时,可以实现如上所述的机器学习模型的训练方法或调用方法的步骤。
128.指令可以是将由一个或多个处理器直接地执行的任何指令集,诸如机器代码,或者间接地执行的任何指令集,诸如脚本。本文中的术语“指令”、“应用”、“过程”、“步骤”和“程序”在本文中可以互换使用。指令可以存储为目标代码格式以便由一个或多个处理器直接处理,或者存储为任何其他计算机语言,包括按需解释或提前编译的独立源代码模块的脚本或集合。指令可以包括引起诸如一个或多个处理器来充当本文中的各神经网络的指令。本文其他部分更加详细地解释了指令的功能、方法和例程。
129.在本说明书一个或多个实施例中,基于可验证计算引擎平台,可以将基于wasm虚拟机的机器学习训练任务封装在wasm虚拟机中运行,计算任务可以通过tapp的形式提供外部可信可验证的机器学习建模服务,计算任务也同样可以以tapp的形式存在。此外,基于水印化训练数据集产生能够识别具有水印标签的水印验证数据的机器学习模型,训练出来的机器学习模型可以以密文模型的形式被分发给各个参与者并被存储,并且只有在可信执行环境中才能被解密。在调用机器学习模型的过程中,可以利用水印验证数据实现调用者身份的验证或参与者的投票验证,并在通过水印化验证后在可验证计算引擎平台的可信执行环境中运行机器学习模型。通过将具有高鲁棒性的水印化的机器学习模型的训练与能够很好地保护隐私的可信执行环境技术相结合,可以实现对参与者的身份的验证,并且可以有效限制参与者对机器学习模型接口的异常访问。机器学习模型的整个训练和调用过程都处于黑盒状态,只有最终的分析结果是明文形式的,从而能够有效保障在从训练到调用过程中所有已知的隐私攻击方式(例如,侧信道攻击、成员推断攻击、模型窃取攻击等)都是无效的,使得机器学习模型是安全的。并且,在保障了数据和模型安全的前提下,实现了模型的自由流转,有助于充分地挖掘和释放数据的价值,为数据和模型的拥有者提供更多的收益。此外,与模型的训练、调用等有关的信息可以被存储在区块链上,从而保障了交易的正当性和可靠性。相应地,训练所得的机器学习模型可以被视为一种非同质化代币(nft),并按照区块链上的相应的交易规则进行流转。进一步地,机器学习模型的流转所产生的收益可以激励数据的拥有者,尤其是大数据的拥有者建立更好的机器学习模型,以提高数据的利用价值,产生更多收益,从而形成良性的循环。
130.在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。
设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device,pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由使用者对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very-high-speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
131.控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc 625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
132.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本技术不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
133.虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者
设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
134.为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其他的形式。
135.本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
136.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
137.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
138.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
139.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
140.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
141.本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
142.本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
143.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
144.以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献