> For the complete documentation index, see [llms.txt](https://xwzheng.gitbook.io/fl/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://xwzheng.gitbook.io/fl/01-introduction.md).

# introduction

联邦学习（FL）是一种机器学习设置方式，其中许多客户端（例如，移动设备或整个组织）在中央服务器（例如，服务提供商）的协调下共同训练模型，同时保持训练数据的去中心化及分散性。它体现了集中收集和数据最小化的原则，并且可以减轻由于传统的集中式机器学习而导致的许多系统性隐私风险和成本。从研究和应用的角度看，该领域最近都引起了极大的兴趣。本文描述了联邦学习环境下的特征定义和挑战，突出了重要的实践约束和思考，然后列举了一系列有价值的研究方向。这项工作的目的是突出具有重大理论和实践意义的研究问题，并鼓励对可能在现实世界中产生重大影响的问题进行研究。

联邦学习的概念是在2016年由McMahan等人在2016年引入【289】：“我们之所以将我们的方法称为联邦学习，因为学习任务是通过由中央服务器协调的参与设备（我们称为客户端）的松散联邦来解决的。” 不均衡和非IID（相同独立分布）的数据分隔通过大量不可靠的设备，并且是有限的通信带宽内进行分区，这是作为引入的挑战。

重要的相关工作要早于引入联邦学习一词。许多研究方向的团队（包括密码学，数据库和机器学习）追求的长期目标是在不暴露数据的情况下分析和学习许多数据拥有者者之间分配的数据。计算加密数据的加密方法始于1980年代初\[340，421]，Agrawal和Srikant \[15]和Vaidya等人也已开始研究。 \[390]是早期工作的示例，这些工作试图使用中央服务器在保护隐私的同时从本地数据中学习。相反，即使自引入联邦学习一词以来，我们也意识到没有任何一项工作可以直接解决FL的全部挑战。因此，术语“联合学习”为一系列特征，约束和挑战提供了便捷的简写，这些特征，约束和挑战通常在隐私至关重要的分散数据的应用ML问题中同时出现。

该论文起源于2019年6月17日至18日在Google西雅图办公室举办的联合学习和分析研讨会。在两天的研讨会中，大量关于调查联邦学习领域开放性挑战的论文的需求开始清晰。（在这项工作的准备期间，Li等人\[262]独立公开了一项优秀而易懂的调查）

讨论的许多问题的关键特性是它们本质上是跨学科的-解决它们可能不仅需要机器学习，还需要分布式优化，密码学，安全性，差分隐私，公平性，压缩感知，系统，信息论，统计，和更多。许多最棘手的问题都在这些领域的交汇处，因此，我们认为合作对于持续发展至关重要。这项工作的目标之一是强调可以将来自这些领域的技术进行潜在地组合的方式，既带来有趣的可能性，也带来新的挑战。

自从最初引入联邦学习一词以来，它就着重于移动和边缘设备应用程序\[289、287]，因此将FL应用于其他应用程序的兴趣大大增加了，包括一些可能只涉及少量相对可靠的客户端的应用程序。例如，多个组织合作训练模型。我们将这两个联合学习设置分别称为“跨设备”和“跨数据孤岛”。鉴于这些变化，我们提出了对联合学习的更广泛定义：

```
联合学习是一种机器学习设置，其中多个实体（客户端）在中央服务器或服务提供商的协调下协作解决机器学习问题。每个客户的原始数据都存储在本地，并且不会交换或转移；从而代替了用于立即聚合的有针对性的更新用于实现学习目标。
```

重点更新是指范围狭窄的更新，其中包含针对当即特定学习任务所需的最少信息。在数据最小化服务中尽早执行聚合。我们注意到，此定义将联邦学习与完全分散的（点对点）学习技术区分开，如第2.1节所述。

尽管保护隐私的数据分析已经进行了50多年的研究，但仅在过去的十年中，解决方案才得到大规模部署（例如\[156，135]）。跨设备联邦学习和联邦数据分析现已应用于消费类数字产品。 Google在Gboard移动键盘\[323、196、420、98、329]以及Pixel手机的功能\[18]和Android Messages \[375]中广泛使用了联合学习。尽管Google率先开发了跨设备FL，但现在对此设置的兴趣更加广泛了：例如，Apple在iOS 13 \[27]中使用跨设备FL，用于QuickType键盘和“ Hey Siri”的人声分类器\[28]; doc.ai正在开发用于医学研究的跨设备FL解决方案\[130]，而Snips已经探索了用于热点词检测的跨设备FL \[259]。

跨部门的应用程序也已经提出或者有了描述，包括再保险的财务风险预测\[407]，药物发现\[158]，电子健康记录挖掘\[162]，医疗数据分割\[19、121]和智能制造\[ 305]。

对联邦学习技术的需求不断增长，导致出现了许多工具和框架。其中包括TensorFlow联合\[38]，联合AI技术使能器\[34]，PySyft \[342]，Leaf \[35]，PaddleFL \[36]和Clara Training Framework \[33]；附录A中有更多详细信息。结合联邦学习的商业数据平台正在由成熟的技术公司以及规模较小的初创公司开发。

表1将跨设备和跨数据孤岛的联邦学习与跨多个轴的传统单数据中心分布式学习进行了对比。这些特征建立了实际的联邦学习系统通常必须满足的许多约束，因此可以激发和告知联邦学习中的开放挑战。在以下各节中将详细讨论它们。

接下来，我们将更详细地考虑跨设备联邦学习，重点是该技术的典型大规模部署所共有的实际部分。 Bonawitz等人 \[74]提供了针对特定生产系统的更多细节，包括对特定架构选择和考虑的讨论。

## 1.1 跨设备的联邦学习

本节采用了实用的观点，与上一节不同，本章并不试图具有定义性。相反，目标是描述跨设备FL中的一些实际问题，以及它们如何适合更广泛的机器学习开发和部署生态系统。希望是为随后出现的开放性问题提供有用的背景和动机，并帮助研究人员估计在现实世界的系统中部署特定的新方法将是怎样的难度。我们首先考虑模型的生命周期，然后再考虑FL训练过程。

|        | 数据集中式的分布式学习                                 | 跨库的联邦学习                                                 | 跨设备的联邦学习                                                      |
| ------ | ------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------------- |
| 设置     | 在大型但“扁平”的数据集上训练模型。客户端是单个群集或数据中心中的计算节点。      | 在数据孤岛上训练模型。客户是不同的组织（例如，医疗或金融）或地理分布的数据中心。                | 客户端是大量的移动或物联网设备                                               |
| 数据分布   | 数据被集中存储，可以在客户端之间进行混洗和平衡。任何客户端都可以读取数据集的任何部分。 | 数据在本地生成，并保持分散化。每个客户端都存储自己的数据，无法读取其他客户端的数据。数据不是独立或相同分布的。 | 与跨数据孤岛的数据分布一样                                                 |
| 编排方式   | 中央式编排                                       | 中央编排服务器/服务负责组织培训，但从未看到原始数据。                             | 与跨数据孤岛编排方式一样                                                  |
| 广域通讯   | 无（在一个数据中心/群集中完全连接客户端）。                      | 中心辐射型拓扑，中心代表协调服务提供商（通常不包含数据），分支连接到客户端。                  | 与跨数据孤岛的广域通讯方式一样                                               |
| 数据可用性  | 所有客户端都是可用的                                  | 所有客户端都是可用的                                              | 在任何时候，只有一小部分客户可用，通常会有日间或其他变化。                                 |
| 数据分布范围 | 通常1-1000个客户端                                | 通常2-1000个客户端                                            | 大规模并行，最多10^10个客户端。                                            |
| 主要瓶颈   | 在可以假设网络非常快的情况下，计算通常是数据中心的瓶颈。                | 可能是计算和通信量                                               | 通信通常是主要的 瓶颈，尽管这取决于任务。通常，跨设备联合计算使用wi-fi或更慢的连接。                 |
| 可解决性   | 每个客户端都有一个标识或名称，该标识或名称允许系统专门访问它。             | 与数据集中式的分布式学习一样                                          | 无法直接为客户建立索引（即不对用户进行标记）。                                       |
| 客户状态   | 有状态的-每个客户都可以参与到计算的每一轮中，不断地传递状态。             | 有状态的-每个客户都可以参与到计算的每一轮中，不断地传递状态。                         | 高度不可靠-预计有5％或更多的客户端参与一轮计算会失败或退出（例如，由于违反了电池，网络或闲置的要求而导致设备无法使用）。 |
| 客户可靠性  | 相对较少的失败次数                                   | 相对较少的失败次数。                                              | 无状态的-每个客户在一个任务中可能只参与一次，因此通常假定在每轮计算中都有一个从未见过的客户的新样本。           |
| 数据分区轴  | 数据可以在客户端之间任意分区/重新分区。                        | 固定分区。能够根据样本分区（横向）或者特征分区（纵向）。                            | 根据样本固定分区（横向）。                                                 |

> 表1. 数据中心中联合学习设置vs. 数据中心化的分布式学习的典型特征（例如\[131]）。跨设备和跨数据孤岛联邦学习是FL域的两个示例，但并不旨在穷举。 FL的主要定义特征以黑体字突出显示，但其他特征对于确定适用的技术也至关重要。

![](https://3202797362-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LylhoLgtDyipwMUTfKM%2F-M-8HP1nB_Y5nu3nCS0J%2F-M-8HPywwvfHpNm2zYTO%2Flifecycle_of_fl_trainning.png?generation=1580703794068638\&alt=media)

> 图1. 联邦学习系统中经过FL训练的模型和各种参与者的生命周期。从威胁模型的角度来看，该数据将在第4节中重新讨论。

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

FL过程通常由模型工程师推动，该工程师为特定应用开发模型。例如，自然语言处理领域专家可以开发用于虚拟键盘的下一单词预测模型。图1显示了主要部分和参与者。在较高级别上，典型的工作流程是：

1. **问题识别：** 模型工程师识别确立一个需要在FL中解决的问题。
2. **客户工具：** 如果需要，可以对客户端（例如，在手机上运行的应用程序）进行工具化，以在本地（时间和数量上受限制）存储必要的训练数据。在许多情况下，该应用程序已经存储了这些数据（例如，短信应用程序必须存储文本消息，照片管理应用程序已经存储了照片）。但是，在某些情况下，可能需要维护其他数据或元数据，例如用户交互数据，为监督学习任务提供标签。
3. **仿真原型（可选）：**&#x6A21;型工程师可以使用代理数据集在FL模拟中对模型体系结构进行原型设计并测试学习超参数。
4. **联邦模型训练：** 开始执行多个联邦训练任务以训练模型的不同变体，或使用不同的优化超参数。
5. **（联邦）模型评估：** 在对任务进行了足够的训练之后（通常是几天，请参阅下文），将对模型进行分析并选择好的候选。分析可能包括在数据中心的标准数据集上计算的度量矩阵，或者是联邦评估，其中，将模型推送给受约束的客户，以评估本地客户数据。
6. **部署方式：** 最后，一旦选择了一个好的模型，就会通过标准的模型启动过程，包括手动的质量审查，实时A / B测试（通常通过在某些设备上使用新模型以及在其他设备上使用上一代模型来比较其内在性能），

以及在一个分阶段推出（以便在影响太多用户之前可以发现并回退不良行为）。模型的特定启动过程由应用程序的所有者设置，通常与模型的训练方式无关。换句话说，此步骤将同样适用于通过联邦学习或传统数据中心方法训练的模型。

FL系统面临的主要实际挑战之一是使上述工作流程尽可能简单直接，理想地接近ML系统实现集中训练的易用性。尽管本文中的大部分内容专门针对联邦学习，但还有许多其他组件，包括模型评估和调试等联邦分析任务。提升这些东西是3.4节的重点。现在，我们将更详细地考虑单个FL模型的训练（上面的步骤4）。

### 1.1.2 典型的联邦训练过程

现在，我们考虑用于FL训练的模板，该模板包含McMahan等人的联邦平均算法。 \[289]；同样，可以进行变化，但这提供了一个共同的起点。

服务器（服务提供商）通过重复以下步骤直到停止训练来协调训练过程（由监视培训过程的模型工程师自行决定）：

1. **客户端选择：**&#x670D;务器从一组符合资格要求的客户端中采样。例如，为避免影响设备用户，移动电话可能仅在未计量的wi-fi连接上插入且处于空闲状态时才签入服务器。
2. **传播：** 选定的客户端从服务器下载当前模型权重和训练程序（例如TensorFlow图\[6]）。
3. **客户端计算：** 每个选定的设备都通过执行训练程序在本地计算对模型的更新，例如，可以在本地数据上运行SGD（如联邦平均）。
4. **聚合：** 服务器收集设备更新的汇总。为了提高效率，一旦有足够数量的设备报告了结果，用户就可以在此处放散手。此阶段也是许多其他技术的集成点，这些技术将在后面讨论，可能包括：用于增加隐私的安全聚合，为了通信效率而对聚合进行有损压缩，以及针对差分隐私的噪声添加和更新限幅。
5. **模型选择：** 服务器根据从参与当前轮次的客户端计算出的聚合更新在本地更新共享模型。

表2给出了移动设备上典型联邦学习应用程序中涉及的数量的典型数量级大小。

| 总样本大小         | 10^6--10^10个设备 |
| ------------- | -------------- |
| 一轮训练的设备选择数    | 50--5000       |
| 参与一个模型训练的总设备数 | 10^5--10^7     |
| 模型收敛的总轮数      | 5000--10000    |
| 训练时间          | 1--10天         |

> 表2. 典型的跨设备联邦学习应用程序的数量级大小

客户端计算，聚合和模型更新阶段的分离并不是对联邦学习的一个严格要求，并且确实排除了某些种类的算法，例如异步SGD，其中每个客户端的更新在应用之前都会立即应用于模型与其他客户端的更新进行汇总。这样的异步方法可以简化系统设计的某些方面，并且从优化角度来看也是有益的（尽管这一点尚有争议）。但是，以上介绍的方法在将不同研究领域分开考虑时具有显着优势：压缩，差分隐私和安全的多方计算方面的进步可用于标准原形式，例如计算总和或均值，而不是分散式的更新，然后由任意优化或分析算法组成，只要这些算法以聚合原形式表示即可。

还值得强调的是，在两个方面，FL训练过程不应影响用户体验。首先，如上所述，尽管通常在每轮联合训练的传播阶段将模型参数发送到某些设备，但这些模型是训练过程的短暂部分，并不用于向用户显示“实时”预测。这是至关重要的，因为训练ML模型具有挑战性，而且超参数配置错误会导致模型预测错误。取而代之的是，将用户可见的模型使用推迟到就如第6步详细介绍中的模型生命周期的部署过程。其次，训练本身对用户是不可见的-如在客户端选择下所述，培训不会减慢设备速度或消耗电池电量，因为培训仅在设备空闲并接通电源时执行。然而，这些限制引入的有限可用性直接导致了开放研究挑战，这些挑战将在随后进行讨论，例如半周期数据可用性以及客户选择中可能存在的偏见。

## 1.2 联邦学习研究

本文的其余部分将调查许多开放问题，这些问题是由现实世界中的联邦学习的约束和挑战引起的，从医院系统的医学数据训练模型到使用数亿个移动设备的训练。毋庸置疑，大多数从事联邦学习问题的研究人员可能不会部署生产FL系统，也无法访问成千上万的实际设备。这导致了驱动工作的实际设置与模拟实验之间的关键区别，这些模拟实验提供了给定方法解决驱动问题的适用性的证据

从实验的角度来看，这使得FL研究与其他ML领域有所不同，从而导致进行FL研究时需要考虑其他因素。特别是，在强调未解决的问题时，我们尝试尽可能地指出可在仿真中测量的相关性能指标，数据集的特征（使其更能代表真实的性能）等。模拟的结果对于FL研究的表述也有影响。尽管不打算具有权威性或绝对性，但我们提出以下适度的建议来介绍FL研究，以解决我们描述的开放性问题：

* 如表1所示，FL可能包含很多问题。与拥有确定目标和设置的领域相比，准确描述特定FL目标设置的细节非常重要，尤其是当所提出的方法做出的假设可能不适用于所有设置时（例如，在所有轮次中参与的并有状态的客户）。
* 当然，应该提供任何模拟的细节，以使研究可重复。但是，重要的是要解释一下在捕获现实世界情景的模拟的那些方面，以便有效地使模拟问题取得成功，这也意味着在现实世界目标上取得有益进展。我们希望本文中的指导能够对此有所帮助。
* 即使实验是使用公共数据在一台机器上运行的模拟，但隐私和通信效率始终是FL中的首要问题。与其他类型的ML相比，对于任何提议的方法而言，重要的是要明确计算发生的位置以及所通信的内容。

用于联邦学习模拟的软件库以及标准数据集可以帮助减轻进行有效的FL研究的难度。附录A总结了一些当前可用的选项。针对不同的联合学习设置（跨设备和跨库）开发标准评估指标并建立标准基准数据集仍然是正在进行的工作的重要方向。

## 1.3 组织

第2节以表1中的思想为基础，探讨了其他FL设置和问题，而最初的重点不在跨设备设置。然后，第3部分将讨论有关提高联邦学习的效率和有效性的核心问题。第4节仔细考虑了威胁模型，并考虑了一系列技术，以实现严格的隐私保护。与所有机器学习系统一样，在联邦学习应用程序中，可能有意来操纵正在训练的模型，并且不可避免地会发生各种故障；在第5节中讨论了这些挑战。最后，在第6节中，我们解决了提供公平，公正的模型的重要挑战。
