Skip to main content

Federated Learning for the Edge

Project description

Open Federated Learning (formerly known as OpenFL) is a Python framework for Federated Learning. It enables organizations to train and validate machine learning models on sensitive data. It increases privacy by allowing collaborative model training or validation across local private datasets without ever sharing that data with a central server. OpenFL is hosted by The Linux Foundation.

Looking for the Open Flash Library project also referred to as OpenFL? Find it here!

Overview

Federated Learning is a distributed machine learning approach that enables collaborative training and evaluation of models without sharing sensitive data such as, personal information, patient records, financial data, or classified information. The minimum data movement needed across a Federated Training experiment, is solely the model parameters and their updates. This is in contrast to a Centralized Learning regime, where all data needs to be moved to a central server or a datacenter for massively parallel training.

Federated Learning

Open Federated Learning builds on a collaboration between Intel and the Bakas lab at the University of Pennsylvania (UPenn) to develop the Federated Tumor Segmentation (FeTS) platform (grant award number: U01-CA242871).

The grant for FeTS was awarded from the Informatics Technology for Cancer Research (ITCR) program of the National Cancer Institute (NCI) of the National Institutes of Health (NIH), to Dr. Spyridon Bakas (Principal Investigator) when he was affiliated with the Center for Biomedical Image Computing and Analytics (CBICA) at UPenn and now heading the Division of Computational Pathology at Indiana University (IU).

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

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

For more information, here is a list of relevant publications.

Installation

Install via PyPI (latest stable release):

pip install -U openfl

Or via conda:

conda install conda-forge::openfl

For more installation options, checkout the installation guide.

Features

Ways to set up an FL experiment

OpenFL supports two ways to set up a Federated Learning experiment:

  • TaskRunner API: This API uses short-lived components like the Aggregator and Collaborator, which terminate at the end of an FL experiment. TaskRunner supports mTLS-based secure communication channels, and TEE-based confidential computing environments.

  • Workflow API: This API allows for experiments beyond the traditional horizontal federated learning paradigm using a pythonic interface. It allows an experiment to be simulated locally, and then to be seamlessly scaled to a federated setting by switching from a local runtime to a distributed, federated runtime.

    Note: This is experimental capability.

Framework Compatibility

OpenFL is backend-agnostic. It comes with support for popular NumPy-based ML frameworks like TensorFlow, PyTorch and Jax which should be installed separately. Users may extend the list of supported backends if needed.

Aggregation Algorithms

Open Federated Learning supports popular aggregation algorithms out-of-the-box, with more algorithms coming soon.

Reference PyTorch backend TensorFlow backend NumPy backend
FedAvg McMahan et al., 2017 yes yes yes
FedOpt Reddi et al., 2020 yes yes yes
FedProx Li et al., 2020 yes yes -
FedCurv Shoham et al., 2019 yes - -

Contributing

We welcome contributions! Please refer to the contributing guidelines.

The OpenFL community is expanding, and we encourage you to join us. Connect with other enthusiasts, share knowledge, and contribute to the advancement of federated learning by joining our Slack channel.

Stay updated by subscribing to the Open Federated Learning mailing list: openfl-announce@lists.lfaidata.foundation.

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

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openfl_nightly-1.9.0.dev202508290.tar.gz (4.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openfl_nightly-1.9.0.dev202508290-py3-none-any.whl (5.1 MB view details)

Uploaded Python 3

File details

Details for the file openfl_nightly-1.9.0.dev202508290.tar.gz.

File metadata

File hashes

Hashes for openfl_nightly-1.9.0.dev202508290.tar.gz
Algorithm Hash digest
SHA256 7144d4b9bf46bbc82d15026c2cf772c306f9a94792b461ec4c32fc71f092d8e2
MD5 66c5f8dc1a30be1b2c6b5232707cf54d
BLAKE2b-256 66b04ebec487a2f83e7af2163b287aaad1c8f91a1c04b2dfa231c2b6cece8f26

See more details on using hashes here.

File details

Details for the file openfl_nightly-1.9.0.dev202508290-py3-none-any.whl.

File metadata

File hashes

Hashes for openfl_nightly-1.9.0.dev202508290-py3-none-any.whl
Algorithm Hash digest
SHA256 51e32171304a5722c1f60ebdd08fab9d1a62aa282e4e6a2185714bb048b32c9d
MD5 1bf1865d4891ce067e7741b426f56f44
BLAKE2b-256 bbc51e76e4bd72a512b5d98cfa12d01038e7539a3cae0f2d460de268aaf6b2e4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page