Skip to content

Latest commit

 

History

History
109 lines (73 loc) · 5.42 KB

README.rst

File metadata and controls

109 lines (73 loc) · 5.42 KB
FEDn logo
https://badgen.net/badge/icon/discord?icon=discord&label https://readthedocs.org/projects/fedn/badge/?version=latest&style=flat

FEDn empowers developers, researchers, and data scientists to create federated learning applications that seamlessly transition from local proofs-of-concept to real-world distributed deployments. Develop your Federated Machine Learning (FML) use case in a pseudo-local environment, then deploy it to FEDn Studio for real-world Federated Learning (FL) without any need for code changes.

Core Features

  • Scalable and resilient. FEDn facilitates the coordination of clients and model aggregation through multiple aggregation servers sharing the workload. This design makes the framework highly scalable, accommodating large numbers of clients. The system is engineered to seamlessly recover from failures, ensuring robust deployment in production environments. Furthermore, FEDn adeptly manages asynchronous federated learning scenarios, accommodating clients that may connect or drop out during training.
  • Security. FL clients do not need to open any ingress ports, facilitating real-world deployments across a wide variety of settings. Additionally, FEDn utilizes secure, industry-standard communication protocols and supports token-based authentication for FL clients, enhancing security and ease of integration in diverse environments.
  • Track events and training progress in real-time. Extensive event logging and distributed tracing enable developers to monitor experiments in real-time, simplifying troubleshooting and auditing processes. Machine learning validation metrics from clients can be accessed via the API, allowing for flexible analysis of federated experiments.
  • ML-framework agnostic. FEDn is compatible with all major ML frameworks. Examples for Keras, PyTorch and scikit-learn are available out-of-the-box.

From development to real-world FL:

  • Develop a FEDn project in a local development environment, and then deploy it to FEDn Studio
  • The FEDn server-side as a managed, production-grade service on Kubernetes.
  • Token-based authentication for FL clients
  • Role-based access control (RBAC)
  • REST API
  • Dashboard for orchestrating runs, visualizing and downloading results
  • Admin dashboard for managing and scaling the FEDn network
  • Collaborate with other data-scientists in a shared workspace.

Getting started with the SDK

The best way to get started with the FEDn SDK is to take the quickstart tutorial:

Documentation

You find more details about the architecture, deployment and how to develop your own application in the documentation:

Deploying a project to FEDn Studio

Studio offers a managed, production-grade deployment of the FEDn server-side infrastructure. With Studio, you can manage token-based authentication for clients and collaborate with other users in joint project workspaces. In addition to a REST API, Studio features an intuitive dashboard that allows you to manage FL experiments and visualize and download logs and metrics, enhancing your ability to monitor and analyze federated learning projects.

Follow this guide to Deploy you project to FEDn Studio .

Making contributions

All pull requests will be considered and are much appreciated. For more details please refer to our contribution guidelines.

Community support

Community support in available in our Discord server.

Citation

If you use FEDn in your research, please cite:

@article{ekmefjord2021scalable,
  title={Scalable federated machine learning with FEDn},
  author={Ekmefjord, Morgan and Ait-Mlouk, Addi and Alawadi, Sadi and {\AA}kesson, Mattias and Stoyanova, Desislava and Spjuth, Ola and Toor, Salman and Hellander, Andreas},
  journal={arXiv preprint arXiv:2103.00148},
  year={2021}
}

Organizational collaborators, contributors and supporters

FEDn logo UU logo AI Sweden logo Zenseact logo Scania logo

License

FEDn is licensed under Apache-2.0 (see LICENSE file for full information).