L'apprendimento federato è un approccio decentralizzato all'addestramento di modelli di apprendimento automatico (ML). Ogni nodo di una rete distribuita addestra un modello globale utilizzando i propri dati locali, con un server centrale che aggrega gli aggiornamenti dei nodi per migliorare il modello globale.
I modelli di intelligenza artificiale (AI) richiedono enormi volumi di dati. Questi set di dati sono in genere centralizzati in un'unica posizione per l'addestramento dei modelli, aprendo la possibilità di esporre qualsiasi informazione di identificazione personale (PII) contenuta nei set di dati durante la trasmissione o lo storage.
L'apprendimento federato aiuta a risolvere questi problemi in quanto le informazioni sensibili rimangono sul nodo, preservando la privacy dei dati. Consente inoltre l'apprendimento collaborativo, con vari dispositivi o server che contribuiscono al perfezionamento dei modelli AI.
L'apprendimento federato prevede 4 fasi principali:
● Inizializzazione
● Addestramento locale
● Aggregazione globale
● Iterazione
L'apprendimento federato inizia con l'inizializzazione di un modello di apprendimento automatico globale su un server centrale. Questo modello è la base da cui ha inizio il processo di apprendimento federato.
Il server centrale distribuisce il modello globale ai nodi client connessi, che possono essere altri server o dispositivi edge come smartphone e dispositivi Internet of Things (IoT). Trasmette inoltre informazioni pertinenti, comprese variabili di configurazione come gli iperparametri e il numero di epoche o passaggi completi attraverso i dati di addestramento.
Dopo aver ricevuto il modello globale e tutti i dettagli necessari, ogni nodo client procede con l'addestramento. Il processo di addestramento è simile a quello di qualsiasi rete neurale, con i nodi client che addestrano il modello utilizzando solo i dati sul dispositivo o locali.
Una volta completato il numero di epoche, i nodi client trasmettono i parametri o i gradienti del modello aggiornati al server centrale: non vengono restituiti modelli locali o dati non elaborati completamente addestrati.
Il server centrale aggrega tutti gli aggiornamenti dei nodi client. Esistono diverse forme di aggregazione, ma un metodo comune è la media federata, che calcola la media ponderata di tutti gli aggiornamenti. Questi aggiornamenti combinati vengono quindi incorporati nel modello globale.
Il server centrale distribuisce nuovamente il nuovo modello globale ai nodi client collegati, e il processo di apprendimento federato si ripete fino a quando il modello raggiunge la piena convergenza o è completamente addestrato.
L'apprendimento federato può variare in base alla struttura dei set di dati o alla natura dei nodi client. In genere è classificato nelle seguenti categorie:
● Tra dispositivi
● Tra silo
● Orizzontale
● Verticale
L'apprendimento federato tra dispositivi utilizza dispositivi con connettività volatile e risorse di elaborazione limitate, come telefoni cellulari e dispositivi IoT. Questo tipo di apprendimento federato deve tenere conto delle connessioni di rete non affidabili, in quanto i nodi client possono gestire solo piccoli set di dati, di solito sono necessari numerosi dispositivi per l'addestramento locale.1
Le aziende di e-commerce, ad esempio, possono addestrare un motore di raccomandazione sui dati degli utenti su più dispositivi per fornire raccomandazioni più personalizzate sul prodotto.1
A differenza dell'approccio di apprendimento federato tra dispositivi, l'approccio tra silo comporta un numero limitato di server o data center con connettività stabile e risorse computazionali potenti abbastanza da memorizzare ed elaborare enormi volumi di dati. I nodi client sono trattati come silo che contengono dati personali e questi dati non devono lasciare il sistema o essere condivisi esternamente per motivi di privacy.1
L'apprendimento federato tra diversi silo può essere prezioso in settori come la finanza e l'assistenza sanitaria. Ad esempio, un consorzio di ospedali può addestrare un modello condiviso sui dati dei propri pazienti per migliorare la diagnosi o la previsione di determinate malattie. Allo stesso modo, una coalizione di banche può addestrare un algoritmo comune di apprendimento automatico utilizzando i propri registri delle transazioni per migliorare il rilevamento delle frodi.1
Nell'apprendimento federato orizzontale, i set di dati dei nodi client condividono le stesse caratteristiche o struttura ma hanno campioni diversi. Ad esempio, le cliniche possono addestrare un modello analitico condiviso in quanto ognuna ha le stesse variabili per i dati degli studi clinici ma valori distinti per i pazienti coinvolti negli studi.
Al contrario, l'apprendimento federato verticale coinvolge set di dati dei nodi client che condividono gli stessi esempi ma hanno una struttura o caratteristiche diverse. Ad esempio, un rivenditore e una banca potrebbero stringere una partnership per offerte più personalizzate per i clienti e possono addestrare un motore di raccomandazione comune perché potrebbero avere gli stessi dati sui clienti ma informazioni finanziarie e di acquisto differenti.
La natura decentralizzata dell'apprendimento federato offre questi vantaggi chiave:
● Efficienza
● Privacy dei dati ottimizzata
● Conformità ottimizzata
L'apprendimento federato elimina la necessità di accedere o trasferire set di dati di grandi dimensioni. Questo comporta una riduzione della latenza e una riduzione della larghezza di banda richiesta per l'addestramento dei modelli di apprendimento automatico.
L'architettura che preserva la privacy dei sistemi di apprendimento federati significa che i dati sensibili non lasciano mai un dispositivo. Questo aiuta a ridurre al minimo il rischio di attacchi informatici o violazioni dei dati.
La maggior parte dei sistemi di apprendimento federati implementa anche tecniche crittografiche, tra cui la privacy differenziale e il calcolo multipartitico sicuro (SMPC) per aumentare la privacy dei dati.
La privacy differenziale aggiunge rumore agli aggiornamenti del modello prima di trasmetterli al server centrale, mentre SMPC consente al server centrale di eseguire calcoli di aggregazione sicuri sugli aggiornamenti crittografati del modello. Questi metodi rendono difficile decodificare o distinguere quale nodo cliente ha contribuito all'aggiornamento, rafforzando la sicurezza dei dati.
Dal momento che i dati vengono conservati ed elaborati localmente, l'apprendimento federato può aiutare le aziende a rispettare le normative sulla protezione dei dati. La conformità è fondamentale per settori come la finanza e la sanità, che gestiscono dati privati.
L'apprendimento federato significa un cambiamento trasformativo nell'addestramento dei modelli AI, ma presenta anche dei limiti. Ecco alcune delle problematiche associate all'apprendimento federato:
● Attacchi avversari
● Sovraccarico di comunicazione
● Eterogeneità
L'apprendimento federato è vulnerabile agli attacchi di data poisoning, in cui gli attori delle minacce iniettano dati dannosi durante l'addestramento locale o alterano gli aggiornamenti del modello per la trasmissione per compromettere o danneggiare il modello centrale.
Il rilevamento delle anomalie, l'addestramento antagonista, i severi controlli di accesso e altre misure di sicurezza possono aiutare a proteggersi da questi attacchi.
Gli scambi regolari tra i nodi client e il server centrale possono causare notevoli colli di bottiglia. Per una migliore efficienza della comunicazione, prendi in considerazione strategie come la compressione degli aggiornamenti dei modelli prima della trasmissione, la quantizzazione e la sparsificazione per trasmettere un sottoinsieme degli aggiornamenti o solo gli aggiornamenti essenziali. Queste strategie devono essere bilanciate con qualsiasi conseguente diminuzione della precisione.
Il design decentralizzato dell'apprendimento federato può rafforzare la diversità dei dati che può aiutare a mitigare i pregiudizi. Tuttavia, questo significa anche che i dati non sono distribuiti in modo identico e possono essere sbilanciati. Alcuni dispositivi potrebbero contenere più dati di altri, inclinando il modello globale verso questi nodi ricchi di dati.
Alcuni modi per affrontare questa eterogeneità statistica includono le metodologie o le tecniche di campionamento che tengono conto della variazione della distribuzione, il cluster dei nodi con distribuzioni di dati simili durante l'addestramento del modello e l'ottimizzazione di algoritmi come FedProx, specifico per le reti eterogenee.
Anche l'eterogeneità dei sistemi è un problema, con dispositivi con funzionalità di elaborazione differenti. L'addestramento locale adattivo può essere applicato per personalizzare l'addestramento dei modelli in base a quello che un nodo è in grado di gestire.
L'apprendimento federato promette di aiutare a risolvere i problemi del mondo reale, con le organizzazioni che uniscono le forze anche al di là dei confini e delle regioni geografiche. Di seguito sono riportati alcuni settori che possono trarre vantaggio dall'apprendimento federato:
● Finanza
● Assistenza sanitaria
● Retail e produzione
● Pianificazione urbanistica
Gli istituti finanziari possono collaborare per diversificare i dati per i modelli di valutazione del rischio di credito, consentendo un migliore accesso al credito per i gruppi svantaggiati. Possono inoltre utilizzare l'apprendimento federato per fornire una consulenza bancaria e di investimento più personalizzata, migliorando così l'esperienza dell'utente.
Gli ospedali e gli istituti di ricerca possono addestrare modelli di deep learning condivisi che aiutano nella scoperta di farmaci per le malattie rare. I sistemi di apprendimento federati possono inoltre aiutare a trovare strategie terapeutiche ottimali e a migliorare i risultati dei pazienti per le comunità sottorappresentate.
I rivenditori possono utilizzare l'apprendimento federato per monitorare le vendite e l'inventario in più sedi senza rivelare alcun dato sui clienti, consentendo loro di massimizzare i livelli delle scorte e ridurre gli sprechi. Nel frattempo, i produttori possono aggregare i dati provenienti da diverse parti della supply chain per ottimizzare la logistica.
Le città intelligenti possono utilizzare al meglio l'apprendimento federato per raccogliere insight provenienti dalla miriade di dispositivi e sensori sparsi nelle aree urbane mantenendo privati i dati dei residenti. Questi insight possono essere utilizzati per indirizzare meglio il traffico, ad esempio, o per monitorare condizioni ambientali come l'inquinamento dell'aria e dell'acqua.
L'implementazione dell'apprendimento federato per applicazioni del mondo reale può essere complessa, ma esistono diversi framework per addestrare modelli su dati decentralizzati e semplificare i workflow di server e client. Di seguito sono riportati alcuni framework di apprendimento federato più diffusi:
● Flower
● Apprendimento federato IBM
● NVIDIA FLARE
● OpenFL
● TensorFlow Federated
Flower è un framework open source per l'AI collaborativa e la data science. Può essere utilizzato per creare sistemi di AI federati con numerosi client connessi. È compatibile con la maggior parte dei framework di apprendimento automatico e interoperabile con varie piattaforme hardware e sistemi operativi.
IBM Federated Learning è un framework per l'apprendimento federato in ambienti aziendali. Funziona con vari algoritmi di apprendimento automatico, tra cui alberi decisionali, classificatori Naive Bayes, reti neurali e apprendimento per rinforzo.
IBM Federated Learning include inoltre una ricca libreria di metodi di fusione per combinare gli aggiornamenti dei modelli e supporta varie tecniche di equità per aiutare a combattere i pregiudizi dell'AI.
NVIDIA FLARE (Federated Learning Application tempo di esecuzione Environment) è un kit di sviluppo software open source e indipendente dal dominio per l'apprendimento federato.
Dispone di workflow di addestramento e valutazione integrati, algoritmi di tutela della privacy e algoritmi di apprendimento per la media federata e FedProx. NVIDIA FLARE dispone inoltre di strumenti di gestione per l'orchestrazione e il monitoraggio.
OpenFL è un framework di apprendimento federato open source basato su Python, creato originariamente da Intel e ora gestito dalla Linux ® Foundation. OpenFL funziona con framework di deep learning come PyTorch e librerie di machine learning tra cui TensorFlow. Le sue caratteristiche di sicurezza includono privacy differenziale e supporto per ambienti di esecuzione affidabili basati su hardware.
TensorFlow Federated (TFF) è un framework open source sviluppato da Google per l'apprendimento automatico su dati decentralizzati. I livelli delle application programming interface (API) di TFF sono divisi in 2:
● L'API Federated Learning è il livello ottimale che facilita l'implementazione di attività di apprendimento federato come l'addestramento o la valutazione utilizzando modelli di apprendimento automatico esistenti.
● Federated Core API è il livello di basso livello per la creazione di nuovi algoritmi di apprendimento federati.
Tutti i link sono esterni a ibm.com
1 Cross-silo and cross-device federated learning on Google Cloud, Google Cloud, 3 June 2024.
Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.
Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.
Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.