Federated Learning005

Xmasker / 2024-01-15 / 原文

联邦学习——笔记005

2023.11.27周一,最近支原体肺炎高发。研一上课结了一部分,赶紧看论文。

时隔大半年,今天开始学习联邦学习的大综述————Advances and Open Problems in Federated Learning(联邦学习中的最新进展和开放问题)

这篇综述的内容分为8个章节:

  1. 引言
  2. 联邦学习在新兴环境和场景中的应用
  3. 改进效率和有效性
  4. 用户数据隐私保护
  5. 攻击与失效防御
  6. 公平性保证和偏见源处理
  7. 系统挑战处理
  8. 概括

1 Introduction

联邦学习(FL)是一种机器学习设置,其中许多客户端(例如移动设备或整个组织)在中央服务器(例如服务提供商)的编排下协作训练一个模型,同时保持训练数据去中心化。体现了集中收集原则数据最小化原则,缓解很多系统性的隐私风险和开销。

McMahan在2016年引入联邦学习的概念:“我们把我们的方法称为联邦学习,因为学习任务是由参与的设备(我们称为客户端)的松散联盟解决的,这些设备由一个中央服务器协调。” 因此从定义中就有一系列挑战:在通信带宽有限的大量不可靠设备上对非平衡和非IID(独立同分布)的数据进行训练

提出联邦学习的概念之前就有这种目标:在不暴露数据的情况下从数据拥有者那里分析和学习数据的分布。然而,即使自从引入了联邦学习这一术语以来,没有任何一项单独的工作可以直接解决FL的全部挑战。因此联邦学习这一术语为一组特征、约束和挑战提供了一个方便的简称,这些挑战经常出现在在分散数据上应用ML的场景中,在这种场景中隐私是最重要的。

联邦学习涉及到的技术不仅有机器学习,还包括分布式优化密码学安全差分隐私公平性压缩感知系统信息论统计学等等。本篇论文的工作目标之一是强调将这些领域的技术可能结合起来的方式,并依此提出有趣的可能性和新的挑战。

联邦学习最开始是在移动和边缘设备(海量)场景中,后来逐渐应用在其他场景,比如数量比较少的可信参与方(几个组织)。因此根据这些变化,我们给出了联邦学习更宽泛的定义
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.
联邦学习是一种机器学习环境,在这种环境中,多个实体(客户端)在中央服务器或服务提供商的协调下,合作解决一个机器学习问题。每个客户端的原始数据都存储在本地,不会进行交换或传输;相反,为了实现机器学习目标,会使用旨在即时聚合的集中更新。

注:集中更新是指范围狭窄的更新,以包含未完成特定学习任务所需的最小信息;在数据最小化服务中,尽早执行聚合。我们注意到,这个定义将联邦学习与2.1节中讨论的完全分散的(点对点)学习技术区分开来。

尽管对隐私保护的数据分析已经被研究了50多年,但只有在过去的十年中,解决方案才被广泛地大规模部署(如[177,154])。跨设备联邦学习联邦数据分析现在正在应用于消费数字产品中。谷歌在Gboard移动键盘[376,222,491,112,383]、Pixel手机[14]和安卓信息[439]中广泛使用了联邦学习功能。虽然谷歌开创了跨设备FL,但对这种设置的兴趣现在更加广泛,例如:苹果在iOS 13 [25]中使用跨设备FL,用于快速型键盘和“嘿Siri”[26]的声音分类器;ai正在为医学研究[149]开发跨设备FL解决方案,Snips已经探索了跨设备FL的热字检测[298]

跨孤岛联邦学习的应用也已在无数领域被提出或描述,包括再保险[476]的财务风险预测、药品发现[179]、电子健康记录挖掘[184]、医疗数据分割[15,139]和智能制造[354]

表 1 将跨孤岛和跨设备的联邦学习与传统的单数据中心分布式学习进行了对比。这些特征确定了实际联邦学习系统通常必须满足的许多限制条件,因此既能激励联邦学习,又能为联邦学习的公开挑战提供信息。下文将详细讨论这些问题。

