WIP: Differential privacy for aggregates - add dp_laplace and dp_gaussian built-in functions with budget accounting#2539
Draft
andersonm-ibm wants to merge 20 commits into
Draft
Conversation
added 19 commits
July 7, 2026 23:33
This file contains hidden or 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
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.
Wire them through the full compilation pipeline:
Builtins → BuiltinFunctionExpression → ParameterizedBuiltinOp HOP → ParameterizedBuiltin LOP → DPBuiltinCPInstruction.
Introduce DPBudgetAccountant, a session-scoped privacy budget tracker stored on ExecutionContext. Laplace releases use exact pure-ε composition; Gaussian releases use Rényi DP composition (Mironov 2017) with RDP → (ε,δ) conversion for tighter bounds. Raises DMLRuntimeException if cumulative spend exceeds the budget.
Unit tests covering constructor validation, Laplace/Gaussian composition, budget exhaustion for both mechanisms, mixed composition, release counting, and RDP mathematical invariants (sensitivity cancellation, ε-monotonicity).
End-to-end DML integration tests in DPBuiltinDMLTest verify noisy output differs from clean means by a statistically plausible amount.
CC @ywcb00