/NVFlare

NVIDIA Federated Learning Application Runtime Environment

Primary LanguagePythonApache License 2.0Apache-2.0

NVIDIA Federated Learning Application Runtime Environment

NVIDIA FLARE is a domain-agnostic, open-source, extensible SDK that allows researchers and data scientists to adapt existing ML/DL workflows(PyTorch, TensorFlow, Scikit-learn, XGBoost etc.) to a federated paradigm. It enables platform developers to build a secure, privacy-preserving offering for a distributed multi-party collaboration.

NVIDIA FLARE is built on a componentized architecture that allows you to take federated learning workloads from research and simulation to real-world production deployment. Key components include:

  • Support both deep learning and traditional machine algorithms
  • Support horizontal and vertical federated learning
  • Built-in FL algorithms (e.g., FedAvg, FedProx, FedOpt, Scaffold, Ditto )
  • Support multiple training workflows (e.g., scatter & gather, cyclic) and validation workflows (global model evaluation, cross-site validation)
  • Support both data analytics (federated statistics) and machine learning lifecycle management
  • Privacy preservation with differential privacy, homomorphic encryption
  • Security enforcement through federated authorization and privacy policy
  • Easily customizable and extensible
  • Deployment on cloud and on premise
  • Simulator for rapid development and prototyping
  • Dashboard UI for simplified project management and deployment
  • Built-in support for system resiliency and fault tolerance

Installation

To install the current release, you can simply run:

$ python3 -m pip install nvflare

Getting started

You can quickly get started using the FL simulator.

A detailed getting started guide is available in the documentation.

Examples and notebook tutorials are located here.

Related talks and publications

For a list of talks, blogs, and publications related to NVIDIA FLARE, see here.

License

NVIDIA FLARE has Apache 2.0 license, as found in LICENSE file.