secretflow.security.privacy package#

Subpackages#

Submodules#

secretflow.security.privacy.strategy module#

Classes:

DPStrategy([embedding_dp, label_dp, ...])

class secretflow.security.privacy.strategy.DPStrategy(embedding_dp: Optional[EmbeddingDP] = None, label_dp: Optional[LabelDP] = None, accountant_type='rdp', sampling_type=None)[source]#

Bases: object

Methods:

__init__([embedding_dp, label_dp, ...])

param embedding_dp

Embedding dp layer.

get_privacy_spent(step[, orders])

Get accountant of all used dp mechanism.

__init__(embedding_dp: Optional[EmbeddingDP] = None, label_dp: Optional[LabelDP] = None, accountant_type='rdp', sampling_type=None)[source]#
Parameters
  • embedding_dp – Embedding dp layer.

  • label_dp – Label dp layer.

  • accountant_type – Method of calculating accountant, which must be “rdp” or “gdp”.

  • sampling_type – Sampling type for GDP, which must be “poisson” or “uniform”.

get_privacy_spent(step: int, orders=None)[source]#

Get accountant of all used dp mechanism.

Parameters
  • step – The current step of model training or prediction.

  • orders – An array (or a scalar) of RDP orders.

secretflow.security.privacy.strategy_fl module#

Classes:

DPStrategyFL([model_gdp, accountant_type])

class secretflow.security.privacy.strategy_fl.DPStrategyFL(model_gdp: Optional[GaussianModelDP] = None, accountant_type='rdp')[source]#

Bases: object

Methods:

__init__([model_gdp, accountant_type])

param model_gdp

global dp strategy on model parameters or gradients.

get_privacy_spent(step[, orders])

Get accountant of all used dp mechanism.

__init__(model_gdp: Optional[GaussianModelDP] = None, accountant_type='rdp')[source]#
Parameters
  • model_gdp – global dp strategy on model parameters or gradients.

  • accountant_type – Method of calculating accountant, only supports “rdp”.

get_privacy_spent(step: int, orders=None)[source]#

Get accountant of all used dp mechanism.

Parameters
  • step – The current step of model training or prediction.

  • orders – An array (or a scalar) of RDP orders.

Module contents#

Classes:

GaussianEmbeddingDP(*args, **kwargs)

Embedding differential privacy perturbation using gaussian noise

GaussianModelDP(noise_multiplier, num_clients)

global model differential privacy perturbation using gaussian noise

LabelDP(eps)

Label differential privacy perturbation

DPStrategy([embedding_dp, label_dp, ...])

DPStrategyFL([model_gdp, accountant_type])

class secretflow.security.privacy.GaussianEmbeddingDP(*args, **kwargs)[source]#

Bases: EmbeddingDP

Embedding differential privacy perturbation using gaussian noise

Methods:

__init__(noise_multiplier, batch_size, ...)

param epnoise_multipliers

Epsilon for pure DP.

call(inputs)

Add gaussion dp on embedding.

privacy_spent_rdp(step[, orders])

Get accountant using RDP.

privacy_spent_gdp(step, sampling_type)

Get accountant using GDP.

__init__(noise_multiplier: float, batch_size: int, num_samples: int, l2_norm_clip: float = 1.0, delta: Optional[float] = None, is_secure_generator: bool = False) None[source]#
Parameters
  • epnoise_multipliers – Epsilon for pure DP.

  • batch_size – Batch size.

  • num_samples – Number of all samples.

  • l2_norm_clip – The clipping norm to apply to the embedding.

  • is_secure_generator – whether use the secure generator to generate noise.

call(inputs)[source]#

Add gaussion dp on embedding.

Parameters

inputs – Embedding.

privacy_spent_rdp(step: int, orders: Optional[List] = None)[source]#

Get accountant using RDP.

Parameters
  • step – The current step of model training or prediction.

  • orders – An array (or a scalar) of RDP orders.

privacy_spent_gdp(step: int, sampling_type: str)[source]#

Get accountant using GDP.

Parameters
  • step – The current step of model training or prediction.

  • sampling_type – Sampling type, which must be “poisson” or “uniform”.

class secretflow.security.privacy.GaussianModelDP(noise_multiplier: float, num_clients: int, num_updates: Optional[int] = None, l2_norm_clip: float = 1.0, delta: Optional[float] = None, is_secure_generator: bool = False, is_clip_each_layer: bool = False)[source]#

Bases: object

global model differential privacy perturbation using gaussian noise

Methods:

__init__(noise_multiplier, num_clients[, ...])

param epnoise_multipliers

Epsilon for pure DP.

privacy_spent_rdp(step[, orders])

Get accountant using RDP.

__init__(noise_multiplier: float, num_clients: int, num_updates: Optional[int] = None, l2_norm_clip: float = 1.0, delta: Optional[float] = None, is_secure_generator: bool = False, is_clip_each_layer: bool = False) None[source]#
Parameters
  • epnoise_multipliers – Epsilon for pure DP.

  • num_clients – Number of all clients.

  • num_updates – Number of Clients that participate in the update.

  • l2_norm_clip – The clipping norm to apply to the parameters or gradients.

  • is_secure_generator – whether use the secure generator to generate noise.

  • is_clip_prelayer – The 2norm of each layer is dynamically assigned.

privacy_spent_rdp(step: int, orders: Optional[List] = None)[source]#

Get accountant using RDP.

Parameters
  • step – The dp current step of model training or prediction.

  • orders – An array (or a scalar) of RDP orders.

class secretflow.security.privacy.LabelDP(eps: float)[source]#

Bases: object

Label differential privacy perturbation

Methods:

__init__(eps)

param eps

epsilon for pure DP.

privacy_spent()

__init__(eps: float) None[source]#
Parameters

eps – epsilon for pure DP.

privacy_spent()[source]#
class secretflow.security.privacy.DPStrategy(embedding_dp: Optional[EmbeddingDP] = None, label_dp: Optional[LabelDP] = None, accountant_type='rdp', sampling_type=None)[source]#

Bases: object

Methods:

__init__([embedding_dp, label_dp, ...])

param embedding_dp

Embedding dp layer.

get_privacy_spent(step[, orders])

Get accountant of all used dp mechanism.

__init__(embedding_dp: Optional[EmbeddingDP] = None, label_dp: Optional[LabelDP] = None, accountant_type='rdp', sampling_type=None)[source]#
Parameters
  • embedding_dp – Embedding dp layer.

  • label_dp – Label dp layer.

  • accountant_type – Method of calculating accountant, which must be “rdp” or “gdp”.

  • sampling_type – Sampling type for GDP, which must be “poisson” or “uniform”.

get_privacy_spent(step: int, orders=None)[source]#

Get accountant of all used dp mechanism.

Parameters
  • step – The current step of model training or prediction.

  • orders – An array (or a scalar) of RDP orders.

class secretflow.security.privacy.DPStrategyFL(model_gdp: Optional[GaussianModelDP] = None, accountant_type='rdp')[source]#

Bases: object

Methods:

__init__([model_gdp, accountant_type])

param model_gdp

global dp strategy on model parameters or gradients.

get_privacy_spent(step[, orders])

Get accountant of all used dp mechanism.

__init__(model_gdp: Optional[GaussianModelDP] = None, accountant_type='rdp')[source]#
Parameters
  • model_gdp – global dp strategy on model parameters or gradients.

  • accountant_type – Method of calculating accountant, only supports “rdp”.

get_privacy_spent(step: int, orders=None)[source]#

Get accountant of all used dp mechanism.

Parameters
  • step – The current step of model training or prediction.

  • orders – An array (or a scalar) of RDP orders.