
1.1.2 联邦学习的工作流程
在介绍联邦学习(FL)的训练过程之前,我们先考虑一个FL模型的生命周期。FL过程通常是由为特定应用程序开发模型的工程师驱动的。例如,自然语言处理领域的专家可以开发一个用于虚拟键盘的下一个单词预测模型。图1-2显示了联邦学习的主要组件和参与者。从更高层次上看,典型的工作流程如下。

图1-2 FL模型生命周期和联邦学习系统参与者
- 问题识别:模型工程师识别出需要用FL解决的问题。
- 客户端检测:如果需要的话,客户端(例如手机上运行的应用程序)将在本地存储必要的训练数据(有时间和数量限制)。在很多情况下,应用程序已经存储了这些数据(例如,一个短信应用程序已经存储短信,一个照片管理应用程序已经存储照片)。然而,在某些情况下,可能需要维护额外的数据或元数据,例如用户交互数据,以便为监督学习任务提供标签。
- 仿真原型(可选):模型工程师可以使用代理数据集在FL模拟中对模型架构进行原型化并测试学习超参数。
- 联邦模型训练:启动多个联邦训练任务来训练模型的不同变体,或使用不同的超参数优化。
- 联邦模型评估:在任务得到充分训练之后(通常是几天),对模型进行分析并选择合适的候选者。模型分析可能包括在数据中心的标准数据集上计算指标或者联邦评估,其中模型被推送到保留的客户端,以对本地客户端数据进行评估。
- 部署:最后,一旦一个好的模型被选中,它将经历一个标准的模型发布过程,包括手动质量保证、实时A/B测试(通常是在一些设备上使用新模型,在其他设备上使用上一代模型来比较它们的性能),以及阶段性推出(以便在影响太多用户之前发现和回滚不良行为)。模型的特定启动过程是由应用程序的所有者设置的,通常与模型是如何训练的无关。换句话说,这个步骤同样适用于经过联邦学习或传统数据中心方法训练的模型。
FL系统面临的主要挑战之一是如何使上述工作流程尽可能简单,理想地接近集中训练(Centralized Training)的ML系统所达到的易用性。
接下来,我们将详细介绍一种常见的FL训练过程,它可以涵盖McMahan等人提出的联邦平均(FederatedAveraging)算法和许多其他算法。
服务器(服务提供者)通过重复以下步骤来安排训练过程,直到训练停止(由监视训练过程的模型工程师自行决定):
- 客户端选择:服务器从满足资格要求的一组客户端中抽取样本。例如,为了避免影响正在使用设备的用户,手机可能只有在插电、使用不计流量的WiFi连接且处于空闲状态时才会连接到服务器。
- 广播:选定的客户端从服务器下载当前的模型权重和一个训练程序(例如Tensor-Flow Graph)。
- 客户机计算:每个选定的设备通过在本地执行训练程序对模型进行更新,例如,训练程序可以在本地数据上运行SGD(如FederatedAveraging算法)。
- 聚合:服务器对设备的更新进行聚合。为了提高效率,一旦有足够数量的设备报告了结果,可能会删除掉队的设备。这一阶段也是许多其他技术的集成点,这些技术将在后面讨论,可能包括用于增强隐私的安全聚合、用于提高通信效率而对聚合进行的有损压缩,以及针对差分隐私的噪声添加和更新裁剪。
- 模型更新:服务器基于从参与当前轮次的客户端计算出的聚合更新,在本地更新共享模型。
客户机计算、聚合和模型更新阶段的分离并不是联邦学习的严格要求,但它确实排除了某些算法类,例如异步SGD,即在使用其他客户机的更新进行任何聚合之前,每个客户机的更新都立即应用于模型。这种异步方法可能会简化系统设计的某些方面,而且从优化角度来看也是有益的。然而,上述训练过程在将不同研究方向分开考虑时具有很大的优势:压缩、差分隐私和安全多方计算的进步可以用于基础操作,如通过去中心化更新的方法计算和或均值,然后由任意优化或分析算法组合,只要这些算法以聚合操作的形式表示即可。
值得强调的是,联邦学习的训练过程不应该影响用户体验。首先,如上所述,尽管模型参数通常会在每一轮联邦训练的广播阶段被发送到一些设备上,但这些模型只是训练过程中的一部分,不用于向用户显示实时预测。这是至关重要的,因为训练ML模型是具有挑战性的,而且一个超参数的错误配置可能产生一个做出错误预测的模型。相反,用户可见的模型使用被推迟到模型生命周期的第6步“部署”中的阶段性推出过程中。其次,训练本身是对用户不可见的,如在客户端选择步骤中描述的那样,训练不会使设备变慢或耗尽电池,因为它只在设备空闲和连接电源时执行。然而,这些限制所带来的有限可用性直接导致开放式的研究挑战,如半循环数据可用性(Semi-Cyclic Data Availability)和客户端选择中可能存在的偏见。