表1 联邦学习设置与数据中心中的分布式学习的典型特征对比
数据中心分布式学习(Datacenter DL) 跨孤岛联邦学习(Cross-silo FL) 跨设备联邦学习(Cross-device FL)
设置 在一个大而“平坦”的数据集上训练一个模型。客户端是单个集群或数据中心中的计算节点。 用孤岛数据训练一个模型。客户端是不同的组织(例如医疗或金融)或地理分布式数据中心。 客户端是海量的移动或物联网设备。
数据分布 数据集中存储并且在客户端之间被打乱并且均匀分布。任何一个客户端都可以读取数据集的任何部分 数据在本地产生并且保持分散的分布。每个客户端只储存自己的数据,并且不能读取其他客户端的数据。数据不是独立同分布的。
编排方式 中心化编排 中央编排服务器/服务组织数据训练,但看不到原始数据。
广域通信 无(所有连接的客户端都在同一个数据中心/聚合器内) 典型结构式集线器和辐条拓扑结构,集线器代表协作服务提供者(不包含数据),辐条连接客户端
数据可用性 所有客户端几乎都总是可用的 在同一时间内只有一小部分客户可以使用,而且往往随昼夜或其他因素而变化
分布规模 一般1-1000个客户端 一般2-100个客户端 海量客户端并行,通常达到10^10个客户端数量级
主要瓶颈 计算通常是瓶颈,数据中心内通常假设非常快速的网络 可能是计算或者是通信 通信通常是主要瓶颈,跨设备联邦计算通常依赖wifi或其他更慢的连接方式
寻址能力 每个客户端都有一个标识或名称,允许系统专门访问它 客户端不能直接建立索引(即不使用客户端标识符)。
客户端状态 有状态的——每个客户都可以参与每一轮的计算,一轮又一轮地携带状态。 无状态——每个客户可能只参与一次任务,所以通常假设在每一轮计算中都有一个从未见过的客户的新样本。
客户端可靠性 相对很少失败 高度不可靠——通常假设参与一轮计算的5%或更多的客户端预计会失败或退出(例如当违反电池、网络或空闲要求时,设备将变得不合格)
数据划分轴 数据可以跨客户端进行任意划分/重新划分 划分是固定的。可以按样本划分或者按特征划分 划分是固定的,数据按样本划分

这两种 FL 变体是具有代表性的重要实例,但不同的 FL 设置可能具有这些特征的不同组合。在本文的其余部分,除非另有说明,我们将考虑跨设备的 FL 设置,尽管许多问题也适用于其他 FL 设置。第 2 节专门讨论了其他许多变化和应用。

接下来,我们将更详细地讨论跨设备联邦学习,重点是该技术典型的大规模部署中常见的实际问题;Bonawitz 等人的文章[81]提供了特定生产系统的更多细节,包括对具体架构选择和注意事项的讨论。

1.1 跨设备联邦学习设置

本节从应用的角度出发,与上一节不同,并不试图给出定义。相反,我们的目标是描述跨设备 FL 中的一些实际问题,以及它们如何融入更广泛的机器学习开发和部署生态系统。我们希望为后续的开放性问题提供有用的背景和动机,并帮助研究人员估算在现实世界的系统中部署特定新方法的简单程度。在考虑 FL 训练过程之前,我们首先勾勒出模型的生命周期。

img

中心服务器最终得到模型,并部署到更多未参与训练的客户端上。

1.1.1 联邦学习模型的生命周期

  1. 问题识别:工程师识别出一个需要用FL来解决的问题。
  2. 客户端检测:如果需要,使用客户端(例如运行在手机上的应用程序)在本地存储必要的(时间和数量限制)训练数据。在很多情况下,该应用程序已经存储了这些数据(例如,短信应用程序必须存储短信,而照片管理应用程序已经存储了照片)。然而,在某些情况下可能需要维护额外的数据或元数据,例如用户交互数据,用来为监督学习任务提供标签
  3. 仿真原型(可选):模型工程师可以使用代理数据集在FL模拟模型架构和测试学习超参数。
  4. 联邦模型训练:启动多个联邦训练任务来训练模型的不同变化,或使用不同的优化超参数。
  5. (联邦)模型评估:经过充分的联邦训练之后(通常是几天),得到了比较好的模型。对模型的分析可能包括在数据中心的标准数据集中计算指标度量值,或者是联邦评估,其中模型被推送到保留的客户端(未参与训练的客户端),以便对本地客户端数据进行评估。
  6. 部署:最后,一旦选择了一个好的模型,它将经过一个标准的模型发布过程,包括手动质量保证、现场A/B测试(通常通过在某些设备上使用新模型,在其他设备上使用上一代模型来比较它们的体内性能),和回滚机制(以便在影响过多用户之前可以发现并回滚不良行为)。模型的特定启动过程由应用程序的所有者设置,通常与模型的训练方式无关。换句话说,这一步同样适用于使用联邦学习或传统数据中心方法训练的模型。

