一种基于可信执行环境的模型训练方法和装置与流程

文档序号:22924321发布日期:2020-11-13 16:17阅读:224来源:国知局
一种基于可信执行环境的模型训练方法和装置与流程

本说明书涉及网络安全领域,特别涉及一种基于可信执行环境的模型训练方法和装置。



背景技术:

随着技术的发展,网络中的数据种类越来越多,数据安全和数据隐私也显得越来越重要。相关技术中,可以采用多方安全计算、联邦学习等方法对数据进行加密处理,从而保证数据的安全。然而,当模型的训练数据量十分大时,采用这种方法会带来巨大的计算开销。



技术实现要素:

有鉴于此,本说明书提供一种基于可信执行环境的模型训练方法和装置。

具体地,本说明书是通过如下技术方案实现的:

一种基于可信执行环境的模型训练方法,包括:

从加密训练样本集中获取若干加密目标样本;

将所述若干加密目标样本输入可信执行环境,在可信执行环境中对所述加密目标样本解密并将解密后的目标样本输入特征提取模型,得到样本特征;

将所述可信执行环境输出的样本特征确定为用于本次迭代的目标样本特征;

利用所述目标样本特征对目标模型进行本次迭代训练。

一种基于可信执行环境的模型训练装置,包括:

获取单元,从加密训练样本集中获取若干加密目标样本;

输入单元,将所述若干加密目标样本输入可信执行环境,在可信执行环境中对所述加密目标样本解密并将解密后的目标样本输入特征提取模型,得到样本特征;

确定单元,将所述可信执行环境输出的样本特征确定为用于本次迭代的目标样本特征;

训练单元,利用所述目标样本特征对目标模型进行本次迭代训练。

一种基于可信执行环境的模型训练装置,包括:

处理器;

用于存储机器可执行指令的存储器;

其中,通过读取并执行所述存储器存储的与基于可信执行环境的模型训练逻辑对应的机器可执行指令,所述处理器被促使:

从加密训练样本集中获取若干加密目标样本;

将所述若干加密目标样本输入可信执行环境,在可信执行环境中对所述加密目标样本解密并将解密后的目标样本输入特征提取模型,得到样本特征;

将所述可信执行环境输出的样本特征确定为用于本次迭代的目标样本特征;

利用所述目标样本特征对目标模型进行本次迭代训练。

本说明书一个实施例实现了,可以从加密训练样本集中获取若干加密目标样本,然后将加密目标样本输入到可信执行环境中,在可信执行环境中对加密目标样本进行解密,并将解密后的目标样本输入到特征提取模型中,得到目标样本特征,从而利用所述目标样本特征对目标模型进行本次迭代训练。

采用上述方法,一方面,相比于相关技术中在可信执行环境中进行整个目标模型的训练过程来说,可以仅在可信执行环境中执行特征提取这一计算量更少的步骤,减轻可信执行环境的处理压力。另一方面,在常规执行环境中仅涉及加密训练样本、样本特征,并非原始的训练样本数据,可以避免了原始的训练样本数据被泄露的问题,保证了数据安全。

附图说明

图1为本说明书一示例性实施例示出的一种基于可信执行环境的模型训练方法的流程示意图;

图2为本说明书一示例性实施例示出的一种架构图;

图3为本说明书一示例性实施例示出的另一种基于可信执行环境的模型训练方法的流程示意图;

图4为本说明书一示例性实施例示出的一种反向传播方法的示意图;

图5为本说明书一示例性实施例示出的一种交换加密训练样本的示意图;

图6为本说明书一示例性实施例示出的一种基于可信执行环境的模型训练装置的一结构示意图;

图7为本说明书一示例性实施例示出的一种基于可信执行环境的模型训练装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

众所周知,许多机器学习的任务都需要使用大量的数据来训练,特别对于一些深度学习的任务,其使用的训练数据甚至达到了tb、pb(1tb=1024gb,1pb=1024tb)量级。而在执行这些机器学习任务的过程中,保证数据安全、避免泄露隐私十分重要。

