Giter Site home page Giter Site logo

jxlle / fedn Goto Github PK

View Code? Open in Web Editor NEW

This project forked from scaleoutsystems/fedn

0.0 0.0 0.0 296.06 MB

FEDn: A production-grade, open federated learning framework. This repository contains the open source Python framework, CLI and API.

Home Page: https://fedn.readthedocs.io

License: Apache License 2.0

Shell 0.60% Python 98.86% Smarty 0.11% Dockerfile 0.43%

fedn's Introduction

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

Core FL framework (this repository):

  • Tiered federated learning architecture enabling massive scalability and resilience.
  • Support for any ML framework (examples for 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.
  • Implement clients in any language (Python, C++, Kotlin etc.)
  • No open ports needed client-side.
  • Flexible deployment of server-side components using Docker / docker compose.

FEDn Studio - From development to FL in production:

  • Secure deployment of server-side / control-plane on Kubernetes.
  • UI with dashboards for orchestrating experiments and visualizing results
  • Team features - collaborate with other users in shared project workspaces.
  • Features for the trusted-third party: Manage access to the FL network, FL clients and training progress.
  • REST API for handling experiments/jobs.
  • View and export logging and tracing information.
  • Public cloud, dedicated cloud and on-premise deployment options.

Available clients:

Getting started

Get started with FEDn in two steps:

  1. Sign up for a Free FEDn Studio account
  2. Take the Quickstart tutorial

FEDn Studio (SaaS) is free for academic use and personal development / small-scale testing and exploration. For users and teams requiring additional project resources, dedicated support or other hosting options, explore our plans.

Documentation

More details about the architecture, deployment, and how to develop your own application and framework extensions are found in the documentation:

FEDn Studio Deployment options

Several hosting options are available to suit different project settings.

  • Public cloud (multi-tenant): Managed multi-tenant deployment in public cloud.
  • Dedicated cloud (single-tenant): Managed, dedicated deployment in a cloud region of your choice (AWS, GCP, Azure, managed Kubernetes)
  • Self-managed: Set up a self-managed deployment in your VPC or on-premise Kubernets cluster using Helm Chart and container images provided by Scaleout.

Contact the Scaleout team for information.

Support

Community support is available in our Discord server.

Options are available for Dedicated/custom 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 is subject to the Terms of Use.

fedn's People

Contributors

ahellander avatar morganekmefjord avatar wrede avatar aitmlouk avatar mattiasakesson avatar dstoyanova avatar carmat88 avatar niklastheman avatar stefanhellander avatar li-ju666 avatar sztoor avatar dependabot[bot] avatar viktorvaladi avatar prasi372 avatar danielzak avatar olas avatar frankjonasmoelle avatar etesami avatar eriks-aidotse avatar mcapuccini avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.