The Flower Team is excited to announce the release of Flower 1.4 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, Chenyang Ma (Danny), Daniel J. Beutel, Edoardo, Gautam Jajoo, Iacob-Alexandru-Andrei, JDRanpariya, Jean Charle Yaacoub, Kunal Sarkhel, L. Jiang, Lennart Behme, Max Kapsecker, Michał, Nic Lane, Nikolaos Episkopos, Ragy, Saurav Maheshkar, Semo Yang, Steve Laskaridis, Steven Hé (Sīchà ng), Taner Topal
What's new?
-
Introduce support for XGBoost (FedXgbNnAvg strategy and example) (#1694, #1709, #1715, #1717, #1763, #1795)
XGBoost is a tree-based ensemble machine learning algorithm that uses gradient boosting to improve model accuracy. We added a new FedXgbNnAvg strategy, and a code example that demonstrates the usage of this new strategy in an XGBoost project.
-
Introduce iOS SDK (preview) (#1621, #1764)
This is a major update for anyone wanting to implement Federated Learning on iOS mobile devices. We now have a swift iOS SDK present under src/swift/flwr that will facilitate greatly the app creating process. To showcase its use, the iOS example has also been updated!
-
Introduce new "What is Federated Learning?" tutorial (#1657, #1721)
A new entry-level tutorial in our documentation explains the basics of Fedetated Learning. It enables anyone who's unfamiliar with Federated Learning to start their journey with Flower. Forward it to anyone who's interested in Federated Learning!
-
Introduce new Flower Baseline: FedProx MNIST (#1513, #1680, #1681, #1679)
This new baseline replicates the MNIST+CNN task from the paper Federated Optimization in Heterogeneous Networks (Li et al., 2018). It uses the FedProx strategy, which aims at making convergence more robust in heterogeneous settings.
-
Introduce new Flower Baseline: FedAvg FEMNIST (#1655)
This new baseline replicates an experiment evaluating the performance of the FedAvg algorithm on the FEMNIST dataset from the paper LEAF: A Benchmark for Federated Settings (Caldas et al., 2018).
-
Introduce (experimental) REST API (#1594, #1690, #1695, #1712, #1802, #1770, #1733)
A new REST API has been introduced as an alternative to the gRPC-based communication stack. In this initial version, the REST API only supports anonymous clients. Please note: The REST API is still experimental and will likely change significantly over time.
-
Improve the (experimental) Driver API (#1663, #1666, #1667, #1664, #1675, #1676, #1693, #1662, #1794)
The Driver API is still an experimental feature, but this release introduces some major upgrades. One of the main improvements is the introduction of an SQLite database to store server state on disk (instead of in-memory). Another improvement is that tasks (instructions or results) that have been delivered will now be deleted. This greatly improves the memory efficiency of a long-running Flower server.
-
Fix spilling issues related to Ray during simulations (#1698)
While running long simulationa, ray was sometimes spilling huge amounts of data that would make the training unable to continue. This is now fixed! 🎉
-
Add new example using TabNet and Flower (#1725)
TabNet is a powerful and flexible framework for training machine learning models on tabular data. We now have a federated example using Flower: https://github.com/adap/flower/tree/main/examples/tabnet.
-
Add new how-to guide for monitoring simulations (#1649)
We now have a documentation guide to help users monitor their performance during simulations.
-
Add training metrics to History object during simulations (#1696)
The fit_metrics_aggregation_fn can be used to aggregate training metrics, but previous releases did not save the results in the History object. This is now the case!
-
General improvements (#1659, #1646, #1647, #1471, #1648, #1651, #1652, #1653, #1659, #1665, #1670, #1672, #1677, #1684, #1683, #1686, #1682, #1685, #1692, #1705, #1708, #1711, #1713, #1714, #1718, #1716, #1723, #1735, #1678, #1750, #1753, #1736, #1766, #1760, #1775, #1776, #1777, #1779, #1784, #1773, #1755, #1789, #1788, #1798, #1799, #1739, #1800, #1804, #1805)
Flower received many improvements under the hood, too many to list here.
Incompatible changes
None