在一些情况下,机器学习模型可以是由多个数据持有方提供的数据联合训练得到的,每个数据持有方都可以提供一些训练样本数据,并且不同数据持有方提供的训练样本数据可以是不同维度的。可以将各个数据持有方提供的训练样本数据进行整合,得到维度更丰富的训练样本数据,从而训练出效果更佳的模型。然而,在大数据时代,数据本身就是一种十分有价值的资源,数据持有方在贡献自身的训练样本数据的同时,并不希望把这些数据原封不动地分享出来,以防这些数据被其它数据持有方恶意窃取。基于此,有必要采取一些保证数据安全的措施。

在另一些情况下,机器学习模型也可以是由单个数据持有方自身的数据训练得到的。采用这种方法,虽然不存在上述数据被其它数据持有方恶意窃取的情况,但是为了避免开发人员在训练模型的过程中接触到原始训练数据(比如用户人脸图像、用户账号等涉及用户个人隐私的数据),同样有必要对这些原始训练数据采取保护措施。

相关技术中,可以采取联邦学习、多方安全计算等方法来保证数据安全。在这些方法中,可以借助一个第三方(即区别于各个数据持有方的一方)来训练模型,各个数据持有方可以将自身的训练样本数据加密后发送给第三方,第三方可以调用可信执行环境(trustedexecutionenvironment,tee)来训练模型,从而保证数据安全。

其中,可信执行环境是设备处理器上的一个安全区域,其可以保证加载到该环境内部的代码和数据的安全性、机密性以及完整性。tee提供一个隔离的执行环境,提供的安全特征包含:隔离执行、可信应用的完整性、可信数据的机密性、安全存储等。总体来说,tee可以提供比操作系统更高级别的安全性。

然而,在tee中训练模型,一方面,当存在多个数据持有方时,第三方需要针对每个数据持有方都创建一个对应的可信执行环境,并且在每个数据持有方对应的tee中分别训练模型、更新模型参数等等,在tee中产生巨大的计算开销,并且各个tee之间进行通讯也会带来巨大的通讯量。另一方面,即便是只存在一个数据持有方,当面对深度机器学习任务海量的训练样本数据时,采用tee来基于这些海量的训练样本数据训练模型,同样会给tee带来巨大的计算压力。

本说明书提供了一种基于可信执行环境的模型训练方法。

图1是本说明书一示例性实施例示出的一种基于可信执行环境的模型训练方法的流程示意图。

所述基于可信执行环境的模型训练方法可以应用于具有处理器、存储器的电子设备中,本说明书对此不作特殊限制。

请参考图1,所述基于可信执行环境的模型训练方法可以包括以下步骤:

步骤102,从加密训练样本集中获取若干加密目标样本;

步骤104,将所述若干加密目标样本输入可信执行环境,在可信执行环境中对所述加密目标样本解密并将解密后的目标样本输入特征提取模型,得到样本特征;

步骤106,将所述可信执行环境输出的样本特征确定为用于本次迭代的目标样本特征;

步骤108,利用所述目标样本特征对目标模型进行本次迭代训练。

下面对上述步骤进行详细说明。

本实施例中,以存在一个数据持有方为例,对所述基于可信执行环境的模型训练方法进行说明。并且,本实施例中可以由该数据持有方自身来训练目标模型。当然,在其它实施例中,也可以由第三方来训练目标模型,本说明书对此不作特殊限制。

本实施例中,所述数据持有方可以预先获取一些训练样本,然后对这些训练样本进行加密,得到加密训练样本集。其中,加密的方法可以参照相关技术,本实施例对此不作特殊限制。

数据持有方可以先在常规执行环境中从加密训练样本集中获取若干加密目标样本。所述常规执行环境可以指:除可信执行环境外的其余执行环境。

确定加密目标样本后,数据持有方可以调用tee,在tee中对加密目标样本进行解密处理,解密处理的方法与加密处理的方法相对应,同样可以参照相关技术。然后在tee中针对每条解密后的目标样本,提取出所述目标样本的样本特征。比如,当目标模型为人脸识别模型时,所述样本特征可以是人脸特征;再比如,当目标模型为风险预测模型时,所述样本特征可以为用户年龄、性别、交易记录等等。本实施例对此不作特殊限制。提取出的样本特征通常是向量、矩阵等形式,不会泄露样本的隐私信息。

本实施例中,可以通过以下的方法来获取样本特征:

