Implementing hyperparameters exchange for declearn optimizers
This task is about finding out an appropriate way to deal with declearn optimizers hyperparameters sent through the network.
In declearn, optimizer hyperparameters are sent through collect_aux_var
method, and received / parsed through process_aux_var
In FedBioMed, there are 2 ways to sent hyperparameters (more generally speaking information) between Nodes and Researcher:
- through MQTT message broker (JSON format): this is for small messages/ piece of information, like sharing a few values
- through file system exchange: this is for large messages / piece of information, such as model parameters or scaffold 's correction state
The decision of how to send messages in FedBioMed should be defined by the developer somehow - it should be hard-coded, and not just based on the size of the piece of information exchanged
The goal of this task is to:
-
decide which object has the responsibility to send such information (Aggregator class in Fed-BioMed?) -
find a way to detail in Fed-BioMed how parameters required by declearn optimizers should be sent - it could be a Enum class that specify which parameters are required, that is consulted before sending messages for instance -
create interface / wrapper to use declearn 's optimizers collect_aux_var
andprocess_aux_var
methods
Assignee can detail in this issue proposals that can be discussed and acknowledged by Fed-BioMed team