-
Notifications
You must be signed in to change notification settings - Fork 3
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
FedPM #197
Conversation
…since we moved them to a util rather than a component of BasicClient. Also adding init files.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR and Design look really awesome. Fantastic job on all the tests! I learned some new stuff about PyTorch too. Overall, everything looks pretty close to ready. Just some fairly minimal comments and discussion points.
Thanks for contributing Yuchong ❤️ |
I think the only minor question left before this is read to go is whether the lock file really needs to change (since no toml updates have happened). Outside of that, this is ready to go! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ready to go!
PR Type
[Feature]
Short Description
This PR implements the "Federated Probabilistic Mask Training" algorithm described in http://arxiv.org/pdf/2209.15328. An example in the `examples/fedpm_example' folder runs this algorithm on the MNIST dataset, and it reproduces part of the experimental results in the original paper.
On a high level, the implementation consists mainly of the following components:
masked_layers.py
: this module uses the linear and convolutional layers provided by PyTorch as a basis to implement masked versions of those layers, which ensures that only probability scores receive gradients.fedpm.py
: this module handles the server-side aggregation. The Bayesian aggregation approach described in the paper is implemented here.Tests Added
Tests have been added to ensure that the newly added masked layers, parameter exchanger, strategy, and functions work correctly.