在一个例子中,可以根据预设的规则来提取样本特征。

可以指定待提取的信息,然后从每个目标样本中提取出所述待提取信息作为样本特征。比如,假设目标样本为用户的账号信息,可以指定待提取的信息为:用户的姓名、年龄、身份证、居住地;再比如,假设目标样本为用户的历史交易信息,可以指定待提取的信息为:转账金额、转账时间、收款方信息。

本例中,还可以将样本特征转换为向量、字符串等形式,比如,若待提取的信息包括用户的居住地,假设用户的居住地为浙江,则确定样本特征为1;假设用户的居住地为北京,则确定样本特征为0。采用这种方法不仅可以将样本特征转换为计算机易于处理的形式,还可以弱化样本特征的实际含义,有助于保护隐私数据。

当然,上述例子仅仅是示意性的说明,在实际应用中也可以采取其它方法提取样本特征,本实施例对此不作特殊限制。

在另一个例子中,也可以将上述目标样本输入到可信执行环境中的特征提取模型中,利用所述特征提取模型预测得到样本特征。所述特征提取模型可以是预先训练得到的,也可以是在目标模型迭代训练的过程中与目标模型联合训练得到的,本实施例对此不作特殊限制。

本实施例中,可以采用迭代训练的方法来训练目标模型,在每次迭代中可以采用不同的样本特征对目标模型进行训练。

在一个例子中,数据持有方在一次迭代中,可以从加密训练样本集中选取一部分加密目标样本,将这些加密目标样本输入tee以提取样本特征(即目标样本特征),在本次迭代中利用这些目标样本特征对目标模型进行训练。在下次迭代中则可以从加密训练样本集中获取另一部分加密目标样本,再次执行上述步骤,以此进行多次迭代。

在另一个例子中,数据持有方也可以在开始迭代训练之前,预先将加密训练样本集中的加密目标样本均输入到tee中以提取样本特征,然后可以将这些样本特征保存(可以保存在tee中,也可以保存在常规执行环境中)。那么在每次迭代训练中,数据持有方可以不用获取加密目标样本,而是根据所述加密目标样本与样本特征之间的对应关系,直接获取本次迭代所需的目标样本特征即可。本实施例对此不作特殊限制。

本实施例中,当采用迭代训练的方法来训练目标模型时,可以通过以下的方法来判断是否满足目标模型的训练要求。

比如,可以判断迭代训练的次数是否达到了次数阈值,所述次数阈值可以人为设置,若达到次数阈值,则满足训练要求;反之,则不满足训练要求。

再比如,还可以基于损失函数,计算目标模型每次迭代对应的损失,判断所述损失是否小于损失阈值,若小于,则满足训练要求;反之,则可以利用梯度下降法等方法更新目标模型的模型参数,再次进行迭代训练。

当然,也可以采取其它方法判断目标模型是否已训练完成,本实施例对此不作特殊限制。

由以上描述可以看出,在本说明书的一个实施例中,从加密训练样本集中获取加密目标样本,然后调用tee对加密目标样本进行解密,然后将解密得到的目标样本输入到tee中的特征提取模型中,得到样本特征,将所述样本特征确定为用于本次迭代的目标样本特征,然后利用所述目标样本特征对目标模型进行训练。可以按照上述的方法对目标模型进行多次的迭代训练,直到满足目标模型的训练要求。

采用上述方法,一方面,相比于相关技术中在可信执行环境中进行整个目标模型的训练过程来说,本实施例所述方法可以仅在tee中执行特征提取这一计算量更少的步骤,而将模型训练这种较为复杂的步骤放在常规执行环境中进行,从而减少tee中的计算量,减轻tee的处理压力。另一方面,本实施例所述方法在常规执行环境中仅涉及加密训练样本、样本特征,并非原始的训练样本数据,也就避免了原始的训练样本数据被泄露的问题,保证了数据安全。

下面对本说明书提供的另一种基于可信执行环境的模型训练方法进行说明。

本实施例所述方法中,可以存在多个数据持有方,并且这些数据持有方都可以作为训练目标模型的执行主体,共同地训练目标模型。

首先对本实施例的场景架构进行说明。请参见图2,图2为本说明书一示例性实施例示出的一种架构图。图2中,存在服务器s0、s1、s2、sx、sx+1……sn。

