Federated Learning
L'apprendimento federato addestra un unico modello su molti dispositivi o organizzazioni che mantengono in locale i dati grezzi e condividono con un server solo gli aggiornamenti del modello.
L'apprendimento federato è un metodo per addestrare un unico modello di machine learning su molti dispositivi o organizzazioni, che conservano i propri dati di addestramento nel luogo in cui sono stati raccolti. Un server coordinatore invia il modello corrente ai partecipanti, ciascuno lo addestra sui propri dati e solo gli aggiornamenti risultanti del modello vengono rimandati al server per essere combinati in un modello condiviso migliore. I ricercatori di Google hanno dato un nome a questo approccio nel loro articolo del 2016 Communication-Efficient Learning of Deep Networks from Decentralized Data, che ha introdotto l'algoritmo Federated Averaging (FedAvg) per addestrare modelli usando dati che restano sui dispositivi mobili degli utenti. Portare il modello ai dati consente a telefoni, ospedali e banche di apprendere da informazioni che le norme sulla privacy, regolamenti come il GDPR dell'UE o le dimensioni stesse dei dati impediscono di riunire in un unico data lake.
Come funziona l'apprendimento federato#
L'addestramento procede per round. Il server seleziona un gruppo di client disponibili e invia loro i pesi del modello globale. Ogni client esegue alcuni epoch di discesa del gradiente sui dati locali e restituisce i pesi aggiornati. FedAvg calcola quindi la media dei pesi ricevuti, assegnando a ciascun client una quota proporzionale al numero dei suoi esempi di addestramento, e il risultato diventa il modello globale del round successivo. Negli esperimenti FedAvg, l'esecuzione di più passaggi locali tra una comunicazione e l'altra ha ridotto da 10 a 100 volte il numero di round di comunicazione rispetto alla discesa stocastica del gradiente sincronizzata. Questo codice simula FedAvg per un modello lineare su tre client con quantità diverse di dati:
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()]}")Stampa i pesi globali [1.354, -2.023] dopo il round 1, [1.935, -2.898] dopo il round 3 e [1.995, -2.99] dopo il round 5, convergendo ai valori reali [2, -3], anche se il server riceve soltanto i pesi di ciascun client.
Apprendimento federato tra dispositivi e tra silos#
L'apprendimento federato si svolge in due contesti con vincoli diversi. L'addestramento tra dispositivi coinvolge milioni di telefoni o sensori, ognuno con pochi dati e spesso offline o con la batteria scarica; perciò ogni round usa solo una piccola parte dei dispositivi e deve tollerare le disconnessioni. La tastiera Gboard di Google addestra così i propri modelli di previsione della parola successiva. L'addestramento tra silos collega poche organizzazioni, come ospedali o banche, ognuna con grandi dataset su server affidabili. Nello studio sulla segmentazione federata dei tumori, 71 istituzioni sanitarie sanitarie distribuite su sei continenti hanno addestrato un modello di segmentazione del glioblastoma su 25,256 scansioni MRI di 6,314 pazienti senza condividerle; il modello federato ha delineato il tumore chirurgicamente asportabile con una precisione superiore del 33% rispetto a un modello addestrato su dati pubblici. La scelta del contesto dipende da dove si trovano i dati:
Lo stesso ciclo funziona per i modelli di visione: ogni ospedale, fabbrica o negozio può caricare i pesi globali correnti di YOLO26, ottimizzarli ulteriormente sulle proprie immagini usando la modalità di addestramento standard di Ultralytics YOLO e restituire solo i pesi aggiornati, che il server poi media. Framework open source come Flower e NVIDIA FLARE gestiscono la selezione dei client, la comunicazione e l'aggregazione in entrambi i contesti.
Privacy e sicurezza#
Conservare i dati localmente non rende di per sé privato l'addestramento, perché gli aggiornamenti del modello contengono informazioni sui dati che li hanno generati. Attacchi di inversione del gradiente come Deep Leakage from Gradients hanno ricostruito immagini e etichette di addestramento a partire dai gradienti condivisi, mentre gli attacchi di inferenza dell'appartenenza verificano se un record specifico è stato usato. I sistemi di produzione aggiungono due difese. L'aggregazione sicura cifra gli aggiornamenti affinché il server possa conoscere solo la loro somma, mentre la privacy differenziale limita ciascun aggiornamento e aggiunge rumore calibrato, così che non sia possibile recuperare il contributo di un singolo utente; Google ha riferito che tutti i modelli linguistici di reti neurali per la previsione della parola successiva di Gboard, addestrati con l'apprendimento federato, ora offrono garanzie di privacy differenziale. Il server deve anche proteggersi dai client che inviano aggiornamenti avvelenati, usando regole di aggregazione robuste come la mediana coordinata, che limita l'influenza di ogni singolo client. Dati dei client molto diversi tra loro, per esempio quelli dello scanner di un ospedale rispetto a quelli di un altro, fanno divergere i modelli locali e rallentano la convergenza.
Apprendimento federato e termini correlati#
- Addestramento distribuito: suddivide un dataset archiviato centralmente tra molte GPU in un unico data center per accelerare l'addestramento. Nell'apprendimento federato i dati non possono essere spostati; inoltre, i partecipanti sono più lenti, meno affidabili e dispongono di dati distribuiti in modo diverso.
- Apprendimento suddiviso: divide la rete stessa tra client e server e scambia attivazioni intermedie, mentre nell'apprendimento federato ogni client riceve il modello completo e scambia i pesi.
- Privacy dei dati: l'obiettivo più ampio di proteggere le informazioni personali. L'apprendimento federato è una tecnica per perseguirlo e viene solitamente combinato con la privacy differenziale e l'aggregazione sicura.
- IA edge: esegue i modelli sui dispositivi. L'apprendimento federato tra dispositivi estende questo approccio addestrando i modelli sugli stessi dispositivi.










