approfondimento

Federated learning: come funziona la nuova tecnica di training che migliora l’efficacia dei modelli di AI



Indirizzo copiato

Permette ad aziende, istituti e individui di collaborare senza condividere direttamente i propri dati. Google, Samsung e Apple, e non solo, stanno investendo su questa tecnologia per migliorare i propri prodotti

Pubblicato il 27 nov 2024

Noemi Canovi

Team Data Science – Ammagamma Part of Accenture

Alessio Monti

Team Data Science – Ammagamma Part of Accenture



Federate learning
Fonte: immagine realizzata con Dall-E.

Il Federated learning è una tecnica innovativa di training (addestramento) di sistemi di Machine learning e Deep learning. Permette ad aziende, istituti e individui di collaborare senza condividere direttamente i propri dati. Grazie al Federated learning, possiamo migliorare l’efficacia dei sistemi di intelligenza artificiale, assicurando però la privacy e sicurezza dei dati. Grandi aziende come Google, Samsung e Apple e non solo stanno investendo su questa tecnologia per migliorare i propri prodotti.

Cos’è il Federated learning

Il Machine learning e il Deep Learning rappresentano due tra i campi più popolari e diffusi dell’Intelligenza Artificiale e sono i protagonisti di una profonda trasformazione in numerosi settori, tra cui l’intrattenimento, l’industria e la finanza.

I modelli sviluppati con tecniche di machine learning apprendono attraverso un processo noto come training (addestramento), in cui essi acquisiscono la capacità di svolgere un compito specifico analizzando svariati esempi di riferimento. La quantità di dati necessaria per addestrare un modello può variare significativamente: dai pochi gigabyte richiesti per i modelli più semplici fino ai terabyte di dati necessari per le applicazioni più complesse.

Central model training federate training
Figure 1. Pipeline tradizionale per il training di un modello di Machine Learning (Fonte: FlowerAI[1]).

I dati su cui i modelli di Machine learning vengono tradizionalmente addestrati provengono da fonti eterogenee. Potremmo, per esempio, avere immagini scattate da diversi telefoni o valori misurati da sensori differenti. Prima di allenare il modello, queste informazioni vengono tipicamente raccolte in un server centrale. Questo tipo di training viene chiamato tradizionale o centralizzato.

Federated learning, le caratteristiche

Il Federated learning propone un radicale cambio di paradigma: invece di centralizzare i dati nel punto di training, si sposta la fase di training verso i dati.

Nel Federated learning, il training del modello viene effettuato direttamente all’interno dei dispositivi in cui i dati sono collezionati. Superare la fase di centralizzazione dei dati produce un duplice effetto: si ottiene una maggiore efficienza computazionale, riducendo il carico sul server centrale e distribuendo il costo dell’addestramento fra l’insieme dei dispositivi che partecipano alla federazione, e un incremento della privacy, dal momento che i dati grezzi non lasciano mai il proprio nodo di origine.

Perché scegliere l’apprendimento federato?

I sistemi di Machine learning sono ampiamente sfruttati in diversi campi di applicazione, eppure ci sono situazioni in cui risulta difficoltoso, se non impossibile, allenare questi modelli con un approccio tradizionale. Esistono fattori che rendono complesso raccogliere i dati in un unico punto di servizio. Si possono individuare tre diverse cause: i regolamenti, le preferenze dell’utente e la quantità di dati.

Innanzitutto, esistono diversi regolamenti che proteggono i dati sensibili e limitano il trasferimento delle informazioni in altre regioni geografiche. Queste normative variano da regione a regione, si pensi al GDPR europeo, al CCPA californiano o al PIPEDA canadese. A seconda del regolamento, non è raro che una azienda non possa movimentare i dati dei propri clienti all’interno di aree geografiche differenti.

Le preferenze dell’utente sono ugualmente rilevanti. Ci sono casi in cui gli utenti non desiderano che i propri dati escano dai loro dispositivi: ad esempio, quando un utente digita una password su una tastiera del telefono, non vuole che questa venga trasmessa all’esterno.

Infine, la quantità di dati generati può essere talmente elevata da rendere difficile se non addirittura impossibile il trasferimento. Pensiamo alle telecamere di sicurezza, che registrano ore e ore di video. Spostarli in un unico punto sarebbe costoso ed impegnativo.

Il Federated learning risponde a queste sfide spostando l’addestramento sui dispositivi che generano i dati. In questo modo, è possibile sfruttare informazioni che altrimenti rimarrebbero inutilizzate o sottoutilizzate, garantendo allo stesso tempo la privacy e la sicurezza dei dati.

Federated learning, le applicazioni

