The Flower Team is excited to announce the release of Flower 1.3 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.
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):
Adam Narozniak, Alexander Viala Bellander, Charles Beauville, Daniel J. Beutel, JDRanpariya, Lennart Behme, Taner Topal
What's new?
-
Add support for workload_id and group_id in Driver API (#1595)
The (experimental) Driver API now supports a workload_id that can be used to identify which workload a task belongs to. It also supports a new group_id that can be used, for example, to indicate the current training round. Both the workload_id and group_id enable client nodes to decide whether they want to handle a task or not.
-
Make Driver API and Fleet API address configurable (#1637)
The (experimental) long-running Flower server (Driver API and Fleet API) can now configure the server address of both Driver API (via --driver-api-address) and Fleet API (via --fleet-api-address) when starting:
flower-server --driver-api-address "0.0.0.0:8081" --fleet-api-address "0.0.0.0:8086"
Both IPv4 and IPv6 addresses are supported.
-
Add new example of Federated Learning using fastai and Flower (#1598)
A new code example (quickstart-fastai) demonstrates federated learning with fastai and Flower. You can find it here: quickstart-fastai.
-
Make Android example compatible with flwr >= 1.0.0 and the latest versions of Android (#1603)
The Android code example has received a substantial update: the project is compatible with Flower 1.0 and later, the UI received a full refresh, and the project is updated to be compatible with newer Android tooling.
-
Add new FedProx strategy (#1619)
This strategy is almost identical to FedAvg, but helps users replicate what is described in this paper. It essentially adds a parameter called proximal_mu to regularize the local models with respect to the global models.
-
Add new metrics to telemetry events (#1640)
An updated event structure allows, for example, the clustering of events within the same workload.
-
Add new custom strategy tutorial section (#1623)
The Flower tutorial now has a new section that covers implementing a custom strategy from scratch: Open in Colab
-
Add new custom serialization tutorial section (#1622)
The Flower tutorial now has a new section that covers custom serialization: Open in Colab
-
General improvements (#1638, #1634, #1636, #1635, #1633, #1632, #1631, #1630, #1627, #1593, #1616, #1615, #1607, #1609, #1608, #1603, #1590, #1580, #1599, #1600, #1601, #1597, #1595, #1591, #1588, #1589, #1587, #1573, #1581, #1578, #1574, #1572, #1586)
Flower received many improvements under the hood, too many to list here.
-
Updated documentation (#1629, #1628, #1620, #1618, #1617, #1613, #1614)
As usual, the documentation has improved quite a bit. It is another step in our effort to make the Flower documentation the best documentation of any project. Stay tuned and as always, feel free to provide feedback!
Incompatible changes
None