globus-labs / FLoX-prototype

Python library for serverless Federated Learning experiments.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Python library for serverless Federated Learning experiments.

License:Apache License 2.0


Languages

Language:Python 57.2%Language:Jupyter Notebook 42.5%Language:Makefile 0.3%