0.17.0
What's new?
-
Experimental virtual client engine (781 790 791)
One of Flower's goals is to enable research at scale. This release enables a first (experimental) peek at a major new feature, codenamed the virtual client engine. Virtual clients enable simulations that scale to a (very) large number of clients on a single machine or compute cluster. The easiest way to test the new functionality is to look at the two new code examples called
quickstart_simulation
andsimulation_pytorch
.The feature is still experimental, so there's no stability guarantee for the API. It's also not quite ready for prime time and comes with a few known caveats. However, those who are curious are encouraged to try it out and share their thoughts.
-
New built-in strategies (828 822)
- FedYogi - Federated learning strategy using Yogi on server-side. Implementation based on https://arxiv.org/abs/2003.00295
- FedAdam - Federated learning strategy using Adam on server-side. Implementation based on https://arxiv.org/abs/2003.00295
-
New PyTorch Lightning code example (617)
-
New Variational Auto-Encoder code example (752)
-
New scikit-learn code example (748)
-
New experimental TensorBoard strategy (789)
-
Minor updates
Incompatible changes:
-
Disabled final distributed evaluation (800)
Prior behaviour was to perform a final round of distributed evaluation on all connected clients, which is often not required (e.g., when using server-side evaluation). The prior behaviour can be enabled by passing
force_final_distributed_eval=True
tostart_server
. -
Renamed q-FedAvg strategy (802)
The strategy named
QffedAvg
was renamed toQFedAvg
to better reflect the notation given in the original paper (q-FFL is the optimization objective, q-FedAvg is the proposed solver). Note the the original (now deprecated)QffedAvg
class is still available for compatibility reasons (it will be removed in a future release). -
Deprecated and renamed code example
simulation_pytorch
tosimulation_pytorch_legacy
(791)This example has been replaced by a new example. The new example is based on the experimental virtual client engine, which will become the new default way of doing most types of large-scale simulations in Flower. The existing example was kept for reference purposes, but it might be removed in the future.