Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FedNova #2011

Closed
7 tasks done
jafermarq opened this issue Jul 6, 2023 · 6 comments
Closed
7 tasks done

FedNova #2011

jafermarq opened this issue Jul 6, 2023 · 6 comments
Assignees
Labels
summer-of-reproducibility About a baseline for Summer of Reproducibility

Comments

@jafermarq
Copy link
Contributor

jafermarq commented Jul 6, 2023

FedNova

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

  • Join the Flower Slack and say "hi! 👋" in the channel #summer-of-reproducibility.
  • Pick a baseline from our curated list <---------------------------------------- [you are doing this now]

2. Define the scope of your contribution

  • What are you going to reproduce? Add a comment to your issue and tell us about your plan regarding this baseline: what experiments from the paper are you reproducing?, for which datasets ? the more details you provide us with the better !

  • Check if you are eligible for a reward.

    As we have to comply with US/EU regulations, we have checked that individual contributors based on these countries or territories are eligible: Australia, Austria, Belgium, Bulgaria, Canada, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, France, Germany, Gibraltar, Greece, Hong Kong SAR China, Hungary, India, Ireland, Italy, Japan, Latvia, Liechtenstein, Lithuania, Luxembourg, Malta, Mexico, Netherlands, New Zealand, Norway, Poland, Portugal, Romania, Singapore, Slovakia, Slovenia, South Korea, Spain, Sweden, Switzerland, Thailand, United Arab emirates, United Kingdom United States.

    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.

  • We will discuss with you about your contribution plan, if it sounds like a substantial enough contribution according to the Summer of Reproducibility rules (check our website flower.dev/summer), you'll get the OK from us to start working on your baseline!

What happens next?

Is something wrong or not clear ?

  • Ask a question directly in your issue.
  • Reach out to us via the Flower Slack and ask your question in the #summer-of-reproducibility channel
  • Check all the details (including FAQ) in the Summer of Reproducibility website: flower.dev/summer
@jafermarq jafermarq added the summer-of-reproducibility About a baseline for Summer of Reproducibility label Jul 6, 2023
@ashdtu
Copy link
Contributor

ashdtu commented Jul 11, 2023

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)

@jafermarq
Copy link
Contributor Author

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 ?

@ashdtu
Copy link
Contributor

ashdtu commented Jul 11, 2023

Yes @jafermarq that's correct. Fig 5 corresponds to Synthetic(1,1) experiment and Table 1 for CIFAR 10 dataset.

@jafermarq
Copy link
Contributor Author

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!

@jafermarq jafermarq mentioned this issue Jul 11, 2023
7 tasks
@ashdtu
Copy link
Contributor

ashdtu commented Aug 4, 2023

Draft PR : #2179 for progress

@jafermarq
Copy link
Contributor Author

Congratulations @ashdtu your baseline has been merged. We'll follow up with you soon to complete your Summer of Reproducibility journey 😄 !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
summer-of-reproducibility About a baseline for Summer of Reproducibility
Projects
Development

No branches or pull requests

2 participants