Skip to content

scaleoutsystems/fedn

Repository files navigation

pic1 pic2 pic3

FEDn

FEDn empowers its users to create federated learning applications that seamlessly transition from local proofs-of-concept to secure distributed deployments.

Leverage a flexible pseudo-local sandbox to rapidly transition your existing ML project to a federated setting. Test and scale in real-world scenarios using FEDn Studio - a fully managed, secure deployment of all server-side components (SaaS).

We develop the FEDn framework following these core design principles:

  • Seamless transition from proof-of-concepts to real-world FL. FEDn has been designed to make the journey from R&D to real-world deployments as smooth as possibe. Develop your federated learning use case in a pseudo-local environment, then deploy it to FEDn Studio (cloud or on-premise) for real-world scenarios. No code change is required to go from development and testing to production.
  • Designed for scalability and resilience. FEDn enables model aggregation through multiple aggregation servers sharing the workload. A hierarchical architecture makes the framework well suited borh for cross-silo and cross-device use-cases. FEDn seamlessly recover from failures in all critical components, and manages intermittent client-connections, ensuring robust deployment in production environments.
  • Secure by design. FL clients do not need to open any ingress ports, facilitating distributed deployments across a wide variety of settings. Additionally, FEDn utilizes secure, industry-standard communication protocols and supports token-based authentication and RBAC for FL clients (JWT), providing flexible integration in production environments.
  • Developer and data scientist friendly. Extensive event logging and distributed tracing enables developers to monitor experiments in real-time, simplifying troubleshooting and auditing. Machine learning metrics can be accessed via both a Python API and visualized in an intuitive UI that helps the data scientists analyze and communicate ML-model training progress.

Features

Federated machine learning:

  • Support for any ML framework (e.g. PyTorch, Tensforflow/Keras and Scikit-learn)
  • Extendable via a plug-in architecture (aggregators, load balancers, object storage backends, databases etc.)
  • Built-in federated algorithms (FedAvg, FedAdam, FedYogi, FedAdaGrad, etc.)
  • CLI and Python API client for running FEDn networks and coordinating experiments.
  • Implement clients in any language (Python, C++, Kotlin etc.)
  • No open ports needed client-side.

FEDn Studio - From development to FL in production:

  • Leverage Scaleout's free managed service for development and testing in real-world scenarios (SaaS).
  • Token-based authentication (JWT) and role-based access control (RBAC) for FL clients.
  • REST API and UI.
  • Data science dashboard for orchestrating experiments and visualizing results.
  • Admin dashboard for managing the FEDn network and users/clients.
  • View extensive logging and tracing information.
  • Collaborate with other data-scientists on the project specification in a shared workspace.
  • Cloud or on-premise deployment (cloud-native design, deploy to any Kubernetes cluster)

Getting started

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

Documentation

More details about the architecture, deployment, and how to develop your own application and framework extensions (such as custom aggregators) are found in the documentation:

Running your project in FEDn Studio (SaaS or on-premise)

The FEDn Studio SaaS is free for development, testing and research (one project per user, backend compute resources sized for dev/test):

Scaleout can also support users to scale up experiments and demonstrators on Studio, by granting custom resource quotas. Additonally, charts are available for self-managed deployment on-premise or in your cloud VPC (all major cloud providers). Contact the Scaleout team for more information.

Support

Community support in available in our Discord server.

Options are available for Enterprise support.

Making contributions

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

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}
}

License

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

Use of FEDn Studio (SaaS) is subject to the Terms of Use.