保护数据隐私的模型服务提供方法及装置与流程

文档序号:37544035发布日期:2024-04-08 13:45阅读:10来源:国知局
保护数据隐私的模型服务提供方法及装置与流程

本说明书一个或多个实施例涉及机器学习,尤其涉及一种保护数据隐私的模型服务提供方法及装置、一种计算机可读存储介质,以及一种计算设备。


背景技术:

1、越来越多的应用服务采用大模型等神经网络模型(或称预测模型)去提高计算精度或提高用户体验。例如,应用预测模型去做各类风控评估,又例如,应用大模型辅助程序编写人员提高他们的编写效率。这类基于预测模型的应用需要用户输入数据,如文字、图像、代码片段、代码漏洞等到服务端去做处理。

2、为保护用户输入数据的隐私安全,需要一套方案,能够确保服务端,也就是模型服务的提供方,不会得知用户输入数据的真实内容。由此,提出让客户端与服务端之间执行一个基于安全多方计算(secure multi-party computation,简称mpc)实现的模型推理程序,使得客户端能够在其私有数据不被服务端知晓的情况下得到模型推理结果。

3、然而,目前基于mpc技术实现的模型推理方案难以满足实际应用中的更高要求。因此,需要一种改进方案,可以在保护用户数据隐私的同时提高模型推理效率,从而更好地满足实际应用需求。


技术实现思路

1、本说明书实施例描述一种保护数据隐私的模型服务提供方法及装置,可以有效减少模型推理过程中的计算开销,提高推理效率。

2、根据第一方面,提供一种保护数据隐私的模型服务提供方法,通过服务端执行,所述服务端部署预测模型,所述预测模型包括具有激活函数的第一隐层。所述方法包括:

3、基于所述激活函数的函数输入的第一分片,以及预先确定的n个分段区间的n-1个分界值,与客户端持有的所述函数输入的第二分片,进行n-1次实现大小比较的第一安全多方mpc计算,得到所述函数输入针对所述n个分段区间的n个命中结果的n个第一分片。基于所述函数输入和n个命中结果分别对应的共计n+1个第一分片,以及与所述n个分段区间对应的n个区间函数,与所述客户端对应持有的n+1个第二分片进行第二mpc计算,得到所述n个区间函数所形成分段函数的函数输出的第一分片,作为所述第一隐层的输出数据的第一分片;其中,所述分段函数用于拟合所述激活函数,所述n个区间函数中至少一个为高阶多项式形式。

4、在一个实施例中,所述分段函数由所述服务端基于以下步骤确定:获取对所述激活函数的定义域进行分割而得到的所述n个分段区间;针对所述n个分段区间中被选定的第一分段区间,基于利用所述激活函数在该区间上确定出的多个样本点,拟合出对应的高阶多项式函数,作为该区间对应的区间函数。

5、在一个具体的实施例中,所述激活函数为线性整流函数relu的变形函数;其中,获取对所述激活函数的定义域进行分割而得到的所述n个分段区间,包括:接收基于所述变形函数选定的位于数轴原点两侧的两个分界值,以及位于所述两个分界值之间的另一分界值。其中,所述第一分段区间的选定包括:基于由所述两个分界值和所述另一分界值形成的四个分段区间,将其中位于中间的两个分段区间被分别作为所述第一分段区间。

6、进一步,在一个例子中,所述分段函数的确定还包括以下步骤:接收针对所述四个分段区间中位于左端的分段区间设定的常量函数,以及位于右端的分段区间设定的线性函数,分别作为对应的区间函数。

7、在一个例子中,所述变形函数包括指数线性单元elu、sigmoid线性单元silu或高斯误差线性单元gelu。

8、在一个例子中,所述n等于4。

9、在一个实施例中,基于利用所述激活函数在该区间上确定出的多个样本点,拟合出对应的高阶多项式函数,包括:基于所述多个样本点,通过最小二乘法确定高阶多项式函数中的待定系数的拟合值。

10、另一方面,在一个具体的实施例中,所述分段函数的确定还包括以下步骤:针对所述多个分段区间中被选定的第二分段区间,接收针对该第二分段区间设定的区间函数。