其中,服务器s1—sx可以是数据持有方a对应的服务器,服务器sx+1—sn可以是数据持有方b对应的服务器。其中,服务器s1—sn中的每个服务器上可以运行一个训练进程,分别为s1、s2……sn,可以通过n个训练进程来一起训练得到目标模型。当然,在其他实施例中,也可以在一台服务器上运行有多个训练进程,本说明书对此不作特殊限制。各个训练进程可以彼此独立运行,即若一台服务器发生了故障,不会对其它服务器上运行的训练进程产生影响。

服务器s0可以理解为管理服务器s1—sn的总服务器,服务器s0可以属于数据持有方a,也可以属于数据持有方b,或者也可以属于第三方,本实施例对此不作特殊限制。

服务器s1—sn中的每个服务器都可以将本地存储的若干训练样本数据加密后发送给服务器s0,服务器s0可以对接收到的加密训练样本数据进行存储,得到加密训练样本集。

服务器s0可以将所述加密训练样本集分成若干份。举例来说,s0可以将加密训练样本集分为n份,得到n个子训练样本集,分别为s0(1)、s0(2)……s0(n)。那么服务器s1、s2……sn上运行的训练进程可以分别从s0上分别获取对应的子训练样本集作为目标样本,比如训练进程s1可以获取s0(1)、s2可以获取s0(2)……sn可以获取s0(n)。当然,也可以各个训练进程随机从s0上获取子训练样本集,本实施例对此不作特殊限制。各个服务器上的训练进程获取到对应的子训练样本集后,还可以将所述子训练样本集存储于本地,用于后续计算。

当然,在其它实施例中,也可以不存在服务器s0,本说明书对此不作特殊限制。

采用这样的方法,可以将大量的加密训练样本数据拆分为若干份,每个训练进程只需要获取其对应的一小部分加密训练样本数据即可,可以减轻服务器的计算压力,提高计算效率。

请参见图3,图3为本说明书一示例性实施例示出的另一种基于可信执行环境的模型训练方法的流程示意图。

本实施例中,服务器s1、s2……sn上的每个训练进程都可以执行以下步骤进行迭代训练,直到满足目标模型的训练要求:

步骤202,获取用于本次迭代的若干加密目标样本。

本步骤中,训练进程在首次迭代训练时,可以从服务器s0上获取对应的子训练样本集,并将所述子训练样本集中的加密训练样本确定为本次迭代的加密目标样本。

在非首次迭代训练时,每个训练进程可以在上一迭代执行步骤214后得到交换后的子训练样本集,然后将交换后的子训练样本集中的加密训练样本确定为本次迭代的加密目标样本。其中,交换的方法在后续步骤214中详细说明。

步骤204,在tee中,对所述若干加密目标样本进行解密。

本步骤中,训练进程可以调用tee,在tee中对加密目标样本进行解密。

其中,目标样本的加密方法可以是des(dateencryptionstandard,数据加密标准)法、aes(advancedencryptionstandard,高级加密标准)法、3des(tripledateencryptionalgorithm,三重数据加密)法、rsa法等,也可以是相关技术中的其它加密方法,本实施例对此不作特殊限制。具体的加密、解密方法参照相关技术,在此不再赘述。

值得说明的是,在本实施例的一个例子中,每个训练进程都可以存在对应的一个tee,各个训练进程之间并不共享tee。那么每个训练进程在执行步骤204时,可以直接调取其对应的tee。

在本实施例的另一个例子中,也可以各个训练进程共用一个tee,那么每个训练进程在执行步骤204时,都可以调用这个共用的tee。

在本实施例的另一个例子中,也可以不同数据持有方存在不同的tee。比如当存在数据持有方a和数据持有方b这两个数据持有方时,可以存在数据持有方a对应的tee(a)和数据持有方b对应的tee(b),那么这两个数据持有方对应的训练进程在执行步骤204时,可以分别调用各自对应的tee。

当然,在其它例子中,也可以采取其它方法,本实施例对此不作特殊限制。

步骤206,在tee中,对解密后的目标样本进行特征增强处理。

