adap / flower

Flower: A Friendly Federated Learning Framework
https://flower.ai
Apache License 2.0
4.84k stars 833 forks source link

FedSMOO #2017

Open jafermarq opened 1 year ago

jafermarq commented 1 year ago

FedSMOO

Do you want to work on this baseline?

🌻 Check everything about the Summer of Reproducibility on flower.dev/summer

All available baselines are listed in the Summer of Reproducibility Dashboard and also in the GitHub Issues with the summer-of-reproducibility label. The content is the same.

πŸ“ It is advised to complete these steps before your start working on your code. But if you can't wait to implement your baseline with Flower (we totally understand it πŸ˜„), please ensure you follow the steps on how to contribute a new baseline.

What follows are the steps 1 & 2 in the Summer of Reproducibility instructions.

1. Join the Summer of Reproducibility program

What happens next?

Is something wrong or not clear ?

kumar-devesh commented 1 year ago

Hi @jafermarq! I would like to work towards contributing FedSMOO to flower baselines.

Contribution Plan

Looking forward to working on this!

jafermarq commented 1 year ago

Hi @kumar-devesh , it's great to hear you want to participate in the Flower Summer of Reproducibility implementing FedSMOO. Your contribution plan is very ambitious! Are you sure that, with the time remaining for this initiative (it ends at the end of September) and the compute (i.e. GPUs) resources you have available, you can reproduce not only the FedSMOO rows in Table 1 but also those of the other methods you mention?

kumar-devesh commented 1 year ago

Might not be able to reproduce experiments for all but I would be able to run experiments for methods for which there is an open-sourced implementation like FedSAM and FedDyn. Compute resources should not be a problem @jafermarq.

jafermarq commented 1 year ago

@kumar-devesh, how about reducing the list of methods to FedAvg and FedDyn (but bear in mind it should be implemented with Flower and integrated with the rest of your codebase)? FedAvg is more like a reference (and that works better than FedAdam in Table 1) and FedDyn is a competitive baseline close to the proposed FedSMOO method.

kumar-devesh commented 1 year ago

Thanks for your suggestion @jafermarq, this sounds doable.

jafermarq commented 1 year ago

ok. Happy to have you then implementing FedSMOO with Flower. I have now βœ… all points in Step 1 & 2 above, adde you as the assignee to this GitHub issue and moved your baseline to In Progress stage. You can find how to start with the code following the link shown in the What happens next? section above. Please note that the code should follow the structure of the template directory we provided (as described in the guide). Also, the Flower Summer of Reproducibility runs until the end of September so you are advised to start with your codebase and then experiments to reproduce the results as soon as possible. You are very welcome to reach out to me and other contributors via our Slack if you have some questions or suggestions on how to improve things.

Looking forward to seeing your FedSMOO implementation with Flower!

jafermarq commented 1 year ago

Hi @kumar-devesh,

This is just a gentle reminder that the Flower Summer of Reproducibility is ending at the end of the month. With just a little more than 3 weeks to go, we are excited to see quite a few baselines well ahead in the process with their respective PRs close to ready. If your PR is already on the list, great !! Please make sure the PR is linked to this issue (you just need to copy the URL of this issue somewhere in the main message of your PR). Ping me when you'd like me to take a look.

Also, make sure you keep an eye:eyes: on the #summer-of-reproducibility channel in the Flower Slack. I’ll announce very soon a new (the third!) round of 1:1 ask-me-anything sessions to help Summer of Reproducibility contributors like yourself to meet the deadline. Please consider booking a time slot if you want to chat with me about your baseline, potential issues you have making your code run, how to open a PR, doubts about what to include in your readme, how to use Hydra configs more effective, etc … all questions are welcome!!