Skip to content

Python library for serverless Federated Learning experiments.

License

Notifications You must be signed in to change notification settings

globus-labs/FLoX-prototype

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5cf99b3 · Mar 17, 2023
Mar 17, 2023
Mar 17, 2023
Oct 30, 2022
Jan 8, 2022
Mar 7, 2023
Oct 30, 2022
Nov 23, 2022
Dec 7, 2022
Oct 30, 2022
Oct 29, 2022
Mar 15, 2023
Feb 23, 2023
Apr 20, 2022
Dec 6, 2022

Repository files navigation

FLoX - Federated Learning on funcX

Documentation Status Apache Licence V2.0

FLoX (Federated Learning on funcX) is a Python library for serverless Federated Learning experiments. FLoX makes it easy and fast to set up your FL infrastructure, allowing you to start running FL workflows in under 5 minutes. Follow our Quickstart tutorial and examples to get started! You can read the associated paper here.

Quickstart

To get started with FLoX, check out this Google Colab tutorial.

Documentation Status

Installation

Controller is a device from which Federated Learning is facilitated, such as your laptop. Endpoints are devices that participate in Federated Learning, such as Raspberry Pis.

Use the package manager pip to install flox on the Controller:

(.venv) $ pip install pyflox

To be able to include your endpoints into the Federated Learning process, you need to install funcx-endpoint on the endpoints:

(.endpoint_venv) $ python3 -m pipx install funcx_endpoint

Finally, install compatible versions of PyTorch or Tensorflow on both the Controller and endpoints. As of now, FLoX supports Tensorflow and PyTorch, although you can add support for your frameworks by creating a new ModelTrainer. See flox.logic and examples of ModelTrainers in flox.model_trainers.

Note: funcX-endpoint is only supported on Linux. FLoX Controller functionality is supported on MacOS, Linux and Windows.

Contributing to FLoX

Contributions are welcome. Please see CONTRIBUTING.md.

Documentation

Complete documentation for FLoX is available here.

Citation

If you publish work that uses FLoX, please cite FLoX as follows:

@INPROCEEDINGS{kotsehub_flox_2022,
author={Kotsehub, Nikita and Baughman, Matt and Chard, Ryan and Hudson, Nathaniel and Patros, Panos and Rana, Omer and Foster, Ian and Chard, Kyle}, booktitle={2022 IEEE 18th International Conference on e-Science (e-Science)}, title={FLoX: Federated Learning with FaaS at the Edge}, year={2022}, volume={}, number={}, pages={11-20}, doi={10.1109/eScience55777.2022.00016}}