-
-
Notifications
You must be signed in to change notification settings - Fork 82
Open
Labels
Good first issue 🎓Perfect for beginners, welcome to OpenMined!Perfect for beginners, welcome to OpenMined!Type: New Feature ➕Introduction of a completely new addition to the codebaseIntroduction of a completely new addition to the codebase
Description
Context
The workflow for computing DP aggregations with PipelineDP is the following (not important here steps are missing, the full example):
# Define the total budget.
budget_accountant = pipeline_dp.NaiveBudgetAccountant(total_epsilon=1, total_delta=1e-6)
dp_engine = pipepine_dp.DPEngine(budget_accountant, ...)
dp_result1 = dp_engine.aggregate(input_data, params1, ...)
dp_result2 = dp_engine.aggregate(input_data, params2, ...)
...
# Compute budget per each DP operation.
budget_accountant.compute_budgets()
DPEngine.aggregate is API function that performs DP aggregation. Now the only way to specify how to split budget over multiple aggregation budget_weight field. The idea is that the aggregation gets the budget proportional to the weigh (sum of weight is not necessary 1).
Another downside is that budget_accountant.compute_budgets()
splits the whole available budget, so it might be called only once.
Goal
To introduce the way to request an absolute budget (i.e. (epsilon, delta)
per aggregation).
Metadata
Metadata
Assignees
Labels
Good first issue 🎓Perfect for beginners, welcome to OpenMined!Perfect for beginners, welcome to OpenMined!Type: New Feature ➕Introduction of a completely new addition to the codebaseIntroduction of a completely new addition to the codebase