FedML: A Research Library and Benchmark for Federated Machine Learning
Chaoyang He, Songze Li, Jinhyun So, Xiao Zeng, Mi Zhang, Hongyi Wang, Xiaoyang Wang, Praneeth Vepakomma, Abhishek Singh, Hang Qiu, Xinghua Zhu, Jianzong Wang, Li Shen, Peilin Zhao, Yan Kang, Yang Liu, Ramesh Raskar, Qiang Yang, Murali Annavaram, Salman Avestimehr
TL;DR
<FedML addresses core limitations in federated learning tooling by providing an open, end-to-end library and benchmark that support on-device, distributed, and single-machine FL. The architecture cleanly separates low-level communication from high-level algorithm design, using a worker-oriented programming model, flexible topology management, and extensible privacy/security features. The benchmark enforces standardized datasets, models, and non-I.I.D. partitions across convex, shallow non-convex, and deep non-convex tasks, with reference algorithm implementations and real-world on-device testbeds. This framework enables fair comparisons, reproducible experiments, and rapid experimentation, promoting broader, more rigorous FL research and deployment readiness.
Abstract
Federated learning (FL) is a rapidly growing research field in machine learning. However, existing FL libraries cannot adequately support diverse algorithmic development; inconsistent dataset and model usage make fair algorithm comparison challenging. In this work, we introduce FedML, an open research library and benchmark to facilitate FL algorithm development and fair performance comparison. FedML supports three computing paradigms: on-device training for edge devices, distributed computing, and single-machine simulation. FedML also promotes diverse algorithmic research with flexible and generic API design and comprehensive reference baseline implementations (optimizer, models, and datasets). We hope FedML could provide an efficient and reproducible means for developing and evaluating FL algorithms that would benefit the FL research community. We maintain the source code, documents, and user community at https://fedml.ai.
