DifferentialPrivacyClientSideFixedClipping¶
- class DifferentialPrivacyClientSideFixedClipping(strategy: Strategy, noise_multiplier: float, clipping_norm: float, num_sampled_clients: int)[source]¶
Bases :
StrategyWrapper stratégique pour le DP centralisé avec une éclissure client fixe.
Utilisez le modificateur de clipping fixe fixedclipping_mod au niveau du client.
En comparaison avec DifferentialPrivacyServerSideFixedClipping, qui effectue le clipping côté-serveur, DifferentialPrivacyClientSideFixedClipping attend que le clipping se produise côté-client, généralement en utilisant le modificateur de clipping fixe intégré.
- Paramètres:
strategy (Strategy) – La stratégie à laquelle les fonctionnalités de DP seront ajoutées par ce wrapper.
noise_multiplier (float) – Le multiplicateur de bruit pour la mécanique gaussienne pour les mises à jour du modèle. Une valeur de 1,0 ou supérieure est recommandée pour une forte confidentialité.
clipping_norm (float) – La valeur de la norme de clipping.
num_sampled_clients (int) – Le nombre de clients échantillonnés à chaque tour.
Exemples
Créez une stratégie:
strategy = fl.server.strategy.FedAvg(...)
Enveloppez la stratégie avec le wrapper DifferentialPrivacyClientSideFixedClipping:
dp_strategy = DifferentialPrivacyClientSideFixedClipping( strategy, cfg.noise_multiplier, cfg.clipping_norm, cfg.num_sampled_clients )
Sur le client, ajoutez le fixedclipping_mod aux mods côté-client:
app = fl.client.ClientApp( client_fn=client_fn, mods=[fixedclipping_mod] )
Methods
aggregate_evaluate(server_round, results, ...)Aggregate evaluation losses using the given strategy.
aggregate_fit(server_round, results, failures)Add noise to the aggregated parameters.
configure_evaluate(server_round, parameters, ...)Configure the next round of evaluation.
configure_fit(server_round, parameters, ...)Configure le prochain tour d'entraînement.
evaluate(server_round, parameters)Evaluate model parameters using an evaluation function from the strategy.
initialize_parameters(client_manager)Initialize global model parameters using given strategy.
- aggregate_evaluate(server_round: int, results: list[tuple[ClientProxy, EvaluateRes]], failures: list[tuple[ClientProxy, EvaluateRes] | BaseException]) tuple[float | None, dict[str, bool | bytes | float | int | str]][source]¶
Aggregate evaluation losses using the given strategy.
- aggregate_fit(server_round: int, results: list[tuple[ClientProxy, FitRes]], failures: list[tuple[ClientProxy, FitRes] | BaseException]) tuple[Parameters | None, dict[str, bool | bytes | float | int | str]][source]¶
Add noise to the aggregated parameters.
- configure_evaluate(server_round: int, parameters: Parameters, client_manager: ClientManager) list[tuple[ClientProxy, EvaluateIns]][source]¶
Configure the next round of evaluation.
- configure_fit(server_round: int, parameters: Parameters, client_manager: ClientManager) list[tuple[ClientProxy, FitIns]][source]¶
Configure le prochain tour d’entraînement.
- evaluate(server_round: int, parameters: Parameters) tuple[float, dict[str, bool | bytes | float | int | str]] | None[source]¶
Evaluate model parameters using an evaluation function from the strategy.
- initialize_parameters(client_manager: ClientManager) Parameters | None[source]¶
Initialize global model parameters using given strategy.