Open
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).