【原文链接】HEMET: A Homomorphic-Encryption-Friendly Privacy-Preserving Mobile Neural Network Architecture
HEMET:一种同态加密友好的隐私保护移动神经网络结构
摘要
同态加密(Homomorphic Encryption,HE)被用来实现隐私保护的神经网络(Privacy-Preserving Neural Network, PPNN),它可以直接对加密数据进行推断而无需解密。先前的PPNN采用移动网络架构(如SqueezeNet)以减少计算开销。但我们发现单纯地将移动网络架构用于PPNN并不一定能够缩短推理延迟。尽管参数较少,但移动网络体系结构通常会引入更多层并增加PPNN的乘法深度,从而延长其推理延迟。在本文中,我们提出了一种HE友好的隐私保护移动神经网络结构HEMET。实验结果表明,与最先进的PPNN相比,HEMET将推理延迟降低了 59.3 % ∼ 61.2 % 59.3\%\sim61.2\% 59.3%∼61.2%,推理准确率提高 0.4 % ∼ 0.5 % 0.4\%\sim0.5\% 0.4%∼0.5%。
1. 介绍
客户端不愿将敏感数据(如健康或财务记录)上传到云中不受信任的服务器。为了保护客户端的隐私,构建了PPNN
[
1
]
[
2
]
[
3
]
[
4
]
[
5
]
^{[1][2][3][4][5]}
[1][2][3][4][5]对加密数据进行推断。交互式PPNN对
[
2
]
[
6
]
^{[2][6]}
[2][6]线性层使用HE,并采用安全多方计算(secure multi-party computation,MPC)处理激活层。然而,在交互式PPNN推理过程中,客户端和服务器之间必须交换大量数据。例如,DELPHI必
[
2
]
^{[2]}
[2]须传输2GB数据,以便仅对单个加密的CIFAR-10图像进行ResNet-32推断。非交互式PPNN
[
5
]
[
7
]
[
8
]
^{[5][7][8]}
[5][7][8]通过二次多项式近似激活,并通过HE计算整个推理。它们不需要高网络带宽,但仍然可以获得具有竞争力的推理精度
[
8
]
^{[8]}
[8]。此后(第2.2节除外),当我们提到PPNN时,我们表示非交互式PPNN。
不幸的是,PPNN推断非常耗时。典型PPNN在加密的MNIST图像上需要大于2秒的时间进行推断
[
5
]
^{[5]}
[5],在加密的CIFAR-10图像上需要大于70秒。PPNN推理和未加密推理之间存在
1
0
6
10^6
106的延迟差距。为了缩小差距,最近的工作采
[
5
]
[
8
]
^{[5][8]}
[5][8]用了移动神经网络架构,如SqueezeNet和
[
9
]
^{[9]}
[9]InceptionNet
[
10
]
^{[10]}
[10]来实现PPNN。然而我们发现单纯地采用移动神经网络架构进行PPNN并不一定能缩短推理延迟。移动神经网络模型
[
9
]
[
10
]
^{[9][10]}
[9][10]减少了参数总数,但通过添加更多的线性层,仍然保持了竞争性推理的准确性。尽管参数较少,但如果PPNN采用移动神经网络架构,则其更深层次的架构会大大增加HE乘法深度,从而减慢PPNN的每个HE操作,其中乘法深度表示关键路径上的HE乘法数。
在本文中,我们提出了一种同态加密友好的隐私保护移动神经网络结构HEMET,以实现更短的推理延迟和更高的推理精度。我们的贡献可以总结如下。
- 首先我们发现在PPNN上简单地应用移动神经网络架构可能延长其推理延迟。虽然移动网络架构减少了PPNN的HE操作,但它极大地增加了PPNN的乘法深度并减慢了每个HE操作。
- 我们提出了一种简单、贪心、HE友好的移动网络架构搜索算法来评估一个块应该采用常规卷积层还是移动模块,以最小化整个网络的推断延迟。搜索算法逐层执行,可以在不增加PPNN乘法深度的情况下减少HE运算。
- 我们还提出了系数合并,通过合并每个层的掩码、近似激活系数和批量归一化系数,进一步减少PPNN的乘法深度。
- 我们评估并比较了HEMET与最先进的PPNN结构。实验结果表明,HEMET将推理延迟降低了59.3%~$61.2%,但推理精度比之前的各种PPNN提高了0.4%~0.5%。
表1
r
r
r级密文上HE运算的复杂性(N是密文的多项式次数)
2. 背景
2.1. 同态加密
HE允许对密文进行任意计算而无需解密。给定一个公钥
p
k
pk
pk,密钥
s
k
sk
sk,一个加密函数
ϵ
(
)
\epsilon()
ϵ(),以及一个解密函数
σ
(
)
\sigma()
σ(),一个HE操作
⊗
\otimes
⊗如果存在另一个运算
×
\times
×,则可以定义如下公式。
σ
(
ϵ
(
x
1
,
p
k
)
⊗
ϵ
(
x
2
,
p
k
)
,
s
k
)
=
σ
(
ϵ
(
x
1
×
x
2
,
p
k
)
,
s
k
)
\sigma(\epsilon(x_1,pk)\otimes\epsilon(x_2,pk),sk)=\sigma(\epsilon(x_1\times x_2,pk),sk)
σ(ϵ(x1,pk)⊗ϵ(x2,pk),sk)=σ(ϵ(x1×x2,pk),sk)
其中
x
1
x_1
x1和
x
2
x_2
x2是明文,每个明文对由多个整数或定点数字组成的向量进行编码
[
5
]
[
8
]
^{[5][8]}
[5][8]。每次HE操作都会在密文中引入一定量的噪声。当累积的噪声超过噪声预算时,就会发生HE解密失败。虽然bootstrapping操作
[
11
]
^{[11]}
[11]可以减少密文中的累积噪声,但它在计算上非常昂贵。之前的PPNN使用具有固定噪声预算的leveled-HE来计算有限数量的HE操作,而无需bootstrapping。
2.2. 隐私保护神经网络
最近的PPNN [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 8 ] ^{[1][2][3][4][5][8]} [1][2][3][4][5][8]采用HE实现其线性层。不幸的是,他不能支持非线性激活层。交互式PPNN [ 1 ] [ 2 ] ^{[1][2]} [1][2]利用多方计算,通过客户端和服务器之间的交互计算激活。相反,非交互式PPNN [ 3 ] [ 4 ] [ 5 ] [ 8 ] ^{[3][4][5][8]} [3][4][5][8]通过二次多项式(例如平方函数)近似激活,以便仅在服务器上进行整个PPNN推理。非交互式PPNN对没有强大机器和高带宽网络连接的客户端更友好。最新的交互式PPNN Delphi [ 2 ] ^{[2]} [2]必须在服务器和客户端之间交换2GB数据,以便仅对加密的CIFAR-10图像进行ResNet-32推断。在本文中,我们只关注非交互式PPNN。
2.3. 威胁模型
HEMET的威胁模型与之前的PPNN相似 [ 3 ] [ 4 ] [ 5 ] [ 8 ] ^{[3][4][5][8]} [3][4][5][8]。虽然可以使用加密方案加密发送到云的数据,但不受信任的服务器可能会导致数据泄漏。HE使服务器能够对加密数据执行私有推断。客户端向服务器发送加密数据,执行加密推断,而不解密加密数据或访问客户端的密钥。只有客户端才能使用密钥解密推理结果。
2.4. 基于RNS-CKKS的PPNN
RNS-CKKS方案
在所有HE方案中,RNS-CKKS是唯一支持定点算术运算的方案。最近的PPNN
[
5
]
[
8
]
^{[5][8]}
[5][8]使用RNS-CKKS来实现比其他HE方案实现的PPNN
[
4
]
^{[4]}
[4]有更短的推理延迟和更高的推理精度。通过SIMD batching,基于RNS-CKKS的PPNN在单个密文的
N
2
\frac{N}{2}
2N个slot中加密
N
2
\frac{N}{2}
2N个定点数字,其中
N
N
N是密文的多项式次数。一个对密文的HE操作同时对密文的每个slot执行相同的操作。密文是一个
N
N
N次多项式,每个系数都以
Q
Q
Q表示,其中
Q
Q
Q是
r
r
r个素数
Q
=
∏
j
=
1
r
Q
j
Q=\prod_{j=1}^rQ_j
Q=∏j=1rQj的乘积。为了表示定点数字,RNS-CKKS使用整数
I
I
I和比例因子
S
S
S。例如3.14可以用
I
=
314
I=314
I=314和
S
=
100
S=100
S=100表示。
S
S
S随HE的乘法呈指数增长。为了使
S
S
S保持在检查范围内,需要进行重缩放(rescaling)操作,来将
S
S
S标度处的
I
×
100
I×100
I×100转换为
S
×
100
S×100
S×100标度处的
I
I
I。总的来说,RNS-CKKS允许
r
r
r重缩放操作。重缩放操作将
r
r
r级密文
C
r
C_r
Cr(具有噪声
e
e
e、模数
Q
Q
Q和明文
m
m
m)转换为
r
−
1
r−1
r−1级别密文
C
r
−
1
C_{r−1}
Cr−1(具有噪声
e
Q
r
\frac{e}{Q_r}
Qre、模
Q
Q
r
\frac{Q}{Q_r}
QrQ和明文
m
Q
r
\frac{m}{Q_r}
Qrm)。即
(
C
r
1
,
m
Q
r
,
e
Q
r
,
Q
Q
r
)
=
R
e
s
c
a
l
e
(
C
r
,
m
,
e
,
Q
)
(C_{r_1},\frac{m}{Q_r},\frac{e}{Q_r},\frac{Q}{Q_r})=Rescale(C_r,m,e,Q)
(Cr1,Qrm,Qre,QrQ)=Rescale(Cr,m,e,Q)
表1显示了
r
r
r级密文上各种RNS-CKKS操作的计算复杂性。重缩放操作让后面的操作更快,因为
(
r
−
1
)
(r-1)
(r−1)级密文
C
r
−
1
C_{r-1}
Cr−1上的HE操作延迟比
r
r
r级密文
C
r
C_r
Cr上相同操作的长度短。
图1 一个基于CKKS的PPNN
基于RNS-CKKS的卷积
图1(a)显示了加密输入张量(
A
A
A)和多个明文权重过滤器(
F
F
F)之间的基于RNS-CKKS的卷积。卷积结果可以表示如下。
b
x
,
y
=
∑
i
,
j
a
x
+
i
,
y
+
j
⋅
f
i
,
j
b_{x,y}=\sum_{i,j}a_{x+i,y+j}\ \cdot\ f_{i,j}
bx,y=i,j∑ax+i,y+j ⋅ fi,j
我们假设输入
A
A
A有
C
C
C个通道,高度为
H
H
H,宽度为
W
W
W。如图1(b)所示,输入张量可以加密为密文
C
C
C,每个密文包含
H
×
W
H×W
H×W输入元素
[
5
]
^{[5]}
[5] 。这是
H
W
HW
HW batching方案。或者为了充分利用密文中的slot,可以将
C
×
H
×
W
C×H×W
C×H×W输入元素封装到
⌈
2
×
C
×
H
×
W
N
⌉
\lceil \frac{2\times C\times H\times W}{N}\rceil
⌈N2×C×H×W⌉密文中
[
5
]
^{[5]}
[5] ,其中
⌈
⌉
\lceil\rceil
⌈⌉表示上取整操作。这是
C
H
W
CHW
CHW batching方案。为了计算
a
x
+
i
,
y
+
j
⋅
f
i
,
j
a_{x+i,y+j}\ \cdot\ f_{i,j}
ax+i,y+j ⋅ fi,j,在输入张量和每个权重过滤器之间进行元素级HE乘法。需要HE旋转操作
r
o
t
(
A
,
s
)
rot(A,s)
rot(A,s)来对齐相应的数据以支持HE累积,其中
s
s
s表示步长。最后,使用明文掩码删除不相关的slot。
DDG的关键路径
为了精确控制噪声,最近的RNS-CKKS编译器 [ 8 ] ^{[8]} [8] 将整个卷积转换为图1(c)所示的数据依赖图(data dependency graph,DDG),然后插入重缩放操作。我们假设输入和权重过滤器都使用30位定点数字。HE加法的结果仍然是30位,但每次HE乘法都会产生60位的结果。重缩放操作将乘法结果重缩放回30位的固定点数。DDG的关键路径(灰色节点) 具有2乘法深度。卷积的例子需要两个重缩放操作。PPNN的乘法深度是沿着其DDG关键路径的HE乘法总数。
2.5. 移动神经网络架构
图2 不同移动网络架构
在明文领域,构建了移动神经网络架构,如SqueezeNet [ 9 ] ^{[9]} [9] 和InceptionNet [ 10 ] ^{[10]} [10],以减少网络参数和推理开销。图2突出显示了SqueezeNet和InceptionNet的拓扑结构。
- SqueezeNet。基于RNS-CKKS的PPNN [ 5 ] [ 8 ] ^{[5][8]} [5][8]采用了SqueezeNet [ 9 ] ^{[9]} [9]体系结构,用于对CIFAR-10图像进行快速私有推断。SqueezeNet使用比50倍更少的参数达到与AlexNet类似的精度。SqueezeNet用图2(b)所示的fire模块取代了传统的卷积层。假设常规卷积层的维数为 I i × 3 × 3 × O i I_i\times 3\times3\times O_i Ii×3×3×Oi,其中 I i I_i Ii是输入通道数, 3 3 3是权重过滤器大小, O i O_i Oi是第 i i i层中的输出通道数。相反,fire模块由堆叠的卷积层组成。 C i C_i Ci( < O i <O_i <Oi)是第一卷积层的输出通道数。 O i 0 + O i 1 = O i O_i^0+O_i^1=O_i Oi0+Oi1=Oi被强制相等,以使第 i i i层输出具有 O i O_i Oi通道。如果使用 H W HW HW batching技术,为了计算传统卷积层,我们需要进行 O ( I × 3 × 3 ) O(I\times3\times3) O(I×3×3)次旋转和 O ( I i × 3 × 3 × O i ) O(I_i\times3\times3\times O_i) O(Ii×3×3×Oi)HE乘法。相反,要计算SqueezeNet的file模块,我们需要进行 O ( I i × 1 + C i × ( 3 × 3 + 1 ) ) O(I_i\times1+C_i\times(3\times3+1)) O(Ii×1+Ci×(3×3+1))次旋转和 O ( I i × 1 × 1 × C i + C i × 1 × O i 0 + C i × 3 × 3 × O i 1 ) O(I_i\times1\times1\times C_i+C_i\times1\times O_i^0 +C_i\times3\times3\times O_i^1) O(Ii×1×1×Ci+Ci×1×Oi0+Ci×3×3×Oi1)次HE乘法。然而,SqueezeNet的fire模块大大增加了移动神经网络体系结构的层数。
- InceptionNet。InceptionNet [ 10 ] ^{[10]} [10]使用7倍或者更少的参数。如图2(c)所示,InceptionNet是通过用初始模块替代传统的卷积层来构建的。初始模块由四种类型的过滤器组成,每种过滤器都有输出通道 O i 0 ∼ 3 O_i^{0\sim3} Oi0∼3。尽管inception模块大大减少了模型参数,但与VGG CNN相比,InceptionNet的层数几乎要翻一番。
2.6. 动机
图3 通过SqueezeNet的fire模块构建PPNN
一种HE友好的移动网络架构
尽管移动神经网络(如SqueezeNet和InceptionNet)减少了PPNN的HE操作次数,但通过添加更多的网络层,它们显著地扩大了PPNN的乘法深度。增大的乘法深度增加了每个HE操作的计算开销。如图3所示,简单采用移动神经网络架构并不一定会减少PPNN的推理延迟。PPNN是通过顺序连接多个块来构建的,每个块要么是SqueezeNet的file模块,要么是传统卷积层。如果第一个fire模块(F1)被具有相同数量的输入和输出通道的卷积层替换,则PPNN的推断延迟(F1-to-C)增加约32%. 相反,当最后一个file模块(F4)被传统卷积层替换时,PPNN的推理延迟(F4-to-C)减少了约2倍。因此,我们需要一个HE友好的移动网络架构来减少推理延迟,并保持PPNN推理精度。
进一步减少乘法深度
如图5所示,为了构建PPNN,将给定的神经网络编译成由加法、乘法和旋转组成的DDG。PPNN的每个HE操作的计算开销由PPNN乘法深度决定,该深度大致等于HE乘法沿着DDG的关键(最长)路径的数目。乘法深度由多项式次数 N N N和重缩放操作次数r定义,如表1所示。多项式次数 N N N是针对固定的安全级别确定的。较小的 N N N可能会损害安全级别,因此我们的目标是通过减少重缩放操作的数量 r r r来减少乘法深度并加速HE操作。 r r r越大,每次HE操作越慢。为了减少 r r r并加速每次HE操作,必须缩短DDG的关键路径。
2.7. 相关工作
HE友好的PPNN
最近的研究 [ 12 ] [ 13 ] ^{[12][13]} [12][13]创建了强化学习代理,以搜索BFV实现的具有竞争力的神经网络架构。然而,这些代理只考虑常规卷积层,而不考虑低成本的移动网络模块。此外,BFV仅支持整数算术运算,因此难以控制乘法结果的规模。最近的PPNN采用RNS-CKKS和重缩放来解决此问题。
RNS-CKKS重缩放
最近基于RNS-CKKS的PPNN [ 8 ] ^{[8]} [8]提出了一种基于流水线的重缩放技术,以尽可能晚地执行重缩放操作。这样,沿着DDG的关键路径所需的重缩放操作的数量可以最小化。基于流水线的重缩放技术静态地将重缩放操作插入到沿关键路径的位置。然而,之前没有任何工作试图缩短关键路径以最小化重缩放操作的数量。
3. HEMET
3.1. 一种HE友好移动网络体系结构的搜索算法
我们提出了一种简单、贪心的搜索算法,通过对该块是传统卷积层还是由多个卷积层组成的移动模块进行分块评估,找到一个HE友好的移动网络架构。我们测量了使用常规卷积层和采用移动模块之间的延迟差异。只有当移动模块减少了推理延迟时,我们才真正将移动模块集成到PPNN中。
模型参数和乘法深度
在PPNN的块中使用移动网络模块,即file或inception模块,可减少该块中的HE操作。减少HE操作可能会减少推理延迟。然而,多层移动模块还增加了PPNN中的层数,从而扩大了PPNN的乘法深度。增大的乘法深度通过增加PPNN的重缩放操作 r r r的数量,在当前移动模块的下一层之前的所有层中减慢每个HE操作。必须确保移动网络模块带来的好处不会被增加的乘性深度造成的减速所抵消。
搜索算法
HE友好移动网络架构的搜索算法如算法1所示。我们假设 O O O是一个仅由移动模块和完全连接层组成的移动网络。我们首先将当前架构 O ′ O' O′初始化为 O O O,并将其推断延迟计算为 C o s t _ O ′ Cost\_O' Cost_O′。我们开始用最后一个移动模块的常规卷积层替换移动模块 O ′ O' O′,因为最后一个移动模块更容易被替换。如果更换最后一个移动模块,则所有先前移动模块的重缩放级别将降低,从而大大加快每个移动模块中的每个HE操作。通过使用常规卷积层替换 O ′ O' O′的当前移动模块,生成候选网络架构 T m p _ O ′ Tmp\_O' Tmp_O′。然后我们将 T m p _ O ′ Tmp\_O' Tmp_O′的推理延迟计算为 C o s t _ T m p _ O ′ Cost\_Tmp\_O' Cost_Tmp_O′。如果 C o s t _ T m p _ O ′ < C o s t _ O ′ Cost\_Tmp\_O'<Cost\_O' Cost_Tmp_O′<Cost_O′我们就更新 O ′ O' O′为 T m p _ O ′ Tmp\_O' Tmp_O′。该过程重复进行,直到 n n n个移动模块(块)被评估。
案例研究
图4 被替换了一些层的HE友好的网络
在图4中,我们展示了一个关于如何通过算法1找到基于SqueezeNet的HE友好移动网络架构的案例研究。SqueezeNet有四个file模块,需要在关键路径上进行十五次重缩放操作。第一卷积层 C o n v 1 Conv1 Conv1中的HE操作发生在RNS-CKKS密文的15层上。每个操作15级密文的HE操作在计算上比在较低级别密文上进行的HE操作更昂贵。SqueezeNet花费 72.7 72.7 72.7秒对加密的CIFAR-10图像进行推断。通过遵循算法1,大小为 I = 64 , C = 32 , O 0 = 128 , O 1 = 128 I=64,C=32,O^0=128,O^1=128 I=64,C=32,O0=128,O1=128的第三个fire模块被输入通道 I = 64 I=64 I=64、输出通道 O = 256 O=256 O=256、卷积核大小 k = 3 k=3 k=3的卷积层替换。类似地,大小为 I = 128 , C = 32 , O 0 = 128 , O 1 = 128 I=128,C=32,O^0=128,O^1=128 I=128,C=32,O0=128,O1=128的第四个fire模块被输入通道 I = 128 I=128 I=128、输出通道 O = 256 O=256 O=256和卷积核大小 k = 3 k=3 k=3的卷积层替换。出移动网络只需要12次重缩放操作,而SqueezeNet需要15次重缩放操作。尽管第一个卷积层 C o n v 1 Conv1 Conv1执行与SqueezeNet相同的HE操作,但由于它们发生在较低级别的密文上,因此推理延迟减少了78%。
算法复杂性和安全性
我们的网络架构搜索算法的渐近复杂性为 O ( n ) O(n) O(n),这意味着需要评估 n n n个移动模块。如图4所示,要基于SqueezeNet构建一个HE友好的网络体系结构,必须对加密的CIFAR-10图像进行四次推断。算法1的搜索开销为 ∑ i = 1 n C o s t _ O i ′ \sum_{i=1}^nCost\_O'_i ∑i=1nCost_Oi′,其中 O i ′ O'_i Oi′是第 i i i个网络候选。我们的搜索算法是在PPNN部署到服务器之前离线完成的,因此我们的算法不会公开输入数据的任何私有信息。我们保持与 [ 5 ] [ 8 ] ^{[5][8]} [5][8]相同的安全水平。
3.2. 系数合并
为了进一步减少PPNN的推理延迟,我们提出了系数合并来减少DDG的关键路径长度和PPNN的乘法深度。具有更大乘法深度的PPNN需要更大的RNS-CKKS参数来保证128位安全级别,从而显著增加每个HE操作的计算开销。我们的搜索算法可以找到一个具有较少网络层的HE友好的移动神经网络结构。然后,生成的网络的每一层都可以编译成图5所示的DDG,其中每个节点都是操作数或HE操作。系数合并的重点是通过将DDG中的多个节点合并为一个节点来最小化乘法深度并减少重缩放操作 r r r的数量。
卷积层的DDG
图1(a)中所示的卷积层可以描述为如下方程,其中A是输入,
f
11
f_{11}
f11和
f
22
f_{22}
f22是权重过滤器,
X
c
o
n
v
X_{conv}
Xconv是卷积结果。
Y
c
o
n
v
Y_{conv}
Yconv是通过掩码
m
m
m从
X
c
o
n
v
X_{conv}
Xconv中删除浪费的slot##后的结果。
卷积之后是如下所述的近似二次多项式激活,其中系数
a
,
b
,
c
a,b,c
a,b,c在训练中学习。
最近的PPNN在每个激活层之后都采用了批量归一化层
[
14
]
^{[14]}
[14],以提高推理精度。批量归一化首先计算每层输入的平均
μ
\mu
μ和方差
σ
\sigma
σ,然后使用
μ
\mu
μ、
σ
\sigma
σ和可学习参数
γ
β
\gamma\beta
γβ将输入归一化为
Y
a
c
t
‾
\overline{Y_{act}}
Yact。
在上式中,我们使用
d
=
γ
σ
2
+
ϵ
d=\frac{\gamma}{\sqrt{\sigma^2+\epsilon}}
d=σ2+ϵγ和
e
=
β
−
γ
⋅
μ
σ
2
+
ϵ
e=\beta-\frac{\gamma\ \cdot\ \mu}{\sqrt{\sigma^2+\epsilon}}
e=β−σ2+ϵγ ⋅ μ简化批量归一化层。图5(a)显示了方程式1~3所述卷积层的DDG。卷积层之后是近似激活层和批量归一化层。
系数合并
为了减少卷积层DDG的关键路径(以及PPNN的乘法深度),我们可以合并方程式1中的掩码
m
m
m、方程式2中激活的系数
a
a
a和
b
b
b以及方程式3中批量归一化的系数
d
d
d和
e
e
e。
方程4解释了这个合并过程。方程式4将
d
⋅
a
⋅
m
2
d\cdot a\cdot m^2
d⋅a⋅m2合并为一个系数
a
′
a'
a′,因此两个乘法可以沿关键路径消除。方程4还将
d
⋅
b
⋅
m
d\cdot b\cdot m
d⋅b⋅m和
d
⋅
c
+
e
d\cdot c+e
d⋅c+e分别合并到
b
′
b'
b′和
c
′
c'
c′中,以进一步减少PPNN的DDG中的HE乘法。
实现
系数合并可以通过三个步骤在已编译的DDG上实现。首先,我们可以为特定的网络体系结构生成DDG。图5(a)中显示了一个DDG示例,该DDG用于卷积层,后跟激活层和批量规范化层。其次,我们解析DDG以根据等式4合并掩码、近似激活系数和批量归一化系数。如果卷积层之后没有进行批量归一化,我们应该删除方程式4中的 d d d和 e e e部分。批量归一化系数是从服务器的训练数据中学习的,而不是从客户端的输入数据中学习的。因此,系数合并不会泄漏客户端的任何信息。系数合并的最后一步是输出一个优化的DDG,该DDG具有比原始DDG更小的乘法深度和更少的HE运算。系数合并输出的一个示例如图5(b)所示。图5(a)中原始DDG的乘法深度为5。系数合并显著减少了DDG的乘法深度大约 40 % 40\% 40%. 此外,系数合并减少了PPNN每层中重缩放操作的次数 r r r。例如,系数合并可以减少 2 ∼ 3 2\sim3 2∼3对CIFAR-10数据集上的SqueezeNet进行重新缩放操作,从而将延迟减少 20 % 20\% 20%。
安全
系数合并不会泄露客户的任何私人信息。在我们的威胁模型中,服务器拥有神经网络模型,客户端是数据所有者,目标是防止不受信任的服务器访问客户端的原始数据。为了获得更高的推理精度并减少推理延迟,具有原始DDG、掩码、近似激活系数和批量归一化系数的服务器自然会在任何PPNN服务发生之前执行系数合并。系数合并可以脱机完成,因为服务器不需要来自客户端的输入。
4. 实验方法
4.1. 数据集和网络
数据集
我们采用CIFAR-10和CIFAR-100数据集来评估我们提出的技术,因为它们是PPNN之前可以评估的最复杂的数据集 [ 5 ] [ 8 ] ^{[5][8]} [5][8]。CIFAR-10数据集包括10类60K彩色图像,大小为32$\times$32,其中每类由6K图像组成。在CIFAR-10中,50K个图像用于训练,10K个图像用于测试。CIFAR-100数据集与CIFAR-10相似,只是它有100个类,每个类有600个图片。
网络
表2 PPNN的网络架构。C
x
x
x、A
x
x
x、P
x
x
x、D
x
x
x、B
x
x
x、F
x
x
x和I
x
x
x分别表示第
x
x
x个卷积层、激活层、池化层、dense层、batch normalized激活层、fire模块层和inception模块层。
表3 SqueezeNet在CIFAR-10和CIFAR-100上的推理延迟和准确性。Ours-F x y z xyz xyz表明,我们用常规卷积层替换第 x x x、 y y y和 z z z个fire模块。Ours-F 34 34 34-Merge表示系数合并应用于Ours-F 34 34 34。
表2显示了我们的基线网络和HE友好网络之间的比较。我们首先采用AlexNet作为我们的常规CNN基线,而SqueezeNet作为我们的移动神经网络基线。我们在SqueezeNet上执行搜索算法,以找到一种更快的网络架构,即Ours_F34,其推理精度几乎相同。此外,我们还探索了更深层次移动PPNN的设计空间,以通过InceptionNet实现更高的推理精度。通过算法1搜索InceptionNet,我们找到了一种新的HE友好的网络架构Ours_I789。
4.2. 实验准备
我们在服务器级硬件平台上运行所有PPNN推断,该平台配备Intel Xeon Gold 5120 2.2GHz CPU,56核,256GB DRAM内存。神经网络由TensorFlow训练。对于表2中的每个神经网络,我们采用EVA编译器 [ 8 ] ^{[8]} [8]将神经网络转换为基于RNS-CKKS的PPNN的DDG。EVA编译器基于Microsoft SEAL库 [ 15 ] ^{[15]} [15]构建。通过以下步骤 [ 8 ] ^{[8]} [8],我们将加密输入消息的初始比例设置为25位,将权重过滤器和掩码的比例设置为15位。近似激活层和批量归一化层的系数设置为10位。在我们的实验中,所有的PPNN都可以达到128位的安全级别。
5. 结果和分析
我们报告了表3和表4的各种PPNN体系结构、层数、重缩放操作数和RNS-CKKS参数(即多项式次数N和模量尺寸 Q Q Q)。CIFAR-10和CIFAR-100的数据集使用相同的PPNN体系结构,但具有不同的权重过滤器编号。EVA是 [ 5 ] ^{[5]} [5]最先进的FHE编译器,可以将明文网络模型转换为基于RNS-CKKS的PPNN模型。我们将HEMET与EVA [ 5 ] ^{[5]} [5]在不同网络架构的CIFAR-10和CIFAR-100数据集上进行了比较。表3和表4分别显示了SqueezeNet和InceptionNet上EVA和HEMET的比较。
5.1. SqueezeNet
如表3所示,EVA生成的AlexNet的PPNN使用293.5秒对CIFAR-10或CIFAR-100图像执行一次推断。由EVA、SqueezeNet生成的移动神经网络将AlexNet的层数放大,并将重缩放操作数从14增加到17。SqueezeNet中的每个HE操作都比AlexNet慢得多。然而,SqueezeNet仍然将推理延迟从293.5秒减少到72.7秒。这是因为SqueezeNet的HE操作比AlexNet少得多,从而显著提高了性能。然而,EVA生成的SqueezeNet并不是一种优化的移动神经网络结构。
我们使用算法1找到一个基于SqueezeNet的HE友好网络。Ours-F4是一种网络架构,其中我们使用具有256个输入通道、 3 × 3 3\times3 3×3权重核和256个输出通道的卷积层,用256个输入通道、32个压缩通道、128个扩展的 1 × 1 1\times1 1×1通道和128个扩展的 3 × 3 3\times3 3×3通道替换第四个fire模块。Ours-F4将SqueezeNet的72.7秒推断延迟减少到43.8秒。与SqueezeNet相比,Ours-F4是一种更为RNS-CKKS友好的网络架构。我们通过将第三和第四个fire模块替换为两个卷积层,进一步构建了Ours-F34。Ours-F34实现了更短的推理延迟,甚至更高的推理精度。最后,我们用卷积层替换更多的fire模块来生成Ours-F234。但Ours-F234的推理延迟比Ours-F34更长,这意味着第二个fire模块不应被卷积层取代。Ours-F34是算法1生成的最好的HE友好网络架构。
系数合并进一步减少了Ours-F34的重缩放操作次数,从而减少了其推理延迟。如表3所示,Ours-F34-Merge减少了Ours-F34中的两个重缩放操作,并额外减少了20%的延迟。此外,系数合并对推理精度没有影响。总体而言,与EVA构建的SOTA SqueezeNet相比,Ours-F34-Merge将推理延迟减少了59.3%,推理精度提高了0.4%。
5.2. InceptionNet
表4 CIFAR-10和CIFAR-100上InceptionNet的推断延迟和准确性。Ours-I
x
y
z
xyz
xyz说明我们用常规卷积层替换了第
x
x
x、
y
y
y和
z
z
z个inception模块。Ours-I
789
789
789-Merge表示系数合并应用于Ours-I789。
InceptionNet是一种比SqueezeNet具有更多层次的移动神经网络体系结构,因此它可以在CIFAR-10和CIFAR-100数据集上实现更高的推理精度。如表4所示,EVA生成的34层接收网的推理精度为
83.2
%
83.2\%
83.2%。为了保证128位安全级别,它需要多项式次数
N
=
131072
N=131072
N=131072、系数模块
Q
=
2340
Q=2340
Q=2340和39次重缩放操作。对EVA-InceptionNet的单个PPNN推断需要213.2秒。
InceptionNet不是一种优化的移动神经网络架构,无法实现如此高的推理精度。算法1可以在InceptionNet的基础上找到更友好的网络。如表4所示,Ours-I 9 9 9是算法1生成的体系结构之一。它用卷积层取代了第 9 9 9个初始模块,然后是批处理规范化层。Ours-I 9 9 9将EVA-InceptionNet的213.2秒推断延迟降低到仅173.5秒。Ours-I789通过更换更多的初始模块进一步减少了推理延迟。然而,更换更多的初始模块并不一定会减少延迟。例如,Ours-I6789比Ours-I789推理延迟时间长。Ours-I789是我们的算法1发现的最好的HE友好移动神经网络架构。
我们应用系数合并来进一步减少Ours-I789的重缩放操作数。如表4所示,Ours-I789-Merge比Ours-I789减少了四次重缩放操作,从而减少了 37 % 37\% 37%的延迟。同时,系数合并不会影响推理精度。通过我们的搜索算法和系数合并,我们的I789-Merge比EVA编译的SOTA InceptionNet 减少了 61.2 % 61.2\% 61.2%的推理延迟,提高了 0.5 % 0.5\% 0.5%的推理精度。
6. 结论
最先进的PPNN采用移动神经网络架构,以缩短推理延迟并保持竞争性推理精度。我们发现,在PPNN上简单地应用移动神经网络架构会增加整个PPNN的乘法深度,因此不一定会减少推理延迟。在本文中,我们提出了HEMET,包括一个简单、贪婪的HE友好网络结构搜索算法和系数合并,以减少PPNN中HE操作的数量,而不增加PPNN的乘法深度。实验结果表明,与SOTA PPNN相比,HEMET生成的PPNN将推理延迟降低了 59.3 % ∼ 61.2 % 59.3\%\sim 61.2\% 59.3%∼61.2%,推理精度提高 0.4 ∼ 0.5 % 0.4\sim0.5\% 0.4∼0.5%.
参考文献
[1] Juvekar, C., Vaikuntanathan, V., and Chandrakasan, A. Gazelle: A low latency framework for secure neural network inference. In USENIX Conference on Security Symposium, pp. 1651aAS–1668, 2018.
[2] Mishra, P ., Lehmkuhl, R., Srinivasan, A., Zheng, W., and Popa, R. A. Delphi: A cryptographic inference service for neural networks. In {USENIX} Security Symposium, 2020.
[3] Brutzkus, A., Gilad-Bachrach, R., and Elisha, O. Low latency privacy preserving inference. In International Conference on Machine Learning, pp. 812–821, 2019.
[4] Gilad-Bachrach, R., Dowlin, N., Laine, K., Lauter, K., Naehrig, M., and Wernsing, J. Cryptonets: Applying neural networks to encrypted data with high throughput and accuracy. In International Conference on Machine Learning, pp. 201–210, 2016.
[5] Dathathri, R., Saarikivi, O., Chen, H., Laine, K., Lauter, K., Maleki, S., Musuvathi, M., and Mytkowicz, T. CHET: An Optimizing Compiler for Fully-Homomorphic Neural-Network Inferencing. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 142–156, 2019.
[6] Juvekar, C., V aikuntanathan, V ., and Chandrakasan, A. Gazelle: A low latency framework for secure neural network inference. In USENIX Conference on Security Sym- posium, pp. 1651aAS–1668, 2018.
[7] Brutzkus, A., Gilad-Bachrach, R., and Elisha, O. Low latency privacy preserving inference. In International Conference on Machine Learning, pp. 812–821, 2019.
[8] Dathathri, R., Kostova, B., Saarikivi, O., Dai, W., Laine, K., and Musuvathi, M. EVA: An encrypted vector arithmetic language and compiler for efficient homomorphic computation. In ACMSIGPLAN Conference on Programming Language Design and Implementation, pp. 546–561, 2020.
[9] Iandola, F. N., Han, S., Moskewicz, M. W., Ashraf, K., Dally, W. J., and Keutzer, K. Squeezenet: Alexnet-level accuracy with 50x fewer parameters and< 0.5 mb model size. arXiv preprint arXiv:1602.07360, 2016.
[10] Szegedy, C., Ioffe, S., V anhoucke, V ., and Alemi, A. Inception-v4, inception-resnet and the impact of residual connections on learning. arXiv preprint arXiv:1602.07261, 2016.
[11] Gentry, C. and Boneh, D. A fully homomorphic encryption scheme. Stanford University, 2009.
[12] Bian, S., Jiang, W., Lu, Q., Shi, Y ., and Sato, T. Nass: Optimizing secure inference via neural architecture search. In European Conference on Artificial Intelligence, 2020.
[13] Lou, Q., Bian, S., and Jiang, L. Autoprivacy: Automated layer-wise parameter selection for secure neural network inference. In Advances in Neural Information Processing Systems, volume 33, pp. 8638–8647. Curran Associates, Inc., 2020.
[14] Ioffe, S. and Szegedy, C. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In International Conference on International Conference on Machine Learning, pp. 448–456, 2015.
[15] SEAL. Microsoft SEAL (release 3.6). https://github.com/Microsoft/SEAL, November 2020. Microsoft Research, Redmond, WA.