【文献阅读】Oort:通过引导参与者选择实现高效联合学习

        现有工作随机选择FL参与者,这导致模型和效率较差。这篇文章提出了Oort,通过引导参与者选择来提高联合训练和测试的性能。


摘要

        为了提高模型训练中的准确率性能,Oort优先使用那些同时拥有数据的客户,这些数据在提高模型准确率和快速运行训练方面具有很大作用。为了使FL开发人员能够在模型测试中解释他们的结果,Oort强制要求参与者数据的分布。


引言

        并非所有客户都可以同时进行FL训练或测试,可能具有异构的数据分布和系统能力,并且可能会导致工作浪费和性能不佳。因此,实际FL中的一个基本问题是选择一个“好”的客户子集作为参与者,每个参与者在本地处理自己的数据,只有他们的结果才在(逻辑上)集中的协调器中收集和汇总。

        尽管随机参与者选择很容易部署,但不幸的是,由于设备速度和/或数据特性的巨大异质性,它导致联合训练的性能较差。更糟糕的是,随机选择参与者可能会导致测试集有偏差,对结果失去信心。因此,开发人员往往需要更多的参与者。

        作者已经将Oort与PySyft集成,并在各种FL任务中使用真实工作负载对其进行了评估。

        文章的主要贡献如下:

  1. 在选择FL参与者时,文章强调了统计和系统效率之间的紧张关系,并提出了Oort以有效地进行权衡。
  2. 我们提出了参与者选择算法,以提高训练的时间准确性性能,并可扩展地执行开发人员的FL测试标准。
  3. 我们在Oort大规模实施和评估了这些算法,显示了统计和系统性能比最新技术的改进。

        由于中间有综述内容,详细写了目前联邦学习的挑战和研究现状,所以就略读,直到文章的主要内容部分。

【文献阅读】Oort:通过引导参与者选择实现高效联合学习_第1张图片

        上图显示:

  • 即使对于相同数量的参与者随机选择也会导致数据与目标分布的明显偏差
  • 虽然这种偏差随着参与人数的增加而减少,但量化它如何随参与人数的不同而变化是非常重要的,即使我们忽略了扩大参与者集的成本。

Oort一览

        本节概述了Oort如何适合FL生命周期,以帮助读者了解后续章节。

【文献阅读】Oort:通过引导参与者选择实现高效联合学习_第2张图片

         上图显示了Oort如何与开发人员交互:

  1. Job submission:开发者向云中的FL协调员提交并指定参与者选择标准
  2. Participant selection:协调器询问符合资格属性(例如电池电量)的客户,并将其特征(例如活跃度)转发给Oort。Oort选择参与者,并将该参与者选择通知给协调器(2b)。
  3. Execution:协调器向这些参与者分发相关的简档(例如,模型),然后每个参与者根据自己的数据独立计算结果(例如,训练中的模型权重)。
  4. Aggregation:当参与者完成计算时,协调器聚合来自参与者的更新。

Oort接口

        Oort使用了两个不同的选择器,开发人员可以在FL训练和测试期间通过客户端库访问它们。分别是训练选择器和测试选择器。

        前者旨在提高联合训练的时间准确性性能。为此,它捕获了客户机在训练中的效用,并在运行时高效地探索和选择高效用客户机。

        后者支持两种类型的选择条件。当未提供单个客户数据特征(例如,分类分布)时,测试选择器确定所需的参与者数量,以限制参与者与全局的数据偏差。否则,它会挑选参与者来满足开发人员对数据的确切要求,同时尽量缩短测试时间。

Oort挑战

        同样的,Oort也有以下的技术挑战:

  1. 在每一轮中,如何确定哪些客户的数据将有助于提高训练的统计效率,同时尊重客户隐私?
  2. 如何考虑客户的系统性能以优化全局系统效率
  3. 如何解释我们在训练期间没有为所有客户提供最新评估的事实。

如何做到自适应参与者选择

        首先作者定义了一个公式,以说明一个客户的“效用”:

【文献阅读】Oort:通过引导参与者选择实现高效联合学习_第3张图片

         该公式假设客户的所有样本都在该训练轮中处理。B_i 是每个客户端 i 都有本地存储的训练样本,T 是每一轮的开发人员首选持续时间,t_i 是客户端 i 训练所需的时间,该时间已由目前的协调器从过去几轮中收集。\mathbb{I}(x)是一个指标函数,如果 x 为真,则取值为1,否则取值为0。那些可能成为当前轮所需速度瓶颈的客户的效用将受到开发商指定的因子 \alpha 的惩罚。

        我们需要解决一些实际问题,以便在每一轮训练中选择效用最高的参与者:

  1. 客户的效用只能在其参加训练后才能确定;如何从大规模的客户中进行选择,而不必尝试所有客户?
  2. 由于不是每个客户都参与每一轮,如何解释自上次参与以来客户效用的变化
  3. 如何在存在corrupted的客户端时对异常值保持健壮?

        然后文章展示了参与者选择的程序伪代码和“勘探开发”部分:

【文献阅读】Oort:通过引导参与者选择实现高效联合学习_第4张图片

         从众多客户中选择参与者可以被建模为多武装强盗问题,其中每个客户都是强盗的“武器”,获得的效用是“奖励”。与复杂的设计(例如,强化学习)相比,即使解决方案空间(例如,客户机数量)随着时间的推移发生了巨大变化,强盗模型也具有可扩展性和灵活性。

        (从这里开始我不是很明白,估计还得看看强盗问题是怎么回事)。

        第6行:在每一轮选拔开始时,Oort都会收到上一轮训练的反馈,并更新客户的统计效用和系统性能。为了鲁棒性,Oort(i) 在经过给定轮数的挑选后,在选择中删除客户,这有助于消除参与方面的异常值。

        第9-16行:对于探索的客户,Oort计算他们的客户效用,并通过利用高效用参与者缩小选择范围。同时,奥尔特样本 \varepsilon (\in [0,1]) 一部分参与者探索之前未被选中的潜在参与者(第16行),这将使得 \varepsilon \rightarrow 1

        注意到,受用于衡量强盗奖励不确定性的置信区间的激励,代码引入了一个激励项,该激励项与强盗解决方案的置信度大小相同,以说明其陈旧性(第10行),从而如果客户长期被忽视,我们会逐渐增加其效用。因此,那些自上一次试用以来积累了高效用的客户仍然可以重新利用。通过在高效用客户池中进行概率参与者选择,在FL中的客户规模下,选择异常值的机会显著降低。


模型评估

        文章在四个CV和NLP数据集上评估了Oort对四个不同ML模型的有效性。

  • Oort在时间精度性能上优于现有随机参与者选择1.2×-14.1×,同时最终模型精度提高1.3%-9.8%

【文献阅读】Oort:通过引导参与者选择实现高效联合学习_第5张图片

  • Oort通过自适应地在不同组件的统计效率和系统效率之间进行权衡,实现了接近最优的模型效率

【文献阅读】Oort:通过引导参与者选择实现高效联合学习_第6张图片

  • Oort在广泛的参数范围和不同规模的实验中优于同类框架,同时对异常值具有鲁棒性

【文献阅读】Oort:通过引导参与者选择实现高效联合学习_第7张图片

你可能感兴趣的:(文献阅读,联邦学习,学习)