Server di computing federato per la personalizzazione sul dispositivo

Federated Compute (FC) Server fa parte del programma Federated Learning offerto da On-Device Personalization (ODP). Questo documento presenta lo scopo di presentare Federated Compute Server (FC Server), i relativi componenti e la tecnologia utilizzata. Il documento fornisce una panoramica generale dell'architettura e poi analizza in dettaglio ogni componente. Inoltre, illustra come i componenti interagiscono per fornire un ambiente di apprendimento federato e offre strategie per scalare e suddividere i carichi di lavoro.

Flusso di addestramento

L'addestramento prevede flussi di dati tra il client FC e il server FC. FC Client è un modulo Android di base che addestra i modelli ML sul dispositivo e interagisce con FC Server. Il server FC elabora e aggrega in modo sicuro i risultati del client FC in un Trusted Execution Environment (TEE).

La formazione prevede i seguenti passaggi:

Diagramma di flusso che mostra il flusso di addestramento tra un client e un server di calcolo federato in Privacy Sandbox per Android.
  1. Il client FC sul dispositivo scarica una chiave di crittografia pubblica dai servizi chiavi.
  2. Il client FC esegue il check-in con il server FC e riceve un'attività di addestramento.
  3. Il client FC scarica un piano di addestramento, oltre alla versione N, ovvero la versione più recente del modello.
  4. Il client FC esegue l'addestramento utilizzando i dati locali e il piano.
  5. Il client FC cripta i contributi di questo dispositivo con la chiave pubblica ottenuta nel passaggio 0 e li carica sul server FC.
  6. Il client FC comunica al server FC il completamento dell'addestramento.
  7. FC Server attende che un numero sufficiente di clienti invii i propri contributi.
  8. Viene attivato un ciclo di aggregazione.
  9. I contributi criptati vengono caricati in un Trusted Execution Environment (TEE) dall'Aggregatore.
  10. L'aggregatore si attesta ai coordinatori, seguendo l'architettura delle procedure di attestazione remota (RATS) RFC 9334 del NIST. Al termine dell'attestazione, i servizi chiavi concedono le chiavi di decrittografia. Queste chiavi possono essere suddivise tra più provider di chiavi in uno schema di condivisione dei segreti di Shamir.
  11. L'aggregatore esegue l'aggregazione tra dispositivi, i clip e i rumori in base a meccanismi di privacy differenziale (DP) appropriati e restituisce i risultati con rumore.
  12. L'aggregatore attiva l'aggiornamento dei modelli.
  13. Model Updater carica il contributo aggregato e lo applica alla versione N del modello per creare la versione N + 1 del modello. Il nuovo modello viene inviato allo spazio di archiviazione dei modelli.

Il server FC può essere implementato su qualsiasi servizio cloud che supporti i TEE e le relative funzionalità di sicurezza. Stiamo valutando i provider di cloud pubblici e le tecnologie sottostanti, ma per ora la sezione seguente presenta un esempio di implementazione di Google Cloud utilizzando Spazio riservato.

Architettura di alto livello

Il server FC ha i seguenti componenti di cui è stato eseguito il deployment in Google Cloud:

Diagramma che mostra l'architettura del server di calcolo federato di Privacy Sandbox per Android.
Componente Descrizione
Servizio di gestione delle attività Un servizio web per la gestione dell'attività di addestramento. I partner devono utilizzare l'API di gestione delle attività per creare un'attività di addestramento, elencare tutte le attività di addestramento esistenti, annullare un'attività e recuperare tutti gli stati dell'addestramento.
Servizio di assegnazione delle attività Un servizio web basato su HTTPS in cui i dispositivi client eseguono controlli periodici per ottenere attività di addestramento e segnalare lo stato dell'addestramento.
Aggregatore Un servizio in background in esecuzione in Confidential Space. Esegue carichi di lavoro creati da ODP. Deve attestare i coordinatori, che proteggono l'accesso alle chiavi di decrittografia. Solo gli aggregatori attestati correttamente possono decriptare i contributi inviati dai dispositivi client ed eseguire l'aggregazione cross-device.
Model Updater Un servizio in background in esecuzione in Confidential Space che applica i gradienti aggregati al modello.

Dettagli componente

Le seguenti sezioni approfondiscono ulteriormente l'architettura generale:

Diagramma che mostra i componenti del server di calcolo federato di Privacy Sandbox per Android.

Servizio di gestione delle attività

Diagramma che mostra la topologia del servizio di gestione delle attività di Privacy Sandbox per Android.

Il servizio di gestione delle attività contiene due componenti secondari: il servizio web di gestione delle attività e il servizio di pianificazione delle attività, entrambi di cui è stato eseguito il deployment su GKE.

Gestione attività

Si tratta di un insieme di servizi web frontend che accettano richieste HTTPS e creano o ricevono attività dal database delle attività.

Task Scheduler

Un servizio in background che esegue la scansione continua del database delle attività. Gestisce il flusso di addestramento, ad esempio creando nuovi round e iterazioni di addestramento.

Database delle attività

Un database conforme ad ANSI SQL che archivia le informazioni su attività, iterazione e assegnazione. In questa implementazione, Google Cloud Spanner viene utilizzato come servizio di database di base.

Servizio di assegnazione delle attività

Diagramma che mostra la topologia del servizio di assegnazione delle attività di Privacy Sandbox per Android.

Il servizio di assegnazione delle attività è un servizio web frontend ospitato su GKE. Riceve le richieste dai client FC e distribuisce le attività di addestramento, se applicabili.

