Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expose RNG or Seeded mechanisms outside of -testing #107

Open
mjbommar opened this issue Feb 8, 2022 · 0 comments
Open

Expose RNG or Seeded mechanisms outside of -testing #107

mjbommar opened this issue Feb 8, 2022 · 0 comments

Comments

@mjbommar
Copy link

mjbommar commented Feb 8, 2022

Problem Description

Downstream libraries or academic researchers using differential-privacy may desire to implement deterministic tests or substitute an alternative source of randomness, e.g., external random source.

However, RNG and seed-setting only appears to be implemented within algorithms::numerical-mechanisms-testing. These classes are not designed for external use and cannot be linked against in some contexts (e.g., bzl testonly).

Proposed Solution

  1. Create a new RNGNumericalMechanism abstract class and non-testing RNGNumericalMechanismBuilder
  2. Implement non-testing RNGXYZMechanism and, optionally, SeededXYZMechanism as convenience
  3. Re-implement test SeededXYZMechanism classes with non-testing mechanisms
  4. Optionally implement warning/notice for use
  5. Implement safe downstream deterministic test cases, e.g., in PyDP

Alternative

Rely on asymptotic test cases or non-reproducible examples/research.

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

No branches or pull requests

1 participant