DifferentialPrivacyClientSideFixedClipping

class DifferentialPrivacyClientSideFixedClipping(strategy: Strategy, noise_multiplier: float, clipping_norm: float, num_sampled_clients: int)[source]

Bases : DifferentialPrivacyFixedClippingBase

Wrapper 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.serverapp.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(mods=[fixedclipping_mod])

Methods

aggregate_evaluate(server_round, replies)

Aggrégation des MetricRecords reçus dans les Messages.

aggregate_train(server_round, replies)

Aggrégation des ArrayRecords et des MetricRecords reçus dans les Messages.

configure_evaluate(server_round, arrays, ...)

Configuration du prochain tour d'évaluation fédérée.

configure_train(server_round, arrays, ...)

Configure le prochain tour d'entraînement.

start(grid, initial_arrays[, num_rounds, ...])

Exécution de la stratégie d'apprentissage fédéré.

summary()

Loguer la configuration sommaire de la stratégie.

aggregate_evaluate(server_round: int, replies: Iterable[Message]) MetricRecord | None

Aggrégation des MetricRecords reçus dans les Messages.

aggregate_train(server_round: int, replies: Iterable[Message]) tuple[ArrayRecord | None, MetricRecord | None][source]

Aggrégation des ArrayRecords et des MetricRecords reçus dans les Messages.

configure_evaluate(server_round: int, arrays: ArrayRecord, config: ConfigRecord, grid: Grid) Iterable[Message]

Configuration du prochain tour d’évaluation fédérée.

configure_train(server_round: int, arrays: ArrayRecord, config: ConfigRecord, grid: Grid) Iterable[Message][source]

Configure le prochain tour d’entraînement.

start(grid: Grid, initial_arrays: ArrayRecord, num_rounds: int = 3, timeout: float = 3600, train_config: ConfigRecord | None = None, evaluate_config: ConfigRecord | None = None, evaluate_fn: Callable[[int, ArrayRecord], MetricRecord | None] | None = None) Result

Exécution de la stratégie d’apprentissage fédéré.

Exécuter le flux de travail complet d’apprentissage fédéré pour un nombre spécifié de tours, y compris l’entraînement, l’évaluation et l’évaluation centralisée facultative.

Paramètres:
  • grid (Grid) – Instance du Grid utilisée pour envoyer/recevoir des Messages à partir de nœuds exécutant une application ClientApp.

  • initial_arrays (ArrayRecord) – Paramètres initiaux du modèle (tableaux) à utiliser pour l’apprentissage fédéré.

  • num_rounds (int (default: 3)) – Nombre de tours d’apprentissage fédéré à exécuter.

  • timeout (float (default: 3600)) – Délai en secondes pour attendre les réponses des nœuds.

  • train_config (ConfigRecord, optional) – Configuration à envoyer aux nœuds pendant les tours d’entraînement. Si non défini, un ConfigRecord vide sera utilisé.

  • evaluate_config (ConfigRecord, optional) – Configuration à envoyer aux nœuds pendant les tours d’évaluation. Si non défini, un ConfigRecord vide sera utilisé.

  • evaluate_fn (Callable[[int, ArrayRecord], Optional[MetricRecord]], optional) – Fonction facultative pour l’évaluation centralisée du modèle global. Prend le numéro de tour serveur et le record tableau, retourne un MetricRecord ou None. Si fourni, sera appelé avant la première ronde et après chaque ronde. Par défaut à None.

Renvoie:

Résultats contenant les tableaux de modèles finaux ainsi que les métriques d’entraînement, les métriques d’évaluation et les métriques d’évaluation globales (si fourni) de toutes les rondes.

Type renvoyé:

Results

summary() None[source]

Loguer la configuration sommaire de la stratégie.