联邦学习优缺点

近年来,联邦学习的热度在逐渐的升温,主要有几方面的因素:

  • 端和边缘设备越来越普及,算力也有所提升。这个趋势随着智能汽车,VR,IoT等的发展,估计还会持续下去。
  • 隐私合规,数据保护成为大公司绕不过去的一个门槛。不管是用户意愿,政府法规,还是公司间合作,对于数据的保护越来越重视。
  • 其他方面,比如个性化模型,数据中心成本等等。

其中第二条尤其关键:

  • iOS加强隐私后,很多用户手机上的数据无法被采集。
  • 国家常常会要求数据不能离开本国。
  • 合作的公司要求数据不能离开各自的数据中心。

因此,传统集中数据后进行训练的范式在这些场景下就变得不可行。

联邦学习简介

Federated learning is a machine learning setting where multiple entities (clients) collaborate in solving a machine learning problem, under the coordination of a central server or service provider. Each client’s raw data is stored locally and not exchanged or transferred; instead, focused updates intended for immediate aggregation are used to achieve the learning objective.

联邦学习经过发展,出现了一些变种,常见的有:

  • cross device。这是最初定义的,面向的是海量边缘设备。
  • cross silo。这也是常见的情况,比如两个公司合作(或者大公司两个部门合作),或者一个公司多个国家的数据。参与者更少,每个参与者更加稳定,拥有更多的算力。但是依然受到数据本地化的限制。

一个经典的联邦学习的过程如上图所示:

  • 从海量的设备上选择一部分参与联邦学习。条件可能是算力足够,插上电源,网络稳定等。
  • 后台将需要被训练的模型推送到这些被选中的设备上。
  • 被选中的设备基于本地的数据进行本地训练,获得更新后的模型。
  • 将更新的模型推送到后台,后台对这些模型进行聚合,得到汇总的新模型。

如果我们放松“后台coordinator”的限制,这个过程可能会变成P2P的训练,这里不进一步讨论。

挑战

联邦学习作为一个相对新热的技术,还有许多问题需要解决,才能获得普遍是应用。

效果问题

Non-IID数据问题。传统训练要求数据符合IID分布,通常采集数据后进行充分shuffle就可以了。但是联邦学习时每个设备背后的用户都不一样,设备上的数据也非常有限。因此各个设备上的训练显然是不符合IID要求的,比如:

  • 特征分布,比如不同人的肤色不一样,写字字体不一样等。
  • 标签分布,比如袋鼠通常只出现在澳洲,富人在乡村相对少等。
  • 同样标签,不同特征。比如虽然都是房子,中东的房子和日韩的房子外貌差异很大。
  • 同样特征,不同标签。比如在预测“最好吃的食物是XX”,在不同地域的预测结果是不一样的。
  • 样本量差异。APP的重度用户和轻度用户的样本量差异较大。

这些因素,都可能导致传统基于IID的训练收敛理论失效,导致模型效果发生意料之外的结果。

另外一个是优化算法的收敛性问题,联邦学习中使用FedAvg和传统训练使用的SGD,ADAM有不少的差异,另外客户端数量(下表的M)也有较大的差异。基于Convex假设分析和Non-Convex都有不少差异。

结合NonIID和分布式优化的调整,训练的收敛性分析还有很多工作需要做。

从当前训练技术中也有不少潜在解决方案是可以借鉴的,比如:

  • 个性化。假如每个用户的数据分布是NonIID的,那么我们是否更应该为每个用户设计个性化的模型,这个问题就没有了?比如,将不同相似用户群建模成不同的task,利用multi-task learning。或者基于基模型,在各个用户设备上进行fine-tunning等。
  • 元学习。元学习的优化方向是”跟快的适应“。那么,基于元学习的优化策略,结合个性化是否会有比较好的效果。

或许伴随着联邦学习,传统全局模型的one-fits-all的范式也需要改变。

性能问题

由于模型的训练和部署都不在后台数据中心,整个ML workflow上的挑战会更多。通常DeepLearning模型的训练有非常多的超参数需要调整,甚至要使用NAS,HPO这种技术进行海量的搜索。但是如果模型的主要计算在海量用户设备上,传统的搜索方式也需要有较多的改进。

另一个问题是通信压缩。传统数据中心内的训练,带宽通常非常大,也没有很多通信费用问题。但是再联邦学习场景,通信可能需要经过广域网。可能会涉及网络稳定性,延迟,带宽,费用等各种问题。需要对通信进行压缩,比如:

  • 模型参数,梯度量化压缩。
  • 模型结构压缩,局部模型训练。
  • 面向无线模拟信号的有损压缩等。

隐私问题

作为联邦学习的初衷之一,需要保护用户的数据隐私。数据隐私可能被破坏的地方非常多,通常需要Privacy In Depth的思想,充分考虑各个Actor, Actor Threat Model。

常见的一些隐私保护技术可以应用在上图描述的环节中:

  • Secure Multi-Party Computation。比如Homomorphic Encryption可以让多个参与方完成各自的计算,但是不需要解密输入,保障输入的数据不会被计算中泄露出去。
  • Trusted Execution Environment。可信计算环境可以保障环境中完成的计算符合一些要求。1. Confidentiality,除非运行代码主动,数据不会被泄露出去。2. Integrity,代码的运算不被外部干扰,除非代码主动读取。3. Attestation,对外证明被运行的代码是预期中的。
  • Zero Knowledge Proofs。对外部证明自己完成了隐私计算,而不需要泄露数据本身的细节。
  • Differential Privacy。通过在训练过程中注入一些干扰信号,比如高斯噪声,来防止隐私数据被重建。
  • Auditing。
  • Secure Shuffling & Aggregation。在后台对用户输出进行shuffle和加密的聚合,防止后台发生隐私泄露。

值得关注的是,一些隐私保护的技术可能会影响模型的训练效果。比如Differential Privacy,可能会导致模型收敛效果变差。还有一些技术会导致系统整体的调试,Debug,优化变得困难。还有一些会导致训练训练和通信的开销变大。

安全问题

深度学习的安全问题一直都比较大。比如:

  • 许多研究都发现可以对在模型中安装不易发现的后门,操控模型在一些数据输入上的表现。常见的方法有Adversarial Attack。
  • 另外,端上的用户可能会通过一些干扰噪音,影响模型的收敛效果。而从海量用户中挖掘这部分恶意(或者Bugggy)设备本身也是比较难的。

系统问题

前面也简单提到,联邦学习对于系统上也增加了不少挑战。

  • 更新问题。如何将训练的代码,模型顺利的更新到海量设备上。
  • 监控和调试。如何发现部署的问题,特别是缺少数据和设备环境的情况下,复现本身就是一大挑战。
  • 设备Bias。如何选择参与的设备,防止出现训练上的Bias。比如,如果低端手机不参加计算,是否会导致对应用户的Bias。
  • 设备上运行时。为了在端设备上进行模型训练,训练运行时需要满足一些条件:1. 轻量,在端上运行。2. 性能,尽量完成更强的模型的训练。3. 通用性,支持各种模型,减低更新升级的需要。4. 兼容一些标准格式和场景的训练框架格式。等

Reference


联邦学习优缺点
https://flepeng.github.io/081-数据安全-隐私计算-联邦学习优缺点/
作者
Lepeng
发布于
2023年4月14日
许可协议