Skip to content

Windows ci debug - #4

Closed
peterboncz wants to merge 0 commit into
mainfrom
windows-ci-debug
Closed

Windows ci debug#4
peterboncz wants to merge 0 commit into
mainfrom
windows-ci-debug

Conversation

@peterboncz

Copy link
Copy Markdown
Collaborator

moving the windows CI to a branch and PR, not to pollute the main branch with endless commits/pushes

because they are incoming -- debugging windows through CI (sigh)

@peterboncz peterboncz closed this Feb 19, 2026
ila added a commit that referenced this pull request Jul 2, 2026
…ity mode, trace

Address code-review findings on the dp_sass_avg_method='ratio' path:
- Clamp the released noised_sum/noised_count ratio into the public avg domain
  [dp_sass_avg_lower_bound, dp_sass_avg_upper_bound] (free DP post-processing),
  so ratio mode respects the same output domain as lane_average instead of
  leaving the mean unbounded (#2).
- Read + validate the avg bounds in ratio mode too, so an inverted range is
  rejected rather than silently ignored (#3).
- Skip the AVG ratio projection under dp_sass_stability_query_mode, which emits
  raw per-lane recorded values for diagnostics rather than a released ratio (#4).
- Add PRIVACY_DEBUG_PRINT at the ratio decomposition decision (#6).

WrapAvgRatioProjection gains an optional output clamp (off by default, so the
Laplace modes are unaffected). Tests for the clamp and the inverted-range
rejection in dp_sample_median.test.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ila added a commit that referenced this pull request Aug 28, 2026
Checked against actual source (729 blobs from google/differential-privacy,
fetched raw) and primary papers, with an independent refutation pass that
re-fetched every load-bearing quote.

#1 Frozen group set SHIPS. Tumult Analytics get_groups() + KeySet is the exact
technique, tutorial spends delta once then runs under PureDPBudget. Privacy on
Beam documents the derive-then-reuse case in pbeam/count.go and ENFORCES it
(checkPartitionSelectionEpsilon). Codelab states the amortisation rationale
verbatim. Residue: nobody costs a PERSISTENT key set across later sessions -
a systems framing, not a mechanism.

#2 Adaptive base is a config flag: SetBase/SetScale/SetNumBins are public in
approx-bounds.h. Residue: Wilson et al. hard-code base 2 while the library
parameterises it, Java has no setter, nothing auto-derives from a public bound.
Contribution is the tuning rule and the 1.68x, never the capability.

#3 Gaussian votes are pre-empted comprehensively - GaussianPartitionSelection
in Google C++ with sqrt(max_partitions_contributed), Go dispatching on
l0Sensitivity > 3, PipelineDP's GAUSSIAN_THRESHOLDING and
WEIGHTED_GAUSSIAN_THRESHOLDING, OpenDP make_gaussian_threshold, and Qrlew's
gaussian_tau as a line-for-line match. Gopi et al. ICML 2020 call it
straight-forward and use it as a benchmark; Desfontaines et al. PoPETs 2022
publish the crossover at kappa=3 with the same eps/delta invariance I measured
at k_h=4.3. My result is a rediscovery.

AND a false claim to strike: 'no per-user truncation to C_u is needed' is
definitively false - DPSU's Weighted Gaussian still pre-truncates to Delta_0.
Gaussian buys sqrt(k_u) instead of k_u, it does not remove the cap.

#4 Count-conditioned shrinkage is the only survivor, narrowly. Near misses to
pre-empt: Private-PGM (a reviewer will say a count and a sum are just two
measurements) and Debiasing Functions of Private Statistics (FORC 2025).

#5 l1 norm clip: prior art exists (Harrison & Manurangsi, Lr norm constraints,
r=1 as a drop-in Laplace replacement) but the report's PipelineDP citations were
misattributed - max_contributions caps the NUMBER of contributions, not a
rescaled norm. Least settled; needs a manual check.

Net: the measurement work survives (tau floor proof, k_u scope condition,
resonance, metric critique, two privacy bugs). The mechanism claims do not.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.

1 participant