本步骤中,可以在tee中对解密后的目标样本进行特征增强处理,便于后续在步骤208中提取样本特征。

例如,当所述目标样本为图像时,所述特征增强处理可以包括以下一种或多种:裁剪、翻转、基于预设角度对图像进行旋转、灰度化、更改图像中像素点的像素值等。

再例如,当所述目标样本为文本时,所述特征增强处理可以包括以下一种或多种:分词、过滤标点符号、去除停用词、将文本转换为向量等。

当然,在其它例子中,也可以采取其它的特征增强处理方法,本实施例对此不作特殊限制。

步骤208,在tee中,提取出所述目标样本的目标样本特征。

本实施例中,可以将目标样本输入到tee中的特征提取模型中,根据特征提取模型的输出结果确定目标样本特征。

值得说明的是,本步骤中,服务器s1、s2……sn上的各个训练进程可以利用同一个特征提取模型来预测样本特征,也可以利用多个特征提取模型来预测样本特征,比如每个训练进程分别对应着一个特征提取模型(即有n个训练进程就有n个特征提取模型)。

步骤210,基于所述目标样本特征对目标模型进行训练,并判断是否达到目标模型的训练要求。

本步骤中,训练进程可以利用提取得到的目标样本特征对目标模型进行训练。还可以判断是否达到目标模型的训练要求。

例如,可以根据目标模型的损失函数,计算出本次迭代中所述目标模型对应的第一梯度值,然后判断所述第一梯度值是否小于梯度阈值,若小于,则确定达到目标模型的训练要求,执行步骤212,结束训练;若不小于,则确定未达到目标模型的训练要求,执行步骤214。其中,计算梯度值的方法参照相关技术,在此不再赘述。

本例中,若未达到目标模型的训练要求,还可以基于所述第一梯度值更新目标模型的模型参数,利用更新后的模型参数进行下一次迭代训练。

比如,当目标模型存在大量的模型参数时,每个模型参数的收敛条件很可能是不一样的,那么可以为这些模型参数分别指定对应的训练进程,每个训练进程负责对目标模型的指定模型参数计算相关损失、梯度值,以更新模型参数。具体的参数更新方法参照相关技术,在此不再一一说明。

本例中,对于步骤208中提及的,特征提取模型与目标模型联合训练的情况,在常规执行环境中得到目标模型对应的第一梯度值后,还可以基于所述第一梯度值计算得到第二梯度值,并且将第二梯度值输入到tee中,并利用第二梯度值更新tee中特征提取模型的模型参数。

下面以一个具体的例子进行说明,请参见图4,可以将解密后的目标样本输入到tee中的特征提取模型中,得到目标样本特征为x。然后可以将x输入到目标模型中。假设目标模型包括matmul和softmax两层。目标样本特征x首先输入到matmul这一层中,得到结果为xs,然后将xs输入到softmax这一层中,得到结果为y,y即目标模型的预测结果。

在反向传播计算梯度时,可以先基于损失函数的公式l计算得到损失值,然后计算l对y求偏导,得到,然后将传播到softmax这一层,按照计算softmax这一层的梯度,其中可以根据sotmax这一层的函数计算得到。然后将传播到matmul这一层,按照计算matmul这一层的梯度,其中同样可以根据matmul这一层的函数计算得到。最终可以将输入到tee中,以利用更新特征提取模型的模型参数。

当然,上述例子仅仅是示意性的说明,在实际情况下目标模型也可以不是上述matmul和sotmax的结构,本说明书对此不作特殊限制。

步骤214,与其他训练进程交换部分加密训练样本,得到交换后的子训练样本集。

本步骤中,每个训练进程都可以与其他训练进行交换部分加密训练样本,然后将交换后得到的子训练样本作为下一次迭代时的目标样本。

在一个例子中,可以由各个训练进程完成交换。

例如,每个训练进程可以将自身的子训练样本集中预设比例的加密训练样本发送给第一指定训练进程,然后将这部分训练样本从自身的子训练样本集中删除。接收由第二指定训练进程发送的加密训练样本,将所述第二指定训练进程发送的加密训练样本自身的子训练样本集,最终得到交换后的子训练样本集。

下面以一个具体的例子进行说明。请参见图5,图5为本说明书一示例性实施例示出的一种交换加密训练样本的示意图。

