adap / flower

Flower: A Friendly Federated AI Framework
https://flower.ai
Apache License 2.0
5.15k stars 881 forks source link

SCAFFOLD #2014

Open jafermarq opened 1 year ago

jafermarq commented 1 year ago

SCAFFOLD

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 ?

aashishkolluri commented 1 year ago

Hi Javier,

I am keen to implement and reproduce this work for Flower. Specifically, I want to focus on reproducing Table 3, rows 2 and 3, for all columns. That is, I will test my implementation using logistic regression task on the EMNIST dataset against FedAvg baseline.

Thanks, Aashish Kolluri

jafermarq commented 1 year ago

Hi Aashish (@aashishkolluri ), this looks like a good plan for SCAFFOLD! Am I understanding it correctly that when you say "rows 2 and 3" for Table 3 you mean the block of rows for FedAvg and for SCAFFOLD in the table? Also, could you confirm were you are based is on the list of countries/territories that are eligible? You can find the list afterthe second point in Step 2 (you don't have to say where you are, just confirming that you are eligible is good enough)

aashishkolluri commented 1 year ago

Yes you are right about FedAvg and SCAFFOLD. I am based on the list of countries.

jafermarq commented 1 year ago

Perfect! I have ✅ all the points in Step 1 & 2 since they are now completed. I have also added you as the assignee to this issue and labeled it as In Progress. You can find info on how to start with the code by following the link in the what happens next? section after Step 2 in the description of this issue. If you have some doubts or questions please preferably use our #questions or #summer-of-reproducibility Slack channel.

Looking forward to seeing SCAFFOLD in action!

jafermarq commented 1 year ago

Hi @aashishkolluri ! 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!!

BalajiAI commented 1 year ago

Hi @jafermarq, can I take this one up? I've aldready implemented SCAFFOLD - see here. So I just need to make few changes to make it compatible with Flower.

wittenator commented 3 weeks ago

I am currently implementing SCAFFOLD as a baseline here: https://github.com/wittenator/flower/tree/rework_fedprox_baseline/baselines/scaffold