Skip to content

Latest version of AIM-GDP - #239

Open
bogdan-kulynych wants to merge 5 commits into
google:mainfrom
bogdan-kulynych:e2e_acct
Open

bogdan-kulynych wants to merge 5 commits into
google:mainfrom
bogdan-kulynych:e2e_acct

Conversation

@bogdan-kulynych

Copy link
Copy Markdown

An implementation of AIM with GDP internal accounting. This PR cherrypicks Ryan's original #190 , and simplifies the expressions, adds unit tests for accounting helpers. For consistency with the paper, the Exponential mechanism's parameter here is renamed to nu.

bogdan-kulynych and others added 3 commits October 9, 2026 00:53
- Add budget_type (zcdp or gdp) and privacy_budget to AIMConfig and AIM.
- Add _round_parameters helper to convert per-round budget into (epsilon,
  sigma) for both zcdp and gdp modes while keeping the main loop clean.
- Update AIMConfig.configure to convert the zCDP budget to a GDP budget via
  zcdp_to_gdp when budget_type == gdp.
- Return GaussianDpEvent from AIM.dp_event when budget_type == gdp, enabling
  seamless PLD accounting and composition with DP-SGD.
- Add unit tests in aim_test.py for AIMConfig with budget_type='gdp' and
  calibration.

PiperOrigin-RevId: 980684946

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

👋 Welcome, and thanks for opening your first PR!

We're excited to have you contribute. A few things to help you get started:

  • Join the community! Say hello on the Google Differential Privacy Slack — we'd love to hear who you are, what you're working on, and what brought you here.
  • A maintainer will review your PR shortly. If you have questions in the meantime, don't hesitate to ask here or on Slack.

Thanks for contributing to privacy-preserving synthetic data generation! 🔐

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.

2 participants