Code Monkey home page Code Monkey logo

openfl's Introduction

Open Federated Learning (OpenFL) - An Open-Source Framework For Federated Learning

PyPI - Python Version Continuous Integration Documentation Status Downloads DockerHub PyPI version License Citation Open In Colab

OpenFL is a Python 3 framework for Federated Learning. OpenFL is designed to be a flexible, extensible and easily learnable tool for data scientists. OpenFL is hosted by Intel, aims to be community-driven, and welcomes contributions back to the project.

Installation

You can simply install OpenFL from PyPI:

$ pip install openfl

For more installation options check out the online documentation.

Getting Started

OpenFL enables data scientists to set up a federated learning experiment following one of the workflows:

  • Director-based Workflow: Setup long-lived components to run many experiments in series. Recommended for FL research when many changes to model, dataloader, or hyperparameters are expected

  • Aggregator-based Workflow: Define an experiment and distribute it manually. All participants can verify model code and FL plan prior to execution. The federation is terminated when the experiment is finished

The quickest way to test OpenFL is to follow our tutorials.
Read the blog post explaining steps to train a model with OpenFL.
Check out the online documentation to launch your first federation.

Requirements

  • Ubuntu Linux 16.04 or 18.04.
  • Python 3.6+ (recommended to use with Virtualenv).

OpenFL supports training with TensorFlow 2+ or PyTorch 1.3+ which should be installed separately. User can extend the list of supported Deep Learning frameworks if needed.

Project Overview

What is Federated Learning

Federated learning is a distributed machine learning approach that enables collaboration on machine learning projects without having to share sensitive data, such as, patient records, financial data, or classified information. The minimum data movement needed across the federation is solely the model parameters and their updates.

Federated Learning

Background

OpenFL builds on a collaboration between Intel and the University of Pennsylvania (UPenn) to develop the Federated Tumor Segmentation (FeTS, www.fets.ai) platform (grant award number: U01-CA242871).

The grant for FeTS was awarded to the Center for Biomedical Image Computing and Analytics (CBICA) at UPenn (PI: S. Bakas) from the Informatics Technology for Cancer Research (ITCR) program of the National Cancer Institute (NCI) of the National Institutes of Health (NIH).

FeTS is a real-world medical federated learning platform with international collaborators. The original OpenFederatedLearning project and OpenFL are designed to serve as the backend for the FeTS platform, and OpenFL developers and researchers continue to work very closely with UPenn on the FeTS project. An example is the FeTS-AI/Front-End, which integrates UPenn’s medical AI expertise with Intel’s framework to create a federated learning solution for medical imaging.

Although initially developed for use in medical imaging, OpenFL designed to be agnostic to the use-case, the industry, and the machine learning framework.

You can find more details in the following articles:

Supported Aggregation Algorithms

Algorithm Name Paper PyTorch implementation TensorFlow implementation Other frameworks compatibility How to use
FedAvg McMahan et al., 2017 docs
FedProx Li et al., 2020 docs
FedOpt Reddi et al., 2020 docs
FedCurv Shoham et al., 2019 docs

Support

Please join us for our bi-monthly community meetings starting December 1 & 2, 2022!
Meet with some of the Intel team members behind OpenFL.
We will be going over our roadmap, open for Q&A, and welcome idea sharing.

2-time slots available:

Europe Occurs every 2 months on the first Thursday of that month, 6 pm
https://intel.zoom.us/j/96858990725?pwd=ODJRVUhXNGNQU2YySTFqRi9qRXdtUT09
Meeting ID: 968 5899 0725
Passcode: 157568

Asia Pacific Occurs every 2 months on the first Friday of that month, 10 AM GMT+8
https://intel.zoom.us/j/98930263828?pwd=VkhIbVBtTG9xaHZCZ2dQNUdYSWpydz09
Meeting ID: 989 3026 3828
Passcode: 774320

See you there!

We also always welcome questions, issue reports, and suggestions via:

License

This project is licensed under Apache License Version 2.0. By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms.

Citation

@article{openfl_citation,
	author={Foley, Patrick and Sheller, Micah J and Edwards, Brandon and Pati, Sarthak and Riviera, Walter and Sharma, Mansi and Moorthy, Prakash Narayana and Wang, Shi-han and Martin, Jason and Mirhaji, Parsa and Shah, Prashant and Bakas, Spyridon},
	title={OpenFL: the open federated learning library},
	journal={Physics in Medicine \& Biology},
	url={http://iopscience.iop.org/article/10.1088/1361-6560/ac97d9},
	year={2022},
	doi={10.1088/1361-6560/ac97d9},
	publisher={IOP Publishing}
}

openfl's People

Contributors

psfoley avatar einse57 avatar itrushkin avatar alexey-gruzdev avatar aleksandr-mokrov avatar tonyreina avatar github-actions[bot] avatar mansishr avatar igor-davidyuk avatar snyk-bot avatar alexey-khorkin avatar dmitryagapov avatar dependabot[bot] avatar viktoriiaromanova avatar soda480 avatar sun1lach avatar kshannon avatar maradionov avatar walteriviera avatar dl8 avatar katerina-merkulova avatar operepel avatar sarthakpati avatar mkurisoo avatar masterskepticista avatar alexsandruss avatar olegov99 avatar karol-brejna-i avatar gresliebear avatar tortoiseham 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.