Federated Learning
L’apprentissage fédéré entraîne un modèle sur de nombreux appareils ou au sein de plusieurs organisations qui conservent localement leurs données brutes et ne partagent que les mises à jour du modèle avec un serveur.
L’apprentissage fédéré permet d’entraîner un modèle d’apprentissage automatique sur de nombreux appareils ou au sein de nombreuses organisations qui conservent leurs données d’entraînement là où elles ont été collectées. Un serveur de coordination envoie le modèle actuel aux participants ; chacun l’entraîne sur ses propres données, et seules les mises à jour du modèle obtenues sont renvoyées pour être combinées en un meilleur modèle partagé. Des chercheurs de Google ont nommé cette approche dans leur article de 2016, Apprentissage efficace en communication de réseaux profonds à partir de données décentralisées, qui a introduit l’algorithme de moyenne fédérée (FedAvg) pour entraîner des modèles sur des données qui restent sur les appareils mobiles des utilisateurs. En amenant le modèle aux données, les téléphones, les hôpitaux et les banques peuvent tirer des enseignements d’informations que les règles de confidentialité, les réglementations comme le RGPD de l’UE ou leur volume empêchent de regrouper dans un unique lac de données.
Fonctionnement de l’apprentissage fédéré#
L’entraînement se déroule par cycles. Le serveur sélectionne un groupe de clients disponibles et leur envoie les poids du modèle global. Chaque client effectue quelques époques de descente de gradient sur ses données locales et renvoie ses poids mis à jour. FedAvg calcule ensuite la moyenne des poids renvoyés, en attribuant à chaque client une part proportionnelle au nombre de ses exemples d’entraînement ; le résultat devient le modèle global du cycle suivant. Dans les expériences FedAvg, effectuer plusieurs étapes locales entre les communications a réduit de 10 à 100 fois le nombre de cycles de communication par rapport à la descente de gradient stochastique synchronisée. Ce code simule FedAvg pour un modèle linéaire réparti sur trois clients ayant des quantités de données différentes :
import torch
torch.manual_seed(0)
true_w = torch.tensor([2.0, -3.0])
# Three clients with private datasets of different sizes; raw data never leaves a client
clients = []
for n in (50, 200, 500):
X = torch.randn(n, 2)
clients.append((X, X @ true_w + 0.1 * torch.randn(n)))
global_w = torch.zeros(2)
for r in range(1, 6):
weighted = []
for X, y in clients:
w = global_w.clone()
for _ in range(5): # local gradient descent steps on the client's own data
w -= 0.1 * 2 * X.T @ (X @ w - y) / len(y)
weighted.append(len(y) * w)
# FedAvg: average the client weights, weighted by each client's number of samples
global_w = sum(weighted) / sum(len(y) for _, y in clients)
print(f"round {r}: global weights {[round(v, 3) for v in global_w.tolist()]}")Il affiche les poids globaux [1.354, -2.023] après le cycle 1, [1.935, -2.898] après le cycle 3 et [1.995, -2.99] après le cycle 5 ; ils convergent vers les vraies valeurs [2, -3], même si le serveur ne reçoit jamais que les poids de chaque client.
Apprentissage fédéré interappareils et interorganisations#
L’apprentissage fédéré se déroule selon deux configurations aux contraintes différentes. L’entraînement interappareils s’étend à des millions de téléphones ou de capteurs, qui contiennent chacun peu de données et sont souvent hors ligne ou sur batterie ; chaque cycle n’utilise donc qu’une petite fraction d’entre eux et doit tolérer les déconnexions. Le clavier Gboard de Google entraîne ainsi ses modèles de prédiction du mot suivant. L’entraînement interorganisations relie quelques organisations, comme des hôpitaux ou des banques, qui disposent chacune de grands jeux de données sur des serveurs fiables. Dans l’étude sur la segmentation fédérée des tumeurs, 71 établissements de santé répartis sur six continents ont entraîné un modèle de segmentation du glioblastome sur 25 256 IRM de 6 314 patients sans les partager ; le modèle fédéré a délimité les tumeurs pouvant être ciblées par chirurgie avec une précision supérieure de 33 % à celle d’un modèle entraîné sur des données publiques. Le choix de la configuration dépend de l’emplacement des données :
La même boucle fonctionne pour les modèles de vision : chaque hôpital, usine ou magasin peut charger les poids globaux actuels de YOLO26, les ajuster sur ses propres images avec le mode train standard de YOLO d’Ultralytics, puis renvoyer uniquement les poids mis à jour pour que le serveur en calcule la moyenne. Des frameworks open source comme Flower et NVIDIA FLARE gèrent la sélection des clients, la communication et l’agrégation dans les deux configurations.
Confidentialité et sécurité#
Conserver les données localement ne suffit pas à rendre l’entraînement confidentiel, car les mises à jour du modèle contiennent des informations sur les données qui les ont produites. Des attaques par inversion de gradient comme Deep Leakage from Gradients ont permis de reconstituer des images et des étiquettes d’entraînement à partir de gradients partagés, tandis que les attaques par inférence d’appartenance cherchent à déterminer si un enregistrement précis a été utilisé. Les systèmes de production ajoutent deux défenses. L’agrégation sécurisée chiffre les mises à jour pour que le serveur ne connaisse que leur somme, et la confidentialité différentielle écrête chaque mise à jour et ajoute un bruit calibré afin qu’il soit impossible de retrouver la contribution d’un utilisateur en particulier ; Google a indiqué que tous les modèles neuronaux de prédiction du mot suivant de Gboard, entraînés par apprentissage fédéré, offrent désormais des garanties de confidentialité différentielle. Le serveur doit aussi se protéger contre les clients qui envoient des mises à jour empoisonnées, à l’aide de règles d’agrégation robustes, comme la médiane par coordonnée, qui limitent l’influence de chaque client. Des données client qui varient fortement d’un participant à l’autre, comme les scanners de deux hôpitaux différents, font diverger les modèles locaux et ralentissent la convergence.
Apprentissage fédéré et notions connexes#
- Entraînement distribué : répartit un jeu de données stocké de manière centralisée sur plusieurs GPU d’un centre de données pour accélérer l’entraînement. L’apprentissage fédéré ne peut pas déplacer les données ; ses participants sont plus lents, moins fiables et disposent de données réparties différemment.
- Apprentissage fractionné : répartit le réseau lui-même entre le client et le serveur et échange des activations intermédiaires, tandis que l’apprentissage fédéré fournit le modèle complet à chaque client et échange les poids.
- Confidentialité des données : objectif plus général qui consiste à protéger les informations personnelles. L’apprentissage fédéré est l’une des techniques utilisées à cette fin et s’accompagne généralement de confidentialité différentielle et d’agrégation sécurisée.
- IA en périphérie : exécute des modèles sur des appareils. L’apprentissage fédéré interappareils va plus loin en entraînant également les modèles sur ces appareils.










