Federated Learning (FL) has emerged as a promising technique for edge devices to collaboratively learn a shared prediction model, while keeping their training data on the device, thereby decoupling the ability to do machine learning from the need to store the data in the cloud. However, FL is difficult to implement and deploy in practice, considering the heterogeneity in mobile devices, e.g., different programming languages, frameworks, and hardware accelerators. Although there are a few frameworks available to simulate FL algorithms (e.g., TensorFlow Federated), they do not support implementing FL workloads on mobile devices. Furthermore, these frameworks are designed to simulate FL in a server environment and hence do not allow experimentation in distributed mobile settings for a large number of clients. In this paper, we present Flower (https://flower.dev/), a FL framework which is both agnostic towards heterogeneous client environments and also scales to a large number of clients, including mobile and embedded devices. Flower's abstractions let developers port existing mobile workloads with little overhead, regardless of the programming language or ML framework used, while also allowing researchers flexibility to experiment with novel approaches to advance the state-of-the-art. We describe the design goals and implementation considerations of Flower and show our experiences in evaluating the performance of FL across clients with heterogeneous computational and communication capabilities.
翻译:联邦学习联合会(FL)已成为一种有希望的技术,使边缘设备能够合作学习共同预测模型,同时保持其设备的培训数据,从而将机器学习的能力与在云中存储数据的必要性脱钩,然而,考虑到移动设备(例如不同的编程语言、框架和硬件加速器)的异质性,FL很难在实践中实施和部署;虽然有一些框架可用于模拟FL算法(例如TensorFlowed Freed),但它们并不支持在移动设备上实施FL工作量;此外,这些框架旨在在服务器环境中模拟FL工作量,因此不允许在分布式移动环境中为大量客户进行实验;在本文件中,我们介绍FL框架(https://flower.dev/)、FL框架,它既对复杂客户环境具有指导性,也对大量客户(包括移动和嵌入装置)具有规模;Flower的抽象化让开发商将现有的移动工作量移植在很小的顶部,而不论方案语言或ML客户的先进能力如何,也允许在分布式计算过程中对我们所应用的流程设计目标进行创新评估,同时让研究人员以创新的方法来评估。