Federated Learning
iaDéfinition
Le Federated Learning (apprentissage federe) est un paradigme d'entrainement dans lequel le modele est entraine sur des donnees distribuees sur de multiples appareils ou serveurs, sans jamais centraliser les donnees brutes. Au lieu d'envoyer les donnees vers un serveur central, c'est le modele qui voyage vers les donnees : chaque participant entraine localement et n'envoie que les mises a jour de parametres (gradients ou deltas de poids). Propose par Google en 2016 pour ameliorer les modeles de saisie predictive de Gboard sans acceder aux frappes des utilisateurs, le Federated Learning est aujourd'hui utilise en sante (entrainement sur donnees medicales sans les partager entre hopitaux), finance (detection de fraude inter-banques), et appareils mobiles. Le pipeline FL de base (FedAvg, McMahan et al., 2017) : (1) Le serveur distribue le modele global initial. (2) Chaque client realise plusieurs etapes de gradient descent sur ses donnees locales. (3) Les gradients sont envoyes au serveur. (4) Le serveur agreges via FedAvg (moyenne ponderee). (5) Le modele global mis a jour est redistribue. Les defis techniques incluent : Statistical Heterogeneity (distributions differentes entre clients), Communication Efficiency (gradient de milliards de parametres a chaque round), robustesse aux clients malveillants (Poisoning Attacks), et convergence plus lente que l'entrainement centralise. Du point de vue RGPD, le FL n'est pas une garantie de privacy totale : des attaques d'inversion de gradient peuvent reconstruire partiellement les donnees originales. La combinaison FL + Differential Privacy + Secure Aggregation est la solution privacy-by-design la plus robuste.
FedAvg avec Flower (framework FL)
import flwr as fl
class CyberSecClient(fl.client.NumPyClient):
def get_parameters(self, config):
return [val.cpu().numpy() for _, val in self.model.state_dict().items()]
def fit(self, parameters, config):
self.set_parameters(parameters)
train(self.model, self.train_data, epochs=5)
return self.get_parameters(config={}), len(self.train_data), {}
strategy = fl.server.strategy.FedAvg(
fraction_fit=0.5, min_fit_clients=3
)
fl.server.start_server(strategy=strategy,
config=fl.server.ServerConfig(num_rounds=10))Use cases securite et sante
- Detection malwares : plusieurs entreprises s'entrainent sur un modele commun sans partager leurs logs
- Fraude bancaire : detection amelioree inter-banques sans exposer les transactions
- Diagnostic medical : hopitaux UE collaborant sans partager les donnees patients (RGPD Art. 9)
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés. 2.1.7
Un projet cybersécurité ?
Expert dispo · Réponse 24h