Sebbene in linea di principio il Federated learning possa essere applicato in innumerevoli campi, si dimostra particolarmente utile in settori dove il volume e la sensibilità dei dati sono elevati. Tra questi settori vale la pena citare la sanità, la finanza, le assicurazioni, ma anche smart city ed Edge computing.

Sanità

In ambito sanitario, l’esempio maggiormente degno di nota è rappresentato da EXAM[2] (electronic medical record [EMR] chest X-ray AI model): per fare fronte alla crisi scatenata dalla pandemia di COVID-19, venti istituti internazionali hanno collaborato fornendo i propri dati all’addestramento di un modello che potesse fornire supporto alle decisioni cliniche (clinic decision support, CDS) in pazienti affetti da SARS-COV-2.

Il modello sfrutta in ingresso immagini radiografiche del torace (CXR), segni vitali, dati demografici e valori di laboratorio che in precedenti pubblicazioni si erano dimostrati predittivi degli esiti dei pazienti con COVID-19 per fornire in output un punteggio, denominato CORISK, strettamente legato ai requisiti di supporto dell’ossigeno per il paziente. Il Federated Learning ha permesso a questi istituti di collaborare senza compromettere la privacy dei pazienti e garantendo la governance dei dati.

Information Technology

Anche Gboard, la tastiera virtuale sviluppata da Google che molti di noi utilizzano quotidianamente sui propri smartphone, migliora attraverso il Federated learning[3]. Le informazioni che digitiamo non lasciano mai il nostro dispositivo, ma la tastiera apprende localmente e condivide quello che ha imparato con Google. Analogamente, Google Assistant sfrutta il Federated Learning per affinare le sue capacità nel riconoscimento vocale.

Banking

In ambito bancario diverse società si stanno orientando verso soluzioni di training federato: tra queste, la cooperativa internazionale SWIFT (Society for Worldwide Interbank Financial Telecommunication), responsabile di una delle principali reti globali utilizzata per lo scambio di informazioni sulle transazioni finanziarie in modo sicuro e standardizzato, ha recentemente avviato diversi studi per esplorare in che modo il Federated learning può permettere ai partecipanti della propria infrastruttura di scambiare informazioni senza rivelare i propri dati proprietari[4]: questa soluzione permetterebbe di sviluppare modelli di fraud detection sempre più avanzati, garantendo al contempo la sicurezza e la compliance dei dati.

Automotive

La collaborazione tra FEDML e Toyota[5] dimostra l’efficacia del Federated learning nel settore automotive e nell’edge computing. Di recente, le due aziende hanno sviluppato una Proof of Concept (PoC) per la stima della batteria di un’auto elettrica, considerando fattori come il traffico, le condizioni meteo, la durata e le abitudini di guida. Dato il volume e la complessità dei dati, oltre alla necessità di tutelare la privacy del guidatore, il Federated Learning emerge come una soluzione ideale: rispetto a un modello di ML tradizionale, è scalabile, meno costosa e offre previsioni più accurate.

Federated learning, l’architettura

Come differisce l’architettura e la fase di addestramento rispetto a un comune modello di machine learning centralizzato?

Federated learning
Figura 2. Pipeline tradizionale per il training di un modello di Machine Learning (Fonte: FlowerAI[6]).

La struttura alla base del Federated learning è una architettura di tipo client-server: i client rappresentano i singoli nodi presso cui si trovano i dati, i quali comunicano con un sistema centrale (server). In questo contento, col termine “nodo” si intende un qualunque dispositivo o sistema che partecipa al processo di apprendimento. Il server e i client condividono copie di un modello di machine learning: definiamo global model (modello globale) la copia in gestione al nodo centrale, e local models (modelli locali) le copie che risiedono dai client.

Nella variante più diffusa del Federated learning, così come è stata originariamente proposta da Google[7], i client possiedono sottoinsiemi differenti di esempi che condividono tuttavia la loro rappresentazione (features).

Ciascun nodo allena il proprio modello locale sul sottoinsieme di dati che ha in gestione, evitando la necessità di condividere esplicitamente i dati con altri client. Ogni client realizza perciò un update al proprio modello locale, che viene condiviso con il nodo centrale e successivamente sintetizzato all’interno del modello globale.

Training pipeline