图5中存在s1、s2、s3这三个训练进程,并且每个训练进程都存在对应的2个加密训练样本,其中,训练进程s1的加密训练样本为样本1a、样本1b;训练进程s2的加密训练样本为样本2a、样本2b;训练进程s3的加密训练样本为样本3a、样本3b。假设s1、s2、s3在交换加密训练样本时,上述预设比例均为1/2,也就是说,每个训练进程都将自身拥有的2个训练样本中的1个加密训练样本发送出去,并且每个训练进程都可以得到来自其他训练进程发送的1个加密训练样本,这样交换结束后每个训练进程仍然拥有2个加密训练样本。

可参见图5,假设s1的第一指定训练进程为s2,第二指定训练进程为s3,那么s1可以把样本1a发送给s2,且接收到s3发送的样本3a,那么交换后s1的子训练样本集包括样本3a、样本1b。同理,假设s2的第一指定训练进程为s3,第二指定训练进程为s1,那么s2可以把样本2a发送给s3,且接收到s1发送的样本1a,那么交换后s2的子训练样本集包括样本1a、样本2b。假设s3的第一指定训练进程为s1,第二指定训练进程为s2,那么s3可以把样本3a发送给s1,且接收到s2发送的样本2a,那么交换后s3的子训练样本集包括样本2a、样本3b。

当然,上述例子仅仅是示意性的说明,在其它情况下,也可以采取其它方法交换加密训练样本,本实施例对此不作特殊限制。

在另一个例子中,也可以由交换进程来完成交换。

例如,可以在图2中的服务器s0上运行一个交换进程,并且服务器s0可以和服务器s1、s2……sn进行通信。服务器s1、s2……sn上的训练进程执行步骤210后,确定未达到目标模型的训练要求,则各个训练进程可以向服务器s0发送一个通知,以通知服务器s0运行交换进程。服务器s0可以在接收到服务器s1、s2……sn上共n个训练进程发送的通知后再运行交换进程,也可以在接收到预设数量的训练进程发送通知后就运行交换进程,比如预设数量可以为n-5。

交换进程可以是按照上述类似的方法,对各个训练进程的子训练样本集进行交换,也可以采取其它方法进行交换。比如,交换进程可以获取所有训练进程对应的子训练样本集,然后将这些子训练样本集中的加密训练样本“打乱”后重新排列,然后再将重新排列后的加密训练样本随机地分为若干份,得到若干份交换后的子训练样本集。

并且,在交换完成后,服务器s0还可以向服务器s1、s2……sn发送交换完成的通知,以使服务器s1、s2……sn上的训练进程在下次迭代训练中获取新的加密目标样本。

采用上述方法,一方面,对加密训练样本进行交换、重组后再训练,可以使用不同组合方式来训练模型,以得到性能更优的模型。另一方面,各个训练进程交换各自的加密训练样本后,可以在下次迭代训练中将这些加密训练样本再次输入到tee中以提取得到样本特征,由于在提取样本特征前会先对训练样本进行特征增强,如对于图像样本,可以对图像进行随机裁切、随机更改像素值等增强处理,那么同一训练样本每次经过增强处理后提取得到的样本特征很可能是不同的,可以使用尽可能多的样本特征来训练模型,同样可以提高模型性能。

当然,各个训练进程除了按照上述方法进行加密训练样本的交换外,也可以直接交换目标样本特征,交换目标样本特征的方法可以与前述交换加密目标样本的方法类似。那么在下次迭代训练中,各个训练进程可以直接利用交换后得到的目标样本特征进行训练,而不必执行再次将加密训练样本输入tee中进行特征提取的步骤。

本实施例中,可以采用上述方法对目标模型进行迭代训练,直到得到训练好的目标模型。

值得说明的是,本实施例中,在每次迭代训练时,一方面,考虑到系统的一致性要求,可以等待每一个训练进程都完成本次迭代后再进行下一次迭代训练。另一方面,考虑到系统的稳定性要求,在训练进程数量很多的情况下很可能会出现一些训练进程因故障导致无法顺利完成迭代的问题,那么还可以不必等待所有训练进程都完成本次迭代,比如“算得快”的训练进程完成本次迭代后可以继续下一轮迭代,但是可以设置其比“算的最慢”的训练进程领先的迭代步不得超过x步,x的数值可以人为预设。这样不仅可以省去等待的时间,也可以在整体上保持系统的稳定性。当然,在实际情况下也可以选择其他的方法,本实施例对此不作特殊限制。

