Flower: A Friendly Federated Learning Framework
Federated learning is an innovative approach to machine learning where data is decentralized, meaning it's stored on local devices rather than being uploaded to a central server. This approach enhances privacy and reduces the risk of data breaches. Flower, abbreviated as flwr
, is a framework designed to make developing federated learning systems easy and accessible.
Key Features of Flower
Flower is built on several guiding principles that make it stand out in the world of federated learning:
-
Customizable: Every federated learning application can be unique, based on the specific requirements of the users. Flower offers flexibility, allowing for various configurations to accommodate different needs.
-
Extendable: Born from a research project at the University of Oxford, Flower is established with an emphasis on research and innovation. It's structured such that its components can be extended or customized, facilitating the development of cutting-edge systems.
-
Framework-agnostic: Flower can work with any machine learning framework, providing compatibility with popular ones like PyTorch, TensorFlow, Hugging Face Transformers, PyTorch Lightning, scikit-learn, and even raw NumPy for those who prefer a hands-on approach with their computations.
-
Understandable: The maintainability of Flower is a priority. The code is written clearly, inviting the community to read, understand, and contribute to its development.
Federated Learning Tutorials
Flower is committed to making federated learning available to everyone, and to support this goal, it offers a series of tutorials:
- What is Federated Learning?: This introductory tutorial covers the basics of decentralized learning.
- An Introduction to Federated Learning: A step-by-step guide to getting started with federated learning using PyTorch.
- Using Strategies in Federated Learning: Details the application of different strategies within federated systems.
- Building Strategies for Federated Learning: Provides insights into creating custom strategies from scratch.
- Custom Clients for Federated Learning: Explains how to personalize client components within the federated learning framework.
These tutorials are complemented by topics on privacy, security, and scaling in federated learning, ensuring users have a comprehensive understanding.
Quickstart Documentation
For quick initiation, Flower offers a detailed documentation section. This includes guides for installation and several quickstarts tailored to different frameworks such as TensorFlow, PyTorch, Hugging Face, JAX, iOS, Android, and more. Each guide helps users rapidly deploy federated learning models on their chosen platforms.
Flower Baselines
Flower Baselines is a collection of projects contributed by the community. These projects aim to replicate experiments from renowned federated learning publications, providing a foundation for researchers to evaluate new ideas swiftly. By contributing new projects as baselines, researchers can make their work more visible and facilitate further advancements in the field.
Some notable baselines include:
- DASHA
- DepthFL
- FedBN
- FedMeta
- FedMLB
- FedPer
- FedProx
- FedNova
- HeteroFL
Engage with the Flower Community
The success of Flower heavily relies on its active community engagement. Users and developers are encouraged to participate through various platforms, including their official website, blog, documentation, and by joining the conversation on Slack.
Flower is more than just a federated learning framework; it is a community-driven initiative that brings together researchers, developers, and enthusiasts to advance the field of federated learning. Whether you're just getting started or you're a seasoned researcher, Flower provides the resources and community support to further your projects and knowledge in federated learning.