当前位置: 首页 > 专利查询>南京大学专利>正文

模乘精简的同态加密神经网络线性层硬件加速方法及系统技术方案

技术编号:36821697 阅读:47 留言:0更新日期:2023-03-12 01:02
本发明专利技术公开了一种模乘精简的同态加密神经网络线性层硬件加速方法及系统,该方法包括:用户端接收输入的神经网络模型的权重数据,并采用加法二次幂方法进行量化,然后进行重排和转置;用户端接收输入的神经网络模型的源数据,并采用img2col的方式进行重排,然后进行转置,并编码为明文多项式;用户端将编码后的明文多项式加密为同态加密方案对应的密文,并与处理后的权重数据一起发送到硬件加速器;硬件加速器对密文和权重数据开启同态加密条件下的神经网络线性层运算,并将运算结果反馈到用户端。本发明专利技术减小了模乘运算器的计算周期和资源开销,提升了计算效率。提升了计算效率。提升了计算效率。

【技术实现步骤摘要】
模乘精简的同态加密神经网络线性层硬件加速方法及系统


[0001]本专利技术涉及对同态加密和神经网络进行硬件加速的研究领域,具体地说是,本专利技术是一种基于BFV方案,在同态加密条件下,用特定的方法对神经网络的线性层运算进行加速的硬件系统。

技术介绍

[0002]机器学习即服务(Machine learning as a service,MLaaS)的概念在近些年被提出,并逐渐成为一个热门的领域。其实际内涵便是云提供商向客户提供的许多基于机器学习的云服务。但是随着这些云服务的推广,用户隐私数据的安全问题逐渐成为大家关心的重点。若使用传统的方式加密数据并上传,云服务提供方依然需要获取密钥,将数据解密后才能进行运算。但这无疑会给用户的隐私带来巨大的安全风险。而同态加密(Homomorphic Encryption,HE)则支持在不解密的前提下直接对密文进行运算;因此,同态加密技术成为了云计算时代保护用户数据安全最有前景的方案。
[0003]神经网络(Neural Networks,NNs)则是在机器学习中应用最为广泛的模型。而在神经网络中,最常见的算法模型是卷积神经网络(Convolutional neural networks,CNNs),该模型主要用于图像处理领域,包含若干卷积层和全连接层。事实上,卷积神经网络中的卷积运算和全连接运算的底层逻辑都是乘累加运算,这与同态加密支持同态乘法和同态加法的特性是非常契合的。因此在诸多机器学习算法中,神经网络类模型是比较适合使用同态加密进行实现的。
[0004]当前,研究较为深入的,较为主流的用于数值计算的同态加密方案主要包括BFV,BGV和CKKS等。这些方案主要基于带错学习问题(Learning with error problems,LWE)和环上的带错学习问题(Ring

Learning with error problems,RLWE)构建。为了保证安全性,这些方案的密文域都会选取一个高维数的大整数多项式环,原始数据经过加密会被映射到环上,以一个环上多项式的形式存在。这种加密映射虽然保证了安全性,但是也带来了一定的问题,比如密文体积过大,运算效率低下等;这也为在同态加密条件下构建神经网络模型带来了一定困难。
[0005]2016年,Dowlin等研究人员提出了一种名为Cryptonets的同态加密神经网络方案,首次将卷积神经网络与同态加密结合起来。该方案基于YASHE同态加密方案构建。该团队还提出,神经网络中的权重信息其实并不涉及用户隐私,因此可以以明文的方式存在。实际上,明文的体积更小,与密文运算时更加快速,并且不会产生额外的噪声。受该团队的工作启发,相关领域的研究人员们也基于不同的同态加密方案和不同的神经网络模型进行了大量研究,尝试提高同态加密条件下神经网络的运算效率和实用性。然而,鉴于主流同态加密方案数据量大,运算复杂的特点,如何进一步提升同态加密神经网络的运算效率,依旧是一个难点。

技术实现思路

[0006]本专利技术的目的在于解决以上所提出的如何提升同态加密神经网络运算效率的问题,提供一种模乘精简的同态加密神经网络线性层硬件加速方法及系统,可以简化密文标量运算,减少计算访存开销,更好满足实际应用需求,具体由以下方案实现:
[0007]技术方案:一种模乘精简的同态加密神经网络线性层硬件加速方法,包括如下步骤:
[0008]步骤S1、用户端接收输入的神经网络模型的权重数据,并采用加法二次幂方法进行量化,然后进行重排和转置;
[0009]步骤S2、用户端接收输入的神经网络模型的源数据,并采用img2col的方式进行重排,然后进行转置,并编码为明文多项式;
[0010]步骤S3、用户端将编码后的明文多项式加密为同态加密方案对应的密文,并与处理后的权重数据一起发送到硬件加速器;硬件加速器对密文和权重数据开启同态加密条件下的神经网络线性层运算,并将运算结果反馈到用户端。
[0011]根据本申请的一个方面,所述步骤S1中,采用加法二次幂方法进行量化的过程进一步为:
[0012]步骤S11、获取原始权重数据x,并将其量化得到一个n比特的定点数
[0013][0014]Q
set
={x|x=x1+x2,x1∈Q1,x2∈Q2}∩[

1,1);
[0015][0016][0017]其中,数sign(x)用于判断输入值x的符号,当x≥0时该函数返回1,否则返回0;函数findnearest()返回集合Q
set
中和x最接近的值;集合Q
set
中的元素由另外两个特定集合Q1和集合Q2中的元素彼此相加得到;
[0018]步骤S12、取a1≤a2=log2n,将上式变换为:
[0019][0020]式中,0≤k1,k2≤n