11、在一个实施例中,所述第二mpc计算包括:基于所述函数输入的第一分片和所述n个区间函数,与所述客户端持有的所述函数输入的第二分片进行第一子mpc计算,得到所述n个区间函数分别处理所述函数输入而得到的n个分段输出的n个第一分片;基于所述n个命中结果和所述n个分段输出分别对应的共计2n个第一分片,与所述客户端对应持有2n个第二分片进行第二子mpc计算,得到所述函数输出的第一分片。

12、在一个具体的实施例中,所述n个区间函数中的第一区间函数为高阶多项式函数,第一区间函数中包括指数为偶数的第一幂运算式;其中,所述第二子mpc计算包括:基于所述函数输入的第一分片和第二幂运算式,与所述客户端持有的所述函数输入的第二分片进行mpc幂运算,得到幂运算结果的第一分片;所述第二幂运算式是将所述第一幂运算式的指数减半而得到。基于所述幂运算结果的第一分片,与所述客户端持有的所述幂运算结果的第二分片进行mpc平方运算,得到所述幂运算结果的平方的第一分片,作为所述第一幂运算式的运算结果的第一分片。

13、在一个具体的实施例中,所述多个区间函数中的第二区间函数和第三区间函数为高阶多项式函数,其中第二区间函数中的第一单项式与第三区间函数中的第二单项式具有相同的高次幂因式;其中,所述第二子mpc计算,包括:

14、基于所述函数输入的第一分片和所述高次幂因式,与所述客户端持有的所述函数输入的第二分片进行安全多方幂运算,得到所述高次幂因式的因式运算结果的第一分片。基于所述因式运算结果的第一分片和所述第一单项式,与所述客户端持有的所述因式运算结果的第二分片进行第一安全多方乘法运算,得到所述第一单项式的运算结果的第一分片。基于所述因式运算结果的第一分片和所述第二单项式,与所述客户端持有的所述因式运算结果的第二分片进行第二安全多方乘法运算,得到所述第二单项式的运算结果的第一分片。

15、在一个实施例中,所述第一隐层中还包括线性变换函数;在进行所述第一mpc计算之前,所述方法还包括:基于所述第一隐层的输入对应的第一分片和所述线性变换函数,与所述客户端对应持有的第二分片进行第三mpc计算,得到所述函数输入的第一分片。

16、在一个实施例中,所述方法还包括:基于所述预测模型中最末隐层的输出的第一分片和输出层对应的计算式,与所述客户端对应持有的第二分片进行第四mpc计算,得到预测模型的模型输出的第一分片,用于提供给所述客户端进行所述模型输出的还原。

17、根据第二方面,提供一种保护数据隐私的模型服务提供方法,通过客户端执行,所述客户端对应的服务端部署预测模型,所述预测模型包括具有激活函数的第一隐层;所述方法包括:

18、基于所述激活函数的函数输入的第二分片,与服务端持有的所述函数输入的第一分片,以及预先确定的n个分段区间的n-1个分界值,进行n-1次实现大小比较的第一安全多方mpc计算,得到所述函数输入针对所述n个分段区间的n个命中结果的n个第二分片。基于所述函数输入和n个命中结果分别对应的共计n+1个第二分片,与所述服务端对应持有的n+1个第一分片,以及与所述n个分段区间对应的n个区间函数进行第二mpc计算,得到所述n个区间函数所形成分段函数的函数输出的第二分片,作为所述第一隐层的输出数据的第二分片;其中,所述分段函数用于拟合所述激活函数,所述n个区间函数中至少一个为高阶多项式形式。

19、在一个实施例中,所述第二mpc计算包括:基于所述函数输入的第二分片,与所述服务端持有的所述函数输入的第一分片和所述n个区间函数,进行第一子mpc计算,得到所述n个区间函数分别处理所述函数输入而得到的n个分段输出的n个第二分片。基于所述n个命中结果和所述n个分段输出分别对应的共计2n个第二分片,与所述服务端对应持有2n个第一分片,进行第二子mpc计算,得到所述函数输出的第二分片。

20、在一个实施例中,所述n个区间函数中的第一区间函数为高阶多项式函数,第一区间函数中包括指数为偶数的第一幂运算式;其中,所述第二子mpc计算包括:基于所述函数输入的第二分片,与所述服务端持有的所述函数输入的第一分片和第二幂运算式进行安全多方幂运算,得到幂运算结果的第二分片;所述第二幂运算式是将所述第一幂运算式的指数减半而得到。基于所述幂运算结果的第二分片,与所述服务端持有的所述幂运算结果的第一分片,进行安全多方平方运算,得到所述幂运算结果的平方的第二分片,作为所述第一幂运算式的运算结果的第二分片。

