System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于FPGA芯片的纵向联邦学习加速方法技术_技高网

一种基于FPGA芯片的纵向联邦学习加速方法技术

技术编号:39984714 阅读:7 留言:0更新日期:2024-01-09 01:48
本发明专利技术公开了一种基于FPGA芯片的纵向联邦学习加速方法,本发明专利技术提供了一种不需要可信第三方的纵向联邦学习方法,并通过FPGA芯片加速联邦学习。本发明专利技术基于FPGA加速了Paillier加密协议的解密算法和密文标量乘法,并将这个模块嵌入到整个框架中。从而,Paillier加密协议的解密算法和密文标量乘法被解耦到FPGA上执行,CPU只负责数据的如密钥、随机掩码等的预计算、前向传播、数据加密和模型更新,以支持高效的基于Paillier加密协议的纵向联邦学习。本发明专利技术在不损失参与双方数据安全性的前提下,把FPGA嵌入到联邦学习系统之后,可以显著提高联邦建模的速度,从而减少训练的迭代时间。

【技术实现步骤摘要】

本专利技术属于联邦学习和边缘计算,涉及一种基于fpga芯片的纵向联邦学习加速方法。


技术介绍

1、近年来,人工智能的蓬勃发展使其已经深入应用到各行各业。在金融领域,越来越多的企业将人工智能技术应用到各种业务中来,诸如欺诈防范和检测,风险管理等方面,以增加企业决策的可靠性。

2、然而,一个可靠的机器学习模型,需要大量的数据进行模型训练。只有足够多的训练样本和足够广的特征维度,才能保证模型的高可靠性。不幸的是,“数据孤岛”的问题在金融领域尤为突出。对于大企业来说,样本数量一般不成问题,但是由于企业所负责的业务五花八门,它们收集到的数据特征维度也不同,从而导致了特征维度不够全面这一问题。对于小的企业来说,他们不仅面临大企业特征维度不足的问题,同时面临由客户量小带来的样本数量小的问题。对于这样的现实问题,许多企业选择了数据共享来解决这一问题。如何解决数据共享和隐私保护问题之间的矛盾,成为了巨大的机遇和挑战。联邦学习是在保护数据安全和隐私前提下,解决数据共享问题的一个有效方案。纵向联邦作为一种典型的联邦学习范式,可以解决实际业务中需要对特征维度和丰富度进行补全和扩充的问题,因而被广泛使用,应用在联合风控、联合营销等场景中。

3、目前,常用的纵向联邦学习框架一般分为三个角色,包括:服务请求方,数据提供方,以及协调方。服务请求方通常是业务的发起方,拥有部分特征和标签;数据提供方拥有另外一些特征,无标签。服务请求方和数据提供方在样本id具有较大的交集,把服务请求方和数据提供方统称为参与方。协调方通常是所有参与方都可以信任的第三方,简称可信第三方。协调方有两个作用,一是协助参与方生成公钥和私钥,二是将双方结果(如:梯度,loss等) 聚合。但目前该纵向联邦学习框架存在以下几个问题:

4、问题1:现实场景中,很难找到参与方都可信任的第三方;

5、问题2:进行聚合操作时,通常是基于密文空间的多方数据聚合,加密算法效率低下,建模速度比传统的直接将数据聚合在一起建模方式慢4-5个数量级。


技术实现思路

1、为了解决现有技术存在的不足,本专利技术的目的是提供一种基于fpga芯片的纵向联邦学习加速方法,本专利技术提供了一种不需要可信第三方的纵向联邦学习方法,并通过fpga芯片加速联邦学习,与其他类似方法相比,区别在于本专利技术引入了fpga加速paillier加密协议的解密算法和密文标量乘法,并将这个模块嵌入到整个软硬件框架中,以支持高效的基于paillier 加密协议的联邦学习。

2、针对现有技术中难以找到参与方都可信任的第三方的问题,从架构层面来说,本方案采用无可信第三方的设计,采用了双fpga的架构,两块fpga分别从属于两个参与方a和b。从属于参与方a的fpga芯片用于数据的解密,从属于参与方b的fpga芯片用于密文的同态运算。针对基于密文空间的多方数据聚合,加密算法效率低下的问题,1)本专利技术将数据的解密和同态运算解耦、下沉到fpga上进行,cpu只负责部分数据的预计算(如:密钥、随机掩码等)、前向传播和模型更新;2)为了加速在fpga上同态加密算法的执行效率,本专利技术结合了蒙哥马利模乘和快速幂来优化模乘运算和模幂运算;3)并在最大程度优化fpga的资源利用率(逻辑资源和dsp)的前提下,在fpga上生成了多个相同的电路来并行一些相同的操作。

