Refactor `FederatedServer` and `FederatedClient` code.
All threads resolved!
A GitLab upgrade is scheduled for Monday, May 12, 2025. The service will be unavailable for a few minutes in the morning. We'll keep you posted on the progress of the upgrade on the Mattermost channel: https://mattermost.inria.fr/devel/channels/gitlab. We recommend that you do not work on the platform until an announcement indicates that maintenance is complete.
This Merge Request implements a number of revisions to the declearn.main
submodule and most importantly to the FederatedClient
and FederatedServer
classes, that aim at making the code easier to read, maintain, test and override, as well as making it more end-user-friendly.
Most of these changes were first implemented on a working branch as part of the effort towards implementing Differential Privacy in declearn (see MR !11 (merged)). A combination of git cherry-picking and of further implementation efforts were used to make up the current MR, that paves the way towards merging the already-developed local DP features within the revised code.
Summary of the modifications implemented here:
Implement some automation tools to wrap up configurations:
TomlConfig
ABC, that enables writing heavy parameter containers and parsing TOML files.Revise FederatedServer
:
FLRunConfig
based on TomlConfig
, that wraps together server-side "run" method parameters.declearn.main.config
submodule.Revise FederatedClient
:
TrainingManager
class (under declearn.main.utils
).epochs=None, steps=...
training constraints would result in an infinite loop.