1.1.2 一个典型的联邦训练过程

FedAvg算法步骤:

  1. 客户端选择
  2. 被选中的客户端从服务器下载现有模型以及训练程序
  3. 客户端计算(在本地数据上跑SGD)
  4. 聚合
  5. 模型更新

1.2 联邦学习研究

虽然不是权威或绝对的,我们提出以下温和的建议,来展示解决我们所描述的开放问题的FL研究:

  • 如表 1 所示,FL 环境可能包含各种各样的问题。与环境和目标已经明确的领域相比,精确描述特定 FL 环境的细节非常重要,尤其是当所提出的方法所做的假设可能并不适合所有环境时(例如,有状态的客户端参与所有轮次)
  • 当然,为了使研究具有可重复性,应该介绍任何模拟的细节。但同样重要的是,要解释模拟是为了捕捉现实世界环境的哪些方面(哪些不是),以便有效地说明模拟问题的成功意味着在现实世界目标方面取得了有益的进展。我们希望本文的指导意见能对此有所帮助。
  • 在 FL 中,隐私和通信效率始终是首要考虑的问题,即使实验是在一台机器上使用公共数据集进行的模拟。与其他类型的 ML 相比,对于任何建议的方法来说,明确计算发生的位置和通信内容都非常重要。

1.3 本文组织结构

第 2 部分以表 1 中的观点为基础,探讨了跨设备环境之外的其他 FL 环境和问题。然后,第 3 节围绕提高联邦学习的效率和有效性这一核心问题展开讨论。第 4 节仔细研究了威胁模型,并考虑了一系列技术,以实现严格的隐私保护目标。与所有机器学习系统一样,在联邦学习应用中,可能存在操纵正在被训练的模型的动机,各种失败在所难免;第 5 节讨论了这些挑战。最后,我们将在第 6 节讨论提供公平、无偏模型的重要挑战。

2 放宽 FL 的核心假设:应用于新的环境和场景

在本节中,我们将讨论与上一节讨论的主题相关的研究领域。尽管这些领域并非本文其余部分的重点,但其研究进展可推动下一代生产系统的设计。

2.1 完全去中心化/点对点分布式学习(Fully Decentrailized/Peer-to-Peer Distributed Learning)

在联邦学习中,中央服务器负责协调训练过程,并接收所有客户端的贡献。因此,服务器是一个中心角色,也可能出现单点故障。虽然大公司或组织可以在某些应用场景中扮演这一角色,但在协作学习场景中,可靠且功能强大的中央服务器并不总是可用或可取的[459]。此外,正如 Lian 等人[305]所证明的那样,当客户端数量非常多时,中央服务器甚至可能成为瓶颈(不过,这可以通过精心的系统设计来缓解,例如[81])。

