Fondamenti di IA
Che cos’è il Federated Learning?
Che cos’è il Federated Learning?
Il metodo tradizionale per addestrare i modelli di intelligenza artificiale prevede l’installazione di server in cui vengono addestrati i modelli 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, anziché 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 nell’addestramento 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/client addestrano la propria copia del modello utilizzando i dati locali del client, e quindi i parametri/pesi dei modelli individuali vengono inviati a un dispositivo master, o server, che aggrega i parametri e aggiorna il modello globale. Questo processo di addestramento può essere ripetuto fino a quando non si raggiunge un livello di precisione desiderato. In breve, l’idea alla base dell’apprendimento federato è che nessun dato di addestramento 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 base e viene addestrato su un server centrale. Nel primo passaggio, questo modello generico viene inviato ai client dell’applicazione. Le copie locali vengono quindi addestrate sui dati generati dai sistemi client, imparando 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 sono stati 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 dalla 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 (NFLX ) o Amazon (AMZN ), potrebbero essere addestrati sui dati raccolti da migliaia di utenti. I dispositivi client addestrerebbero i propri modelli separati e il modello centrale imparerebbe a fare previsioni migliori, anche se i punti di dati individuali sarebbero unici per i diversi utenti. Allo stesso modo, i modelli di rilevamento di frodi utilizzati dalle banche potrebbero essere addestrati sui modelli di attività da molti dispositivi diversi e un pugno di banche diverse potrebbero collaborare per addestrare un modello comune. In termini di un modello di apprendimento federato medico, più ospedali potrebbero collaborare per addestrare un modello comune che potrebbe riconoscere potenziali tumori attraverso le scansioni mediche.
Tipi di apprendimento federato
Gli schemi di apprendimento federato di solito rientrano in due classi diverse: sistemi multi-parti e sistemi a singola parte. I sistemi di apprendimento federato a singola parte vengono chiamati “a singola parte” perché solo un’entità è responsabile della cattura e del flusso dei dati in tutti i dispositivi client della rete di apprendimento. I modelli che esistono sui dispositivi client vengono addestrati sui dati con la stessa struttura, anche se i punti di dati sono tipicamente unici per i vari utenti e dispositivi.
In contrasto con i sistemi a singola parte, i sistemi multi-parti sono gestiti da due o più entità. Queste entità cooperano per addestrare 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 diverse entità, ma non devono essere esattamente gli stessi. Invece, viene eseguita una pre-elaborazione per standardizzare gli input del modello. Un’entità neutrale potrebbe essere impiegata per aggregare i pesi stabiliti dai dispositivi univoci 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 è destinato a 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 Google (GOOGL ) Tensorflow. 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 e destinato a fornire all’ecosistema di intelligenza artificiale federata un framework di calcolo sicuro.
Sfide dell’apprendimento federato
Poiché l’apprendimento federato è ancora abbastanza nuovo, una serie di sfide devono ancora essere superate affinché raggiunga il suo pieno potenziale. Le capacità di calcolo 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 addestramento locale, devono essere considerate quando si progettano approcci di apprendimento federato. Mentre la maggior parte degli smartphone, tablet e altri dispositivi compatibili con IoT sono in grado di addestrare modelli di apprendimento automatico, ciò di solito compromette le prestazioni del dispositivo. Saranno necessari compromessi tra precisione del modello e 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 addestramento chiaramente e coerentemente etichettati, il che può essere difficile da fare su tutti i 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 degli utenti.
Il tempo di convergenza del modello è un’altra sfida per l’apprendimento federato, poiché i modelli di apprendimento federato richiedono di solito più tempo per convergere rispetto ai modelli addestrati localmente. Il numero di dispositivi coinvolti nell’addestramento aggiunge un elemento di imprevedibilità all’addestramento del modello, poiché problemi di connessione, aggiornamenti irregolari e anche tempi di utilizzo diversi delle applicazioni possono contribuire a un tempo di convergenza più lungo e a una minor affidabilità. Per questo motivo, le soluzioni di apprendimento federato sono di solito più utili quando offrono vantaggi significativi rispetto all’addestramento centrale di un modello, come ad esempio nei casi in cui i set di dati sono estremamente grandi e distribuiti.

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












