Skip to content

Releases: makgyver/fluke

v0.8.1

Choose a tag to compare

@makgyver makgyver released this 11 Mar 04:21

Release v0.8.1

IMPORTANT: fluke is now in beta!

New features

  • The federation orchestrator is now the federated algorithm and not the server
  • Decentralized FL: base class for implementing a fully decentralized FL algorithm is now available (DecentralizedFL). Standard Gossip Learning (GossipDFL) has also been added.
  • Added TimedMessage class
  • Added Topology class
  • Added documentation on evaluation configuration
  • Added receive_all and has_message to Channel

Fixes

  • Fixed documentation issues
  • Fixed issue with the personalized model of personalized algorithms
  • Fixed GEAR hyper-paramaters setting
  • Fixed _last_round on Client which was off by 1

Deprecations

  • The fit and finalize methods of Server are now deprecated because the orchestration is now performed by the algorithm's class

v0.7.9

Choose a tag to compare

@makgyver makgyver released this 04 Jun 15:35
ed4263e

Release v0.7.9

This release fixes many minor issues and introduced multi-gpu parallel training for clients (experimental features).

New features

  • [Experimental] It is now possible to perform parallel clients training using multiple GPU (via torch.distributed)
  • Now the logging and the tracking of the evaluation performances are done using two different classes
  • The evaluation log now includes more information, like the support (number of clients involved in the computation of the mean/sum) and/or the round

Minor changes

  • Revised code formatting
  • Collection[Client] -> Sequence[Client]

Fixes

  • Fixed issue in FedProto related to the generator of client models
  • Fixed different sections in the documentation
  • Fixed issue with the logging of the evaluation performance

v0.7.8

Choose a tag to compare

@makgyver makgyver released this 21 May 11:52

Release notes 0.7.8

This release fixes many minor issues and introduced multi-gpu training for clients (experimental features).

New features and improvements

  • [Exprimental] It is now possible to perform the training client-side using multiple GPU (via torch.nn.DataParallel)
  • The channel now notify also when messages are sent/broadcasted
  • It is now possible to set a global logger in FlukeENV
  • All classes/methods related to the configuration is now in the submodule fluke.config

Major changes

  • Iterable -> Collection
  • No more server reference on the client
  • Receiver and sender of messages are no longer references to client/server but are identifiers (int/str). The server is identified with the string "server" and the client by its ID
  • _ObjectRef -> ObjectRef
  • Client/Server: no more _notify_xyz, but a single _notify with argument event

Fixes

  • Fixed issue on the Server that caused to select 0 clients
  • Fixed issue with clients-only when logging on wandb
  • Fixed code style and documentation
  • Fixed requirements.txt
  • Added a clean close to ClearMLLog

v0.7.4

Choose a tag to compare

@makgyver makgyver released this 06 May 15:48

Release notes 0.7.4

This release adds some improvements to and fix some minor issues

Fixed issues

  • Removed useless _load_from_cache from some clients
  • Other minor fixes including docs and tests

Improvements

  • Improved ClassificationEval that is now extensible with custom metrics
  • The fluke command accepts now overriding arguments (via hydra)
  • Added configuration validation with cerberus

New features

  • It is now possible to install fluke via Docker
  • Added notification for message sent, broadcasted and for the early stopping of the federation
  • Added DebugLog to have a more verbose logger
  • Added ConfigurationError to handle these types of errors

v0.7.2

Choose a tag to compare

@makgyver makgyver released this 18 Apr 14:41

Fixed issues

  • Fixed issue related to torch.device witth centralized and clients-only command
  • Fixed minor issues with the API documentation

Improvements

  • Improved start up speed
  • Improved some printing

New features

  • Added fluke ASCII art banner
  • Added possibility to early stop the federation
  • Added possibility to track custom value with the logger

v0.7.1

Choose a tag to compare

@makgyver makgyver released this 26 Mar 15:23

Fixed issues

  • Fixed issue with inmemory=false in the experiment configuration

New features

  • Added FlukeCache
  • Added FL algorithm FedLD
  • Added FL algorithm FAT
  • Added FL algorithm GEAR
  • Added client-side gradient clipping

Important modifications

  • ⚠️ From this version fluke does not support python <= 3.9
  • GeneralSettings is now FlukeENV
  • The arguments of the fluke commands are changed

v0.5.1

Choose a tag to compare

@makgyver makgyver released this 29 Jan 09:51

Fixed issues

  • Fixed issue with FEMNIST (#classes 64 -> 62) and an inefficiency on DataSplitter.assign
  • Fixed issue related to batch normalization layers

New features

  • Added option to unload models on disk to save memory (inmemory)
  • Added fine_tuning_epochs to clients so the fine-tuning is now possible with a custom number of local epochs
  • Added output_size argument to some nets
  • Added the possibility to pass arguments to build the model through the configuration (net_args option)
  • Added Saving options
  • Added FL algorithm DPFedAVG

v0.4.0

Choose a tag to compare

@makgyver makgyver released this 25 Nov 11:40

Fixed issues

  • Fixed FedNH, FedHP and FedProto
  • Fixed issues on Dirichlet data distribution when balanced=True
  • Removed the required output_size from the networks

New features

v0.3.4

Choose a tag to compare

@makgyver makgyver released this 04 Oct 15:30

Fixed issues

  • Fixed problem with the cuda:N setting. Now it works properly and selects the correct device.
  • Fixed warning related to the redundancy of wandb.require("core") in the last versions of the wand library

Known issues with torch

If you get the error AttributeError: module 'torch.serialization' has no attribute 'add_safe_globals' please upgrade your torch installation to the latest version.

Important note

Release 0.3.3 has been published and deleted right after due to an error!

v0.3.2

Choose a tag to compare

@makgyver makgyver released this 04 Oct 12:33

Fixed issues

  • Fixed problem with the validation of the eval configuration key
  • Fixed minor issue with AllLayerOutputModel class