-
Notifications
You must be signed in to change notification settings - Fork 82
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
Created the basic support for personalized federated learning in Plato #363
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
✅ Deploy Preview for platodocs ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR created the basic support for personalized federated learning (FL) in Plato, thereby providing a fundamental platform to perform the research on the personalized FL domain. Based on this platform, different types of personalized FL algorithms can be implemented not only easily but also quickly. There are two key points of this platform.
First, this platform is easy to use as major components of this platform are merged into the module registry of Plato; thus, it can be accessed by simply putting the name under the corresponding blocks of the configuration file.
Second, this platform provides fairness and reproducibility guarantees when performing experiments to compare different personalized FL algorithms.
Finally, based on this platform, we offer nine personalized FL algorithms, encompassing the most widely employed learning mechanisms.
Additionally, with this platform, we also implemented eight personalized FL algorithms built upon self-supervised learning.
Description
The personalized FL platform includes three core components:
plato/servers/fedavg_personalized.py
. A personalized federated learning server that starts with a number of regular rounds of federated learning. In these regular rounds, only a subset of the total clients can be selected to perform the local update (the ratio of which is a configuration setting). After all regular rounds are completed, it starts a final round of personalization, where a selected subset of clients perform local training using their local dataset.plato/clients/fedavg_personalized.py
. A personalized federated learning client that saves its local layers before sending the shared globalmodel to the server after local training
plato/algorithms/fedavg_personalized.py
. A personalized federate learning algorithm that loads and saves local layers of a model.How has this been tested?
Types of changes
Checklist: