Closed jafermarq closed 10 months ago
Hi @jafermarq I would like to implement the FedNova baseline in the Flower framework.
Contribution plan
The main contribution will be to implement the Normalized Averaging technique proposed in the paper. The standard techniques of FedAvg and FedProx can be construed as a special cases of this method by setting specific values of certain parameters(such as alpha). Hence implementation of this method would allow the community to compare performance of multiple averaging techniques from a single endpoint in case of heterogeneous datasets.
Further contribution will be to add support for multiple local client solvers(vanilla SGD, proximal SGD, SGD with momentum)
Experimentation/Datasets I plan to reproduce experiments proposed in the paper on the Synthetic(1,1) dataset (with alpha, beta = 1) and further on a Non-IID version of CIFAR-10 dataset. The experiments would involve performance comparison between FedAvg, FedProx and this work FedNova).
My Background I am currently a MSc Computer Science student at MILA-Quebec AI Institute, Montreal. It is one of the leading institutes in AI research. I am based in Canada and hence in the list of eligible countries.
Would love to discuss further and get started. I am on Flower slack as(@ ash, Aasheesh Singh)
Hi @ashdtu, it's great to hear you want to reproduce the results in FedNova. Also, thanks for the very complete message addressing all the points. Just one small clarification about your contribution plan is to replicate Figure 5 and Table 1 ?
Yes @jafermarq that's correct. Fig 5 corresponds to Synthetic(1,1) experiment and Table 1 for CIFAR 10 dataset.
Great! thanks for the clarification. I've ✅ all the points above for Steps 1 & 2 and add you as the assignee to this issue. I also moved this FedNova baseline to "In Progress". You can find first steps on how to start working on your baseline via the link in the What happens Next section in the issue description.
Looking forward to see FedNova in action!
Draft PR : https://github.com/adap/flower/pull/2179 for progress
Congratulations @ashdtu your baseline has been merged. We'll follow up with you soon to complete your Summer of Reproducibility journey 😄 !
FedNova
Do you want to work on this baseline?
What follows are the steps 1 & 2 in the Summer of Reproducibility instructions.
1. Join the Summer of Reproducibility program
#summer-of-reproducibility
.2. Define the scope of your contribution
[x] Check if you are eligible for a reward.
If where you are based is not on the list, please send us an email (
summer@flower.dev
) letting us know a bit about yourself (where are you currently based?, are you a university student? do you work at a public institution?). Please tell us the baselines you are interested in implementing (i.e. tell us your GitHub issue if you have crated one). We will reach back to you.What happens next?
[x] This item will be moved to the
In Progress
stage by a member of the Flower Team.[x] Follow the instructions for creating a new baseline which will guide you through the process step-by-step.
Is something wrong or not clear ?