Share this post
The Flower team is excited to announce the release of Flower 1.20 stable, packed with new updates! 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.
Thanks to our contributors
We would like to give our special thanks to all the contributors who made the new version of Flower possible (in git shortlog order):
Charles Beauville, Chong Shen Ng, Daniel J. Beutel, Daniel Nata Nugraha, Dimitris Stripelis, Heng Pan, Javier, Kumbham Ajay Goud, Robert Steiner, William Lindskog, Yan Gao
What's new?
-
Send/receive arbitrarily large models (#5552, #5550, #5600, #5611, #5614, #5551)
Flower 1.20 can send and receive arbitrarily large models like LLMs, way beyond the 2GB limit imposed by gRPC. It does so by chunking messages sent and received. The best part? This happens automatically without the user having to do anything.
-
Implement object-based messaging between SuperNode and ClientApp (#5540, #5577, #5581, #5582, #5583, #5584, #5585, #5586, #5587, #5589, #5590, #5592, #5595, #5597, #5598, #5599, #5602, #5604, #5605, #5606, #5607, #5609, #5613, #5616, #5624, #5645)
Redesigns the messaging system to enable object-based communication between the SuperNode and ClientApp, replacing the previous message-coupled design. Introduces new RPCs and enhances the ClientAppIo and Fleet APIs to faciliate better object storage in SuperNode and decouple ObjectStore from Message, improving maintainability and extensibility. Several refactorings improve modularity, naming consistency, and model weight streaming.
-
Refactor SuperNode to use NodeState exclusively (#5535, #5536, #5537, #5541, #5542, #5610, #5628)
Refactors SuperNode to rely solely on NodeState for managing all information, decoupling internal components for improved maintainability and clearer state handling. RPCs of the ClientAppIo API have been refactored accordingly, laying the groundwork for future concurrent ClientApps support.
-
Enforce maximum size limit for FAB files (#5493)
Limits the size of FAB files to a maximum of 10MB to prevent oversized artifacts. Developers can reduce FAB size by excluding unnecessary files via the .gitignore file in the Flower app directory.
-
Add CatBoost federated learning quickstart example (#5564)
This example shows how to use CatBoost with Flower for federated binary classification on the Adult Census Income dataset. It applies a tree-based bagging aggregation method. View the example for more details.
-
Fix Windows path issue in FAB builds (#5608)
Updates the way FAB files represent relative paths to their internal files to ensure consistency across different operating systems. This fixes an issue where a FAB built on Windows would fail integrity checks when run on UNIX-based systems (e.g., Ubuntu).
-
Add explainer for pyproject.toml configuration (#5636)
Adds a guide explaining how to configure a Flower app using its pyproject.toml file. The documentation is available here.
-
Improve flwr new templates with TOML comments and README links (#5635)
Adds comments to the generated pyproject.toml and a new section in the README.md, both linking to the TOML explainer.
-
Warn when running Ray backend on Windows and update simulation guide (#5579)
Logs a warning when using the Ray backend for simulation on Windows. Updates the simulation guide to include a corresponding note about limited Windows support.
-
Add Helm deployment guide (#5637)
The documentation now includes a comprehensive guide for deploying Flower SuperLink and SuperNode using Helm charts. For full instructions, refer to the Helm Guide.
-
Add docs for user authentication and audit logging (#5630, #5643, #5649)
Introduces documentation for configuring user authentication (User Authentication Guide) and audit logging (Audit Logging Guide) in Flower.
-
Support gRPC health check by default (#5591)
-
Improve and update documentation (#5558, #5603, #5538, #5626, #5566, #5553, #5588, #5549, #5618, #5612, #5646)
-
General improvements (#5543, #5594, #5623, #5615, #5629, #5571, #5617, #5563, #5620, #5619, #5546, #5601, #5641, #5555, #5533, #5548, #5557, #5565, #5554, #5621, #5644, #5576, #5648)
As always, many parts of the Flower framework and quality infrastructure were improved and updated.
Incompatible changes
-
Remove non-grpc-bidi transport support from deprecated start_client (#5593)
Drops support for non-grpc-bidi transport in the deprecated start_client API. Pleaes use flower-supernode instead.
Share this post