3、逻辑回归lr算法是机器学习中的常见算法,且因其可解释性较强,被广泛应用在建模任务中。本专利技术中以纵向lr为例。本专利技术纵向联邦学习框架的整体框架图如图1所示,参与方a 和参与方b各拥有一块fpga芯片。从功能上看,从属于a的fpga芯片用来解密从参与方b传来的加密梯度值;从属于b的fpga芯片用来在密文域上计算梯度。参与方a和参与方b各自进行前向传播后,参与方b会将其预测值传输给参与方a。参与方a会聚合预测值并计算其与标签的差值diff,然后参与方a将差值加密,并传输加密后的差值给参与方b。参与方 b将加密后的差值传输给从属于它的fpga芯片,利用fpga芯片计算加密后的梯度并加入随即掩码计算完成后,密文梯度传回给参与方b的cpu,然后由参与方b传输给参与方a。参与方a将密文梯度传输给从属于它的fpga芯片,利用fpga芯片进行解密,得到解密后的梯度grad+r。最后,参与方a会把明文梯度grad+r传输给参与方b。

4、纵向lr场景下的参与方,一般拥有样本空间相同但特征空间不同的数据集。

5、所述样本空间是指参与方进行逻辑回归所使用的样本,每个样本包含不同的特征。参与方拥有相同的样本空间是指逻辑回归所使用的样本相同,即样本id相同。

6、所述特征空间是指样本所拥有的特征,即lr模型的输入,参与方拥有不同的特征空间是指,样本拥有的特征维度不同,样本之间的特征很少甚至没有交集。

7、逻辑回归lr算法假定数据集中的数据服从伯努利分布,采用交叉熵损失函数作为损失函数,所述交叉熵损失函数的形式为其中,n代表样本数量,yi为第i个样本的标签,pi为第i个样本的预测结果;所述损失函数用于表示预测输出和真实值之间的偏差,最后运用优化算法来求解参数,达到对数据进行分类的目的。

8、基于lr算法的纵向联邦学习方法一般分为两个部分。第一部分是样本安全对齐,第二部分是建模。样本对齐可采用rsa、ecc或者基于ot的安全对齐协议完成。假设各参与方在完成样本对齐后,纵向lr联邦学习的建模流程为:

9、步骤1、包括服务请求方和数据提供方在内的参与方分别进行前向传播,获得各参与方自己的预测值,数据提供方将自己的预测值传输给服务请求方,并由业务发起方(即服务请求方)对预测结果进行聚合并计算与标签的差值,所述标签是在逻辑回归前由服务请求方预先生成并保存在其cpu内存中的信息;

10、步骤2、服务请求方对聚合后的预测值运算后获得的差值加密并传输给数据提供方;

11、步骤3、服务请求方直接使用未加密的差值在本地cpu计算权重weight和偏置bias的梯度,数据提供方直接在加密后的数据上进行密文乘法和密文加法操作,计算lr模型权重和偏置的梯度并回传给服务请求方;密文加法的计算方式为其中m1和m2为参与密文加法的明文,表示在密文域上做加法的计算结果,c1和c2分别为对m1和m2加密后的密文,g和n为公钥参数,r为混淆参数;密文乘法的计算方式为其中m1和m2为参与密文乘法的明文,表示在密文域上做乘法的计算结果,c1为对m1加密后的密文,g和n为公钥参数,r为混淆参数。

12、步骤4、服务请求方对密文梯度进行解密并返回给数据提供方,数据提供方将接收到的明文梯度减去相应的随机掩码,获得最终的梯度值;

13、步骤5、各个参与方根据梯度对模型进行更新;若未达到终止条件则继续重复步骤2至步骤5,否则终止训练,获得最终的模型;

14、在通过上述建模流程获得最终训练完成的模型后,训练参与方可以使用模型对新的输入数据进行预测,通过得到的预测结果对数据进行分类。比如在本文档来自技高网...

【技术保护点】

1.一种基于FPGA芯片的纵向联邦学习加速方法,其特征在于,所述方法包括如下步骤:

2.根据权利要求1所述的方法,其特征在于,所述服务请求方的功能为生成密钥、前向传播、加密差值、计算梯度和模型预测;所述密钥包括公钥(n,g)和私钥(λ,μ),所述密钥的生成使用C++的GMP大数库完成,密钥生成前需要先生成两个随机大素数p和q;使用所述两个大素数,公钥生成方法为:n=p*q,g=n+1,私钥生成方法为:λ=(p-1)*(q-1),μ=λ-1;公钥会被公开给包括服务请求方和数据提供方在内的所有参与方,并分别存储在服务请求方和数据提供方的CPU内存中,以及数据提供方的FPGA芯片的内存中;私钥只会被存储在服务请求方的FPGA芯片的内存中。

3.根据权利要求1所述的方法,其特征在于,所述数据提供方的功能为生成随机掩码、加密随机掩码、前向传播、为密文域上的梯度加上加密的随机掩码和模型预测;所述随机掩码是使用C++GMP大数库随机生成的随机数,数据提供方会在CPU上使用公钥对随机掩码加密,并存储在CPU的内存中。

4.根据权利要求1所述的方法,其特征在于,所述纵向联邦学习使用LR模型,所述LR模型由一个线性层和一个Softmax层组成;线性层的输出z表示为z=WTx+b,其中W和b分别是线性层的权重和偏置,x是参与方的输入特征向量;Softmax层的输出表示为整个LR模型的输出表示为LR模型中采用交叉熵损失函数作为损失函数,所述交叉熵损失函数的形式为其中,N代表样本数量,yi为第i个样本的标签,pi为第i个样本的预测结果。

