IA 101
Che cos’è il Federated Learning?

Che cos’è il Federated Learning?
Il metodo tradizionale di formazione dei modelli di intelligenza artificiale prevede l’installazione di server in cui i modelli vengono formati sui dati, spesso attraverso l’utilizzo di una piattaforma di calcolo basata su cloud. Tuttavia, negli ultimi anni è emersa una forma alternativa di creazione di modelli, chiamata apprendimento federato. L’apprendimento federato porta i modelli di apprendimento automatico alla fonte dei dati, piuttosto che portare i dati al modello. L’apprendimento federato collega più dispositivi computazionali in un sistema decentralizzato che consente ai dispositivi individuali che raccolgono i dati di assistere nella formazione del modello.
In un sistema di apprendimento federato, i vari dispositivi che fanno parte della rete di apprendimento hanno ciascuno una copia del modello sul dispositivo. I diversi dispositivi/clienti formano la loro copia del modello utilizzando i dati locali del cliente, e quindi i parametri/pesi dai modelli individuali vengono inviati a un dispositivo master, o server, che aggrega i parametri e aggiorna il modello globale. Questo processo di formazione può essere ripetuto fino a quando non si raggiunge un livello di precisione desiderato. In sintesi, l’idea alla base dell’apprendimento federato è che nessun dato di formazione viene mai trasmesso tra dispositivi o tra parti, solo gli aggiornamenti relativi al modello vengono trasmessi.
L’apprendimento federato può essere suddiviso in tre passaggi o fasi. L’apprendimento federato inizia tipicamente con un modello generico che funge da baseline e viene formato su un server centrale. Nel primo passaggio, questo modello generico viene inviato ai client dell’applicazione. Queste copie locali vengono quindi formate sui dati generati dai sistemi client, apprendendo e migliorando le loro prestazioni.
Nel secondo passaggio, i client inviano tutti i parametri del modello appreso al server centrale. Ciò avviene periodicamente, secondo una programmazione fissata.
Nel terzo passaggio, il server aggrega i parametri appresi quando li riceve. Dopo che i parametri vengono aggregati, il modello centrale viene aggiornato e condiviso nuovamente con i client. L’intero processo si ripete quindi.
Il vantaggio di avere una copia del modello sui vari dispositivi è che le latenze di rete vengono ridotte o eliminate. I costi associati alla condivisione dei dati con il server vengono eliminati anche. Altri vantaggi dei metodi di apprendimento federato includono il fatto che i modelli di apprendimento federato sono preservati della privacy e le risposte del modello sono personalizzate per l’utente del dispositivo.
Esempi di modelli di apprendimento federato includono motori di raccomandazione, modelli di rilevamento di frodi e modelli medici. I motori di raccomandazione dei media, del tipo utilizzato da Netflix o Amazon, potrebbero essere formati sui dati raccolti da migliaia di utenti. I dispositivi client formerebbero i loro modelli separati e il modello centrale apprenderebbe a fare previsioni migliori, anche se i punti di dati individuali sarebbero unici per gli utenti diversi. Allo stesso modo, i modelli di rilevamento di frodi utilizzati dalle banche potrebbero essere formati sui modelli di attività da molti dispositivi diversi, e un pugno di banche diverse potrebbero collaborare per formare un modello comune. In termini di modello di apprendimento federato medico, più ospedali potrebbero collaborare per formare un modello comune che potrebbe riconoscere potenziali tumori attraverso scansioni mediche.
Tipi di apprendimento federato
Gli schemi di apprendimento federato tipicamente rientrano in due classi diverse: sistemi multiparti e sistemi uniparti. I sistemi di apprendimento federato uniparti sono chiamati “uniparti” perché solo un’entità è responsabile della supervisione della cattura e del flusso dei dati in tutti i dispositivi client della rete di apprendimento. I modelli che esistono sui dispositivi client vengono formati sui dati con la stessa struttura, anche se i punti di dati sono tipicamente unici per gli utenti e i dispositivi diversi.
In contrasto con i sistemi uniparti, i sistemi multiparti sono gestiti da due o più entità. Queste entità cooperano per formare un modello condiviso utilizzando i vari dispositivi e set di dati a cui hanno accesso. I parametri e le strutture dei dati sono tipicamente simili tra i dispositivi appartenenti alle entità multiple, ma non devono essere esattamente gli stessi. Invece, viene eseguita una pre-elaborazione per standardizzare gli input del modello. Potrebbe essere impiegata un’entità neutrale per aggregare i pesi stabiliti dai dispositivi unici appartenenti alle diverse entità.
Framework per l’apprendimento federato
I framework popolari utilizzati per l’apprendimento federato includono Tensorflow Federated, Federated AI Technology Enabler (FATE) e PySyft. PySyft è una libreria di apprendimento federato open-source basata sulla libreria di apprendimento profondo PyTorch. PySyft è progettato per garantire un apprendimento profondo privato e sicuro tra server e agenti utilizzando calcoli crittografati. Nel frattempo, Tensorflow Federated è un altro framework open-source costruito sulla piattaforma Tensorflow di Google. Oltre a consentire agli utenti di creare i propri algoritmi, Tensorflow Federated consente agli utenti di simulare una serie di algoritmi di apprendimento federato inclusi sui propri modelli e dati. Infine, FATE è anche un framework open-source progettato da Webank AI, ed è progettato per fornire all’ecosistema di intelligenza artificiale federata un framework di calcolo sicuro.
Sfide dell’apprendimento federato
Poiché l’apprendimento federato è ancora abbastanza nascente, una serie di sfide devono ancora essere superate affinché raggiunga il suo pieno potenziale. Le capacità di formazione dei dispositivi edge, l’etichettatura e la standardizzazione dei dati e la convergenza del modello sono potenziali ostacoli per gli approcci di apprendimento federato.
Le capacità computazionali dei dispositivi edge, quando si tratta di formazione locale, devono essere considerate quando si progettano approcci di apprendimento federato. Mentre la maggior parte degli smartphone, tablet e altri dispositivi IoT compatibili sono in grado di formare modelli di apprendimento automatico, ciò influisce generalmente sulle prestazioni del dispositivo. Saranno necessari compromessi tra l’accuratezza del modello e le prestazioni del dispositivo.
L’etichettatura e la standardizzazione dei dati sono un’altra sfida che i sistemi di apprendimento federato devono superare. I modelli di apprendimento supervisionato richiedono dati di formazione chiaramente e coerentemente etichettati, il che può essere difficile da fare tra i molti dispositivi client che fanno parte del sistema. Per questo motivo, è importante sviluppare pipeline di dati del modello che applichino automaticamente etichette in modo standardizzato in base agli eventi e alle azioni dell’utente.
Il tempo di convergenza del modello è un’altra sfida per l’apprendimento federato, poiché i modelli di apprendimento federato richiedono generalmente più tempo per convergere rispetto ai modelli formati localmente. Il numero di dispositivi coinvolti nella formazione aggiunge un elemento di imprevedibilità alla formazione del modello, poiché problemi di connessione, aggiornamenti irregolari e anche tempi di utilizzo dell’applicazione diversi possono contribuire a un tempo di convergenza più lungo e a una minor affidabilità. Per questo motivo, le soluzioni di apprendimento federato sono generalmente più utili quando forniscono vantaggi significativi rispetto alla formazione centrale di un modello, come ad esempio quando i set di dati sono estremamente grandi e distribuiti.

Photo: Jeromemetronome via Wikimedia Commons, CC By S.A. 4.0 (https://en.wikipedia.org/wiki/File:Federated_learning_process_central_case.png)












