flower  by adap

Federated AI framework for customizable system building

created 5 years ago
6,117 stars

Top 8.6% on sourcepulse

GitHubView on GitHub
Project Summary

Flower is a framework for building customizable and extendable federated AI systems, designed for researchers and engineers. It simplifies the implementation of federated learning across diverse machine learning frameworks, enabling collaborative model training without centralizing sensitive data.

How It Works

Flower provides a flexible, framework-agnostic approach to federated learning. Its core design allows users to define custom client and server logic, enabling a wide range of federated learning strategies and algorithms. This extensibility supports integration with popular ML frameworks like PyTorch, TensorFlow, and scikit-learn, as well as specialized libraries for areas like robotics and medical imaging.

Quick Start & Requirements

  • Install: pip install flwr
  • Prerequisites: Python 3.7+. Framework-specific examples may require additional installations (e.g., PyTorch, TensorFlow).
  • Resources: Minimal for basic setup; resource requirements scale with model complexity and dataset size.
  • Docs: Flower Docs
  • Quickstarts: TensorFlow, PyTorch, Hugging Face

Highlighted Details

  • Supports a broad spectrum of ML frameworks including PyTorch, TensorFlow, Hugging Face Transformers, JAX, and scikit-learn.
  • Features "Flower Baselines," a collection of reproducible federated learning experiments from research publications.
  • Offers numerous usage examples, from basic quickstarts to advanced scenarios like federated fine-tuning of LLMs and vision transformers.
  • Includes tutorials on privacy and security in federated learning.

Maintenance & Community

Flower is actively developed by a community of researchers and engineers. Community contributions are welcomed. The project maintains a Slack channel for community interaction.

Licensing & Compatibility

Flower is released under the Apache 2.0 license, which permits commercial use and integration with closed-source projects.

Limitations & Caveats

While framework-agnostic, users must manage framework-specific dependencies. The breadth of supported frameworks means some quickstarts or examples might be more mature than others.

Health Check
Last commit

1 day ago

Responsiveness

1+ week

Pull Requests (30d)
99
Issues (30d)
2
Star History
315 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.