appendix_a

模拟软件 联邦学习的模拟需要处理数据中心ML研究中不会出现的多个问题,例如,有效地处理划分数据集,并在不同的模拟设备上运行计算,每个计算具有可变的数据量。FL研究还需要不同的指标,例如设备上传或下载的字节数,以及模拟问题的能力,例如不同客户端的时变到达或客户端的退出可能与本地数据集的性质相关。考虑到这一点,用于联邦学习研究(模拟)的开放软件框架的开发具有极大地加速研究进展的潜力。 有几种平台可用或正在开发中,包括[345]:

  • TensorFlow Federated [38]专门针对研究用例,提供大规模模拟功能以及灵活的编排来控制采样。

  • PySyft [342]是用于安全的私有深度学习Python库。 PySyft使用PyTorch中的联邦学习,差分隐私和多方计算(MPC)将私人数据与模型训练分离。

  • Leaf [35]提供了多个数据集(见下文)以及模拟和评估功能。

产品导向的软件 除了上述模拟平台之外,还开发了一些面向产品的联邦学习平台:

  • FATE(Federated AI Technology Enabler)[34]是一个开源项目,旨在提供安全的计算框架来支持联邦AI生态系统。

  • PaddleFL [36]是基于PaddlePaddle [37]的开源联邦学习框架。在PaddleFL中,通过应用程序演示提供了几种联邦学习策略和训练策略。

  • Clara培训框架[33]包括基于服务器客户端方法和数据隐私保护的跨孤岛联邦学习的支持

这种面向生产的联邦学习平台必须解决模拟中不存在的问题,例如身份验证,通信协议,加密以及将其部署到物理设备或孤岛。请注意,虽然TensorFlow Federated在“用于模拟的软件”下列出,但其设计包括聚合和广播的抽象,以及所有TensorFlow计算的序列化,以在非Python环境中执行,使其适合用作生产系统中的组件。

数据集 当数据分散且通常不平衡(不同的客户有不同数量的示例)并且分布不相同(每个客户的数据来自不同的分布)时,将采用联邦学习。开源软件包TensorFlow Federated [38]支持在模拟环境中加载分散数据集,每个客户端ID对应于TensorFlow数据集对象。 这些数据集可以轻松转换为numpy数组,以用于其他框架。在撰写本文时,支持三个数据集,我们建议研究人员对其进行基准测试。

  • EMNIST数据集[109]由671,585个数字图像和大小写英文字符(62个类)组成。 联邦版本将数据集拆分为3,400个不平衡客户端,这些客户端由数字/字符的原始编写者索引。 非IID分布来自每个人独特的写作风格。

  • Stackoverflow数据集由来自Stack Overflow的问答组成,并带有时间戳,分数等元数据。训练数据集拥有342,477多个唯一用户和135,818,730个示例。请注意,时间戳信息可能有助于模拟传入数据的模式。

  • Shakespeare是从The Complete Works of William Shakespeare获得的语言建模数据集。 它由715个字符组成,其连续行是客户端数据集中的示例。训练集有16,068个示例,测试集有2,356个示例。

Leafproject [88]提供了对EMNIST和Shakespeare的预处理,它还提供了sentiment140和celebA数据集的联邦版本。这些数据集具有足够的客户端,可以用于模拟跨设备FL场景,但是对于规模特别重要的问题,它们可能太小。在这方面,Stackoverflow提供了跨设备FL问题的最现实示例。

跨数据孤岛数据集 一个例子是iNaturalist数据集,它由世界各地各种生物的大量观测组成。 可以按地理位置或观察者进行划分。如果我们按生物体所属的类别(例如王国,门等)进行划分,那么客户的标签就完全不同,并且两个客户之间的生物学亲密关系也已广为人知。这使其成为非常适合在跨数据孤岛环境中研究联邦迁移学习和多任务学习的数据集。

另一个示例是Google-Landmark-v2 [389],其中包含超过500万张超过200,000种不同地标类型的图像。 与iNaturalist数据集相似,作者可以分割该数据集,但是由于iNaturalist数据集的规模不同,Google Landmark数据集提供了更多的多样性,并且对大规模联邦学习提出了更大的挑战。 罗等人[278]最近发布了用于计算机视觉的联邦数据集。数据集包含900个带注释的街道图像,这些图像是由26个街道摄像机和7个对象类别生成的,并在详细的边界框进行了注释。 由于数据集中的示例数量相对较少,因此可能无法充分反映具有挑战性的现实情况。

更多数据集的需求 开发代表现实世界问题的新联邦学习数据集是社区要解决的重要问题。 TensorFlow Federated [38]之类的平台欢迎新数据集的贡献,并且可能能够提供托管支持。

虽然全新的数据集总是很有趣,但是在许多情况下,可以对现有的开放数据集进行划分,将每个拆分作为客户端进行处理。 不同的划分策略可能适用于不同的研究问题,但通常与不平衡和非IID的划分最相关。 保持尽可能多的其他元信息(时间戳,地理位置等)也很有趣。

特别地,有必要建立特征划分的数据集,这将在第2.2节中讨论。 例如,患者可以去一家医疗机构进行病理学检查,然后去另一家医疗机构进行放射学图像存档,在这种情况下,一个样本的特征被划分为两个由HIPAA监管的医疗机构[26]。

Last updated