APPFL
Open-source Python framework for federated learning on decentralized data, with custom models, optional differential privacy and distributed training.

APPFL is an MIT-licensed Python framework for researchers and data scientists who want to train machine learning models across distributed clients while keeping training data decentralized. It supports user-defined models and lets teams test privacy-preserving federated learning methods in simulations or real distributed experiments.
Clients train models on their local data, and a server combines their model updates. APPFL supports synchronous and asynchronous training, so experiments can account for clients whose updates arrive at different times. Optional client authentication and global or local differential privacy schemes give researchers controls for access and privacy.
The framework separates model aggregation, server scheduling and client training into replaceable components. That makes it useful for comparing algorithms or developing a custom training method without replacing the entire framework. Researchers can also choose lossy compression for model parameters, including SZ2, SZ3, ZFP and SZx.
APPFL runs simulations on a single machine or an HPC cluster through MPI. For training across distributed machines, it supports gRPC and Globus Compute with authentication. Its server and client agents coordinate experiments using the same modular components.