完全分散式学习的关键理念是,用单个客户端之间的对等通信取代与服务器的通信。通信拓扑结构用连通图表示,图中节点是客户端,边表示两个客户端之间的通信通道。网络图通常选择稀疏且最大度数较小的图,这样每个节点只需向/从少量对等节点发送/接收信息;这与服务器-客户端架构的星形图形成鲜明对比。在完全分散的算法中,一轮对应于每个客户端执行一次本地更新,并与图2中的邻居交换信息。在机器学习中,局部更新通常是一个局部(随机)梯度步骤,通信内容包括与邻居平均自己的局部模型参数。需要注意的是,不再存在标准联邦学习中的全局模型状态,但可以设计一个过程,使所有局部模型都收敛到所需的全局解决方案,即各个模型逐渐达成共识。虽然多代理优化在控制领域有着悠久的历史,但最近在机器学习领域也开始考虑 SGD 和其他优化算法的完全分散变体,以提高数据中心的可扩展性 [29] 以及设备的分散网络 [127、459、443、59、278、291、173]。它们考虑的是无向网络图,不过有向网络(编码单向通道,可能出现在社交网络或数据市场等现实世界场景中)的情况也在 [29, 226] 中得到了研究。

值得注意的是,即使在上述非集中化环境中,中央机构仍可能负责制定学习任务。例如,可以考虑以下问题:在分散式环境中,由谁来决定要训练的模型是什么?使用什么算法?使用什么超参数?当出现与预期不符的情况时,由谁来负责调试?要回答这些问题,仍然需要参与的客户对中央机构有一定程度的信任。另外,也可以由提出学习任务的客户机做出决定,或通过共识方案共同做出决定(见第 2.1.2 节)。

表 3 对联邦学习和点对点学习进行了比较。虽然分散学习的架构假设与联邦学习的架构假设不同,但它通常可以应用于类似的问题领域,会出现许多相同的挑战,而且在研究社区中也有大量重叠。因此,我们在本文中也考虑了分散学习;在本节中,我们明确考虑了分散学习方法所特有的挑战,但其他章节中的许多未决问题也会在分散学习中出现。

表3 联邦学习和点对点分散学习的对比
联邦学习 点对点分散学习
编排者 中央编排服务器或服务组织的训练过程,但不能看见原始数据 没有中央编排
广域通信 通常采用集线器-辐条拓扑结构,集线器代表协调服务提供商(通常不含数据),辐条连接客户。 点对点拓扑,可能具有动态连接图。

2.1.1 算法挑战

挑战主要包括:

  1. 在异步和去中心化网络拓扑中进行SGD的影响
  2. 分散式SGD的本地更新在数据非独立同分布下的收敛性以及收敛速度问题
  3. 个性化和信任机制问题(对于恶意行为的鲁棒性)
    与跨设备 FL 设置类似,在单个客户端可用的非 IID 数据分布下,完全分散场景的一项重要任务是设计学习个性化模型集合的算法。文献[459, 59]介绍了完全分散的算法,通过平滑具有相似任务(即相似数据分布)的客户端的模型参数,为每个客户端协作学习个性化模型。Zantedeschi 等人[504] 进一步将相似性图与个性化模型一起学习。在去中心化环境下,此类方案面临的主要独特挑战之一仍然是对恶意行为者或不可靠数据或标签的稳健性。将激励措施或机制设计与分散学习相结合是一个新兴的重要目标,在没有可信中央服务器的情况下可能更难实现。
  4. 梯度压缩和量化方法
  5. 隐私问题

2.1.2 实用性挑战

区块链是不同用户之间共享的分布式账本,可以在没有中央机构的情况下进行数字交易,包括加密货币交易。特别是,智能合约允许在区块链上执行任意代码,区块链本质上是一个大规模复制的最终一致性状态机。在联邦学习方面,使用该技术可以通过使用智能合约进行模型聚合来实现全球服务器的去中心化,其中执行智能合约的参与客户可以是不同的公司或云服务。
然而,在当今的区块链平台上,例如以太坊[478],区块链上的数据默认是公开的,这可能会阻碍用户参与去中心化联邦学习协议,因为保护数据通常是FL的主要动机。为了解决这些问题,也许可以修改现有的隐私保护技术,以适应去中心化联邦学习的场景。首先,为了防止参与节点利用其他客户端单独提交的模型更新,可以使用现有的安全聚合协议。Bonawitz 等人[80]提出了一个已用于跨设备 FL 的实用安全聚合协议,该协议以协议的复杂性为代价,有效地处理了退出参与者的问题。另一种系统是让每个客户端在区块链上存入加密货币,如果在执行过程中退出,就会受到惩罚。由于不需要处理退出问题,安全聚合协议可以大大简化。实现安全聚合的另一种方法是使用保密智能合约,如在安全飞地内运行的 Oasis 协议[119]。有了它,每个客户端只需提交加密的本地模型更新,并知道该模型将通过远程认证在安全硬件内解密和聚合(参见第 4.1 节中关于深度隐私的讨论)。
为了防止任何客户端试图通过利用全局模型来重建另一个客户端的隐私数据,有人为 FL 提出了客户端级差分隐私[338]。客户端级差分隐私是通过在聚合全局模型上添加随机高斯噪声来实现的,这种噪声足以隐藏任何单个客户端的更新。在区块链背景下,每个客户端都可以在本地梯度下降步骤后添加一定量的高斯噪声,并将模型提交给区块链。计算局部噪声规模时,应使区块链上的聚合噪声能够实现与 [338] 中相同的客户端级差分隐私。最后,可以对区块链上的聚合全局模型进行加密,只有参与的客户端才持有解密密钥,从而保护模型不被公开。