21、在一个实施例中,所述多个区间函数中的第二区间函数和第三区间函数为高阶多项式函数,其中第二区间函数中的第一单项式与第三区间函数中的第二单项式具有相同的高次幂因式;其中,所述第二子mpc计算,包括:基于所述函数输入的第二分片,与所述服务端持有的所述函数输入的第一分片和所述高次幂因式进行安全多方幂运算,得到所述高次幂因式的因式运算结果的第二分片。基于所述因式运算结果的第二分片,与所述服务端持有的所述因式运算结果的第一分片和所述第一单项式进行第一安全多方乘法运算,得到所述第一单项式的运算结果的第二分片。基于所述因式运算结果的第二分片,与所述服务端持有的所述因式运算结果的第一分片和所述第二单项式进行第二安全多方乘法运算,得到所述第二单项式的运算结果的第二分片。

22、在一个实施例中,所述第一隐层中还包括线性变换函数;在进行所述第一mpc计算之前,所述方法还包括:基于所述第一隐层的输入对应的第二分片,与所述服务端对应持有的第一分片和所述线性变换函数进行第三mpc计算,得到所述函数输入的第二分片。

23、在一个实施例中,所述方法还包括:基于所述预测模型中最末隐层的输出的第二分片,与所述服务端对应持有的第一分片和输出层对应的计算式进行第四mpc计算,得到预测模型的模型输出的第二分片;基于所述模型输出的第二分片,以及从所述服务端接收的所述模型输出的第一分片,还原所述模型输出。

24、根据第三方面的实施例,提供一种保护数据隐私的模型服务提供装置,集成于服务端,所述服务端部署预测模型,所述预测模型包括具有激活函数的第一隐层;所述装置包括:

25、第一mpc计算模块,配置为基于所述激活函数的函数输入的第一分片,以及预先确定的n个分段区间的n-1个分界值,与客户端持有的所述函数输入的第二分片,进行n-1次实现大小比较的第一安全多方mpc计算,得到所述函数输入针对所述n个分段区间的n个命中结果的n个第一分片。第二mpc计算模块,配置为基于所述函数输入和n个命中结果分别对应的共计n+1个第一分片,以及与所述n个分段区间对应的n个区间函数,与所述客户端对应持有的n+1个第二分片进行第二mpc计算,得到所述n个区间函数所形成分段函数的函数输出的第一分片,作为所述第一隐层的输出数据的第一分片;其中,所述分段函数用于拟合所述激活函数,所述n个区间函数中至少一个为高阶多项式形式。

26、根据第四方面的实施例,提供一种保护数据隐私的模型服务提供装置,集成于客户端,所述客户端对应的服务端部署预测模型,所述预测模型包括具有激活函数的第一隐层;所述装置包括:

27、第一mpc计算模块,配置为基于所述激活函数的函数输入的第二分片,与服务端持有的所述函数输入的第一分片,以及预先确定的n个分段区间的n-1个分界值,进行n-1次实现大小比较的第一安全多方mpc计算,得到所述函数输入针对所述n个分段区间的n个命中结果的n个第二分片。第二mpc计算模块,配置为基于所述函数输入和n个命中结果分别对应的共计n+1个第二分片,与所述服务端对应持有的n+1个第一分片,以及与所述n个分段区间对应的n个区间函数进行第二mpc计算,得到所述n个区间函数所形成分段函数的函数输出的第二分片,作为所述第一隐层的输出数据的第二分片;其中,所述分段函数用于拟合所述激活函数,所述n个区间函数中至少一个为高阶多项式形式。

28、根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当上述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。

29、根据第六方面,提供了一种计算设备,包括存储器和处理器,上述存储器中存储有可执行代码,该处理器执行上述可执行代码时,实现第一方面或第二方面的方法。

30、在本说明书实施例提供的上述方法和装置中,利用多段高阶多项式去近似计算模型中涉及到的激活函数,并且提出高效地计算不同分段中多项式的方式,可以在保护数据隐私的同时有效减少模型推理过程中的计算开销,提高推理效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1