Skip to content

0.17.0

Compare
Choose a tag to compare
@danieljanes danieljanes released this 24 Sep 07:50
· 2451 commits to main since this release
d963b39

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 and simulation_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)

  • 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

    • Improved advanced TensorFlow code example (769)
    • Warning when min_available_clients is misconfigured (830)
    • Improved gRPC server docs (841)
    • Improved error message in NumPyClient (851)
    • Improved PyTorch quickstart code example (852)

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 to start_server.

  • Renamed q-FedAvg strategy (802)

    The strategy named QffedAvg was renamed to QFedAvg 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 to simulation_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.