PFLlib
39种算法覆盖传统联邦学习与个性化联邦学习,支持500客户端模拟的科研基准平台
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
39种算法覆盖传统联邦学习与个性化联邦学习,支持500客户端模拟的科研基准平台
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:PFLlib 官方仓库封面
想象一个医院联盟:每家医院都有自己的患者数据,由于隐私法规,这些数据不能汇集到一处进行集中训练。但每家医院都希望训练一个更好的疾病预测模型。联邦学习(Federated Learning)应运而生——让模型在各医院本地训练,只有模型参数而非原始数据被聚合,从而在保护隐私的同时实现协作学习。
这就是 PFLlib 致力于解决的问题。PFLlib 由清华大学团队开发,全称 Personalized Federated Learning Library,是一个专注于**个性化联邦学习(pFL)**的算法库与评测基准。2025年1月正式发表于机器学习顶级期刊 JMLR(Journal of Machine Learning Research),被 KDD 2025 收录的 HtFLlib 同期工作进一步扩展了异构联邦学习支持。
传统联邦学习假设所有客户端共享同一个全局模型,但在现实中,不同医院、不同设备的数据分布差异巨大——有的医院肿瘤数据多,有的医院传染病数据多。简单聚合反而会降低模型质量。个性化联邦学习因此成为研究热点,但算法分散在大量论文中,缺乏统一的实现基准。
PFLlib 的核心价值就是降低联邦学习研究门槛——作者喊出了「2小时入门联邦学习」的口号,并承诺「在你的 PC 上就能跑起来」。实测在单张 RTX 3090 上模拟 500 个客户端、运行 CIFAR-100 数据集仅需 5.08GB 显存,这对于学术研究来说非常友好。
PFLlib 收录了 39 种联邦学习算法,覆盖两大类:
传统联邦学习(tFL):包括 FedAvg、FedProx、SCAFFOLD、FedDyn、MOON、LG-FedAvg 等经典聚合算法,是理解联邦学习的基础。
个性化联邦学习(pFL):这是 PFLlib 的核心亮点,包含 pFedMe、PerAvg、FedPer、Ditto、FedRep、APPLE、FedGen、FedCP、GPFL、FedDBE 等前沿算法。这些算法通过不同策略实现个性化:有的为每个客户端学习独立参数(FedPer),有的通过元学习适应(PerAvg),有的利用知识蒸馏(FedGen)。
此外还支持 Domain Adaptation(FedDA)、个性化聚类(FedPCL)、持续学习(FedCAC) 等进阶方向。
内置支持 24 个数据集,涵盖图像、文本、音频等多个模态:
数据生成脚本(generate_*.py)自动完成数据划分,包括最关键的 Non-IID 划分——模拟真实世界的数据异构性。
PFLlib 在隐私保护方面做了系统化设计,既支持隐私攻击(用于评估风险),也支持隐私防御(保护训练过程)。
攻击方向:
防御方向:
项目采用清晰的三层架构:
Server 层(serverNAME.py):负责客户端选择、参数聚合、全局模型更新。不同算法对应不同的聚合策略——FedAvg 简单平均,FedProx 引入近端项,SCAFFOLD 修正梯度漂移。
Client 层(clientNAME.py):负责本地数据加载、模型训练、梯度上传。个性化算法在此层引入 client-specific 参数。
TrainModel 层(flcore/trainmodel/):封装各种神经网络模型,4层CNN、ResNet、BERT、LSTM 等。
运行流程极为简洁:生成数据(generate_DATA.py)→ 选算法 → 改参数 → 跑 main.py。
PFLlib 是纯 Python 科研工具包,无 Web UI,依赖 Conda 环境:
git clone https://github.com/TsingZ0/PFLlib.git
cd PFLlib
conda env create -f env_cuda_latest.yaml
conda activate pfllib
python dataset/generate_Cifar10.py
python system/main.py -h
硬件需求:至少一张 NVIDIA GPU,RTX 3090 可模拟 500 客户端;仅 CPU 模式可运行小规模实验(MNIST 等)。
主要限制:无容器化支持,需要手动安装 conda 环境和 15+ 个依赖包(scikit-learn、scipy、h5py、diffusers、transformers、accelerate 等),Windows 用户需额外配置。
PFLlib 填补了个性化联邦学习领域的基准空白。在其官方网站 pfllib.com 上提供了交互式 leaderboard,作者团队提出的 FedCP、GPFL、FedDBE 算法在多项基准测试中位居前列,其中 FedDBE 以其对数据异构性的强鲁棒性尤为突出。
JMLR 论文发表也证明了其在学术社区的认可度。HtFLlib(KDD 2025)的同期工作进一步将框架扩展到异构联邦学习(HtFL)场景,支持真实设备部署(HtFL-OnDevice)。
对于 AI 研究者,PFLlib 是快速验证新算法想法的绝佳起点;对于开发者,它是理解联邦学习工程实现的优秀教材。