PFLlib: A Beginner-Friendly and Comprehensive Personalized Federated Learning Library and Benchmark

Jianqing Zhang, Yang Liu, Yang Hua, Hao Wang, Tao Song +3 more
12/8/2023
cs.LGcs.DC

No official code found. Best implementation: TsingZ0/PFLlib (2,159 stars, Apache-2.0, PyTorch, last commit 2026-01-25). 1 more below.

Abstract

Amid the ongoing advancements in Federated Learning (FL), a machine learning paradigm that allows collaborative learning with data privacy protection, personalized FL (pFL)has gained significant prominence as a research direction within the FL domain. Whereas traditional FL (tFL) focuses on jointly learning a global model, pFL aims to balance each client's global and personalized goals in FL settings. To foster the pFL research community, we started and built PFLlib, a comprehensive pFL library with an integrated benchmark platform. In PFLlib, we implemented 37 state-of-the-art FL algorithms (8 tFL algorithms and 29 pFL algorithms) and provided various evaluation environments with three statistically heterogeneous scenarios and 24 datasets. At present, PFLlib has gained more than 1600 stars and 300 forks on GitHub.

View on arXivView PDF

Code Implementations(2)

TsingZ0/PFLlibCommunity100%
PyTorchApache-2.0

Master Federated Learning in 2 Hours—Run It on Your PC!

2,159415Shell, PythonSep 2, 20209 months agoApache-2.0
attackdifferential-privacydistributed-computingdlgdomainnet+10 more
TsingZ0/HtFLlibCommunity100%
PyTorchApache-2.0

You only need to configure one file to support model heterogeneity. Consistent GPU memory usage for single or multiple clients.

24621C++, CudaJul 3, 20236 months agoApache-2.0
colloborationdata-freeevaluationfederated-learningheterogeneity+3 more

Similar Papers

Cite this paper

@article{zhang2023pfllib,
  title  = {PFLlib: A Beginner-Friendly and Comprehensive Personalized Federated Learning Library and Benchmark},
  author = {Jianqing Zhang and Yang Liu and Yang Hua and Hao Wang and Tao Song and Zhengui Xue and Ruhui Ma and Jian Cao},
  year   = {2023},
  eprint = {2312.04992},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2312.04992v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2312.04992.svg)](https://codeofpaper.com/paper/2312.04992)

Discussion