1,φ1,φ2∈{0,1}。
[0021]根据本申请的一个方面,所述步骤S3还包括数据分割流程:
[0022]步骤S31、将源数据和权重分别送入对应的缓冲区;
[0023]步骤S32、开启各个乘累加计算单元的乘累加运算;
[0024]步骤S33、同一组内乘累加结果求和上一次指定的区块结果对位相加,输出到输出缓冲区等待下次操作。
[0025]根据本申请的一个方面,所述步骤3还包括模乘计算:
[0026]步骤S3a、输入源数据a,量化权重w和模数q;
[0027]步骤S3b、判断参数φ1是否为0,若不为0,则将源数据a左移k1位后的值送入加法器,否则将0送入加法器;判断参数φ2是否为0,若不为0,则将源数据a左移k2位后的值送入加法器,否则将0送入加法器;
[0028]步骤S3c、执行加法操作,计算前面步骤中送入加法器的数据的和;
[0029]步骤S3d、将上一步的结果和模数q送入求模运算器执行求模操作;
[0030]步骤S3e、根据权重的符号位决定最终输出结果,若sign(w)=1,则输出参数y,否则输出y=q

y。
[0031]根据本申请的一个方面,所述步骤S3还包括密文分割步骤:
[0032]乘累加阵列的参数u对密文进行分割,将其分割成若干(d2u)
×
u的小块,同时将权重分割成若干u
×
(d2u)小块;在计算时,每次取一块分割的密文,就可以遍历计算权重对应一列上的所有分割。
[0033]根据本申请的另一个方面,提供一种模乘精简的同态加密神经网络线性层硬件加速系统,包括同态加密密文标量乘累加运算阵列,所述同态加密密文标量乘累加运算阵列包括预定个运算单元,每一运算单元包括源数据缓冲区、输出缓冲区和乘累加簇,每个乘累加簇包括控制器、权重缓冲区、预定个依序连接的乘累加运算器和模加器,
[0034]所述源数据缓冲区、权重缓冲区和乘累加运算器的数量相等,每个源数据缓冲区输出至各个运算单元的同一层次的乘累加运算器,每个权重缓冲区本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模乘精简的同态加密神经网络线性层硬件加速方法,其特征在于,包括如下步骤:步骤S1、用户端接收输入的神经网络模型的权重数据,并采用加法二次幂方法进行量化,然后进行重排和转置;步骤S2、用户端接收输入的神经网络模型的源数据,并采用img2col的方式进行重排,然后进行转置,并编码为明文多项式;步骤S3、用户端将编码后的明文多项式加密为同态加密方案对应的密文,并与处理后的权重数据一起发送到硬件加速器;硬件加速器对密文和权重数据开启同态加密条件下的神经网络线性层运算,并将运算结果反馈到用户端。2.如权利要求1所述的方法,其特征在于,所述步骤S1中,采用加法二次幂方法进行量化的过程进一步为:步骤S11、获取原始权重数据x,并将其量化得到一个n比特的定点数步骤S11、获取原始权重数据x,并将其量化得到一个n比特的定点数Q
set
={x|x=x1+x2,x1∈Q1,x2∈Q2}∩[

1,1);1,1);其中,数sign(x)用于判断输入值x的符号,当x≥0时该函数返回1,否则返回0;函数findnearest()返回集合Q
set
中和x最接近的值;集合Q
set
中的元素由另外两个特定集合Q1和集合Q2中的元素彼此相加得到;步骤S12、取a1≤a2=log
2 n,将上式变换为:式中,0≤k1,k2≤n

1,φ1,φ2∈{0,1}。3.如权利要求1所述的方法,其特征在于,所述步骤S3还包括数据分割流程:步骤S31、将源数据和权重分别送入对应的缓冲区;步骤S32、开启各个乘累加计算单元的乘累加运算;步骤S33、同一组内乘累加结果求和上一次指定的区块结果对位相加,输出到输出缓冲区等待下次操作。4.如权利要求2所述的方法,其特征在于,所述步骤3还包括模乘计算:步骤S3a、输入源数据a,量化权重w和模数q;步骤S3b、判断参数φ1是否为0,若不为0,则将源数据a左移k1位后的值送入加法器,否则将0送入加法器;判断参数φ2是否为0,若不为0,则将源数据a左移k2位后的值送入加法器,否则将0送入加法器;步骤S3c、执行加法操作,计算前面步骤中送入加法器的数据的和;步骤S3d、将上一步的结果和模数q送入求模运算器执行求模操作;步骤S3e、根据权重的符号位决定最终输出结果,若sign(w)=1,则输出参数y,否则输出y=q

y。5.如权利要求2所述的方法,...

【专利技术属性】
技术研发人员:傅玉祥王艺霖李丽宋文清沈思睿李伟何书专
申请(专利权)人:南京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1