隐私计算&隐语算法概览

Posted on 2023-01-16 15:39  Charlie_ODD  阅读(25)  评论(0编辑  收藏  举报

系列说明

本系列计划分为以下几部分:

  • 隐私计算&隐语算法概览
  • 深入XGB\DNN & 安全XGB\DNN

前言

通过这篇文档,希望能够简要阐述隐私计算领域的相关概念、经典算法协议、以及隐语的实践,为有兴趣的同学提供一点参考,能对隐私计算和隐语有一些大致的体感;在将来,会完善本文档,作为索引相关技术细节的综述。
概括的看,通过本文你将 初步了解 到:

  • 隐私计算背景及发展
  • 隐私计算核心解决技术和方案
  • 隐语框架、核心算法及其实践

Content

1.背景

❓什么是隐私计算
image.png
❓国际场景

  • 有诉求:跨主体、联合分析建模
  • 有挚肘:法律、监管、合规

2.问题与挑战

隐私计算可分为两大类:
• __以密码学为基础 【本文主要介绍】
• __以可信硬件为基础 【本文不涉及】

2.1 问题提出(请思考以下问题)

本文档力求不展示复杂的密码学形式化描述,更为准确和学术的定义请参考论文和相关文献

2.1.0 姚院士与MPC(Secure Multi-Party Computation)

姚院士是首位获得图灵奖的华人科学家,现在是清华大学姚班的创始人,他在40年前就开始提这个问题。

 ![image.png](https://intranetproxy.alipay.com/skylark/lark/0/2022/png/315403/1670220665913-8bb10003-e2fb-4db8-b075-67fcc208be03.png#clientId=u367f5d47-c3c5-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=118&id=u14a9d119&margin=%5Bobject%20Object%5D&name=image.png&originHeight=402&originWidth=944&originalType=binary&ratio=1&rotation=0&showTitle=false&size=189075&status=done&style=none&taskId=ua3814a1d-8c5b-49c2-9b87-0ddeffdd941&title=&width=278)                 ![image.png](https://intranetproxy.alipay.com/skylark/lark/0/2022/png/315403/1662554961296-35ec173e-bfa5-42eb-aa81-b40dcc59af08.png#clientId=u6fff091f-9dc0-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=187&id=u12b18dd6&margin=%5Bobject%20Object%5D&name=image.png&originHeight=427&originWidth=640&originalType=binary&ratio=1&rotation=0&showTitle=false&size=122886&status=done&style=none&taskId=uc3bd7fb1-87da-47cc-b5b2-179518b4d7d&title=&width=280)<br />**_MPC定义:_**MPC是密码学中的定义,在**无可信计算方**的情况下,多个参与方**各自持有秘密输入**,并可完成对某个函数的计算,但每个参与方最终**只能得到计算结果**和能从自己输入和计算结果中推出的信息,其他信息均可得到保护。<br />![image.png](https://intranetproxy.alipay.com/skylark/lark/0/2022/png/315403/1670220376347-a86e9d70-144b-45e3-aa25-005e4f6d76a7.png#clientId=u367f5d47-c3c5-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=423&id=u4064d0d5&margin=%5Bobject%20Object%5D&name=image.png&originHeight=846&originWidth=1786&originalType=binary&ratio=1&rotation=0&showTitle=false&size=343849&status=done&style=none&taskId=u895107ce-f222-46e9-831d-64bb0b15c19&title=&width=893)

2.1.1 如何比较百万富翁谁更富有?

在姚院士的论文中,首先被提到的就是两个百万富翁相互不服气,想比较下到底谁更有钱,但是比较的过程还不想泄露家底,他们该如何执行呢?
image.png

2.1.2 如何进行秘密分享(Secret Sharing)?

假如你和你的朋友们正在一起面临某种生存困境,比如在野外迷路了,或是被困在沙漠中,或是核冬天,或是丧尸来袭,你们难以获取食物,只好将剩下的食物的收集到一起放进保险箱。但是有个问题——你们并不相信其他人,其他人很可能趁大家不注意将食物偷走。这时候,保险箱的钥匙应该怎么保管?

2.1.3 如何实现不经意(茫然)传输(Oblivious Transfer)?

LSJ有很多资源种子,他只想分享一部给YY同学,但是LSJ并不知道YY同学喜欢什么;YY同学也不想让LSJ知道他喜欢什么;怎样才能实现这个方案来帮助LSJ和YY呢?

image.png

2.1.4 如何在统计数据过程中不泄露单个数据的隐私?

  • 示例1:婚恋数据库统计

image.png

  • 示例2:员工工资统计

员工工资数据库支持查询 任意n个员工集合 D 的平均收入,但不支持指定特定用户进行收入查看。
某恶意用户想要了解张三的年收入,他可以这么来获取张三的隐私:

  • 先查 员工集合 D 的平均收入;
  • 再查 的平均收入,然后求差。

———— 如何实现差分隐私(Differential Privacy, DP)保护

2.1.5 如何进行隐私求交(Private Set Intersection)?

image.png
从场景来看,隐私求交:

  • 有许多个参与方,每个参与方持有各自的隐私数据
  • 希望通过协议求到所有数据的交集
  • 但是不泄漏除交集外的任何信息

2.2 安全模式及三大类核心技术

image.png

2.3 核心思想

•通过构造加密过程、加密环境提供安全计算
•通过增加噪声、增加随机性进行混淆

2.4 三大技术挑战

image.png


3.解决方案

image.png
引用自《隐私计算》陈凯、杨强
image.png
image.png

3.0 密码学基础回顾

3.0.1 术语模型

image.png
一个密码系统(体制)至少由明文、密文、加密算法和解密算法、密钥五部分组成。

  • 明文:信息的原始形式成为明文(Plaintext)
  • 密文:经过变换加密的明文称为密文(Ciphertext)
  • 加密:对明文进行编码生成密文的过程称为加密(Encryption), 编码的规则称为加密算法。
  • 解密:将密文恢复出明文的过程称为解密(Decryption),解密的规则称为解密算法。
  • 密钥(Key):是唯一能控制明文与密文之间变换的关键,分为加密密钥和解密密钥。

协议(Protocol):是指两个或两个以上的参与者为完成某项特定的任务而采取的一系列步骤。

3.0.2 对称加密

例如:AES算法
image.png

3.0.3 非对称加密

例如:RSA算法,非对称加密算法也叫公钥密码算法
image.png
RSA简介
image.png

密钥对 公钥 数E、N
私钥 数D、N
加密 (明文m的E次方除以N的余数)
解密 (密文c的D次方除以N的余数)

image.png

3.0.4 加密算法设计思想

加密方案的设计一般是基于各类困难问题构造,其特点在于:构造困难问题和解决困难问题的难度不对称。
以RSA所使用的大数分解困难问题为例,给定两个超大素数P和Q,计算N=P*Q容易,而通过给出的N反向求解质因数P、Q则非常困难。
注:NP问题,多项式时间内验证(猜出、非求解)一解的问题
加密方案一般现在加密过程中完成困难问题的构造部分再在解密过程中利用私钥提供的额外信息解决问题

3.1 MPC(Secure Multi-Party Computation)

3.1.0 百万富翁问题的初级解决


已知:Alice的资产为, Bob的资产为,且已知资产均在百万级或千万级
步骤:(为简化描述,使用的加解密算法为RSA)

  • Alice 使用RSA,其生成公钥为, 私钥为
  • Bob 选择一个随机数,使用Alice的公钥,使用RSA加密得到
  • _Bob 返回密文 _
  • Alice 随机找出满足 , 以及一个随机质数,均为正整数
  • Alice计算:
  • _Alice将计算出的 __个 _值,按照顺序构成一个向量 ,并在此向量中,大于 值的位置+1,小于等于A值的位置+0

image.png

  • Alice将这个向量 和 随机质数_ 传给 Bob_
  • Bob 拿之前的随机数 计算:
    • _如果 _与 Alice这个向量的第 B 个数字是否相等?
      • _相等,则 _
      • 否则,_ _

image.png


3.1.1 秘密分享(Secret Sharing,SS)

定义:将隐私数据拆分成多个份额进行分发和计算的加密计算协议【将秘密分割存储的技术】,其目的是分散秘密泄露的风险并且一定程度上容忍入侵,只有获得一定数量的参与方的同意,才能恢复出原始数据。
image.png
经典方案:Shamir SS方案、基于中国剩余定理的SS方案、Brickell SS方案、Blakley SS方案
方案举例:Shamir SS方案


(1)秘密分发

  • 假设秘密,确定需要分享给方,且定义至少需要方参与恢复
  • _选择模数 _
  • 生成个小于等于 的随机数,,并将赋值给
    • _注:这点构造保证了 _
    • 模数运算法则:
  • 计算秘密分量:

  • _作为秘密分量分享给对应的第 _个人

(2)秘密恢复

  • 集齐任意个人的秘密分量
  • 解方程组:个方程,个未知量
    • 是已知量,求出,其中_即为秘密 _

3.1.2 不经意传输(Oblivious Transfer, OT)

定义:一种广泛应用的带隐私保护的数据传输模型与方案。可以在将某条发送方的隐私数据发送给接收方的同时,保证发送方不知道接收方的选择, 接收方也不知道发送方的其他隐私数据。
方案举例:1 of 2 OT 方案


  • alice 选择一个非对称加密算法,产生两对公钥, 和对应的私钥,,并将两个公钥给bob
  • bob选择一个对称加密算法 (密钥为)对alice的一个公钥加密【这里意味着bob的选择,同时alice不知情】,即,并发送给alice
  • alice将收到的用两个私钥解密得到【只有其中一个等于

再用作为公钥使用加密想要传输的明文

  • 并将结果发送给bob
  • bob用解密
    • 只有等于或者才能拿到对应的明文

3.1.3 混淆电路(Garbled Circuit, GC)

定义:通过对逻辑门的输入信号和输出信号进行加密来保护电路的明文信号。
混淆电路里的多方的共同计算是通过电路的方式来实现,例如下图所示,Alice和Bob要进行多方计算,他们首先需要构建一个由与门,或门,非门,与非门组成的布尔逻辑电路,每个门都包括输入线,输出线。
image.png
混淆电路则通过加密和扰乱这些电路的值来掩盖信息,而这些加密和扰乱是以门为单位,每个门都有一张真值表。
image.pngimage.png
参考:

3.2 差分隐私(Differential Privacy, DP)

是一种不基于密码学的方案

密码学方法保证的是计算过程的隐私性,而差分隐私保证的是计算结果的隐私性。
image.pngimage.png
image.png
与密码学方案不同,差分隐私不对数据进行加密,而是以在数据中加入随机噪声的方式对数据进行保护。从潜在攻击者的角度看,有较少概率能拿到真实数据。
因为差分隐私没有对数据进行加密,也没有引入大量额外的通信量,其性能比密码学方案快很多,与明文计算差别不大。
image.png
注: 为一次查询请求的真实结果,为随机噪声,其中为客户端拿到的结果。

3.2.1 简化定义

是我们期望保护的个体数据隐私
image.png image.png
为差分隐私的保护强度参数, 就被称为隐私预算,一般而言,** 越小,隐私保护越好**。对于应用差分隐私的算法,首先会设定整体的隐私预算,每访问一次数据,就会扣除一些预算,当预算用完,数据就无法再访问。
对于满足:

常见的算法有:拉普拉斯噪声法、高斯噪声法

3.2.2 方案举例:拉普拉斯噪声法(Laplace Mechanism)

image.png
注:均值要求为0,保证无偏估计
卡普拉斯概率密度函数:
, 满足均值为0,方差为
image.png
超参数对拉普拉斯分布的影响:越小越集中在0附近,越大越分散。
可以看出拉普拉斯分布的噪声值绝大多数在【-10,10】区间内,一般的神经网络中间权重、梯度值都是【-1,1】之间的浮点数,这一点是满足的;同时神经网络模型梯度、权重的轻微扰动所损失的精度是可接受的【由此带来的精度下降不可否认】。
了解更多可参考:DP Outline

3.2.3 DP的优缺点

优点:

  • 计算通信效率高
  • 实现隐私性与算力无关(传统的密码学隐私性依赖于计算复杂性,如果无法做到抗量子就会被破解)

缺点:

  • 牺牲计算精度
  • 可能被绕过攻破,DP主要保护计算结果,而非计算过程的隐私性

3.2.4 在隐语上的实验

AUC ACC
隐私预算
(越接近0,隐私保护安全性越好)
噪声乘子
(越大,对数据的扰动越大,精度越低)
分类评估指标,(越接近1越好) 准确率
(越接近1越好)
32 0.5 0.846707855 0.890607714
16 0.65 0.844559416 0.888729285
8 0.85 0.844480557 0.88685083
4 1.2 0.841736473 0.886077339
2 1.8 0.834411241 0.882209939

3.3 同态加密(Homomorphic Encryption, HE)

image.png
定义:允许在密文上进行运算的加密方案,在对数据加密后,能够进行运算获得密文结果,只有密钥的持有方才能解密出最终结果。

3.3.1 普通加密与同态加密

  • 普通加密算法,只能加解密
  • 同态加密算法
    • 密文空间具有特定的算符,例如:
      • 明文上的加法对应密文空间的
      • 明文上的乘法对应密文空间的

image.png

3.3.2 同态加密方案分类对比

在现实中,主流同态加密方案主要考虑对加法和乘法的支持,同态加密研究者的首要目标是构造一个高效可靠的,同时支持加减乘除等四则运算的全同态加密方案。

类型 算法 时间 说明 实际应用
半同态加密(Partially Homomorphic Encryption, PHE) 乘法同态 RSA算法 1977 非随机化加密,具有乘法同态性的原始算法面临选择明文攻击 在非同态场景中应用广泛
ElGamal算法 1985 随机化加密 DSS数字签名标准基于ElGamal数字签名算法的变体
加法同态 Paillier算法 1999 应用最为成熟 联邦学习
层级同态加密(Leveled Homomorphic Encryption,LHE) 有限次数全同态 Boneh-Goh-Nissim方案 2005 仅支持1次乘法同态运算 /
全同态加密(Fully Homomorphic Encryption, FHE) Gentry方案 2009 第一代全同态加密,性能较差 /
BGV方案 2012 第二代全同态加密,性能相对较好 IBM HElib开源库
BFV方案 2012 第二代全同态加密,与BGV类似 微软SEAL开源库
GSW方案 2013 第三代全同态加密,基于近似特征向量 TFHE开源库
CKKS方案 2017 可实现浮点数近似计算,适合机器学习建模场景 HElib和SEAL

3.3.3 加法同态——Paillier算法(隐语目前的HE主要实现方案)

函数说明:

用于计算两数的最大公约数
密钥生成:

  • 随机选择:两个较大的质数 p 和 q
  • _计算 _
  • _计算 __和 __的最小公倍数 _
  • 随机选择:_, _为小于的整数集合,而中与互质的整数的集合。
  • 于是,
    • 公钥:
    • 私钥:λ

加密过程:

  • 随机选择:一个整数
  • 对于任意一个明文,利用公钥加密后得到的对应密文:

解密过程:利用私钥λ,解密后得到明文

证明:

3.4 联邦学习(Federated Learning, FL)

联邦机器学习又名联邦学习,联合学习,联盟学习,是一种机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。
本质:联邦学习本质上是一种分布式机器学习技术,或机器学习框架
目标:联邦学习的目标是在保证数据隐私安全及合法合规的基础上,实现共同建模,提升AI模型的效果。
联邦学习可以基于MPC、DP、TEE、HE等隐私计算技术实现,同时也要结合建模预测等任务本身的特点进行参数保护的设计。与传统的集中式机器学习相比,其性能代价主要在于密文计算和通信传输中间结果产生的额外开销。

3.4.1 联邦学习步骤

image.png
联邦学习的算法流程如上图所示,大致分为以下四个步骤:

  • 机构节点在本地进行多轮训练,得到模型参数
  • 机构节点使用加密协议,将模型参数上传至聚合节点
  • 聚合节点使用加密协议,对模型参数进行聚合,得到全局模型
  • 机构节点从聚合节点获取最新的全局模型,进入下一轮训练

3.4.2 联邦学习分类

根据多参与方之间数据分布的不同,把联邦学习分为三类:横向联邦学习、纵向联邦学习和联邦迁移学习(略)。

  • 横向联邦学习的名称来源于训练数据的“横向划分”,也就是数据矩阵或者表格的按行(横向)划分。不同行的数据有相同的数据特征,即数据特征是对齐的。

image.png

  • 纵向联邦学习的名称来源于训练数据的“纵向划分”,也就是数据矩阵或者表格的按列(纵向)划分。不同列的数据有相同的样本ID,即训练样本是对齐的。

image.png

3.5 可信执行环境 TEE(Trusted Execution Environment)

https://yuque.antfin-inc.com/gd/fp48u8/la03rq?# 《隐私计算-TEE 介绍》
https://yuque.antfin-inc.com/gd/fp48u8/cgdf7c?# 《国际隐私计算-TEE 方案调研》

_TO BE CONTINUE... _

3.6 技术方案对比

从时间线顺序梳理对比各维度下的隐私计算实现技术方案:

技术领域 多方安全计算 同态加密 差分隐私 集中加密计算 联邦学习
核心思想 生成、交换随机数据 同态加密 应用数据输入和数据输出 对计算过程和结果增加随机扰动,从而对个体数据进行混淆 隔离
加密数据+加密程序运行时
各数据拥有方本地保存模型与数据,只在各方之间经过保护的参数信息传递来完成训练和预测过程
可证/可信/可度量 可证 可证 可度量 可信 取决于各部分具体技术手段
技术手段 秘密共享、混淆电路、不经意传输应用到原始数据 同态加密 应用数据输入和数据输出 差分隐私 应用到原始数据 or 中间数据 可信执行环境 应用到计算运行时 多方安全计算
差分隐私
可信执行环境
同态加密
等应用到中间数据
最大特点 混淆/分片数据的通信开销 加密原始数据
对加密数据进行计算
对计算结果进行解密
原始数据加噪声 可信环境(软硬件)支持
TEE与OS分割开并行运行
TEE视为专门执行高安全需求任务的黑盒子
分布式机器学习范式
原始、中间、结果数据是否加密 不加密,增加额外混淆数据,使攻击无法区分 加密数据 未加密,增加噪声扰动 环境加密 取决于具体技术手段
硬件依赖 无特定依赖 无特定依赖 无特定依赖 依赖特定硬件 取决于具体技术手段
计算开销(相比明文本地计算) 慢100万倍 慢100万倍 相当 相当 取决于具体技术手段
通信开销 传输加密信息带来的额外通信 数据集中过程带来的额外通信 无需额外通信开销 数据集中过程带来的额外通信 取决于具体技术手段
性能瓶颈 通信开销 + 计算开销
相对较高
计算开销,加解密开销 相对较高 通信开销 + 计算开销 相对较低 通信开销
相对较高
取决于具体技术手段
优点 可证安全 可证安全 通信开销 + 计算开销 相对较低 集中计算更为安全可控 取决于具体技术手段
缺点 通信开销 + 计算开销
相对较高
加密带来的额外开销(秘文膨胀、秘文计算支持)
加密本身的问题(是否抗量子)
有一定几率被破解 依赖特定硬件环境 取决于具体技术手段
集群计算模式 分布式 集中式/分布式 查询分布式、计算本地化 集中式 查询分布式、计算本地化

4.隐语实现

隐语目前有两套引擎:

  • 一个是以密码学为基础的C++技术栈的MPC引擎 nueva 【稳定维护阶段】
  • 另一个是以密码学为基础的Python/C++技术栈的FL引擎 fascia,在fasica引擎下即为隐语开源框架secretflow 【长期迭代阶段 + 开源社区支持】

https://github.com/secretflow/secretflow
image.png

4.0 架构大图

image.png
image.png

4.1 框架和引擎

image.png

  • 一套框架——nueva(基于k8s)
  • 两套引擎
    • nebula(MPC引擎)
    • fasica---secretflow (FL引擎)

image.png

4.2 明密文计算设备

4.2.1 SPU(Secure Processing Unit)

image.png
明密文计算设备与原语,下表是隐语目前支持的设备和协议:

Device Type Runtime Ops Protocol Frontend Status
PYU Plaintext Python Interpreter Python Release
SPU Ciphertext SPU VM PSI, XLA HLO SPDZ-2k, ABY3 JAX, TensorFlow, PyTorch Alpha
HEU(PHEU Mode) Ciphertext PHEU Runtime Add Paillier Numpy Alpha
HEU(FHEU Mode) Ciphertext HEU VM XLA HLO TFHE JAX, TensorFlow, PyTorch WIP
TEE Ciphertext TEE Runtime XLA HLO Intel SGX JAX, TensorFlow, PyTorch WIP

注:

  • SPDZ-2k:SPDZ是一个安全多方计算的开源库。里面包含了各种技术实现的安全多方计算,例如混淆电路、秘密分享、OT、同态,是持续维护的开源库,主体语言是python
  • ABY3:表示布尔电路(Boolean)、算数电路(Arithmetic)、姚氏(Yao’s )这三种秘密分享形式。

image.png

4.2.2 HEU(Homomorphic Encryption processing Unit)

同态加密:实现数据的“可用不可见”
同态加密计算引擎(homomorphic encryption processing unit, HEU) 是隐语的一个子项目,实现了高性能的同态加密算法。HEU 还处在起步阶段,当前 HEU 仅仅是一个加法同态加密Paillier 的 library。
https://heu.antfin-inc.com/zh_CN/index.html

4.3 PSI( Private Set Intersection)

image.png
PSI 翻译为“隐私求交”,目前常用的 PSI 算法有:(支持到三方)

ECDH:通常用于多方数据量均衡时,带宽在100M及以下时计算速度比KKRT快,带宽小于等于100M时推荐;
KKRT:通常用于两方数据量均衡时,高带宽时计算速度快,带宽大于等于1000M时推荐 【理论生产场景】

• ECDH——基于椭圆曲线算法的方案
椭圆曲线在ECDH中解决了对称加密时,密钥可能会泄露的问题
ECDH的解决方式是:不通过信道直接传输对称密钥,而是传输椭圆曲线生成的公钥,然后_通过收到的公钥再结合自己的私钥各自计算共享的密钥_,椭圆曲线保证了双方计算出的密钥一定是相同的,并且第三方在不知道通信双方私钥的前提下,无法通过从信道中截取到的信息反推出共享密钥。
• KKRT(四个作者首字母)——基于哈希和不经意传输的方案

4.4 安全XGB(MPC实现)

4.4.1 HESS XGB

HESS框架:结合秘密分享SS和同态加密HESS计算性能好,但通信成本高,HE计算消耗大,通信成本相对较低;根据具体的算法计算和通信的需要利用相关技术实现组合优化。

简单以两方安全计算来说,(加态)秘密分享是将一个普通变量()拆成2个秘密随机值分别放在参与A和B,只有同时知道两个秘密并将它们求和才能还原变量值,用尖括号表示一组秘密分享的变量,下标表示秘密值分布在哪一方;
同态加密则是将变量以密文的形式,放在其中参与方,而解密的秘钥则由另一个参与方提供,从而保证原始变量的安全,用方括号表示一个同态加密的变量,下标表示密文分布在哪一方。
image.png
推荐:安全XGB
image.png

4.4.2 A+ & HK feeds流推荐AB实验

A+:200个左右特征,包括用户特征(用户曝光、点击、购买、券发放、券核销的历史行为)、item特征、u2i特征 【130W * 约200维】
HK:170个左右用户特征,包括用户基础信息、登录、活跃、交易、曝光、点击等特征 【约10W * 约170维】

跨端模型&单端模型&业务基线完成三轮AB,跨端模型取得最优效果,目前跨端XGB模型在A+香港站feeds流场景已推全。

  • 第一轮AB:跨端XGB相对单端XGB模型PV转化率+2.7%(48.5%->49.8%),UV转化率持平(20.7%);
  • 第二轮AB:跨端XGB相对单端DeepFM模型PV转化率+10.3%(30.15%->33.25%),UV转化率+5.2%(14.42%->15.17%);
  • 第三轮AB:跨端XGB相对业务基线(销量排序)PV转化率+12.9%(51.6%->58.3%),UV转化率+5.9%(24.9%->26.3%);

详情:feeds流跨端模型AB报告

4.5 FL(Federated Learning)

联邦学习(Federated Learning)是一种分布式机器学习技术范式,其核心思想是:

  • 通过在多个拥有本地数据的数据源之间进行分布式模型训练
  • 在不需要交换本地个体或样本数据的前提下,仅通过交换模型参数或中间结果的方式,构建基于虚拟融合数据下的全局模型
  • 从而实现数据隐私保护和数据共享计算的平衡,即“数据可用不可见”、“数据不动模型动”的应用新范式。

4.5.1 Server-Client模式

image.png

4.5.2 训练与预测 数据信息流

image.png

4.5.3 纵向FL场景的实现—— SL(Split Learning)

Split Learning released by the MIT Labs is a distributed and private deep learning technique, that can be used to train deep neural networks over multiple data sources while mitigating the need to share raw labeled data directly.

SL(MIT Media La提出的)一种分布式和隐私保护的深度学习技术,原始文章也称作Split Neural Networks (SplitNN),用于在多个机构方数据源上训练深度神经网络,而无需直接共享原始带标注的数据信息。
直观来看,数据和模型都被分割在各方:
image.png
说明:

  • Alice:持有自己方的数据集data_alice, 模型 Base model 1
  • Bob:持有自己方的数据集data_bob, 模型 Base model 2, 联合模型 Fuse model (由于Bob方持有Label)

前向传播:

  • Alice 使用data_alice 通过 Base model 1 得到 hidden0
  • 同理,Bob 使用data_bob 通过 Base model 2 得到 hidden1
  • hidden0 通过 安全手段(如DP、HE)传给Bob
  • Bob 拿到 hidden_0 和 hidden_1 经过 聚合层 AggLayer,作为Fuse Model的输入,通过Label 计算误差Loss

反向传播:

  • 根据Loss和梯度计算g_fuse,更新 Fuse model
  • 经过AggLayer层后梯度分为 g_0, g_1,分别传导(经过安全手段:如HE)给Alice,Bob

image.png

  • Alice 根据 g_0 更新模型 Base model 1
  • Bob 根据 g_1 更新模型 Base model 2

4.5.4 在隐语上的实验

缺失特征 VS 完整特征

对比模型名称(特征数) epoch Accuracy(100%) 训练耗时(ms) 预测耗时(一次预测2000条)
DNN-1-Quarter-Feature(196) 100 0.62449 90350.06594657898 112.08820343017578
DNN-Half-Feature (392) 100 0.93500 118394.57678794861 126.91092491149902
DNN-ALL-Feature (784) 100 0.97949 311535.7208251953 125.43177604675293

单端模型 VS 跨端模型

对比模型名称(特征数) epoch Accuracy(100%) 训练耗时(ms) 预测耗时(一次预测2000条)
DNN-ALL-Feature (784) 100 0.99049 656217.5097465515 406.28981590270996
SF-2PC-DNN-ALL-Feature (390 + 394) 100 0.99565 5334343.940496445 1811.3820552825928

4.6 常见挑战

  • 数据:
    • 数据不平衡
    • non-IID
  • 通信
    • 额外的通信成本
  • 计算
    • 计算性能差异,在不同的安全等级和安全手段下有所不同

5.动手实践

5.1 隐语开源框架Secretflow (python)

———— 使用SPU、使用secretflow训练模型,预测

image.png

5.2 国际隐语开放平台

  • 机构、节点、数据表及项目配置
  • 研发训练流
    • DAG画布
    • IDE(支持python,sql)
  • 部署预测流

地址:http://isecretpad-front-default.dev.alipay.net/
权限码:INST_ADMIN、PROJECT_ADMIN、PLATFORM_ADMIN (antbuservice申请)


6.总结与展望

  • 个人理解:
    • 隐语有基本的底盘:
      • 对MPC、FL的支持
      • 有从产品到算子级的解决方案和实现能力
      • 开源扩大影响力
    • 存在的不足:
      • 依赖学术界、产业界高效安全算法设计
      • 端到端落地场景的高可用、高性能能力有待验证和优化
  • 共建视角未来还有很多事情:
    • 落地更多的场景
    • 支持更多的模型:跨端DeepFM、MMoE
    • 支持更多的算子:FHE
    • 支持可信执行环境:TEE

image.png

7.参考

7.1 文档、课程、代码

7.2 书籍

  • 《隐私计算》陈凯、杨强
  • 《隐私保护机器学习》王力

Q&A