Allow Researcher to specify the Node weights for aggregation
This feature has been proposed following the discussion in issue #420 (closed) and MR !177 (merged)
As a Researcher, i want to be able to set weights when performing aggregation regarding Nodes datasets specificities (dataset size, number of data elapsed, ...) or to provide my own weights
This feature is about creating a new argument in the Experiment
or Strategy
class that allows Researcher
to define weights that would be used for computing weighted sum needed for aggregation: it indicates "how much" model weights account for the global model
- we want a default method that computes weights regarding the number of data processed by each Node
- we want to let the Researcher be able to specify: 1. methods to compute the weights and 2. to define its own weights (what kind of object should we use for that -- an object mapping node_id and weights) 3. passes a custom method (callable) that returns such mapping -- we should make such feature robust to Node drop out
- how should we handle case where Researcher decide to change its weights during an experiment? it is important to keep same weights through the training - trigger a warning/error?
- handle case when there is a node_id missing in the mapping -> should we discard such node ?
This also raises some issues discussed on MR !177 (merged)