Published

Announcing Flower 1.0

Photo of Daniel J. Beutel
Daniel J. Beutel
Co-Creator of Flower

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.

Flower Community

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?

Heatmap showing how the Flower GitHub stargazers are distributed all over the globe

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.

Highlights

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.

Next steps

There has never been a better time to get started with federated learning and Flower:

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.