由以上描述可以看出,在本说明书中的一个实施例中,可以开启多个训练进程以执行目标模型的迭代训练,每个训练进程在迭代训练的过程中可以获取其对应的子训练样本集作为目标样本,然后调用tee提取出目标样本的样本特征,在常规执行环境中利用样本特征训练目标模型,从而保证了数据的安全。

其中,采用多个训练进程对目标模型进行训练,一方面,可以多个训练进程同时运行,提高了训练效率;另一方面,由于目标模型在训练过程中需要用到大量的训练样本数据,将这些训练样本数据切分后分别交给多个训练进程来执行,每个训练进程只需要负责处理一部分训练样本数据即可,可以减轻设备的处理压力;再一方面,还可以在目标模型的模型参数数量规模巨大的情况下,将这些模型参数分别指派给各个训练进程,每个训练进程负责更新其对应的模型参数,通过多个训练进程联合训练目标模型。

与前述基于可信执行环境的模型训练方法的实施例相对应,本说明书还提供了基于可信执行环境的模型训练装置的实施例。

本说明书基于可信执行环境的模型训练装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本说明书基于可信执行环境的模型训练装置的一结构示意图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的基于可信执行环境的模型训练通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。

图7为本说明书一示例性实施例示出的一种基于可信执行环境的模型训练装置的框图。

请参考图7,所述基于可信执行环境的模型训练装置600可以应用在前述图6所示的电子设备中,包括有获取单元610、输入单元620、确定单元630、训练单元640。

其中,获取单元610,从加密训练样本集中获取若干加密目标样本;

输入单元620,将所述若干加密目标样本输入可信执行环境,在可信执行环境中对所述加密目标样本解密并将解密后的目标样本输入特征提取模型,得到样本特征;

确定单元630,将所述可信执行环境输出的样本特征确定为用于本次迭代的目标样本特征;

训练单元640,利用所述目标样本特征对目标模型进行本次迭代训练。

可选的,所述训练单元640:

根据所述目标模型的损失函数,确定本次迭代中所述目标模型对应的第一梯度值;

利用所述第一梯度值更新所述目标模型的模型参数;

所述训练单元还:

基于所述第一梯度值计算出本次迭代中所述特征提取模型对应的第二梯度值;

利用所述第二梯度值更新所述特征提取模型的模型参数。

可选的,所述输入单元620在将解密后的目标样本输入特征提取模型之前,还:

在可信执行环境中对所述解密后的目标样本进行特征增强处理。

可选的,所述装置基于多个训练进程执行所述目标模型的迭代训练;

每个训练进程执行所述获取单元610中获取若干加密目标样本时:

在首次迭代时,获取本训练进程对应的子训练样本集,并将所述子训练样本集中的加密训练样本确定为本次迭代的加密目标样本;

在非首次迭代时,与指定训练进程交换部分加密训练样本,得到本次迭代的加密目标样本。

可选的,所述获取单元610在与指定训练进程交换部分加密训练样本时:

每个训练进程将对应的子训练样本集中预设比例的加密训练样本发送给第一指定训练进程;

接收由第二指定训练进程发送的加密训练样本。

可选的,各个训练进程分别用于训练得到所述目标模型的指定模型参数。

可选的,所述训练单元640,还:

针对每个训练进程,执行以下操作:

与指定训练进程交换部分目标样本特征,得到本训练进程用于下次迭代的交换后的目标样本特征,并在下次迭代中利用所述交换后的目标样本特征对所述目标模型进行训练。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

与前述基于可信执行环境的模型训练方法的实施例相对应,本说明书还提供一种基于可信执行环境的模型训练装置,该装置包括:处理器以及用于存储机器可执行指令的存储器。其中,处理器和存储器通常借由内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。

在本实施例中,通过读取并执行所述存储器存储的与基于可信执行环境的模型训练逻辑对应的机器可执行指令,所述处理器被促使:

