Announcing Flower 1.0
The Flower Team is excited to announce the release of Flower 1.0 stable. Flower is a friendly framework for collaborative AI and data science. It makes novel approaches such as federated learning, federated evaluation, federated analytics, and fleet learning accessible to a wide audience of researchers and engineers.
This important milestone would not have been possible without the amazing Flower Community. Flower 1.0 is the result of countless conversations with users, collaborators, researchers, and industry practitioners. Through them, Flower has found its way into all kinds of industries, from medical to finance, from automotive to pharmaceuticals, from manufacturing to mobile devices.
It's true. The one thing we're most excited about isn't even the technology. It's the people and how they use Flower to redefine what's possible in their respective industry and research domains.
The Flower community is incredibly diverse, a quickly growing and globally distributed federation of wonderful individuals and organizations. Here's a heat map showing where our GitHub stargazers are coming from. Isn't it beautiful?
We would like to give our special thanks to all the people who have contributed to Flower since its inception. Thank you to all users, researchers, engineers, collaborators, maintainers, and other community members who use Flower, write code, fix docs, create GitHub issues, participate in discussions, suggest improvements, answer questions, and publish blog posts. You help shape Flower and make privacy-enhancing collaborative AI accessible to all.
Flower 1.0 comes with major new features and a ton of small API cleanups, but the most important change is a commitment to Python API stability. Other highlights of Flower 1.0 include:
- The Virtual Client Engine is stable and supports custom Server implementations
- All Client/NumPyClient methods are optional
- get_parameters supports a configuration dictionary
- Many small API cleanups result in a more coherent developer experience
The full Flower 1.0 changelog provides more details about these and other changes. In addition to the release notes, there is also a guide that explains how to upgrade existing projects to Flower 1.0.
What does it mean for Flower to be 1.0?
Flower is the result of rapid iteration and experimentation. Sometimes this meant introducing backward-incompatible changes from one release to another. Over time, the API surface matured.
Given how widely Flower is used, we could have called it 1.0 a long while ago. But we didn't. We wanted to make sure that we get the user experience right and that we can support the stable API for a long time.
There has never been a better time to get started with federated learning and Flower:
- Join the Flower Slack to engage with our amazing community: Join Slack
- Work through the Flower tutorial on Google Colab (no installation required):
- Follow one of the Flower quickstart guides/examples: PyTorch, TensorFlow, JAX, Hugging Face, PyTorch Lightning, MXNet, scikit-learn
- Check out all the Flower code examples: Flower Code Examples on GitHub
- Accelerate your research using Flower Baselines: Flower Baselines
- Subscribe on YouTube to be notified of new videos: Flower on YouTube
- Watch the Flower Summit 2022 recordings: Flower Summit 2022
Join our mission
The Flower Team is hiring (remote, CET +/-1h). If you're an exceptional engineer (or student) excited about the future of collaborative AI, drop us a line.