In quest’ottica, il server si occupa di coordinare i singoli training e di gestire conseguentemente l’aggiornamento del modello globale a partire dai singoli modelli locali. Il training federato si compone di una serie di cicli consecutivi, che è possibile scomporre in quattro step principali:

  1. Communication round. Il server condivide il modello globale ai singoli client, i quali lo utilizzano per inizializzare il proprio modello locale.
  2. Clients training. Ogni client addestra il modello locale sui dati che ha in gestione, in modo indipendente e isolato rispetto agli altri nodi. A differenza del training di un classico modello di machine learning, che viene protratto tipicamente fino a convergenza, ovvero fino a che iterazioni successive non introducono più miglioramenti significativi, l’addestramento dei modelli locali viene portato avanti solo per un numero esiguo di iterazioni. I dati dei singoli client potrebbero infatti avere significative differenze nella propria distribuzione (in gergo, non-IID data): training prolungati presso i nodi locali genererebbero modelli eccessivamente specializzati, che difficilmente potrebbero essere integrati nel modello globale senza impattarne le prestazioni complessive. Update minori rendono più facile l’opera di sintesi del server, permettendogli di integrare gradualmente le diverse prospettive che emergono dai singoli training.
  3. Model aggregation. Una volta che i client hanno terminato l’addestramento e prodotto un update al proprio modello locale, ciascun update viene inviato al server, il quale li aggrega producendo un singolo update al modello globale.
  4. Convergence check. Una volta aggiornato il modello globale, si effettuano verifiche per controllare se si è giunti a convergenza: in caso positivo, il training può terminare, viceversa il modello globale (ora aggiornato) viene passato nuovamente ai singoli client, ripartendo dal punto 1 nel ciclo successivo

Tipologie di training federato

Come detto, una delle caratteristiche principali del federated learning è la decentralizzazione dei dati: la distribuzione e la natura dei dati distribuiti presso i client dà origine a due tipologie differenti di federated learning, il federated learning orizzontale e il federated learning verticale.

Nel Federated learning orizzontale i dati distribuiti fra i client condividono la stessa natura (features), ma client differenti contengono porzioni di dati differenti; si pensi per esempio al sopra citato caso EXAM[8], dove diversi ospedali hanno condotto una ricerca sulla medesima malattia, collezionando gli stessi dati sanitari per pazienti differenti: grazie al federated learning ogni ospedale ha potuto addestrare il proprio modello di machine learning sui dati a sua disposizione e condividere successivamente l’update del proprio modello locale al server centrale, il quale si è occupato di aggregare i singoli modelli locali all’interno di un unico modello.

