Flower - A Friendly Federated Learning Framework
Website |
Blog |
Docs |
Conference |
Slack
Flower (flwr
) is a framework for building federated learning systems. The
design of Flower is based on a few guiding principles:
-
Customizable: Federated learning systems vary wildly from one use case to
another. Flower allows for a wide range of different configurations depending
on the needs of each individual use case.
-
Extendable: Flower originated from a research project at the Univerity of
Oxford, so it was build with AI research in mind. Many components can be
extended and overridden to build new state-of-the-art systems.
-
Framework-agnostic: Different machine learning frameworks have different
strengths. Flower can be used with any machine learning framework, for
example, PyTorch,
TensorFlow, Hugging Face Transformers, PyTorch Lightning, MXNet, scikit-learn, TFLite, or even raw NumPy
for users who enjoy computing gradients by hand.
-
Understandable: Flower is written with maintainability in mind. The
community is encouraged to both read and contribute to the codebase.
Meet the Flower community on flower.dev!
Documentation
Flower Docs:
Flower Usage Examples
A number of examples show different usage scenarios of Flower (in combination
with popular machine learning frameworks such as PyTorch or TensorFlow). To run
an example, first install the necessary extras:
Usage Examples Documentation
Quickstart examples:
Other examples:
Flower Baselines / Datasets
Experimental - curious minds can take a peek at baselines.
Flower is built by a wonderful community of researchers and engineers. Join Slack to meet them, contributions are welcome.
Citation
If you publish work that uses Flower, please cite Flower as follows:
@article{beutel2020flower,
title={Flower: A Friendly Federated Learning Research Framework},
author={Beutel, Daniel J and Topal, Taner and Mathur, Akhil and Qiu, Xinchi and Parcollet, Titouan and Lane, Nicholas D},
journal={arXiv preprint arXiv:2007.14390},
year={2020}
}
Please also consider adding your publication to the list of Flower-based publications in the docs, just open a Pull Request.
Contributing to Flower
We welcome contributions. Please see CONTRIBUTING.md to get
started!