Il database delle attività qui è la stessa istanza di database del database delle attività in Task Management Service.

Servizio aggregatore

Diagramma che mostra la topologia del servizio di aggregazione di Privacy Sandbox per Android.
Aggregatore e strumento di aggiornamento dei modelli

Aggregatore e Model Updater sono due prodotti simili. Si tratta di servizi in background che elaborano i dati in modo sicuro in Spazio riservato. La comunicazione tra i job offline avviene tramite Pub/Sub.

Gradienti, gradienti aggregati, modello e piano
  • Uno spazio di archiviazione per i gradienti caricati (criptati) del dispositivo client.
  • Spazio di archiviazione dei gradienti aggregato per i gradienti aggregati, troncati e con rumore.
  • Uno spazio di archiviazione per i modelli e i piani per i piani di addestramento, i modelli e i pesi.
Raccoglitore

Collector è un servizio in background che conteggia periodicamente i dati inviati dal dispositivo client durante un ciclo di addestramento. Invia una notifica all'aggregatore per avviare l'aggregazione non appena è disponibile un numero sufficiente di invii.

Host di servizi

Tutti i servizi che non hanno accesso a informazioni sensibili sono ospitati su GKE.

Tutti i servizi che potrebbero trattare informazioni sensibili sono ospitati in Confidential Space.

Tutti i dati sensibili sono criptati con chiavi di crittografia gestite da servizi chiavi di proprietà di più parti. Solo il codice open source creato da ODP e in esecuzione su versioni legittime di Confidential Space per il computing riservato è attestato con esito positivo e può accedere alle chiavi di decriptazione.

In un'unità di servizio, la risorsa di calcolo ha il seguente aspetto:

Diagramma che mostra la topologia dell'unità di servizio di Privacy Sandbox per Android.

Scalabilità

L'infrastruttura descritta in precedenza si concentra su un'unità di servizio.

Un'unità di servizio utilizza un Cloud Spanner. Consulta Quote e limiti di Spanner per conoscere le limitazioni degne di nota.

Ogni componente di questa architettura può essere scalato in modo indipendente. Per farlo, scala la capacità all'interno dello spazio riservato o all'interno del cluster GKE utilizzando meccanismi di scalabilità standard. In pratica, la capacità di elaborazione può essere aumentata aggiungendo altre istanze di:

  • Servizio web di assegnazione delle attività
  • Web service di gestione delle attività
  • Istanze di aggregatore
  • Istanze Model Updater

Resilienza

La resilienza di un server FC viene gestita dal ripristino di emergenza che utilizza lo spazio di archiviazione replicato. Se ti interessa il ripristino di emergenza, devi abilitare la replica dei dati tra regioni. In questo modo, in caso di disastro (ad esempio un evento meteorologico che interrompe un data center), il servizio riprenderà dall'ultima fase di addestramento.

Spanner

L'implementazione predefinita di FC Server utilizza Google Cloud Spanner come database per archiviare lo stato delle attività utilizzato per controllare il flusso di addestramento. Prima di selezionare una configurazione in più regioni, valuta i compromessi tra coerenza e disponibilità in base alle esigenze della tua attività.

In nessuna istanza Spanner non sono archiviati dati utente o relativi derivati, non elaborati o criptati. Non esitare a utilizzare una qualsiasi delle funzionalità di ripristino di emergenza offerte da Spanner.

Spanner registra la cronologia delle modifiche. L'aggregatore e l'aggiornamento del modello archiviano i dati per ogni ciclo di addestramento e il risultato di ogni ciclo viene archiviato separatamente senza sovrascrivere l'altro. Per questo motivo, il servizio può riprendere dall'ultimo ciclo di addestramento in caso di emergenza.

Google Cloud Storage

L'implementazione predefinita di FC Server utilizza Google Cloud Storage per archiviare i dati dei blob, come modelli, piani di addestramento e contributi dei dispositivi criptati.

La struttura prevede tre istanze GCS:

  • Contributi con i dispositivi: contributi criptati caricati dai dispositivi.
  • Modelli: piani di allenamento, modelli e relativi pesi.
  • Gradienti aggregati: i gradienti aggregati prodotti dall'aggregatore.

I dati archiviati in GCS sono:

  • Dati forniti dallo sviluppatore, ad esempio un piano di addestramento OPPURE
  • Dati potenzialmente privati perché ricavati da indicatori utente (protetti da crittografia supportata da più coordinatori), come i gradienti caricati dal dispositivo e i gradienti aggregati OPPURE
  • Dati non privati derivati dagli indicatori utente, ma dopo l'applicazione della privacy differenziale, come i pesi del modello.

Devi valutare i compromessi tra coerenza e disponibilità e selezionare le funzionalità di disponibilità e durabilità dei dati GCS appropriate. Devi specificare le tue norme di conservazione dei dati.

Replica e backup

Oltre ai meccanismi di replica dei dati forniti da Google Cloud, puoi anche scegliere di eseguire periodicamente il backup dei dati in Spanner e GCS. Ad esempio, puoi utilizzare servizi e offerte di replica tra cloud. ODP non fornisce un campione perché queste configurazioni dipendono fortemente dalle esigenze aziendali. La progettazione attuale prende in considerazione le potenziali esigenze degli sviluppatori per queste repliche e i backup. Di conseguenza, è compatibile con i servizi e i prodotti di replica e backup forniti da terze parti.