从加密训练样本集中获取若干加密目标样本;

将所述若干加密目标样本输入可信执行环境,在可信执行环境中对所述加密目标样本解密并将解密后的目标样本输入特征提取模型,得到样本特征;

将所述可信执行环境输出的样本特征确定为用于本次迭代的目标样本特征;

利用所述目标样本特征对目标模型进行本次迭代训练。

可选的,在利用所述目标样本特征对所述目标模型进行本次迭代训练时,所述处理器被促使:

根据所述目标模型的损失函数,确定本次迭代中所述目标模型对应的第一梯度值;

利用所述第一梯度值更新所述目标模型的模型参数;

所述处理器还被促使:

基于所述第一梯度值计算出本次迭代中所述特征提取模型对应的第二梯度值;

利用所述第二梯度值更新所述特征提取模型的模型参数。

可选的,在将解密后的目标样本输入特征提取模型之前,所述处理器还被促使:

在可信执行环境中对所述解密后的目标样本进行特征增强处理。

可选的,所述装置基于多个训练进程执行所述目标模型的迭代训练;

在每个训练进程获取用于本次迭代的若干目标样本的过程,所述处理器被促使:

在首次迭代时,获取本训练进程对应的子训练样本集,并将所述子训练样本集中的加密训练样本确定为本次迭代的加密目标样本;

在非首次迭代时,与指定训练进程交换部分加密训练样本,得到本次迭代的加密目标样本。

可选的,在与指定训练进程交换部分加密训练样本时,所述处理器被促使:

每个训练进程将对应的子训练样本集中预设比例的加密训练样本发送给第一指定训练进程;

接收由第二指定训练进程发送的加密训练样本。

可选的,各个训练进程分别用于训练得到所述目标模型的指定模型参数。

可选的,在利用所述目标样本特征对所述目标模型进行本次迭代训练之后,所述处理器还被促使:

针对每个训练进程,执行以下操作:

与指定训练进程交换部分目标样本特征,得到本训练进程用于下次迭代的交换后的目标样本特征,并在下次迭代中利用所述交换后的目标样本特征对所述目标模型进行训练。与前述基于可信执行环境的模型训练方法的实施例相对应,本说明书还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现以下步骤:

从加密训练样本集中获取若干加密目标样本;

将所述若干加密目标样本输入可信执行环境,在可信执行环境中对所述加密目标样本解密并将解密后的目标样本输入特征提取模型,得到样本特征;

将所述可信执行环境输出的样本特征确定为用于本次迭代的目标样本特征;

利用所述目标样本特征对目标模型进行本次迭代训练。

可选的,所述利用所述目标样本特征对所述目标模型进行本次迭代训练,包括:

根据所述目标模型的损失函数,确定本次迭代中所述目标模型对应的第一梯度值;

利用所述第一梯度值更新所述目标模型的模型参数;

还包括:

基于所述第一梯度值计算出本次迭代中所述特征提取模型对应的第二梯度值;

利用所述第二梯度值更新所述特征提取模型的模型参数。

可选的,所述将解密后的目标样本输入特征提取模型之前,还包括:

在可信执行环境中对所述解密后的目标样本进行特征增强处理。

可选的,基于多个训练进程执行所述目标模型的迭代训练;

每个训练进程获取若干目标样本的过程,包括:

在首次迭代时,获取本训练进程对应的子训练样本集,并将所述子训练样本集中的加密训练样本确定为本次迭代的加密目标样本;

在非首次迭代时,与指定训练进程交换部分加密训练样本,得到本次迭代的加密目标样本。

可选的,所述与指定训练进程交换部分加密训练样本,包括:

每个训练进程将对应的子训练样本集中预设比例的加密训练样本发送给第一指定训练进程;

接收由第二指定训练进程发送的加密训练样本。

可选的,各个训练进程分别用于训练得到所述目标模型的指定模型参数。

可选的,所述利用所述目标样本特征对所述目标模型进行本次迭代训练之后,还包括:针对每个训练进程,执行以下操作:

与指定训练进程交换部分目标样本特征,得到本训练进程用于下次迭代的交换后的目标样本特征,并在下次迭代中利用所述交换后的目标样本特征对所述目标模型进行训练。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1