From 1cf49258bc9b4e8504f10fb82ea14aae6b1e3bc4 Mon Sep 17 00:00:00 2001 From: AssassinG <36526001+AssassinGQ@users.noreply.github.com> Date: Mon, 7 Mar 2022 09:49:08 +0800 Subject: [PATCH] add model-security & fix eqlabel and eqref in model-deployment (#39) Co-authored-by: hangangqiang --- chapter_model_deployment/model_compression.md | 6 +-- .../model_converter_and_optimizer.md | 22 ++++---- .../model_deployment_introduction.md | 2 +- chapter_model_deployment/model_inference.md | 24 ++++----- chapter_model_deployment/model_security.md | 50 +++++++++++++++++- img/ch08/model_obfuscate.png | Bin 0 -> 92237 bytes 6 files changed, 76 insertions(+), 28 deletions(-) create mode 100644 img/ch08/model_obfuscate.png diff --git a/chapter_model_deployment/model_compression.md b/chapter_model_deployment/model_compression.md index 69908ff..95a5a38 100644 --- a/chapter_model_deployment/model_compression.md +++ b/chapter_model_deployment/model_compression.md @@ -109,11 +109,11 @@ Hinton等人([@Distill])首先提出了教师神经网络-学生神经网络学 文献([@Distill])提出的知识蒸馏(knowledge distillation,KD)方法,同时令学生神经网络的分类结果接近真实标签并且令学生神经网络的分类结果接近于教师神经网络的分类结果,即, $$\mathcal{L}_{KD}(\theta_S) = \mathcal{H}(o_S,\mathbf{y}) +\lambda\mathcal{H}(\tau(o_S),\tau(o_T))$$ -:label:`ch08-equ-c2Fcn_distill` +:eqlabel:`ch08-equ-c2Fcn_distill` -其中,$\mathcal{H}(\cdot,\cdot)$是交叉熵函数,$o_S$和$o_T$分别是学生网络和教师网络的输出,$\mathbf{y}$是标签。公式 :numref:`ch08-equ-c2Fcn_distill`中的第一项使得学生神经网络的分类结果接近预期的真实标签,而第二项的目的是提取教师神经网络中的有用信息并传递给学生神经网络,$\lambda$是一个权值参数用来平衡两个目标函数。$\tau(\cdot)$是一个软化(soften)函数,将网络输出变得更加平滑。 +其中,$\mathcal{H}(\cdot,\cdot)$是交叉熵函数,$o_S$和$o_T$分别是学生网络和教师网络的输出,$\mathbf{y}$是标签。公式 :eqref:`ch08-equ-c2Fcn_distill`中的第一项使得学生神经网络的分类结果接近预期的真实标签,而第二项的目的是提取教师神经网络中的有用信息并传递给学生神经网络,$\lambda$是一个权值参数用来平衡两个目标函数。$\tau(\cdot)$是一个软化(soften)函数,将网络输出变得更加平滑。 -公式 :numref:`ch08-equ-c2Fcn_distill`仅仅从教师神经网络分类器输出的数据中提取有价值的信息,并没有从其它中间层去将教师神经网络的信息进行挖掘。因此,Romero等人[@FitNet])进一步地开发了一种学习轻型学生神经网络的方法,该算法可以从教师神经网络中任意的一层来传递有用的信息给学生神经网络。此外,事实上,并不是所有的输入数据对卷积神经网络的计算和完成后续的任务都是有用的。例如,在一张包含一个动物的图像中,对分类和识别结果比较重要的是动物所在的区域,而不是那些无用的背景信息。所以,有选择性地从教师神经网络的特征图中提取信息是一个更高效的方式。于是,Zagoruyko和Komodakis([@attentionTS])提出了一种基于感知(attention)损失函数的学习方法来提升学生神经网络的性能,如 :numref:`ch08-fig-AttentionTS`所示。该算法在学习学生神经网络的过程中,引入了Attention模块,选择性地将教师神经网络中的信息传递给学生神经网络,并帮助其进行训练。 +公式 :eqref:`ch08-equ-c2Fcn_distill`仅仅从教师神经网络分类器输出的数据中提取有价值的信息,并没有从其它中间层去将教师神经网络的信息进行挖掘。因此,Romero等人[@FitNet])进一步地开发了一种学习轻型学生神经网络的方法,该算法可以从教师神经网络中任意的一层来传递有用的信息给学生神经网络。此外,事实上,并不是所有的输入数据对卷积神经网络的计算和完成后续的任务都是有用的。例如,在一张包含一个动物的图像中,对分类和识别结果比较重要的是动物所在的区域,而不是那些无用的背景信息。所以,有选择性地从教师神经网络的特征图中提取信息是一个更高效的方式。于是,Zagoruyko和Komodakis([@attentionTS])提出了一种基于感知(attention)损失函数的学习方法来提升学生神经网络的性能,如 :numref:`ch08-fig-AttentionTS`所示。该算法在学习学生神经网络的过程中,引入了Attention模块,选择性地将教师神经网络中的信息传递给学生神经网络,并帮助其进行训练。 ![文献([@attentionTS])所提出的教师神经网络-学生神经网络学习算法,该算法在学习学生神经网络的过程中,引入了感知模块(Attention),选择性地将教师神经网络中的信息传递给学生神经网络,并帮助其进行训练。感知图可以识别输入图像不同位置对最终分类结果的重要性,并从教师网络传递到学生网络。](../img/ch08/AttentionTS.png) :width:`800px` diff --git a/chapter_model_deployment/model_converter_and_optimizer.md b/chapter_model_deployment/model_converter_and_optimizer.md index 8d337c9..6de5027 100644 --- a/chapter_model_deployment/model_converter_and_optimizer.md +++ b/chapter_model_deployment/model_converter_and_optimizer.md @@ -28,26 +28,26 @@ :width:`500px` :label:`ch08-fig-conv_bn_fusion` -如 :numref:`ch08-fig-conv_bn_fusion`,我们以Convolution算子和Batchnorm算子的融合为例,阐述算子融合的基本原理,图中蓝色框表示算子,黄色框表示融合后新增或者改变的算子,白色框表示算子中的权重或者常数张量。其融合的过程是一个计算表达式简化的过程,Convolution算子的计算过程可以等效为一个矩阵乘,其公式可以表达为 :numref:`equ:conv-equation`。 +如 :numref:`ch08-fig-conv_bn_fusion`,我们以Convolution算子和Batchnorm算子的融合为例,阐述算子融合的基本原理,图中蓝色框表示算子,黄色框表示融合后新增或者改变的算子,白色框表示算子中的权重或者常数张量。其融合的过程是一个计算表达式简化的过程,Convolution算子的计算过程可以等效为一个矩阵乘,其公式可以表达为 :eqref:`ch08-equ-conv_equation`。 $$\pmb{Y_{conv}}=\pmb{W_{conv}}*\pmb{X_{conv}}+\pmb{B_{conv}}$$ -:label:`ch08-equ-conv_equation` +:eqlabel:`ch08-equ-conv_equation` -这里我们不需要理解公式 :numref:`ch08-equ-conv_equation`中每个变量的含义,只需要注意到一点,该公式是$\pmb{Y_{conv}}$关于$\pmb{X_{conv}}$的,其他符号均表示常量。 +这里我们不需要理解公式 :eqref:`ch08-equ-conv_equation`中每个变量的含义,只需要注意到一点,该公式是$\pmb{Y_{conv}}$关于$\pmb{X_{conv}}$的,其他符号均表示常量。 -Batchnorm算子的计算过程如公式 :numref:`equ:bn-equation`所示。 +Batchnorm算子的计算过程如公式 :eqref:`equ:bn-equation`所示。 $$\pmb{Y_{bn}}=\gamma\frac{\pmb{X_{bn}}-\mu_{\mathcal{B}}}{\sqrt{{\sigma_{\mathcal{B}}}^{2}+\epsilon}}+\beta$$ -:label:`ch08-equ-bn_equation` +:eqlabel:`ch08-equ-bn_equation` -同样,这里我们不需要理解batchnorm中的所有参数的含义,只需要了解公式 :numref:`ch08-equ-bn_equation`是$\pmb{Y_{bn}}$关于$\pmb{X_{bn}}$的,其他符号均表示常量。 +同样,这里我们不需要理解batchnorm中的所有参数的含义,只需要了解公式 :eqref:`ch08-equ-bn_equation`是$\pmb{Y_{bn}}$关于$\pmb{X_{bn}}$的,其他符号均表示常量。 -如 :numref:`ch08-fig-conv_bn_fusion`,当Convlution算子的输出作为Batchnorm输入时,最终Batchnorm算子的计算公式也就是要求$\pmb{Y_{bn}}$关于$\pmb{X_{conv}}$的计算公式,我们将$\pmb{Y_{conv}}$代入到$\pmb{X_{bn}}$,然后将常数项合并提取后,可以得到公式 :numref:`equ:conv-bn-equation-3`。 +如 :numref:`ch08-fig-conv_bn_fusion`,当Convlution算子的输出作为Batchnorm输入时,最终Batchnorm算子的计算公式也就是要求$\pmb{Y_{bn}}$关于$\pmb{X_{conv}}$的计算公式,我们将$\pmb{Y_{conv}}$代入到$\pmb{X_{bn}}$,然后将常数项合并提取后,可以得到公式 :eqref:`equ:conv-bn-equation-3`。 $$\pmb{Y_{bn}}=\pmb{A}*\pmb{X_{conv}}+\pmb{B}$$ -:label:`ch08-equ-conv_bn_equation_3` +:eqlabel:`ch08-equ-conv_bn_equation_3` -其中$\pmb{A}$和$\pmb{B}$为两个矩阵。可以看到,公式 :numref:`ch08-equ-conv_bn_equation_3`其实就是一个Convolution的计算公式。这个结果表明,在模型部署时,我们可以将Convolution和Batchnorm两个算子的计算等价为一个Convolution算子。我们将上述以计算公式的合并和简化为基础的算子融合称为计算公式融合。 +其中$\pmb{A}$和$\pmb{B}$为两个矩阵。可以看到,公式 :eqref:`ch08-equ-conv_bn_equation_3`其实就是一个Convolution的计算公式。这个结果表明,在模型部署时,我们可以将Convolution和Batchnorm两个算子的计算等价为一个Convolution算子。我们将上述以计算公式的合并和简化为基础的算子融合称为计算公式融合。 在Convolution算子和Batchnorm算子融合的前后,网络结构相当于减少了一个Batchnorm算子,相应的网络中的参数量和网络所需的计算量都减少了;同时由于算子数量的减少,访存次数也相应地减少了。综合来看,该融合Pattern优化了模型部署时的功耗、性能,同时对于模型的体积大小也有少许收益。 @@ -71,10 +71,10 @@ $$\pmb{Y_{bn}}=\pmb{A}*\pmb{X_{conv}}+\pmb{B}$$ :width:`500px` :label:`ch08-fig-bn_replace` -如 :numref:`ch08-fig-bn_replace`,我们以Batchnorm算子替换成Scale算子为例,阐述算子替换的原理。我们直接将Batchnorm的计算公式 :numref:`ch08-equ-replace_scale`进行分解,并将常量合并简化,Batchnorm的计算公式可以写成: +如 :numref:`ch08-fig-bn_replace`,我们以Batchnorm算子替换成Scale算子为例,阐述算子替换的原理。我们直接将Batchnorm的计算公式 :eqref:`ch08-equ-replace_scale`进行分解,并将常量合并简化,Batchnorm的计算公式可以写成: $$\pmb{Y_{bn}}=scale*\pmb{X_{bn}}+offset$$ -:label:`ch08-equ-replace_scale` +:eqlabel:`ch08-equ-replace_scale` 其中scale和offset为两个标量。可以看到,计算公式简化后,我们可以将其映射到一个Scale算子。 diff --git a/chapter_model_deployment/model_deployment_introduction.md b/chapter_model_deployment/model_deployment_introduction.md index 65fe42f..30b2160 100644 --- a/chapter_model_deployment/model_deployment_introduction.md +++ b/chapter_model_deployment/model_deployment_introduction.md @@ -26,4 +26,4 @@ - **模型混淆** -xxx。 +对训练好的模型进行混淆操作,主要包括新增网络节点和分支、替换算子名的操作,攻击者即使窃取到混淆后的模型也不能理解原模型的结构。此外,混淆后的模型可以直接在部署环境中以混淆态执行,保证了模型在运行过程中的安全性。 diff --git a/chapter_model_deployment/model_inference.md b/chapter_model_deployment/model_inference.md index 43e45cf..0690d2d 100644 --- a/chapter_model_deployment/model_inference.md +++ b/chapter_model_deployment/model_inference.md @@ -125,21 +125,21 @@ ARMv8系列的CPU上有32个NEON寄存器v0-v31,如 :numref:`ch08-fig-register 卷积计算归根到底是矩阵乘法,两个二维矩阵相乘的时间复杂度是$O(n^3)$。我们可以使用Winograd来降低矩阵乘法的复杂度。 -以一维卷积运算为例,记为F(m,r),其中,m代表输出的个数,r为卷积核的个数。输入为$d=[d_0 \ d_0 \ d_2 \ d_3]$,卷积核为$g=[g_0 \ g_0 \ g_2]^T$,该卷积计算可以写成矩阵形式如公式 :numref:`ch08-equ-conv_matmul_one_dimension`所示,需要6次乘法和4次加法。 +以一维卷积运算为例,记为F(m,r),其中,m代表输出的个数,r为卷积核的个数。输入为$d=[d_0 \ d_0 \ d_2 \ d_3]$,卷积核为$g=[g_0 \ g_0 \ g_2]^T$,该卷积计算可以写成矩阵形式如公式 :eqref:`ch08-equ-conv_matmul_one_dimension`所示,需要6次乘法和4次加法。 $$F(2, 3)= \left[ \begin{matrix} d_0 & d_0 & d_2 \\ d_1 & d_2 & d_3 \end{matrix} \right] \left[ \begin{matrix} g_0 \\ g_1 \\ g_2 \end{matrix} \right]= \left[ \begin{matrix} y_0 \\ y_1 \end{matrix} \right]$$ -:label:`ch08-equ-conv_matmul_one_dimension` +:eqlabel:`ch08-equ-conv_matmul_one_dimension` -可以观察到,卷积运算转换为矩阵乘法时输入矩阵中存在着重复元素$d_1$和$d_2$,因此,卷积转换的矩阵乘法相对一般的矩阵乘有了优化空间。可以通过计算中间变量$m_0-m_3$得到矩阵乘的结果,见公式 :numref:`ch08-equ-conv-2-winograd`: +可以观察到,卷积运算转换为矩阵乘法时输入矩阵中存在着重复元素$d_1$和$d_2$,因此,卷积转换的矩阵乘法相对一般的矩阵乘有了优化空间。可以通过计算中间变量$m_0-m_3$得到矩阵乘的结果,见公式 :eqref:`ch08-equ-conv-2-winograd`: $$F(2, 3)= \left[ \begin{matrix} d_0 & d_0 & d_2 \\ d_1 & d_2 & d_3 \end{matrix} \right] \left[ \begin{matrix} g_0 \\ g_1 \\ g_2 \end{matrix} \right]= \left[ \begin{matrix} m_0+m_1+m_2 \\ m_1-m_2+m_3 \end{matrix} \right]$$ -:label:`ch08-equ-conv-2-winograd` +:eqlabel:`ch08-equ-conv-2-winograd` -其中,$m_0-m_3$的分别见公式 :numref:`ch08-equ-winograd-param`: +其中,$m_0-m_3$的分别见公式 :eqref:`ch08-equ-winograd-param`: $$\begin{aligned} m_0=(d_0-d_2)*g_0 \\ @@ -147,33 +147,33 @@ m_1=(d_1+d_2)*(\frac{g_0+g_1+g_2}{2}) \\ m_2=(d_0-d_2)*(\frac{g_0-g_1+g_2}{2}) \\ m_2=(d_1-d_3)*g_2 \end{aligned}$$ -:label:`ch08-equ-winograd-param` +:eqlabel:`ch08-equ-winograd-param` 通过$m_0-m_3$间接计算r1,r2,需要的运算次数包括:输入d的4次加法;输出m的4次乘法和4次加法。在推理阶段,权重的数值是常量,因此卷积核上的运算可以在图编译阶段计算,不计入在线的run时间。所以总的运算次数为4次乘法和8次加法,与直接运算的6次乘法和4次加法相比,乘法次数减少,加法次数增加。在计算机中,乘法一般比加法慢,通过减少乘法次数,增加少量加法,可以实现加速。 -计算过程写成矩阵形式如公式 :numref:`ch08-equ-winograd-matrix`所示,其中,⊙为对应位置相乘,A、B、G都是常量矩阵。这里写成矩阵计算是为了表达清晰,实际使用时,按照公式 :numref:`ch08-equ-winograd-param`手写展开的计算速度更快。 +计算过程写成矩阵形式如公式 :eqref:`ch08-equ-winograd-matrix`所示,其中,⊙为对应位置相乘,A、B、G都是常量矩阵。这里写成矩阵计算是为了表达清晰,实际使用时,按照公式 :eqref:`ch08-equ-winograd-param`手写展开的计算速度更快。 $$\mathbf{Y}=\mathbf{A^T}(\mathbf{G}g)*(\mathbf{B^T}d)$$ :label:`ch08-equ-winograd-matrix` $$\mathbf{B^T}= \left[ \begin{matrix} 1 & 0 & -1 & 0 \\ 0 & 1 & 1 & 0 \\ 0 & -1 & 1 & 0 \\ 0 & 1 & 0 & -1 \end{matrix} \right]$$ -:label:`ch08-equ-winograd-matrix-bt` +:eqlabel:`ch08-equ-winograd-matrix-bt` $$\mathbf{G}= \left[ \begin{matrix} 1 & 0 & 0 \\ 0.5 & 0.5 & 0.5 \\ 0.5 & -0.5 & 0.5 \\ 0 & 0 & 1 \end{matrix} \right]$$ -:label:`ch08-equ-winograd-matrix-g` +:eqlabel:`ch08-equ-winograd-matrix-g` $$\mathbf{A^T}= \left[ \begin{matrix} 1 & 1 & -1 & 0 \\ 0 & 1 & -1 & -1 \end{matrix} \right] \\$$ -:label:`ch08-equ-winograd-matrix-at` +:eqlabel:`ch08-equ-winograd-matrix-at` -通常深度学习领域通常使用的都是2D卷积,将F(2,3)扩展到F(2x2,3x3),可以写成矩阵形式,如公式 :numref:`ch08-equ-winograd-two-dimension-matrix`所示。此时,Winograd算法的乘法次数为16,而直接卷积的乘法次数为36,降低了2.25倍的乘法计算复杂度。 +通常深度学习领域通常使用的都是2D卷积,将F(2,3)扩展到F(2x2,3x3),可以写成矩阵形式,如公式 :eqref:`ch08-equ-winograd-two-dimension-matrix`所示。此时,Winograd算法的乘法次数为16,而直接卷积的乘法次数为36,降低了2.25倍的乘法计算复杂度。 $$\mathbf{Y}=\mathbf{A^T}(\mathbf{G}g\mathbf{G^T})*(\mathbf{B^T}d\mathbf{B})\mathbf{A}$$ -:label:`ch08-equ-winograd-two-dimension-matrix` +:eqlabel:`ch08-equ-winograd-two-dimension-matrix` Winograd算法的整个计算过程在逻辑上可以分为4步,如 :numref:`ch08-fig-winograd`所示: diff --git a/chapter_model_deployment/model_security.md b/chapter_model_deployment/model_security.md index 2fe20e6..e42153f 100644 --- a/chapter_model_deployment/model_security.md +++ b/chapter_model_deployment/model_security.md @@ -1,7 +1,55 @@ ## 模型的安全保护 +AI服务提供商在本地完成模型训练和调优后,将模型部署到第三方外包平台上(如终端设备、边缘设备和云服务器)来提供推理服务。由于AI模型的设计和训练需要投入大量时间、数据和算力,如何保护模型的知识产权(包括模型结构和参数等信息),防止模型在部署过程中的传输、存储以及运行环节被窃取,已经成为服务/模型提供商最为关心的问题之一。 ### 概述 +模型的安全保护可以分为静态保护和动态保护两个方面。静态保护指的是模型在传输和存储时的保护,目前业界普遍采用的是基于文件加密的模型保护方案,AI模型文件以密文形态传输和存储,执行推理前在内存中解密。在整个推理过程中,模型在内存中始终是明文的,存在被敌手从内存中转储的风险。动态保护指的是模型在运行时的保护,目前业界已有的模型运行时保护方案主要有以下三个技术路线:一是基于TEE(Trusted execution environment)的模型保护方案,TEE通常指的是通过可信硬件隔离出来的一个“安全区”,AI模型文件在非安全区加密存储和传输,在安全区中解密运行。该方案在CPU上的推理时延较小,但依赖特定可信硬件,有一定的部署难度。此外,受硬件资源约束,难以保护大规模深度模型,且目前仍无法有效支持异构硬件加速。二是基于密态计算的保护方案,该方案基于密码学方法(如同态加密、多方安全计算等),保证模型在传输、存储和运行过程中始终保持密文状态。该方案不依赖特定硬件,但面临非常大的计算或通信开销问题,且无法保护模型结构信息。三是基于混淆的模型保护方案,该方案主要通过对模型的计算逻辑进行加扰,使得敌手即使能获取到模型也无法理解。与前两种技术路线相比,该方案仅带来较小的性能开销,且精度损失很低,同时,不依赖特定硬件,可支持大模型的保护。下面将重点介绍基于混淆的模型保护技术。 ### 模型混淆 +模型混淆技术可以自动混淆明文AI模型的计算逻辑,使得攻击者即使在传输和存储时获取到模型也无法理解;且支持模型混淆态执行,保证模型运行时的机密性。同时不影响模型原本的推理结果、仅带来较小的推理性能开销。模型混淆技术主要包含以下几个步骤: -### 模型加密 +![模型混淆实现步骤图](../img/ch08/model_obfuscate.png) +:width:`400px` +:label:`ch08-fig-model_obfuscate` + +结合 :numref:`ch08-fig-model_obfuscate`,详细阐述模型混淆的执行步骤: + +(1) 解析模型并获取计算图 + +对于一个训练好的模型,首先根据模型结构解析模型文件并获取模型计算逻辑的图表达(计算图)用于后续操作。获取的计算图包括节点标识、节点算子类型、节点参数权重以及网络结构等信息。 + +(2) 对计算图的网络结构加扰 + +通过图压缩和图增广等技术,对计算图中节点与节点之间的依赖关系进行加扰,达到隐藏模型真实计算逻辑的效果。其中,图压缩通过整图检查来匹配原网络中的关键子图结构,这些子图会压缩并替换为单个新的计算节点。对于压缩后的计算图,图增广通过在网络结构中加入新的输入/输出边,进一步隐藏节点间的真实依赖关系。新增的输入/输出边可以来自/指向图中现已有的节点,也可以来自/指向本步骤新增的混淆节点。 + +(3) 对计算图的节点匿名化 + +遍历步骤(2)处理后的计算图,筛选出需要保护的节点。对于图中的每个需要保护的节点,将节点标识、节点算子类型以及其它能够描述节点计算逻辑的属性替换为无语义信息的符号。对于节点标识匿名化,本步骤保证匿名化后的节点标识仍然是唯一的,以区分不同的节点。对于算子类型匿名化,为了避免大规模计算图匿名化导致的算子类型爆炸问题,可以将计算图中算子类型相同的节点划分为若干不相交的集合,同一个集合中节点的算子类型替换为相同的匿名符号。步骤(5)将保证节点匿名化后,模型仍然是可被识别和执行的。 + +(4) 对计算图的参数权重加扰 + +对于每个需要保护的权重,通过一个随机噪声和映射函数对权重进行加扰。每个权重加扰时可以使用不同的随机噪声和映射函数,步骤(6)将保证权重加扰不会影响模型执行结果的正确性。将经过步骤(2)(3)(4)处理后的计算图保存为模型文件供后续使用。 + +(5) 算子接口变换 + +步骤(5)(6)将对每个需要保护的算子类型进行算子形态变换,生成若干候选混淆算子。原算子与混淆算子之间是一对多的对应关系,候选混淆算子的数量等于步骤(3)划分的节点集合的数量。 +本步骤根据步骤(2)(3)(4)的得到的匿名化算子类型、算子输入/输出关系等信息,对相应算子的接口进行变换。算子接口的变换方式包括但不局限于输入输出变换、接口名称变换。其中,输入输出变换通过修改原算子的输入输出数据,使得生成的混淆算子与原算子的接口形态不同。新增的输入输出数据包括步骤(2)图增广新增的节点间数据依赖和步骤(4)权重混淆引入的随机噪声。接口名称变换将原算子名称替换为步骤(3)生成的匿名化算子名称,保证节点匿名化后的模型仍然是可被识别和执行的,且算子的名称不会泄露其计算逻辑。 + +(6) 算子实现变换 + +对算子的代码实现进行变换。代码实现的变换方式包括但不局限于字符串加密、冗余代码等软件代码混淆技术,保证混淆算子与原算子实现语义相同的计算逻辑,但是难以阅读和理解。不同的算子可以采用不同代码混淆技术的组合进行代码变换。除代码等价变形之外,混淆算子还实现了一些额外的计算逻辑,如对于步骤(4)中参数被加扰的算子,混淆算子也实现了权重加扰的逆映射函数,用于在算子执行过程中动态消除噪声扰动,保证混淆后模型的计算结果与原模型一致。将生成的混淆算子保存为库文件供后续使用。 + +(7) 部署模型和算子库 + +将混淆态模型文件以及相应的混淆算子库文件部署到目标设备上。 + +(8) 混淆模型加载 + +根据模型结构解析混淆态模型文件并获取模型计算逻辑的图表达,即经过步骤(2)(3)(4)处理后得到的混淆计算图。 + +(9) 计算图初始化 + +对计算图进行初始化,生成执行任务序列。根据安全配置选项,若需要保护模型运行时安全,则直接对混淆计算图进行初始化,生成执行任务序列,序列中的每个计算单元对应一个混淆算子或原算子的执行。若仅需保护模型传输和存储时安全,则可先将内存中的混淆计算图恢复为原计算图,然后对原计算图进行初始化,生成执行任务序列,序列中的每个单元对应一个原算子的执行,这样可以进一步降低推理时的性能开销。 + +(10) 推理任务执行 + +根据AI应用程序输入的推理数据,遍历执行任务序列中的每个计算单元,得到推理结果。若当前计算单元对应的算子是混淆算子时,调用混淆算子库;否则,调用原算子库。 diff --git a/img/ch08/model_obfuscate.png b/img/ch08/model_obfuscate.png new file mode 100644 index 0000000000000000000000000000000000000000..53e080554ba95252d2f7e36f20d16ad465579a58 GIT binary patch literal 92237 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 literal 0 HcmV?d00001