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

Add Flower Baseline: FedHT #3987

Open
10 of 14 tasks
chancejohnstone opened this issue Aug 10, 2024 · 3 comments
Open
10 of 14 tasks

Add Flower Baseline: FedHT #3987

chancejohnstone opened this issue Aug 10, 2024 · 3 comments
Labels
good first issue Good for newcomers part: baselines Add or update baseline state: under review Currently reviewing issue/PR type: feature request This issue or comment suggests an additional feature.

Comments

@chancejohnstone
Copy link

chancejohnstone commented Aug 10, 2024

Paper

Tong, Q., Liang, G., Zhu, T. and Bi, J., 2020. Federated nonconvex sparse learning. arXiv preprint arXiv:2101.00052.

Link

https://arxiv.org/abs/2101.00052

Maybe give motivations about why the paper should be implemented as a baseline.

Myself and my coauthors used Fed-HT (and Fed-IterHT) in recent work to generate sparse, federated models. These two aggregation strategies were effective in generating highly predictive models while also allowing for constrained sparsity (with some sparsity threshold), instead of just sparsity through regularization. We'd like to implement this baseline for easier implementation in the future through Flower. The goal with this baseline is to implement Fed-HT and Fed-IterHT as a custom Flower aggregation strategy and recreate the methodology of the paper, to include applications using simulated and benchmark datasets.

Is there something else you want to add?

No

Implementation

To implement this baseline, it is recommended to do the following items in that order:

For first time contributors

Prepare - understand the scope

  • Read the paper linked above
  • Decide which experiments you'd like to reproduce. The more the better!
  • Follow the steps outlined in Add a new Flower Baseline.
  • You can use as reference other baselines that the community merged following those steps.

Verify your implementation

  • Follow the steps indicated in the EXTENDED_README.md that was created in your baseline directory
  • Ensure your code reproduces the results for the experiments you chose
  • Ensure your README.md is ready to be run by someone that is no familiar with your code. Are all step-by-step instructions clear?
  • Ensure running the formatting and typing tests for your baseline runs without errors.
  • Clone your repo on a new directory, follow the guide on your own README.md and verify everything runs.
@jafermarq
Copy link
Contributor

HI @chancejohnstone 👋 It's great to see you want to add Fed-HT to the Flower Baselines collection ! Out of curiosity, what experiments from the paper are you planing to reproduce ? maybe parts of Fig 5? Please ping us if anytime if you have some doubts or if you encounter some problems.

@chancejohnstone
Copy link
Author

@jafermarq That's a great idea; recreating parts of Figure 5 would be an effective way to showcase Fed-HT and Fed-IterHT. I would definitely try to start there.

@chancejohnstone
Copy link
Author

chancejohnstone commented Oct 22, 2024

@jafermarq Just wanted to give an update on progress for this baseline. Everything seems to be in order as far as the Fed-HT and FedIter-HT implementation is concerned. I have working examples using the datasets from the paper; the results don't currently match exactly due to a lack of knowledge on exact hyperparameters, e.g., weight decay, num_local_epochs, used for the plots. I have reached out to the authors to get those. Formatting and test scripts seem to run without error locally; I get a code rating at the end of running test-baseline.sh, but I'm not sure if that's the end of the script. The code fails the test check after commit and I'm not sure what the issue is. Happy to provide more details as necessary.

@WilliamLindskog WilliamLindskog added type: feature request This issue or comment suggests an additional feature. state: under review Currently reviewing issue/PR part: baselines Add or update baseline and removed new baseline labels Dec 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers part: baselines Add or update baseline state: under review Currently reviewing issue/PR type: feature request This issue or comment suggests an additional feature.
Projects
None yet
Development

No branches or pull requests

3 participants