CN111079152A - 一种模型部署方法、装置及设备 - Google Patents

一种模型部署方法、装置及设备 Download PDF

Info

Publication number
CN111079152A
CN111079152A CN201911286357.XA CN201911286357A CN111079152A CN 111079152 A CN111079152 A CN 111079152A CN 201911286357 A CN201911286357 A CN 201911286357A CN 111079152 A CN111079152 A CN 111079152A
Authority
CN
China
Prior art keywords
tee
data
predicted
model
executable
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
CN201911286357.XA
Other languages
English (en)
Other versions
CN111079152B (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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN201911286357.XA priority Critical patent/CN111079152B/zh
Publication of CN111079152A publication Critical patent/CN111079152A/zh
Application granted granted Critical
Publication of CN111079152B publication Critical patent/CN111079152B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/602Providing cryptographic facilities or services
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management

Abstract

公开了一种模型部署方法、装置及设备。通过在可信执行环境TEE中不进行模型训练,而是将预先训练好的模型的预测部分,以TEE中可执行语言的形式部署至TEE环境中。对于线上需要识别的数据流,采用TEE中的公钥进行加密处理,并发送至TEE环境中进行解密,进而在TEE中进行识别,避免了识别过程中的数据外泄,实现对于隐私数据的有效保护。

Description

一种模型部署方法、装置及设备
技术领域
本说明书实施例涉及信息技术领域,尤其涉及一种模型部署方法、装置及设备。
背景技术
人工智能与机器学习模型使用的场景越来越多,其中很多模型在训练和预测时都需要接触到敏感信息,这给隐私保护带来了巨大的风险。例如,如果需要对用户的交易行为进行风险识别,首先就需要企业内部人员拿到用户的交易行为数据,这就有可能泄露隐私。在企业内如何保护隐私数据的安全,做到可用不可见,仍然是一个未知问题。
基于此,本说明书实施例提供一种可以保护隐私数据的模型部署方案。
发明内容
本申请实施例的目的是提供一种保护隐私数据的模型部署方案。
为解决上述技术问题,本申请实施例是这样实现的,一方面,本说明书实施例提供一种模型部署方法,包括:
获取已训练模型;
确定所述已训练模型中的预测部分;
将所述预测部分替换为可信执行环境TEE中可执行的预测代码,部署所述TEE中可执行的预测代码至可信执行环境TEE中。
对应的,本说明书实施例还提供一种模型部署装置,包括:
获取模块,获取已训练模型;
确定模块,确定所述已训练模型中的预测部分;
部署模块,将所述预测部分替换为可信执行环境TEE中可执行的预测代码,部署所述TEE中可执行的预测代码至可信执行环境TEE中。
另一方面,本说明书实施例还提供一种基于前述TEE中可执行的预测代码的使用方法,包括:
接收待预测数据;
使用预设的公钥加密所述待预测数据,生成加密数据,其中,所述公钥为TEE所产生的密钥对中的公钥;
将所述加密数据发送至所述TEE中,使用所述公钥所对应的私钥进行解密,得到解密后的待预测数据;
在所述TEE中以解密后的待预测数据作为输入,执行所述预测代码,生成对于所述待预测数据的识别结果。
与另一方面对应的,本说明书实施例还提供一种基于前述TEE中可执行的预测代码的使用装置,包括:
接收模块,接收待预测数据;
加密模块,使用预设的公钥加密所述待预测数据,生成加密数据,其中,所述公钥为TEE所产生的密钥对中的公钥;
解密模块,将所述加密数据发送至所述TEE中,使用所述公钥所对应的私钥进行解密,得到解密后的待预测数据;
识别模块,在所述TEE中以解密后的待预测数据作为输入,执行所述预测代码,生成对于所述待预测数据的识别结果。
通过本说明书实施例所提供的方案,在可信执行环境TEE中不进行模型训练,而是将预先训练好的模型的预测部分,以TEE中可执行语言的形式部署至TEE环境中。对于线上需要识别的数据流,采用TEE中的公钥进行加密处理,并发送至TEE环境中进行解密,进而在TEE中进行识别,避免了识别过程中的数据外泄,实现对于隐私数据的有效保护。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的一种模型部署方法的流程示意图;
图2为本说明书实施例中所提供的一种基于TEE中可执行的预测代码的使用方法的流程示意图;
图3为本说明书实施例提供的整体上的框架结构示意图;
图4是本说明书实施例提供的一种模型部署装置的结构示意图;
图5是本说明书实施例提供的一种基于TEE中可执行的预测代码的使用装置的结构示意图;
图6是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
随着大数据的发展,用户隐私数据价值越来越大,数据安全与用户隐私的保护也越来越严格。而在人工智能领域,进行模型训练或预测时,用户的数据又往往是不可或缺的。
在实际应用中,往往采取的方式是通过给内部员工进行权限控制的方式,即数据对于有权限员工是可见的。这就带来很多问题,有权限的员工有可能主动泄露;在使用过程中,数据的导出和中间结果的额外存储也有可能导致数据泄露。
基于此,本说明书实施例提供一种可以保护隐私数据的模型部署和使用方案,具体而言,本方案包括两个部分:模型部署方面和使用方面。
以下结合附图,详细说明本说明书各实施例提供的技术方案。对于模型部署方面,如图1所示,图1是本说明书实施例提供的一种模型部署方法的流程示意图,该流程具体包括如下步骤:
S101,获取已训练模型。
已训练模型是针对某些训练样本已经训练好的模型。已训练模型的模型结构和模型参数都已经固定,无需再进行调整。
已训练模型的来源可以是多方面的。例如,在某些领域可以直接将开源的模型作为已训练模型。
例如,用于目标检测的Mask R-CNN模型,其通过给定的大量图片已经进行了训练,可以为给定图像中的目标的每个实例生成边界框和分割掩模;例如,用于人脸识别的VGG-Face模型,其通过针对超过百万计的人脸图片已经进行了训练,并且已经可以有效实现人脸的识别;又例如,在文本分类英语,已训练模型可以是Bert模型等等。
在另外一些领域,例如,在风控领域,基本上没有可用的开源模型直接使用。此时,已训练模型可以是用户或企业事先针对一定的目标训练样本的集合所训练得到的。例如,在电商领域,使用用户已经授权的3年前的历史交易数据进行模型训练,从而得到已训练模型。
更进一步地,在针对已训练模型的训练过程中,可以是采用非TEE环境中所得到的已训练模型;也可以是在TEE中采用目标训练样本的集合进行模型训练,生成在TEE中可用的已训练模型。
可信执行环境(Trusted Execution Environment,TEE)是基于CPU硬件的安全扩展,且与外部完全隔离的可信执行环境。TEE最早是由Global Platform提出的概念,用于解决移动设备上资源的安全隔离,平行于操作系统为应用程序提供可信安全的执行环境。ARM的Trust Zone技术最早实现了真正商用的TEE技术。
TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中的复杂密码学运算,计算过程效率没有损失,因此与TEE相结合可以在性能损失较小的前提下很大程度上提升区块链的安全性和隐私性。目前工业界十分关注TEE的方案,几乎所有主流的芯片和软件联盟都有自己的TEE解决方案,包括软件方面的TPM(Trusted Platform Module,可信赖平台模块)以及硬件方面的Intel SGX(Software Guard Extensions,软件保护扩展)、ARM Trustzone(信任区)和AMD PSP(Platform Security Processor,平台安全处理器)。
伴随着互联网的高速发展,安全的需求越来越高,不仅限于移动设备,云端设备,数据中心都对TEE提出了更多的需求。TEE的概念也得到了高速的发展和扩充。现在所说的TEE相比与最初提出的概念已经是更加广义的TEE。例如,服务器芯片厂商Intel,AMD等都先后推出了硬件辅助的TEE并丰富了TEE的概念和特性,在工业界得到了广泛的认可。现在提起的TEE通常更多指这类硬件辅助的TEE技术。不同于移动端,云端访问需要远程访问,终端用户对硬件平台不可见,因此使用TEE的第一步就是要确认TEE的真实可信。因此现在的TEE技术都引入了远程证明机制,由硬件厂商(主要是CPU厂商)背书并通过数字签名技术确保用户对TEE状态可验证。同时仅仅是安全的资源隔离也无法满足的安全需求,进一步的数据隐私保护也被提出。包括Intel SGX,AMD SEV在内的商用TEE也都提供了内存加密技术,将可信硬件限定在CPU内部,总线和内存的数据均是密文防止恶意用户进行窥探。例如,英特尔的软件保护扩展(SGX)等TEE技术隔离了代码执行、远程证明、安全配置、数据的安全存储以及用于执行代码的可信路径。在TEE中运行的应用程序受到安全保护,几乎不可能被第三方访问。
具体而言,在在TEE中采用目标训练样本的集合进行模型训练,生成在TEE中可用的已训练模型可以进一步细分为两种方式:
第一种,在TEE环境中使用全量的训练样本的集合和初始模型进行模型训练,以得到在TEE中可用的已训练模型。这种方式下,需要初始模型即为TEE环境下的可执行语言所编写的。以及,还需要TEE环境下需要足够的性能支持。例如,足够大的内存和CPU性能。
第二种,在实际应用中,由于TEE的性能限制,例如在Intel所提供的SGX技术中仅分配128M内存,无法满足大规模数据集训练的要求。往往还可以采取在非可信环境中进行大规模数据集合的预训练,得到预训练模型,然后将预训练模型作为初始模型在TEE中根据少量的目标训练样本的集合进行微调。
例如,不改变所述预训练模型的模型结构,根据所述目标训练样本的集合对所述预训练模型的模型参数在TEE中进行模型训练,生成在TEE中可用的已训练模型。
S103,确定所述已训练模型中的预测部分。
模型训练的过程则可以包括对于模型结构的改变和对于模型参数的调整。例如,模型结构的调整就可以包括将线性结构换为非线性结构;或者,改变模型中的卷积层、池化层或者连接层的顺序;或者,添加若干卷积层、池化层或者连接层至初始模型中。而模型参数的调整则可以是对于卷积核中的权重参数组/权重参数矩阵基于损失函数进行调整等等。
在训练模型的过程中,其中有一部分是无关使用的,例如,关于激活函数、损失函数、目标函数的计算等等,这些部分的计算基本都是为了调整模型中的待训练参数。因此,实际上对于一个已训练的模型而言,其中的预测部分是与已训练参数密切相关的部分。
例如,包含有已训练参数的权重函数,以及,根据权重函数的计算结果并进行分类时所使用的分类函数,通过包含有已训练参数的权重函数,只需要获取初始的输入值,即可以计算得到最后的计算结果,基于分类函数即可以根据计算结果给出识别结果。
在模型训练中,一个模型可以包含模型结构和模型参数。例如,对于一个线性模型f(x)=k*x+b而言,线性结构即为该模型的结构,模型参数即为需要进行训练而得到的“k”和“b”,在训练结束后,假设此时的已训练参数k=2,b=1,则可以认为此时的f(x)=2*x+1,即为包含已训练参数的权重函数。而如果用户的输入为x=1,则此时可以确定为f(1)=3。而同时在已训练模型中,还需要根据f(1)的取值进行相应的分类或者聚类,例如,假设分类函数为分段函数G:当f(x)大于0时,G=1;当f(x)不大于0时,G=0。
总之,基于前述的权重函数和分类函数,只需要获取得到初始的待识别数据作为输入,即可以得到最终的识别结果。换言之,权重函数和分类函数是模型中基于待识别数据和已训练参数进行识别结果的计算部分。
在更为复杂的模型训练中,例如,神经网络模型中,权重函数和分类函数则可能有更为复杂的表现形式。例如,对于每个卷积层或者连接层而言,权重函数可以是每个卷积层中的权重矩阵,而分类函数则可能是对于生成的向量识别的概率分布函数等等。
S105,将所述预测部分替换为可信执行环境TEE中可执行的预测代码,部署所述TEE中可执行的预测代码至可信执行环境TEE中。
在确定了预测部分之后,即可以针对预测部分进行相应的替换。如前所述,在实际应用中,已训练模型通常都是全部或者大部分是在非可信执行环境中进行训练而得到的。而非可信执行环境和可信执行环境所使用的机器语言往往是不同的。
例如,在实际应用中对于深度学习模型的全部或者预测部分,通常是基于python语言所编写。而在开源的TEE环境MesaTEE中,则需要采用rust语言,在其它的TEE环境中,则可能需要其它的语言标准。因此,需要将所述预测部分替换为可信执行环境TEE中可执行的预测代码(即以TEE中所可执行的语言所编写的预测代码)。
更进一步地,在TEE中部署前述可执行的预测代码时,还可以采用将其进行封装,仅提供相应的可调用的应用程序编程接口(Application Programming Interface,API)以供使用。
由于在模型使用时,往往是需要是针对线上的数据流进行识别,如果不经过API接口的统一调用,一方面使用可执行代码对于模型使用人员不便,另一方面还可能发生数据流中的大量待识别数据同时向TEE中发起调用,造成识别过程和结果的混乱。通过对可执行的预测代码进行封装部署,方面了模型使用人员的调用,提升了模型在TEE中的可用性。
前述部分对于模型在TEE环境中的部署进行了说明,在另一方面,本说明书实施例还提供一种基于前述的TEE中可执行的预测代码的使用方法,如图2所示,图2为本说明书实施例中所提供的一种基于前述的TEE中可执行的预测代码的使用方法的流程示意图,包括:
S201,接收待预测数据。
待预测数据可以是用户的历史数据,也可以是用户线上所产生的即时数据。待预测数据中包含了需要进行隐私保护的数据,其中可能包含了用户的隐私数据或者对于模型的敏感数据。
例如,用户的隐私数据包括用户的姓名、身份证号码、住址、电话、银行账号、邮箱、密码、医疗信息、教育背景、生物特征信息(面部特征、指纹特征)等等。模型的敏感数据指的是可能会泄露模型的训练/识别算法或者对于模型的识别效果有着显著影响的数据。
S203,使用预设的公钥加密所述待预测数据,生成加密数据,其中,所述公钥为TEE所产生的密钥对中的公钥。
需要说明的是,使用预设的公钥加密所述待预测数据,生成加密数据可以是针对用户历史数据所预先完成的,也可以是针对线上数据所即时进行的。
例如,在一种实施方式中,需要针对每一个窗口期(例如,一周)内的用户交易数据进行模型复核。同时,又不希望暴露用户交易数据的明文给模型使用方,此时则可以,预先针对窗口期内所产生的用户交易数据进行公钥加密,从而得到批量的加密数据。
在另一种实施方式中,电商平台需要对于线上的每一笔交易即时的进行风险控制,但是又不希望暴露交易数据至模型适用房,则此时可以针对每一笔所产生的用户交易进行公钥加密,从而得到加密的数据流。
在本说明书实施例中,公钥可以是TEE中所生成的密钥对中的公钥。在TEE环境中,硬件厂商即可以生成用于数字签名的密钥对(包括公钥和对应的私钥),并且由硬件厂商来保障该密钥对的安全性。TEE将其所产生的密钥对中的私钥和公钥建立起对应的关系,并且保存该私钥,而公钥则可以发送至待识别数据的提供方,例如,电商平台方。
在一种实施方式中,TEE中还可以与待预测数据的提供方预先建立协议协商的安全信道,接收由所述安全信道所发送的TEE中所产生的公钥,以便对待预测数据进行加密。例如,待预测数据的提供方与所述TEE,使用RSA协商加密的方式,建立一个安全加密的通信链路,保证公钥的安全性。安全信道可以实现稳定且保密的数据传输,此处就不再赘述。通过安全信道保证公钥的安全性,可以进一步地加强待预测数据的加密安全性不受干扰,避免隐私外泄。
S205,将所述加密数据发送至所述TEE中,使用所述公钥所对应的私钥进行解密,得到解密后的待预测数据。
TEE即可以采用对应的私钥对该加密数据进行解密,得到解密后的待预测数据。由于解密是在TEE中进行的,因此,有TEE的提供方保证了待预测数据不会被泄露。
S207,在所述TEE中以所述解密后的待预测数据作为输入,执行所述预测代码,生成对于所述待预测数据的识别结果。
如前所示,预测代码已经以可执行语言的形式被部署,此时,只需将解密后的待预测数据作为输入,即可执行所述预测代码进行相应的计算,并得到相应的识别结果。
在一种实施方式中,可执行所述预测代码还可以通过封装,并提供相应的API以供模型使用人员进行调用,这一过程在前文已经进行了描述,此处不再赘述。
这个过程中虽然待预测数据已经被明文使用,但是基于TEE的特性,实际上模型的使用方即使得到了相应的识别结果,也不能知晓待预测数据的实际内容,实现了对于隐私数据在使用过程中的可用不可见,而对于使用流程没有影响。如图3所示,图3为本说明书实施例提供的整体上的框架结构示意图。
通过本说明书实施例所提供的方案,在可信执行环境TEE中不进行模型训练,而是将预先训练好的模型的预测部分,以TEE中可执行语言的形式部署至TEE环境中。对于线上需要识别的数据流,采用TEE中的公钥进行加密处理,并发送至TEE环境中进行解密,进而在TEE中进行识别,避免了识别过程中的数据外泄,实现对于隐私数据的有效保护。
与一方面对应的,本说明书实施例还提供一种模型部署装置,如图4所示,图4是本说明书实施例提供的一种模型部署装置的结构示意图,包括:
获取模块401,获取已训练模型;
确定模块403,确定所述已训练模型中的预测部分;
部署模块405,将所述预测部分替换为可信执行环境TEE中可执行的预测代码,部署所述TEE中可执行的预测代码至可信执行环境TEE中。
进一步地,所述获取模块401,获取在非TEE环境中所得到的已训练模型;或者,在TEE中采用目标训练样本的集合进行模型训练,生成在TEE中可用的已训练模型。
进一步地,所述确定模块403,将所述已训练模型中包含已训练参数的权重函数和分类函数确定为已训练模型中的预测部分。
进一步地,所述部署模块405,封装所述TTE中可执行的预测代码,以应用程序编程接口API的形式部署所述封装后的可执行的预测代码至所述TEE中。
与另一方面对应的,本说明书实施例还提供一种基于可执行的预测代码的使用装置,如图5所示,图5是本说明书实施例提供的一种基于TEE中可执行的预测代码的使用装置的结构示意图,包括:
接收模块501,接收待预测数据;
加密模块503,使用预设的公钥加密所述待预测数据,生成加密数据,其中,所述公钥为TEE所产生的密钥对中的公钥;
解密模块505,将所述加密数据发送至所述TEE中,使用所述公钥所对应的私钥进行解密,得到解密后的待预测数据;
识别模块507,在所述TEE中以解密后的待预测数据作为输入,执行所述预测代码,生成对于所述待预测数据的识别结果。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图1所示的模型部署方法。
图6示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图2所示的TEE中可执行的预测代码的使用方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (14)

1.一种模型部署方法,包括:
获取已训练模型;
确定所述已训练模型中的预测部分;
将所述预测部分替换为可信执行环境TEE中可执行的预测代码,部署所述TEE中可执行的预测代码至可信执行环境TEE中。
2.如权利要求1所述的方法,获取已训练模型,包括:
获取在非TEE环境中所得到的已训练模型;或者,
在TEE中采用目标训练样本的集合进行模型训练,生成在TEE中可用的已训练模型。
3.如权利要求1所述的方法,确定所述已训练模型中的预测部分,包括:
将所述已训练模型中包含已训练参数的权重函数和分类函数确定为已训练模型中的预测部分。
4.如权利要求1所述的方法,部署所述可执行的预测代码至可信执行环境TEE中,包括:
封装所述TTE中可执行的预测代码,以应用程序编程接口API的形式部署所述封装后的可执行的预测代码至所述TEE中。
5.一种基于权利要求1至4中任一所述的TEE中可执行的预测代码的使用方法,包括:
接收待预测数据;
使用预设的公钥加密所述待预测数据,生成加密数据,其中,所述公钥为TEE所产生的密钥对中的公钥;
将所述加密数据发送至所述TEE中,使用所述公钥所对应的私钥进行解密,得到解密后的待预测数据;
在所述TEE中以所述解密后的待预测数据作为输入,执行所述预测代码,生成对于所述待预测数据的识别结果。
6.如权利要求5所述的方法,在所述TEE中根据所述输入参数执行所述预测代码,生成对于所述待预测数据的识别结果,包括:
在所述TEE中发送所述待预测数据至所述预测代码所述对应的应用程序编程接口API,接收所述API所返回的识别结果,将所述API所返回的识别结果确定为待预测数据的识别结果。
7.一种模型部署装置,包括:
获取模块,获取已训练模型;
确定模块,确定所述已训练模型中的预测部分;
部署模块,将所述预测部分替换为可信执行环境TEE中可执行的预测代码,部署所述TEE中可执行的预测代码至可信执行环境TEE中。
8.如权利要求7所述的装置,所述获取模块,获取在非TEE环境中所得到的已训练模型;或者,在TEE中采用目标训练样本的集合进行模型训练,生成在TEE中可用的已训练模型。
9.如权利要求7所述的装置,所述确定模块,将所述已训练模型中包含已训练参数的权重函数和分类函数确定为已训练模型中的预测部分。
10.如权利要求7所述的装置,所述部署模块,封装所述TTE中可执行的预测代码,以应用程序编程接口API的形式部署所述封装后的可执行的预测代码至所述TEE中。
11.一种基于权利要求1至4中任一所述的TEE中可执行的预测代码的使用装置,包括:
接收模块,接收待预测数据;
加密模块,使用预设的公钥加密所述待预测数据,生成加密数据,其中,所述公钥为TEE所产生的密钥对中的公钥;
解密模块,将所述加密数据发送至所述TEE中,使用所述公钥所对应的私钥进行解密,得到解密后的待预测数据;
识别模块,在所述TEE中以解密后的待预测数据作为输入,执行所述预测代码,生成对于所述待预测数据的识别结果。
12.如权利要求11所述的装置,所述识别模块,在所述TEE中发送所述待预测数据至所述预测代码所述对应的应用程序编程接口API,接收所述API所返回的识别结果,将所述API所返回的识别结果确定为待预测数据的识别结果。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至4任一项所述的方法。
14.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求5至6任一项所述的方法。
CN201911286357.XA 2019-12-13 2019-12-13 一种模型部署方法、装置及设备 Active CN111079152B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911286357.XA CN111079152B (zh) 2019-12-13 2019-12-13 一种模型部署方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911286357.XA CN111079152B (zh) 2019-12-13 2019-12-13 一种模型部署方法、装置及设备

Publications (2)

Publication Number Publication Date
CN111079152A true CN111079152A (zh) 2020-04-28
CN111079152B CN111079152B (zh) 2022-07-22

Family

ID=70314554

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911286357.XA Active CN111079152B (zh) 2019-12-13 2019-12-13 一种模型部署方法、装置及设备

Country Status (1)

Country Link
CN (1) CN111079152B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111490995A (zh) * 2020-06-12 2020-08-04 支付宝(杭州)信息技术有限公司 保护隐私的模型训练方法和装置、数据处理方法、服务器
CN112487460A (zh) * 2020-05-09 2021-03-12 支付宝(杭州)信息技术有限公司 基于隐私保护的业务预测模型训练方法和装置
CN113254940A (zh) * 2021-05-20 2021-08-13 浙江网商银行股份有限公司 基于遥感数据的数据处理方法及装置
CN113608762A (zh) * 2021-07-30 2021-11-05 烽火通信科技股份有限公司 一种深度学习多模型统一部署方法与装置
CN115248823A (zh) * 2022-06-17 2022-10-28 上海英帕斯科技有限公司 一种基于区块链和可信执行环境的时序数据分析系统
CN113608762B (zh) * 2021-07-30 2024-05-17 烽火通信科技股份有限公司 一种深度学习多模型统一部署方法与装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109308418A (zh) * 2017-07-28 2019-02-05 阿里巴巴集团控股有限公司 一种基于共享数据的模型训练方法及装置
CN110011956A (zh) * 2018-12-12 2019-07-12 阿里巴巴集团控股有限公司 一种数据处理方法和装置
CN110162981A (zh) * 2019-04-18 2019-08-23 阿里巴巴集团控股有限公司 数据处理方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109308418A (zh) * 2017-07-28 2019-02-05 阿里巴巴集团控股有限公司 一种基于共享数据的模型训练方法及装置
CN110011956A (zh) * 2018-12-12 2019-07-12 阿里巴巴集团控股有限公司 一种数据处理方法和装置
CN110162981A (zh) * 2019-04-18 2019-08-23 阿里巴巴集团控股有限公司 数据处理方法及装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112487460A (zh) * 2020-05-09 2021-03-12 支付宝(杭州)信息技术有限公司 基于隐私保护的业务预测模型训练方法和装置
CN112487460B (zh) * 2020-05-09 2022-04-12 支付宝(杭州)信息技术有限公司 基于隐私保护的业务预测模型训练方法和装置
CN111490995A (zh) * 2020-06-12 2020-08-04 支付宝(杭州)信息技术有限公司 保护隐私的模型训练方法和装置、数据处理方法、服务器
CN113254940A (zh) * 2021-05-20 2021-08-13 浙江网商银行股份有限公司 基于遥感数据的数据处理方法及装置
CN113254940B (zh) * 2021-05-20 2023-01-17 浙江网商银行股份有限公司 基于遥感数据的数据处理方法及装置
CN113608762A (zh) * 2021-07-30 2021-11-05 烽火通信科技股份有限公司 一种深度学习多模型统一部署方法与装置
CN113608762B (zh) * 2021-07-30 2024-05-17 烽火通信科技股份有限公司 一种深度学习多模型统一部署方法与装置
CN115248823A (zh) * 2022-06-17 2022-10-28 上海英帕斯科技有限公司 一种基于区块链和可信执行环境的时序数据分析系统

Also Published As

Publication number Publication date
CN111079152B (zh) 2022-07-22

Similar Documents

Publication Publication Date Title
CN111027632B (zh) 一种模型训练方法、装置及设备
CN111079152B (zh) 一种模型部署方法、装置及设备
JP6626095B2 (ja) 機密情報処理方法、装置、及び、サーバ、ならびに、セキュリティ決定システム
CN110032883B (zh) 区块链中实现隐私保护的方法、系统和节点
US9576147B1 (en) Security policy application through data tagging
CN110266467B (zh) 基于区块高度实现动态加密的方法及装置
CN113240519A (zh) 基于区块链的智能合约管理方法及装置、电子设备
CN108055132A (zh) 一种业务授权的方法、装置及设备
CN109741063A (zh) 基于区块链的数字签名方法和装置
CN110276610B (zh) 基于交易偏移量实现动态加密的方法及装置
CN106899571A (zh) 信息交互方法及装置
CN109347629A (zh) 基于共享安全应用的密钥传递方法及系统、存储介质、设备
WO2023029447A1 (zh) 模型保护方法、装置、设备、系统以及存储介质
CN112434326B (zh) 一种基于数据流的可信计算方法及装置
CN109560933B (zh) 基于数字证书的认证方法及系统、存储介质、电子设备
US11113423B2 (en) FPGA hardware-based secure computing method and apparatus
CN110366183A (zh) 短信安全防护方法及装置
CN113792297A (zh) 一种业务处理方法、装置及设备
CN113704826A (zh) 一种基于隐私保护的业务风险检测方法、装置及设备
WO2023226801A1 (zh) 一种业务处理方法、装置及设备
CN112580085A (zh) 一种模型训练方法及装置
CN112417485A (zh) 一种基于可信执行环境的模型训练方法、系统及装置
CN108416224A (zh) 一种数据加解密方法及装置
CN110263547B (zh) 基于合约状态的修改次序实现动态加密的方法及装置
CN109711178A (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