2.2 跨孤岛联邦学习

与跨设备联邦学习的特点(见表 1)相比,跨孤岛联邦学习在整体设计的某些方面具有更大的灵活性,但与此同时,实现其他特性可能会更加困难。本节将讨论其中的一些差异。
当一些公司或组织共享基于其所有数据训练模型的激励机制,但又无法直接共享数据时,就需要跨孤岛设置。这可能是由于保密限制或法律限制造成的,或者甚至是在单个公司内部,当他们无法在不同地理区域之间集中数据时造成的。这些跨孤岛应用引起了广泛关注。

2.2.1 数据划分

按照数据划分主要分为横向联邦学习、纵向联邦学习和联邦迁移学习。

2.2.2 激励机制

除了为 FL 开发新的算法技术,为诚实参与设计激励机制也是一个重要的实际研究问题。这种需求可能出现在跨设备环境中(例如 [261, 260]),但在跨孤岛环境中尤为重要,因为参与者可能同时也是商业竞争对手。激励的形式可以是金钱报酬[499],也可以是具有不同性能水平的最终模型[324]。在 FL 参与者之间存在竞争的协作学习环境中,选择提供与每个客户贡献相称的性能模型尤为重要。客户可能会担心,为训练联邦学习模型贡献自己的数据会使其竞争对手受益,因为他们的贡献没有那么多,但却能获得相同的最终模型(即搭便车问题)。相关的目标包括:如何在贡献数据的所有者之间分配联邦学习模型产生的收益,以维持长期的参与;如何将激励措施与抵御敌对数据所有者的决策联系起来,以提高系统的安全性;优化数据所有者的参与,以提高系统的效率。

2.2.3 差分隐私

第 4.1 节中关于行动者和威胁模式的讨论在很大程度上也与跨孤岛 FL 有关。然而,针对不同行为者的防护可能有不同的优先级。例如,在许多实际场景中,最终的训练模型将只向参与训练的人员发布,这就使得对 "世界其他地方 "的担忧变得不那么重要。
另一方面,为了提出具有实际说服力的主张,我们通常需要一个本地差异隐私的概念,因为来自其他客户端的潜在威胁可能更为重要。在客户端不被视为重大威胁的情况下,每个客户端都可以控制来自各自用户的数据,因此可能需要在这种用户级别的基础上提供正式的隐私保证。根据应用情况,其他目标也值得追求。这一领域尚未得到系统的探索。

2.3 拆分学习

与前述侧重于数据划分和通信模式的设置不同,拆分学习[215, 460]3背后的关键理念是在客户端和服务器之间按层分层执行模型。这既可用于训练,也可用于推理。

3 提升效率和效益

在本节中,我们将探讨各种技术和开放性问题,以应对提高联邦学习效率和效益的挑战。可能的方法包括:开发更好的优化算法为不同客户端提供不同的模型使超参数搜索、架构搜索和调试等 ML 任务在 FL 上下文中更加容易提高通信效率等等。实现这些目标的基本挑战之一是非 IID 数据的存在,因此我们首先对这一问题进行了调查,并强调了潜在的缓解措施。

3.1 联邦学习中的非独立同分布数据