Federated learning
Figure 2. Distribuzione orizzontale dei dati (Fonte: Ammagamma – Part of Accenture[9]

Nel Federated learning verticale i dati distribuiti hanno differente natura (features) ma client differenti possono contenere dati relativi agli stessi oggetti. Un classico caso è rappresentato dalle collaborazioni cross-industry, dove player distinti raccolgono informazioni differenti sugli stessi oggetti o persone. Si consideri, per esempio, il caso in cui una banca e una compagnia di e-commerce possiedano dati sugli stessi utenti: la banca raccoglie informazioni finanziarie (reddito, affidabilità creditizia, …), mentre l’e-commerce possiede informazioni legate alle abitudini di acquisto (storico degli acquisti, wishlist, …); nel caso si volesse costruire un modello che predica l’idoneità dei singoli utenti ad eventuali prestiti a partire da entrambe queste fonti, le due compagnie potrebbero condividere i propri insight senza condividere in senso stretto i dati. A differenza del FL orizzontale, questo caso comporta una maggiore complessità e costo di sincronizzazione, in quanto si rende necessario allineare i sample (utenti) fra le diverse fonti/nodi, condividere reciprocamente le feature (in maniera criptata), e portare avanti il training in modo congiunto.

Federated learning
Figure 4. Distribuzione verticale dei dati (Fonte: Ammagamma – Part of Accenture[10]).

Federated learning, i benefici

Come anticipato, il maggiore potenziale del Federated Learning si apprezza nei campi dove la sensibilità dei dati è un requisito imprescindibile: le federazioni aprono nuove possibilità per una forma di IA collaborativa che rispetti, tuttavia, la privacy individuale e la data governance. By design, il federated learning assicura che i dati non lascino mai il dispositivo di origine, risultando intrinsecamente conforme alle recenti leggi sulla protezione dei dati, come la General Data Protection Regulation (GDPR) in Europa o il California Consumer Privacy Act (CCPA) negli Stati Uniti. A questo aspetto si aggiungono le singole protezioni attuate in fase di comunicazione fra client e server: l’utilizzo di crittografia e la privacy differenziale.

In particolare, quest’ultima prevede di iniettare del “rumore” agli update del modello scambiati fra client e server, assicurando che, una volta aggregati, i contributi apportati dai singoli modelli locali non siano rintracciabili.

A questi vantaggi, si aggiunge l’efficienza nella trasmissione dei dati, che si traduce direttamente in un risparmio di banda: questo risulta particolarmente evidente in tutti quegli scenari dove la centralizzazione dei dati non è realizzabile, per motivi che vanno dalla limitata connettività a un costo troppo elevato nell’accorpamento di ingenti quantità di dati.

Come detto, il Federated Learning prevede la compressione dei dati in fase di trasmissione degli update; a questo, si aggiunge la comunicazione asincrona instaurata fra client e server, la quale permette ai singoli dispositivi di partecipare agli update del modello globale solamente nel momento in cui essi dispongono di condizioni di rete adeguate.

Infine, la natura decentralizzata del Federated learning permette a queste architetture di essere intrinsecamente scalabili, distribuendo il carico del training sui singoli nodi, ed estremamente flessibili, permettendo di accorpare una vasta gamma di dispositivi di diversa natura.

Federated learning, i requisiti

Gli aspetti positivi di cui abbiamo parlato non si ottengono tuttavia gratuitamente.

In primo luogo, strategie di Federated learning comportano una complessità organizzativa e di gestione non indifferente. Il numero di client può essere potenzialmente molto alto, fino a migliaia o milioni di dispositivi per applicazione (si pensi al sopra citato caso GBoard[11]): la sintesi dei singoli update provenienti da questi client richiede sofisticati algoritmi, che devono essere regolati ad hoc per ogni applicazione. Inoltre, la sincronizzazione di questi update, che avvengono a ritmi diversi in base alle capacità del dispositivo, introduce inevitabili overhead di comunicazione. A questo si somma la complessità del mantenimento della consistenza del modello globale quando il numero di partecipanti aumenta.

Problemi di cybersecurity

Nonostante i sopra-citati vantaggi in termini di privacy e sicurezza, le federazioni non sono inoltre immuni da minacce da parte di malintenzionati, i quali possono avere interesse nel compromettere le performance del modello o introdurre bias.

Gli attacchi più comuni sono i cosiddetti poisoning attacks[12], dove gli aggressori cercano di contaminare il training iniettando informazioni corrotte nell’update del modello (model poisoning) o nei dati dei singoli dispositivi (data poisoning). Per difendersi da queste aggressioni sono disponibili meccanismi di difesa[13] e metodi di recovery[14]: tuttavia, l’implementazione di queste misure aggiunge ulteriore complessità e sovraccarico computazionale.

Infine, la natura decentralizzata del Federated Learning implica che i dati distribuiti fra i nodi possano essere fortemente eterogenei (per esempio, gli smartphone hanno pattern di utilizzo molto differenti da persona a persona) e in generale non uniformemente distribuiti (nodi più capaci potrebbero produrre ingenti quantità di dati rispetto a nodi con meno risorse computazionali). La gestione di tale eterogeneità comporta l’utilizzo di tecniche di sampling sofisticate così come metodologie di aggregazione avanzate, che, ancora una volta, introducono ulteriori livelli di complessità e carico computazionale.

Conclusioni

Il Federated learning rappresenta una rivoluzione nel campo dell’addestramento dei modelli di Machine learning, spostando il focus dall’accentramento dei dati all’elaborazione distribuita.

Questo approccio permette di superare sfide legate alla privacy, alla sicurezza e alla quantità di dati, garantendo al contempo l’efficienza del training e la scalabilità dell’architettura. Tuttavia, questa innovativa metodologia non è esente da complessità, come la gestione dell’eterogeneità dei dati e la difesa da possibili attacchi. Nonostante ciò, le potenzialità offerte dal Federated learning sono importanti, specialmente in settori dove il rispetto della privacy è cruciale.

In futuro, possiamo aspettarci che questo paradigma giochi un ruolo sempre più centrale nello sviluppo di soluzioni di AI collaborativa, sicura e rispettosa della data governance.

Note

https://ieeexplore.ieee.org/document/10179336

https://flower.ai/docs/framework/index.html

https://www.nature.com/articles/s41591-021-01506-3

https://research.google/blog/improving-gboard-language-models-via-private-federated-analytics/

https://www.swift.com/news-events/press-releases/swift-launch-ai-powered-fraud-defence-enhance-cross-border-payments

https://aecc.org/proof-of-concepts/entry/995/

https://flower.ai/docs/framework/index.html

https://research.google/blog/federated-learning-collaborative-machine-learning-without-centralized-training-data/

https://www.nature.com/articles/s41591-021-01506-3

https://ammagamma.com/

https://ammagamma.com/

https://research.google/pubs/federated-learning-for-mobile-keyboard-prediction-2/

https://ieeexplore.ieee.org/document/10024252/

https://dl.acm.org/doi/10.1007/978-3-030-88418-5_22

Articoli correlati

Articolo 1 di 4