总目录
(一)联邦学习-入门初识
(二)联邦学习-Fate单机部署
(三)微众Fate-横向联邦学习实践-训练评估
(四)微众Fate-横向学习联邦-预测
目录
1.产生
1.1人工智能发展
近年来人工智能可谓风风火火,掀起一波又一波浪潮,从人脸识别、活体检验发现刑事案件报警到阿尔法狗大战人类围棋手李世石、再到无人驾驶、以及已被普遍应用的精准营销,AI逐步进入人们生活的方方面面。当然也不免出现部分过度吹捧,导致对AI的误解–AI无所不能,既然这么好用,为啥我不能拿来用一下?在追逐AI的同时却忽略了一点,AI是靠数据来喂的,而且是大量优质数据。
现实生活中,除了少数巨头公司能够满足,绝大多数企业都存在数据量少,数据质量差的问题,不足以支撑人工智能技术的实现。
1.2法律法规保护数据隐私
随着大数据的进一步发展,重视数据隐私和安全已经成为了世界性的趋势。 每一次公众数据的泄露都会引起媒体和公众的极大关注,例如最近 Facebook 的数据泄露事 件就引起了大范围的抗议行动。同时各国都在加强对数据安全和隐私的保护,欧盟最近引入 的新法案《通用数据保护条例》(General Data Protection Regulation, GDPR)表明, 对用户数据隐私和安全管理的日趋严格将是世界趋势。这给人工智能领域带来了前所未有的 挑战,研究界和企业界目前的情况是收集数据的一方通常不是使用数据的一方,如 A 方收集 数据,转移到 B 方清洗,再转移到 C 方建模,最后将模型卖给 D 方使用。这种数据在实体间 转移,交换和交易的形式违反了 GDPR,并可能遭到法案严厉的惩罚。同样,中国在 2017 年 起实施的《中华人民共和国网络安全法》和《中华人民共和国民法总则》中也指出网络 运营者不得泄露、篡改、毁坏其收集的个人信息,并且与第三方进行数据交易时需确保拟定 的合同明确约定拟交易数据的范围和数据保护义务。这些法规的建立在不同程度上对人工智能传统的数据处理模式提出了新的挑战。
1.3数据孤岛问题
随着对数据安全的重视和隐私保护法案的出台,以前粗放式的数据共享受到挑战,各个数据拥有者重新回到数据孤岛的状态,同时,互联网公司也更难以收集和利用用户的隐私数据。
数据孤岛现象不仅不会消失,反而会成为新的常态,甚至它不仅存在于不同公司和组织之间,在大型集团内部也存在。未来,我们必须面对这样的现状:如果我们想更好的利用数据,用大数据和 AI 做更多有意义的事情,就必须在不同组织之间、公司与用户之间进行数据共享,但这个共享需要满足隐私保护和数据安全的前提。
隐私泄漏和数据滥用如同达摩克利斯之剑悬在各个公司和组织头上,因此解决数据孤岛,成为 AI 行业需要解决的首要问题之一。
1.4联邦学习的诞生
要解决以上的困境,仅仅靠传统的方法已经出现瓶颈。如何在满足数据隐私、安全和监管要求的前提下,设计一个机器学习框架,让人工智能系统能够更加高效、准确的共同使用各自的数据,是当前人工智能发展的一个重要课题。我们倡议把研究的重点转移到如何解决数据孤岛的问题。我们提出一个满足隐私保护和数据安全的一个可行的解决方案,叫做联邦学习。
联邦学习是:
-
各方数据都保留在本地,不泄露隐私也不违反法规;
-
多个参与者联合数据建立虚拟的共有模型,并且共同获益的体系;
-
在联邦学习的体系下,各个参与者的身份和地位相同;
-
联邦学习的建模效果和将整个数据集放在一处建模的效果相同,或相差不大 (在各个数据的用户对齐(user
alignment)或特征(feature alignment)对齐的条 件下); -
迁移学习是在用户或特征不对齐的情况下,也可以在数据间通过交换加密参数达到知识迁移的效果。
联邦学习使得两方或多方的数据使用实体在合作当中数据不出本地也能共同使用,解决 数据孤岛问题。
2.定义
2.1概述
联邦学习希望做到各个企业的自有数据不出本地,而 后联邦系统可以通过加密机制下的参数交换方式,即在不违反数据隐私法规情况下,建立一 个虚拟的共有模型。这个虚拟模型就好像大家把数据聚合在一起建立的最优模型一样。但是 在建立虚拟模型的时候,数据本身不移动,也不泄露隐私和影响数据合规。这样,建好的模 型在各自的区域仅为本地的目标服务。在这样一个联邦机制下,各个参与者的身份和地位相同,而联邦系统帮助大家建立了共同富裕的策略。 这就是为什么这个体系叫做联邦学习。
2.2 定义
为了进一步准确地阐述联邦学习的思想,我们将其定义如下: 当多个数据拥有方(例如企业)F_i, i=1…N 想要联合他们各自的数据 D_i 训练机器学 习模型时,传统做法是把数据整合到一方并利用数据 D={Di,i=1…N}进行训练并得到模型 M_sum。然而,该方案由于其涉及到的隐私和数据安全等法律问题通常难以实施。为解决这一问题,我们提出联邦学习。联邦学习是指使得这些数据拥有方 F_i 在不用给出己方数据 D_i 的情况下也可进行模型训练并得到模型 M_FED 的计算过程,并能够保证模型 M_FED 的效果 V_FED 与模型 M_SUM 的效果V_SUM 间的差距足够小,即:
|V_FED-V_SUM |<δ
, 这里 δ 是任意小的一个正量值。
2.3 分类
我们将以孤岛数据的分布特点为依据对联邦学习进行分类。 考虑有多个数据拥有方,每个数据拥有方各自所持有的数据集 D_i 可以用一个矩阵来表示。 矩阵的每一行代表一个用户,每一列代表一种用户特征。同时,某些数据集可能还包含标签 数据。如果要对用户行为建立预测模型,就必须要有标签数据。我们可以把用户特征叫做 X, 把标签特征叫做 Y。比如,在金融领域,用户的信用是需要被预测的标签 Y;在营销领域,标签是用户的购买愿望 Y;在教育领域,则是学生掌握知识的程度等。用户特征 X 加标签 Y 构成了完整的训练数据(X, Y)。但是,在现实中,往往会遇到这样的情况:各个数据集的用户不完全相同,或用户特征不完全相同。具体而言,以包含两个数据拥有方的联邦学习为 例,数据分布可以分为以下三种情况:
两个数据集的用户特征(X1,X2,…)重叠部分较大,而用户(U1, U2…)重叠部分较 小;
两个数据集的用户(U1, U2…)重叠部分较大,而用户特征(X1,X2,…)重叠部分较 小;
两个数据集的用户(U1, U2…)与用户特征重叠(X1,X2,…)部分都比较小。
2.3.1 横向联邦学习
在两个数据集的用户特征重叠较多而用户重叠较少的情况下,我们把数据集按照横向 (即用户维度)切分,并取出双方用户特征相同而用户不完全相同的那部分数据进行训练。这 种方法叫做横向联邦学习。比如有两家不同地区银行,它们的用户群体分别来自各自所在的 地区,相互的交集很小。但是,它们的业务很相似,因此,记录的用户特征是相同的。此时, 就可以使用横向联邦学习来构建联合模型。Google 在 2017 年提出了一个针对安卓手机模型更新的数据联合建模方案:在单个用户使用安卓手机时,不断在本地更新模型参数并将 参数上传到安卓云上,从而使特征维度相同的各数据拥有方建立联合模型的一种联邦学习方案。
step1:参与方各自从服务器A下载最新模型;
step2:每个参与方利用本地数据训练模型,加密梯度上传给服务器A,服务器A聚合各用户的梯度更新模型参数;
step3:服务器A返回更新后的模型给各参与方;
step4:各参与方更新各自模型。
步骤解读:在传统的机器学习建模中,通常是把模型训练需要的数据集合到一个数据中心然后再训练模型,之后预测。在横向联邦学习中,可以看作是基于样本的分布式模型训练,分发全部数据到不同的机器,每台机器从服务器下载模型,然后利用本地数据训练模型,之后返回给服务器需要更新的参数;服务器聚合各机器上的返回的参数,更新模型,再把最新的模型反馈到每台机器。
在这个过程中,每台机器下都是相同且完整的模型,且机器之间不交流不依赖,在预测时每台机器也可以独立预测,可以把这个过程看作成基于样本的分布式模型训练。谷歌最初就是采用横向联邦的方式解决安卓手机终端用户在本地更新模型的问题的。
2.3.2 纵向联邦学习
在两个数据集的用户重叠较多而用户特征重叠较少的情况下,我们把数据集按照纵向 即特征维度)切分,并取出双方用户相同而用户特征不完全相同的那部分数据进行训练。这种方法叫做纵向联邦学习。比如有两个不同机构,一家是某地的银行,另一家是同一个地方的电商。它们的用户群体很有可能包含该地的大部分居民,因此用户的交集较大。但是,由于银行记录的都是用户的收支行为与信用评级,而电商则保有用户的浏览与购买历史,因 此它们的用户特征交集较小。纵向联邦学习就是将这些不同特征在加密的状态下加以聚合,以增强模型能力的联邦学习。目前,逻辑回归模型,树型结构模型和神经网络模型等众多机 器学习模型已经逐渐被证实能够建立在这个联邦体系上。其学习步骤如上图所示,分为两大步:
第一步:加密样本对齐。是在系统级做这件事,因此在企业感知层面不会暴露非交叉用户。
第二步:对齐样本进行模型加密训练:
step1:由第三方C向A和B发送公钥,用来加密需要传输的数据;
step2:A和B分别计算和自己相关的特征中间结果,并加密交互,用来求得各自梯度和损失;
step3:A和B分别计算各自加密后的梯度并添加掩码发送给C,同时B计算加密后的损失发送给C;
step4:C解密梯度和损失后回传给A和B,A、B去除掩码并更新模型。
具体训练步骤如下:
在整个过程中参与方都不知道另一方的数据和特征,且训练结束后参与方只得到自己侧的模型参数,即半模型。
预测过程:
由于各参与方只能得到与自己相关的模型参数,预测时需要双方协作完成,如下图所示:
共同建模的结果:
双方均获得数据保护
共同提升模型效果
模型无损失
2.3.3 迁移联邦学习
在两个数据集的用户与用户特征重叠都较少的情况下,我们不对数据进行切分,而可以 利用迁移学习来克服数据或标签不足的情况。这种方法叫做联邦迁移学习。比如有两个不同机构,一家是位于中国的银行,另一家是位于美国的电商。由于受到 地域限制,这两家机构的用户群体交集很小。同时,由于机构类型的不同,二者的数据特征也只有小部分重合。在这种情况下,要想进行有效的联邦学习,就必须引入迁移学习, 来解决单边数据规模小和标签样本少的问题,从而提升模型的效果。
3.应用场景
3.1智慧金融
联邦学习作为一种保障数据安全的建模方法,在销售、金融等行业中拥有巨大的应用前 景。在这些行业中,受到知识产权、隐私保护、数据安全等诸多因素影响,数据无法被直接 聚合来进行机器学习模型训练。此时,就需要借助联邦学习来训练一个联合模型。 以智慧零售业务为例,它的目的是利用机器学习技术为用户带来个性化的产品服务,主 要包括产品推荐与销售服务。智慧零售业务中涉及到的数据特征主要包含用户购买能力,用 户个人偏好,以及产品特点三部分,但是在实际应用中,这三种数据特征很可能分散在三个 不同的部门或企业。例如,银行拥有用户购买能力的特征,社交网站拥有用户个人偏好特征, 而购物网站则拥有产品特点的特征。这种情况下,我们面临两大难题:首先,出于保护用户 隐私以及企业数据安全等原因,银行、社交网站和购物网站三方之间的数据壁垒是很难被打 破的。因此,智慧零售的业务部门无法直接把数据进行聚合并建模;其次,这三方的用户和 用户特征数据通常是异构的,传统的机器学习模型无法直接在异构数据上进行学习。目前, 这些问题在传统的机器学习方法上都没有得到切实有效的解决,它们阻碍着人工智能技术在 社会更多领域中的普及与应用。 而联邦学习正是解决这些问题的关键。设想一下,在智慧零售的业务场景中,我们使用 联邦学习与迁移学习对三方的数据进行联合建模。首先,利用联邦学习的特性,我们不用导 出企业的数据,就能够为三方联合构建机器学习模型,既充分保护了用户隐私和数据安全, 又为用户提供了个性化,针对性的产品服务,从而实现了多方共同受益。同时,我们可以借 鉴迁移学习的思想来应对用户和用户特征数据异构的问题。迁移学习能够挖掘数据间的共同 知识并加以利用,从而突破传统人工智能技术的局限性。可以说,联邦学习为我们建立一个 跨企业、跨数据、跨领域的大数据 AI 生态提供了良好的技术支持。
3.2智慧医疗
如今,智慧医疗也在成为一个与人工智能相结合的热门领域。然而,目前的智慧医疗水 平还远没有达到真正“智慧”的程度。下面,我们将通过 IBM“沃森”的例子探讨目前智慧 医疗的不足之处,并提出一种利用联邦迁移学习提高智慧医疗水平的构想。 IBM 的超级电脑“沃森”是人工智能在医疗领域最出名的应用之一。在医疗领域,沃森 被中国、美国等多个国家的医疗机构用于自动诊断,主攻对多种癌症疾病的确诊以及提供医疗建议。然而,沃森也在不断遭受着外界的质疑。最近曝光的一份文件显示,沃森曾经在一 次模拟训练中错误地开出了可能会导致患者死亡的药物。沃森医疗项目也因此备受打击。那 么沃森为何会做出错误的诊断呢?我们发现,沃森使用的训练数据本应包括病症、基因序列、病理报告、检测结果、医学论文等数据特征。但是在实际中,这些数据的来源却远远不够, 并且大量数据面临着标注缺失的问题。有人估计,把医疗数据放在第三方公司标注,需要动 用 1 万人用长达 10 年的时间才能收集到有效的数据。数据的不足与标签的缺失导致了机 器学习模型训练效果的不理想,这成为了目前智慧医疗的瓶颈所在。 那么,如何才能突破这一瓶颈呢?我们设想,如果所有的医疗机构都联合起来,贡献出 各自那一部分数据,那将会汇集成为一份足够庞大的数据,而对应的机器学习模型的训练效 果也能得到质的突破。实现这一构想的主要途径便是联邦学习与迁移学习。它适用的原因有两个方面:第一,各个医疗机构的数据必然有很大的隐私性,直接进行数据交换并不可 行,联邦学习则能保证不进行数据交换的同时进行模型训练。第二,数据仍然存在着标签缺 失严重的问题,而迁移学习则可以用来对标签进行补全,从而扩大可用数据的规模,进一步 提高模型效果。因此,联邦迁移学习必将在智能医疗的发展道路上扮演弥足轻重的角色。在未来,如果所有的医疗机构能建立一个联邦迁移学习联盟,那或许可以使人类的医疗卫生事业迈上一个全新的台阶。
4.目前进展
当前,业界解决隐私泄露和数据滥用的数据共享技术路线主要有两条。一条是基于硬件可信执行环境(TEE: Trusted Execution Environment)技术的可信计算,另一条是基于密码学的多方安全计算(MPC:Multi-party Computation)。
4.1 TEE
TEE 字面意思是可信执行环境,核心概念为以第三方硬件为载体,数据在由硬件创建的可信执行环境中进行共享。这方面以 Intel 的 SGX 技术,AMD 的 SEV 技术,ARM 的 Trust Zone 技术等为代表。TEE 方案的大致原理如下图所示:
目前在生产环境可用的 TEE 技术,比较成熟的基本只有 Intel 的 SGX 技术,基于 SGX 技术的各种应用也是目前业界的热门方向,微软、谷歌等公司在这个方向上都有所投入。
4.1.1 SGX
SGX(Software Guard Extensions )是 Intel 提供的一套软件保护方案。SGX 通过提供一系列 CPU 指令码,允许用户代码创建具有高访问权限的私有内存区域(Enclave - 飞地),包括 OS,VMM,BIOS,SMM 均无法私自访问 Enclave,Enclave 中的数据只有在 CPU 计算时,通过 CPU 上的硬件进行解密。同时,Intel 还提供了一套远程认证机制(Remote Attestation),通过这套机制,用户可以在远程确认跑在 Enclave 中的代码是否符合预期。
英特尔® SGX 技术可通过在特定硬件 (例如内存) 中构造出一个可信的“飞地”(Enclave),使数据和应用程序的安全边界仅限于“飞地”本身以及处理器,同时其运行过程也不依赖于其他软硬件设备。这意味着数据的安全保护是独立于软件操作系统或硬件配置之外,即使硬件驱动程序、虚拟机乃至操作系统均受到攻击和破坏,也能更有效地防止数据泄露。
4.2 MPC
MPC(Multi-party Computation,多方安全计算)一直是学术界比较火的话题,但在工业界的存在感较弱,之前都是一些创业小公司在这个方向上有一些探索,例如 Sharemind,Privitar,直到谷歌提出了基于 MPC 的在个人终端设备的“联邦学习” (Federated Learning)的概念,使得 MPC 技术一夜之间在工业界火了起来。MPC 方案的大致原理如下图所示:
4.2.1混淆电路
混淆电路是图灵奖得主姚期智教授在 80 年代提出的一个方法。其原理是,任意函数最后在计算机语言内部都是由加法器、乘法器、移位器、选择器等电路表示,而这些电路最后都可以仅由 AND 和 XOR 两种逻辑门组成。一个门电路其实就是一个真值表,假设我们把门电路的输入输出都使用不同的密钥加密,设计一个加密后的真值表,这个门从控制流的角度来看还是一样的,但是输入输出信息都获得了保护。
4.2.2 秘密分享
秘密分享的基本原理是将每个数字随机拆散成多个数并分发到多个参与方那里。然后每个参与方拿到的都是原始数据的一部分,一个或少数几个参与方无法还原出原始数据,只有大家把各自的数据凑在一起时才能还原真实数据。
4.2.3同态加密
同态加密是一种特殊的加密方法,允许对密文进行处理得到仍然是加密的结果,即对密文直接进行处理,跟对明文进行处理后再对处理结果加密,得到的结果相同。同态性来自抽象代数领域的概念,同态加密则是它的一个应用。
4.3 案例
4.3.1蚂蚁金服共享机器学习
为了更好的应对形势变化,解决数据共享需求与隐私泄露和数据滥用之间的矛盾,蚂蚁金服提出了希望通过技术手段,确保多方在使用数据共享学习的同时,能做到:用户隐私不会被泄露,数据使用行为可控,我们称之为共享机器学习(Shared Machine Learning)。
共享机器学习的定义:在多方参与且各数据提供方与平台方互不信任的场景下,能够聚合多方信息并保护参与方数据隐私的学习范式。
从 17 年开始,蚂蚁金服就一直在共享机器学习方向进行探索和研究,在结合了 TEE 与 MPC 两条路线的同时,结合蚂蚁的自身业务场景特性,聚焦于在金融行业的应用。
4.3.1.1 特性
蚂蚁金服共享机器学习方案拥有如下特性:
- 多种安全计算引擎整合,可基于不同业务场景来选择合适的安全技术。既有基于 TEE 的集中式解决方案,也有基于 MPC
的分布式解决方案;既可满足数据水平切分的场景,也能解决数据垂直切分的诉求;既可以做模型训练,也可以做模型预测。 - 支持多种机器学习算法以及各种数据预处理算子。支持的算法包括但不限于 LR,GBDT,Xgboost,DNN,CNN,RNN,GNN 等。
- 大规模集群化。支持大规模集群化,提供金融级的高效、稳定、系统化的支撑。
4.3.1.2 基于 TEE 的共享学习
蚂蚁共享学习底层使用 Intel 的 SGX 技术,并可兼容其它 TEE 实现。目前,基于 SGX 的共享学习已支持集群化的模型在线预测和离线训练。
4.3.1.2.1模型在线预测
预测通常是在线服务。相对于离线训练,在线预测在算法复杂度上面会相对简单,但是对稳定性的要求会更高。
提升在线服务稳定性的关健技术之一就是集群化的实现——通过集群化解决负载均衡,故障转移,动态扩容等稳定性问题。
但由于 SGX 技术本身的特殊性,传统的集群化方案在 SGX 上无法工作。
为此,蚂蚁金服设计了如下分布式在线服务基本框架:
该框架与传统分布式框架不同的地方在于,每个服务启动时会到集群管理中心(ClusterManager,简称 CM)进行注册,并维持心跳,CM 发现有多个代码相同的 Enclave 进行了注册后,会通知这些 Enclave 进行密钥同步,Enclave 收到通知后,会通过远程认证相互确认身份。当确认彼此的 Enclave 签名完全相同时,会通过安全通道协商并同步密钥。
该框架具备如下特性:
1.通过集群化方案解决了在线服务的负载均衡,故障转移,动态扩缩容,机房灾备等问题;
2.通过多集群管理和 SDK 心跳机制,解决代码升级,灰度发布,发布回滚等问题;
3.通过 ServiceProvider 内置技术配合 SDK,降低了用户的接入成本;
4.通过提供易用性的开发框架,使得用户在开发业务逻辑时,完全不需要关心分布式化的逻辑;
5.通过提供 Provision 代理机制,确保 SGX 机器不需要连接外网,提升了系统安全性。
目前在这套框架之上已经支持包括 LR、GBDT、Xgboost 等多种常用的预测算法,支持单方或多方数据加密融合后的预测。基于已有框架,也可以很容易的扩展到其它算法。
4.3.1.2.2模型离线训练
模型训练阶段,除了基于自研的训练框架支持了 LR 和 GBDT 的训练外,蚂蚁金服还借助于 LibOs Occlum 和自研的分布式组网系统,成功将原生 Xgboost 移植到 SGX 内,并支持多方数据融合和分布式训练。通过上述方案,不仅可以减少大量的重复性开发工作,并且在 Xgboost 社区有了新的功能更新后,可以在 SGX 内直接复用新功能,无需额外开发。目前我们正在利用这套方案进行 TensorFlow 框架的迁移。
此外,针对 SGX 当下诟病的 128M 内存限制问题(超过 128M 会触发换页操作,导致性能大幅下降),我们通过算法优化和分布式化等技术,大大降低内存限制对性能的影响。
基于 TEE 的多方数据共享学习训练流程如下:
1.机构用户从 Data Lab 下载加密工具
2.使用加密工具对数据进行加密,加密工具内嵌了 RA 流程,确保加密信息只会在指定的 Enclave 中被解密
3.用户把加密数据上传到云端存储
4.用户在 Data Lab 的训练平台进行训练任务的构建
5.训练平台将训练任务下发到训练引擎
6.训练引擎启动训练相关的 Enclave,并从云端存储读取加密数据完成指定的训练任务。
采用该方式进行数据共享和机器学习,参与方可以保证上传的数据都经过加密,并通过形式化验证保证加密的安全性。
4.3.1.3 基于 MPC 的共享学习
蚂蚁基于 MPC 的共享学习框架分为三层:
- 安全技术层:安全技术层提供基础的安全技术实现,比如在前面提到的秘密分享、同态加密、混淆电路,另外还有一些跟安全密切相关的,例如差分隐私技术、DH
算法等等; - 基础算子层:在安全技术层基础上,我们会做一些基础算子的封装,包括多方数据安全求交、矩阵加法、矩阵乘法,以及在多方场景下,计算
sigmoid 函数、ReLU 函数等等;同一个算子可能会有多种实现方案,用以适应不同的场景需求,同时保持接口一致; - 安全机器学习算法:有了基础算子,就可以很方便的进行安全机器学习算法的开发,这里的技术难点在于,如何尽量复用已有算法和已有框架,我们在这里做了一些有益的尝试,但也遇到了很大的挑战。
训练引擎的具体架构如下:
其中 Coordinator 部署于蚂蚁平台,用于任务的控制和协调,本身并不参与实际运算。Worker 部署在参与多方安全计算的机构,基于安全多方协议进行实际的交互计算。
用户在建模平台构建好的训练任务流会下发给 Coordinator 的 Task Flow Manager,Task Flow Manager 会把任务进行拆解,通过 Task Manager 把具体算法下发给 Worker 端的 Task Executor,Task Executor 根据算法图调用 Worker 上的安全算子完成实际的运算。
利用这套方法,可以做到数据不出域就可以完成数据共享,训练工具可以部署在本地的服务器。
加入社区
VX号: FATEZS001 推荐人:黎富强
5资料参考
1.联邦学习白皮书
https://img.fedai.org.cn/fedweb/1552917119598.pdf
2.不同于谷歌“联邦学习”,蚂蚁金服提出全新数据孤岛解决方案:共享机器学习
https://www.infoq.cn/article/R2aw6rPCrUvfZA0ivjHO
3.用过“硬”安全技术打破数据孤岛联邦学习实践
https://www.intel.cn/content/www/cn/zh/analytics/artificial-intelligence/break-down-data-silos-with-hardware-enhanced-security.html
4.基于TEE的共享学习:数据孤岛解决方案
https://cloud.tencent.com/developer/article/1511840
详解联邦学习Federated Learning
https://zhuanlan.zhihu.com/p/79284686
推荐阅读:(二)联邦学习-Fate单机部署