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

模型的运行方法和装置与流程

2022-02-25 18:46:01 来源:中国专利 TAG:


1.本说明书一个或多个实施例涉及通信技术,尤其涉及模型的运行方法和装置。


背景技术:

2.在人工智能(artificial intelligence,ai)及机器学习等技术中,会建立大量的模型,并利用模型来完成一系列的计算处理。
3.随着隐私保护与效率的要求,越来越多的模型不再被部署在服务器中,而被下发到终端设备中运行。但是,终端设备的运行环境相对开放,模型在终端设备上运行,则会面临更多的被逆向与窃取的风险,从而大大降低了模型的安全性,甚至导致整个系统的安全受到威胁。


技术实现要素:

4.本说明书一个或多个实施例描述了模型的运行方法和装置,能够提高模型运行的安全性。
5.根据第一方面,提供了一种模型的运行方法,其中,包括:
6.对原始模型进行拆分,得到基础模型以及tee(trusted execution environment)模型;
7.将所述基础模型的数据以及所述tee模型的数据下发到终端设备,以使所述终端设备中的ree(rich execution environment)运行所述基础模型的数据,且所述终端设备中的tee运行所述tee模型的数据。
8.其中,所述对原始模型进行拆分,包括如下中的至少一项:
9.根据预设的拆分比例对原始模型进行拆分;
10.将所述原始模型使用的神经网络中的前m层拆分为所述基础模型,后n层拆分为所述tee模型;其中,所述神经网络的总层数为m加n;
11.根据终端设备中tee的运行空间的大小,对原始模型进行拆分。
12.所述将所述基础模型的数据以及所述tee模型的数据下发到终端设备,包括:
13.将所述基础模型的数据下发到终端设备中的ree;
14.将所述tee模型的数据通过tee专用通道下发到终端设备中的tee。
15.在得到tee模型之后,并在将tee模型的数据下发到终端设备之前,进一步包括:根据预先获取的加密密钥,对tee模型进行加密,得到加密模型;
16.所述tee模型的数据,包括:加密模型。
17.所述将所述基础模型的数据以及所述tee模型的数据下发到终端设备,包括:
18.将所述加密模型封装成tee算子;
19.根据所述基础模型以及所述tee算子,生成重塑模型;
20.将所述重塑模型下发到所述终端设备中的ree。
21.根据第二方面,提供了一种模型的运行方法,其中,包括:
22.接收基础模型的数据以及tee模型的数据;其中,所述基础模型的数据以及所述tee模型的数据是对原始模型进行拆分之后得到的;
23.通过ree(rich execution environment)运行所述基础模型;
24.通过tee(trusted execution environment)运行所述tee模型。
25.所述接收基础模型的数据以及tee模型的数据,包括:
26.由所述ree接收基础模型的数据;
27.有所述tee通过tee专用通道接收所述tee模型的数据。
28.所述tee模型的数据,包括:对所述tee模型加密后生成的加密模型。
29.所述接收基础模型的数据以及tee模型的数据,包括:
30.ree接收重塑模型;该重塑模型根据所述基础模型以及所述加密模型封装出的tee算子生成;
31.所述通过ree运行所述基础模型,包括:ree运行该重塑模型中的基础模型;
32.所述通过tee运行所述tee模型,包括:
33.ree运行到重塑模型中的tee算子时,无法识别该tee算子,则将该tee算子发送给tee;
34.tee对tee算子解封装,得到所述加密模型;
35.tee根据预先得到的解密密钥对所述加密模型进行解密,得到tee模型;
36.tee运行该tee模型。
37.其中,在所述通过tee运行所述tee模型之后,进一步包括:
38.tee将运行tee模型后得到的特征向量输出到tee的外部;
39.或者,
40.tee根据运行tee模型后得到的特征向量获取识别结果,将该识别结果输出到tee的外部。
41.根据第三方面,提供了一种模型的运行装置,其中,包括:
42.模型重塑模块,配置为对原始模型进行拆分,得到基础模型以及tee模型;
43.模型下发模块,配置为将基础模型的数据以及tee模型的数据下发到终端设备,以使所述终端设备中的ree运行基础模型的数据,且终端设备中的tee运行tee模型的数据。
44.根据第四方面,提供了一种模型的运行装置,其中,包括:
45.接收模块,配置为接收基础模型的数据以及tee模型的数据;其中,所述基础模型的数据以及所述tee模型的数据是对原始模型进行拆分之后得到的;
46.ree,配置为运行所述基础模型;
47.tee,配置为运行所述tee模型。
48.根据第五方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书任一实施例所述的方法。
49.本说明书实施例提供的模型的运行方法及装置,在服务器侧,将模型进行拆分,拆分出基础模型部分以及tee模型部分。相应地,在终端设备侧,由ree运行基础模型,由tee运行tee模型。因为tee在终端设备中构建了一个可信执行环境,因此能够保证tee模型运行时的安全性。同时,由于不是将完整的原始模型放入tee运行,因此,即使终端设备中安装了众多的原始模型,也能够减轻tee的运行压力。
附图说明
50.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
51.图1是本说明书一个实施例所应用的系统架构的示意图。
52.图2是本说明书一个实施例中在服务器侧实现模型运行的方法的流程图。
53.图3是本说明书一个实施例中实现模型运行的方法的示意图。
54.图4是本说明书一个实施例中在终端设备侧实现模型运行的方法流程图。
55.图5是本说明书一个实施例中模型运行装置的结构示意图。
56.图6是本说明书另一个实施例中模型运行装置的结构示意图。
具体实施方式
57.如前所述,模型在终端设备上部署及运行时,会面临更多的被逆向与窃取的风险,从而大大降低了模型的安全性。
58.下面结合附图,对本说明书提供的方案进行描述。
59.为了方便对本说明书的理解,首先对本说明书所应用的系统架构进行描述。如图1中所示,该系统架构主要包括服务器及终端设备。其中,终端设备可以是任意一种位于用户侧的设备,比如手机、电脑以及物联网终端设备比如基于物联网的室外广告投放机或基于物联网的自动售卖设备等。服务器及终端设备通过网络交互。其中,网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等。
60.参见图1,本说明书的核心思想是:在服务器侧,将模型进行拆分,拆分出基础模型部分以及tee(trusted execution environment)模型部分。相应地,在终端设备侧,由ree(rich execution environment)运行基础模型,由tee运行tee模型。因为tee在终端设备中构建了一个可信执行环境,因此能够保证tee模型运行时的安全性。同时,由于不是将完整的原始模型放入tee运行,因此,即使终端设备中安装了众多的原始模型,也能够减轻tee的运行压力。
61.下面用不同的实施例对服务器侧的处理以及终端设备侧的处理分别进行说明。
62.首先针对服务器侧的处理提供实施例。
63.图2是本说明书一个实施例中在服务器侧实现模型运行的方法的流程图。该方法的执行主体为模型的运行装置。该装置可以位于服务器中。可以理解,该方法也可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。参见图2,该方法包括:
64.步骤201:对原始模型进行拆分,得到基础模型以及tee模型。
65.步骤203:将所述基础模型的数据以及所述tee模型的数据下发到终端设备,以使所述终端设备中的ree运行所述基础模型的数据,且所述终端设备中的tee运行所述tee模型的数据。
66.下面结合具体实施例说明图2中每一个步骤的处理。
67.首先对于步骤201,服务器对原始模型进行拆分,得到基础模型以及tee模型。
68.tee可以在终端设备中提供一个安全区域,确保敏感数据在隔离、可信的环境中存
储、处理和保护。因此,为了提高在终端设备中运行模型时的安全性,可以考虑将模型放入终端设备中的tee进行运行。但是,目前,随着终端设备处理事务的不断增加,终端设备中下载的模型的数量也越来越多,比如进行人脸识别的模型、风险评估模型、用户购物行为统计模型等等。如果将终端设备需要运行的数量众多的模型均放入tee中运行,那么则会导致tee的运行压力过大,降低终端设备的处理性能。因此,可以考虑将原始模型拆分为两部分,基础模型部分由终端设备中的通用环境即ree运行,而tee模型部分由终端设备中的tee运行,从而既能提高在终端设备中运行模型的安全性,又能减轻终端设备中tee的运行压力。因此,在本步骤201中,可以以离线方式在服务器中对一个原始模型进行拆分。
69.在本说明书的一个实施例中,本步骤201至少存在如下的三种实现方式:
70.方式一、根据预设的拆分比例对原始模型进行拆分。
71.比如,预设的拆分比例为基础模型与tee模型各占一半,那么采用方式一时,则可以将原始模型文件按照文件大小分为前后两部分,可以将原始模型的前半部分作为基础模型,将原始模型的后半部分作为tee模型。当然,也可以有其他的拆分方式,比如按照原始模型文件的大小,将原始模型的中间1/3部分作为基础模型,将原始模型的前1/3部分及后1/3部分作为tee模型等。
72.方式二、将原始模型使用的神经网络中的前m层拆分为基础模型,后n层拆分为tee模型;其中,神经网络的总层数为m加n。其中,m和n均为正整数。
73.一个原始模型通常采用神经网络实现。神经网络包括多个层。比如卷积神经网络(cnn)包括:输入层、卷积层、激活函数、池化层、全连接层。在神经网络的各个层中,通常越靠后的层越可能涉及到该神经网络在训练过程中的参数调整,其对于该原始模型的贡献越大,也就是说,对安全性的要求越高。因此,在本说明书的一个实施例中,可以采用方式二将原始模型使用的神经网络的层数依次划分为m加n层,前m层因为对安全性的要求相对较低,因此,该前m层可以作为基础模型;后n层通常涉及参数调整,对安全性的要求相对较高,因此,该后n层可以作为tee模型。
74.方式三、根据终端设备中tee的运行空间的大小,对原始模型进行拆分。
75.终端设备中之前可能会下载有数量众多的模型,那么在tee中需要运行的模型的数量也会众多。因此,每当终端设备需要下载新的模型时,需要考虑终端设备中tee的运行空间的大小,以便保证tee的运行。因此,在本说明书的一个实施例中,可以采用方式三,根据终端设备中tee的运行空间的大小,对原始模型进行拆分,以使得拆分出的tee模型满足该tee的运行空间大小的要求,从而能够在tee中运行。
76.在本说明书的实施例中,上述三种方式中的任意两种或者三种也可以结合使用。比如,结合上述方式二和方式三,同时考虑终端设备中运行空间的大小、原始模型的神经网络中涉及参数调整的后n层的数量,来对原始模型进行拆分。
77.接下来在步骤203中,服务器将基础模型的数据以及所述tee模型的数据下发到终端设备,以使所述终端设备中的ree运行所述基础模型的数据,且所述终端设备中的tee运行所述tee模型的数据。
78.步骤203的具体实现过程包括至少如下的实现方式:
79.方式a、直接各自分发。
80.服务器将拆分出的基础模型的数据直接下发到终端设备中的ree,并将拆分出的
tee模型的数据通过与tee之间的专用通道,直接下发到终端设备的tee。
81.方式b、加密后统一分发。
82.服务器将拆分出的基础模型的数据以及tee模型加密后得到的加密模型统一下发到ree。
83.在原有的业务下发逻辑中,服务器是将原始模型直接下发到终端设备中的ree。因此,为了尽可能的减少对业务下发逻辑的改动,可以采用该方式b。
84.参见图3,基于方式b,步骤203的一种具体实现过程包括:
85.步骤301:服务器根据预先获取的加密密钥,对tee模型进行加密,得到加密模型。
86.在后续过程中,因为会将tee模型相关的数据也发送到终端设备中的ree。如果发送明文形式的tee模型,那么,可能会造成tee模型在ree中的泄露。因此,为了提高安全性,可以对tee模型进行加密,并将得到的加密模型的相关数据发给ree,从而避免tee模型在ree中的泄露,进一步提高模型运行的安全性。
87.在本说明书的一个实施例中,本步骤301可以采用对称加密算法进行加密。
88.可以预先使服务器获取加密密钥,使终端设备中的tee获取解密密钥。获取的方法可以是静态获取,比如,服务器跟tee预先约定好一个密钥。获取的方法也可以是动态获取方法,比如由服务器生成密钥,并通过与tee之间的专用通道,将密钥发给tee。
89.步骤303:服务器将加密模型封装成tee算子。
90.本步骤303的目的是:将tee模型加密后得到的加密模型从形式上更改为一个算子,从而能够将拆分出的两部分模型重新组合成一个重塑模型,并按照原有业务逻辑将该一个重塑模型下发给终端设备的ree,使得ree感知不到对原始模型的改动,也就是说,在业务链路层面,服务器如何下发,ree如何执行接收到的模型都没有改变,从而减少了对整体业务实现逻辑的改动,使得方案更容易实现。
91.步骤305:服务器根据基础模型以及tee算子,生成重塑模型。
92.在前述步骤中,在将原始模型拆分成基础模型及tee模型之后,基础模型及tee模型中则分别都包括了至少一个算子,比如,基础模型中有3个算子,tee模型中有3个算子,在将该tee模型加密并封装成一个tee算子后,tee模型对外则表现为1个算子。这样,经过本步骤305的处理,是利用基础模型中包括的3个算子以及封装后的1个tee算子,生成了一个重塑模型,重塑模型对ree表现为4个算子。
93.在本步骤305中,可以按照步骤201中的拆分顺序,来顺序组装基础模型以及tee算子从而生成重塑模型。比如,在步骤201中,是将原始模型文件的前半部分、后半部分依次拆分为基础模型及tee模型,那么在本步骤305中,也是按照基础模型在前tee算子在后的顺序,生成重塑模型。
94.步骤307:服务器将重塑模型下发到终端设备中的ree。
95.采用方式b,将重塑模型下发到终端设备中的ree的好处在于:
96.首先,如前所述,重塑模型下发给终端设备的ree,使得ree感知不到对原始模型的改动,也就是说,在业务链路层面,服务器如何下发,ree如何执行接收到的模型都没有改变,从而减少了对整体业务实现逻辑的改动,使得方案更容易实现;
97.其次,一个模型中包括多个算子,各个算子之间有执行上的先后顺序。为了保证终端设备针对拆分后的两部分模型仍然能够执行原始模型中各算子的执行顺序,即进行时序
控制,则需要将重塑模型下发到ree,ree统一执行该重塑模型,则可以保证重塑模型中各个算子的执行顺序与原始模型中各个算子的执行顺序相同。
98.下面针对终端设备侧的处理提供实施例。
99.图4是本说明书一个实施例中在终端设备侧实现模型运行的方法的流程图。该方法的执行主体为模型的运行装置。该装置可以位于终端设备中。可以理解,该方法也可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。参见图4,该方法包括:
100.步骤401:接收基础模型的数据以及tee模型的数据;其中,所述基础模型的数据以及所述tee模型的数据是对原始模型进行拆分之后得到的;
101.步骤403:通过ree(rich execution environment)运行所述基础模型;
102.步骤405:通过tee(trusted execution environment)运行所述tee模型。
103.下面分别对图4中的每一个步骤进行说明。
104.首先对于步骤401,接收基础模型的数据以及tee模型的数据。
105.参见上述对服务器侧处理的各个实施例,如果服务器采用上述步骤203中的方式a,那么,在本步骤401中,终端设备中的ree接收基础模型的数据,并且终端设备中的tee通过tee专用通道接收tee模型的数据。
106.参见上述对服务器侧处理的各个实施例,如果服务器采用上述步骤203中的方式b,那么,在本步骤401中,终端设备中的ree接收重塑模型,该重塑模型包括了基础模型以及根据tee模型的加密模型所封装出的tee算子。
107.接下来,在步骤403中,通过ree运行基础模型。
108.对应于上述方式b,ree接收到重塑模型之后,会将该重塑模型视为一个“原始模型”,并依次执行该重塑模型中的各个算子,从而可以顺利运行基础模型。
109.接下来,在步骤405中,通过tee运行tee模型。
110.对应于上述方式b,参见图3,本步骤405的具体实现过程可以包括:
111.步骤4051:ree在执行重塑模型的过程中,当执行到该重新模型包括的tee算子之后,无法识别该tee算子。
112.在重塑模型中,tee算子的得到过程包括:对tee模型加密,对加密模型进行封装。虽然tee算子表现为一个算子的形式,但是并非一个正常的算子,并且内部进行了加密,因此,ree无法识别该tee算子。
113.可见,ree既能够按照重塑模型中算子的执行顺序进行运行,又无法识别tee模型,满足了业务要求。
114.步骤4053:ree将该tee算子发送给tee。
115.这里,ree调用对外的代理ca,由ca将tee算子发送到tee内部。
116.这里,ree可以将基础模型的运行结果作为tee算子的输入,并将该基础模型的运行结果与tee算子一起发给tee。
117.步骤4055:tee对tee算子解封装,得到加密模型。
118.步骤4057:tee根据预先得到的解密密钥对加密模型进行解密,得到tee模型。
119.本步骤4057中tee得到解密密钥的方法可以参见上述实施例中对步骤301的相关描述。
120.步骤4059:tee运行该tee模型。
121.至此,则实现了服务器下发根据原始模型重塑的重塑模型(其包括的算子的执行顺序相同),终端设备中由ree运行原始模型的一部分即基础模型,由tee运行原始模型的另一部分即tee模型,既能保证在tee中运行的tee模型的安全性,又无需将完整原始模型全部放入tee,减轻了tee的运行压力。
122.在本说明书的一个实施例中,在tee运行tee模型之后,会得到输出结果,该输出结果是原始模型的输出结果。tee需要将该输出结果提供给外部,比如经由ree返回给服务器,从而使得服务器能够根据该输出结果进行相关业务的判断和决策。
123.在本说明书的一个实施例中,tee对外提供的输出结果包括至少如下两种形式:
124.形式1:原始模型的直接结果。
125.对于模型使用的神经网络,得到的直接结果通常为一个特征向量。tee可以将运行tee模型后得到的该特征向量输出到tee的外部。
126.形式2:根据原始模型的直接结果得到的间接结果。
127.模型使用的神经网络得到的直接结果为特征向量。如果将该特征向量直接提供给外部,那么,在某些场景下,有可能会出现某些高级攻击者通过该特征向量反推出模型使用的神经网络的结构及参数,从而导致模型泄露。因此,为了进一步提高模型运行的安全性,tee也可以不输出该特征向量,而是根据该特征向量获取一个识别结果,比如一个分类的概率值,分数值等,然后tee将该识别结果输出到tee的外部。因为tee输出到外部的是更低维度的用户可识别的识别结果,因此进一步避免了模型泄露,进一步提高了安全性。
128.在本说明书的一个实施例中,提供了一种模型的运行装置,参见图5,该装置500可以设置在服务器中,包括:
129.模型重塑模块501,配置为对原始模型进行拆分,得到基础模型以及tee模型;
130.模型下发模块502,配置为将基础模型的数据以及tee模型的数据下发到终端设备,以使所述终端设备中的ree运行基础模型的数据,且终端设备中的tee运行tee模型的数据。
131.在本说明书装置的一个实施例中,上述模型重塑模块501被配置为执行如下中的至少一项:
132.根据预设的拆分比例对原始模型进行拆分;
133.将所述原始模型使用的神经网络中的前m层拆分为所述基础模型,后n层拆分为所述tee模型;其中,后n层涉及参数调整,且所述神经网络的总层数为m加n;
134.根据终端设备中tee的运行空间的大小,对原始模型进行拆分。
135.在本说明书装置的一个实施例中,模型下发模块502被配置为执行:将所述基础模型的数据下发到所述终端设备中的ree;将所述加密模型的数据通过与tee之间的专用通道下发到所述终端设备中的tee。
136.在本说明书装置的一个实施例中,上述模型重塑模块501还可以被配置为执行:根据预先获取的加密密钥,对tee模型进行加密,得到加密模型;
137.相应地,所述tee模型的数据,包括:加密模型。
138.在本说明书装置的一个实施例中,上述模型重塑模块501被配置为执行:将所述加密模型封装成tee算子;根据所述基础模型以及所述tee算子,生成重塑模型;
139.相应地,上述模型下发模块502被配置为执行:将重塑模型下发到终端设备中的
ree。
140.在本说明书的一个实施例中,提出了一种模型的运行装置。参见图6,该装置600可以被设置在终端设备中,包括:
141.接收模块601,配置为接收基础模型的数据以及tee模型的数据;其中,所述基础模型的数据以及所述tee模型的数据是对原始模型进行拆分之后得到的;
142.ree 602,配置为运行所述基础模型;
143.tee 603,配置为运行所述tee模型。
144.在本说明书装置的一个实施例中,接收模块601包括:
145.第一接收子模块,被设置在ree 602中,配置为接收服务器发来的基础模型的数据;
146.第二接收子模块,被设置在tee 603中,配置为通过tee专用通道接收服务器发来的加密模型的数据。
147.在本说明书装置的一个实施例中,tee模型的数据包括:对所述tee模型加密后生成的加密模型的数据。
148.在本说明书装置的一个实施例中,接收模块601被设置在ree中,被配置为接收重塑模型;该重塑模型根据所述基础模型以及所述加密模型封装出的tee算子生成;
149.相应地,ree 602被配置为执行:
150.运行该重塑模型中的基础模型;ree运行到重塑模型中的tee算子时,无法识别该tee算子,则将该tee算子发送给tee;
151.相应地,tee 603被配置为执行:
152.tee对tee算子解封装,得到所述加密模型;
153.tee根据预先得到的解密密钥对所述加密模型进行解密,得到tee模型;
154.tee运行该tee模型。
155.在本说明书装置的一个实施例中,tee 603进一步被配置为执行:
156.将运行tee模型后得到的特征向量输出到tee的外部;
157.或者,
158.根据运行tee模型后得到的特征向量获取识别结果,将该识别结果输出到tee的外部。
159.本说明书一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行说明书中任一个实施例中的方法。
160.本说明书一个实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现执行说明书中任一个实施例中的方法。
161.可以理解的是,本说明书实施例示意的结构并不构成对本说明书实施例的装置的具体限定。在说明书的另一些实施例中,上述装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
162.上述装置、系统内的各模块之间的信息交互、执行过程等内容,由于与本说明书方法实施例基于同一构思,具体内容可参见本说明书方法实施例中的叙述,此处不再赘述。
163.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
164.本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
165.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
再多了解一些

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

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

相关文献