DifferentialPrivacyServerSideFixedClipping¶
- class DifferentialPrivacyServerSideFixedClipping(strategy: Strategy, noise_multiplier: float, clipping_norm: float, num_sampled_clients: int)[source]¶
Bases :
DifferentialPrivacyFixedClippingBaseStratégie enveloppe pour le DP central avec couper côté serveur fixe.
- 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 DifferentialPrivacyServerSideFixedClipping:
dp_strategy = DifferentialPrivacyServerSideFixedClipping( strategy, cfg.noise_multiplier, cfg.clipping_norm, cfg.num_sampled_clients )
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