5.根据权利要求1所述的方法,其特征在于,步骤(1)中,所述服务请求方对预测结果聚合的方法定义为其中,为聚合后的预测结果,和分别为服务请求方和数据提供方的预测结果;差值计算方式为其中,y为在逻辑回归前由服务请求方预先生成并保存在其CPU内存中的标签。

6.根据权利要求1所述的方法,其特征在于,步骤(2)中,差值的加密方法为其中代表加密后的差值,diff是加密前的差值,g和n是公钥参数,r是随机生成的与n互素的混淆参数。

7.根据权利要求1所述的方法,其特征在于,步骤(3)中,服务请求方在本地CPU上通过下述公式分别计算权重和偏置的梯度:和其中input为样本输入特征,L为损失函数,w为权重,b为偏置;

8.根据权利要求1所述的方法,其特征在于,步骤(4)中,服务请求方的CPU芯片把收到的数据提供方的密文域的梯度传输给FPGA芯片的输入缓存中,服务请求方的FPGA芯片上的解密单元中的解密模块会从对应的输入缓存中读出数据进行解密,解密方法为m=L(cλmod n2)mod n2,其中c为密文,n为公钥参数,λ为私钥参数;解密完成后的明文m会先暂存在服务请求方的FPGA芯片上的输出缓存中,然后传回给服务请求方的CPU内存。

9.根据权利要求1所述的方法,其特征在于,在密文梯度计算中,服务请求方的FPGA芯片的解密操作和数据提供方的FPGA芯片的梯度计算同时进行,数据提供方会把计算完成的密文梯度直接传输给服务请求方,无需等待所有梯度计算完成,实现了梯度计算和解密的流水线操作。

10.根据权利要求1所述的方法,其特征在于,步骤(5)中,所述梯度更新使用minibatch-SGD方法;所述minibatch-SGD方法是指一次处理一个batch的样本,对每一个样本分别计算梯度,然后将梯度累加,然后进行梯度更新;

11.根据权利要求1所述的方法,其特征在于,步骤(5)中,在训练开始前,会预先选定一个训练轮次epoch,表示训练的最大轮次,当达到最大训练轮次时,训练停止;同时设置一个预期训练精度,当达到预期训练精度时,即使没有达到最大训练轮次,训练也停止。

12.一种应用于如权利要求1-11之任一项所述方法的FPGA芯片,其特征在于,所述FPGA芯片根据参与方的不同具备不同的功能;所述参与方包括服务请求方和数据提供方;

...

【技术特征摘要】

1.一种基于fpga芯片的纵向联邦学习加速方法,其特征在于,所述方法包括如下步骤:

2.根据权利要求1所述的方法,其特征在于,所述服务请求方的功能为生成密钥、前向传播、加密差值、计算梯度和模型预测;所述密钥包括公钥(n,g)和私钥(λ,μ),所述密钥的生成使用c++的gmp大数库完成,密钥生成前需要先生成两个随机大素数p和q;使用所述两个大素数,公钥生成方法为:n=p*q,g=n+1,私钥生成方法为:λ=(p-1)*(q-1),μ=λ-1;公钥会被公开给包括服务请求方和数据提供方在内的所有参与方,并分别存储在服务请求方和数据提供方的cpu内存中,以及数据提供方的fpga芯片的内存中;私钥只会被存储在服务请求方的fpga芯片的内存中。

3.根据权利要求1所述的方法,其特征在于,所述数据提供方的功能为生成随机掩码、加密随机掩码、前向传播、为密文域上的梯度加上加密的随机掩码和模型预测;所述随机掩码是使用c++gmp大数库随机生成的随机数,数据提供方会在cpu上使用公钥对随机掩码加密,并存储在cpu的内存中。

4.根据权利要求1所述的方法,其特征在于,所述纵向联邦学习使用lr模型,所述lr模型由一个线性层和一个softmax层组成;线性层的输出z表示为z=wtx+b,其中w和b分别是线性层的权重和偏置,x是参与方的输入特征向量;softmax层的输出表示为整个lr模型的输出表示为lr模型中采用交叉熵损失函数作为损失函数,所述交叉熵损失函数的形式为其中,n代表样本数量,yi为第i个样本的标签,pi为第i个样本的预测结果。

5.根据权利要求1所述的方法,其特征在于,步骤(1)中,所述服务请求方对预测结果聚合的方法定义为其中,为聚合后的预测结果,和分别为服务请求方和数据提供方的预测结果;差值计算方式为其中,y为在逻辑回归前由服务请求方预先生成并保存在其cpu内存中的标签。

6.根据权利要求1所述的方法,其特征在于,步骤(2)中,...

【专利技术属性】
技术研发人员:曹桂涛吴俊飞陶琦琦金通赛
申请(专利权)人:华东师范大学
类型:发明
国别省市:

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

1