Conversation
added 28 commits
September 18, 2026 15:10
…ransformation matrix T internally, returning T %*% X with noise fused into a single matrix multiply.
…ng to David's suggestion
Lets a DML script declare its session-wide differential-privacy budget once at the top, instead of always falling back to the hardcoded default. Resolved entirely at compile time: epsilon/delta must be literals, validated in BuiltinFunctionExpression and stored on DMLProgram during HOP construction, then read by ExecutionContext.getDPBudgetAccountant().
Four federated workers simulated on localhost, a logistic regression FedAvg loop in DML where the coordinator applies dp_gaussian to the aggregated gradient, a sweep over ε ∈ {0.5, 1, 4, 8} plus a non-private baseline, and a matplotlib accuracy-vs-ε plot saved as a PNG.
Add clip_norm (default 4.0) as a script parameter. Inside the private == 1 branch, each row's gradient contribution is clipped to L2-norm less than clip_norm.
…ntical dp_laplace or dp_gaussian calls are never be merged into one execution.
…betically ParamBuiltinOp
Flip Builtins.DP_LAPLACE/DP_GAUSSIAN to parameterized=true so the parser builds a ParameterizedBuiltinFunctionExpression for these calls instead of a positional BuiltinFunctionExpression. This lets them reuse the existing varParams-based parsing, instead of hand-unpacking expr/expr2/expr3 by position in DMLTranslator and re-deriving parameter names from argument order in BuiltinFunctionExpression. Laplace and Gaussian validation is merged into one validateDpMechanism(), varying only on whether 'delta' is required, since the two mechanisms differ by exactly that one optional parameter.
…d laplace - Well1024a
…on type DPBuiltin
…nCPInstruction, owning parse validation, processInstruction(), and the lineage-refusal — all DP instruction-level concerns now live in one file
…hich defines two global constants define these constants as environment variables instead
…acy benchmark to the staging folder
…nchmark as it is not working out of the box
remove unnecessary comments and shorten method headers
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2617 +/- ##
==========================================
- Coverage 74.94% 74.91% -0.04%
==========================================
Files 436 436
Lines 25237 25237
==========================================
- Hits 18915 18906 -9
- Misses 6322 6331 +9
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
… parsing tests fix(test/functions/privacy/dp/DPBuiltinDMLTest.java): use dml script files for test execution feat(test/scripts/functions/privacy/dp/**): create dml test scripts
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.
Intermediate PR for merging #2539.
(If anybody knows a better way to verify the CI tests when merging larger PRs with multiple changes that were made during the merge, please inform me.)