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

Central DP (server-side fixed clipping) #2798

Merged
merged 53 commits into from
Feb 20, 2024

Conversation

mohammadnaseri
Copy link
Contributor

@mohammadnaseri mohammadnaseri commented Jan 15, 2024

Issue

Description

Central DP, also known as user-level DP, enables differential privacy strategies in Flower with server-side fixed clipping.

Related issues/PRs

Proposal

Explanation

A new class, DifferentialPrivacyServerSideFixedClipping, has been added. It can be wrapped around a strategy class to enable central DP with fixed clipping. The clipping phase of clients' model updates is performed at the server side.

Checklist

  • Implement proposed change
  • Write tests
  • Update documentation
  • Update the changelog entry below
  • Make CI checks pass
  • Ping maintainers on Slack (channel #contributions)

Changelog entry

Any other comments?

Copy link
Contributor

@jafermarq jafermarq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @mohammadnaseri , just some initial comments below. My main concern is that because we need to apply multiple changes to the input parameters, they get copied several times. This might not be a problem with models but it will certainly be when having larger models or many clients. A few functions in common can be rewritten to prevent doing a copy. However, for aggregate_fit() it might not be so easy, but maybe with some reorganisation it can be done with just a single full copy of the parameters.

@danieljanes danieljanes enabled auto-merge (squash) February 20, 2024 14:18
@danieljanes danieljanes merged commit e97f782 into main Feb 20, 2024
28 checks passed
@danieljanes danieljanes deleted the central-dp-server-side-fixed-clipping branch February 20, 2024 14:21
tanertopal added a commit that referenced this pull request Feb 20, 2024
…ate_docformatter

* 'update_docformatter' of github.com:adap/flower:
  Fix small typos (#2986)
  Update models.py (#2985)
  Move `*Record` and `RecordSet` to `record` package (#2984)
  Improve `*Record` (#2982)
  Introduce central DP (server-side fixed clipping) (#2798)
  Apply suggestions from code review
  pin virtualenv version to 20.21.0 in baselines (#2981)
  Add `flwr` CLI (#2942)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants