Questo documento fornisce indicazioni di progettazione su come scegliere e integrare Google Cloud servizi di archiviazione per i tuoi carichi di lavoro di AI e ML. Ogni fase del ciclo di vita ML ha requisiti di archiviazione diversi. Ad esempio, quando carichi il set di dati di addestramento, potresti dare la priorità alla capacità di archiviazione per l'addestramento e a un'elevata velocità effettiva per i set di dati di grandi dimensioni. Allo stesso modo, le fasi di addestramento, ottimizzazione, servizio e archiviazione hanno requisiti diversi. Per la maggior parte dei carichi di lavoro di AI e ML, ti consigliamo di utilizzare Google Cloud Managed Lustre come soluzione di archiviazione. Managed Lustre offre prestazioni e scalabilità elevate, il che lo rende ideale per le fasi di addestramento, checkpointing, gestione e archiviazione, che hanno requisiti diversi.
Questo documento ti aiuta a valutare i requisiti di capacità, latenza e velocità effettiva per prendere decisioni informate e determinare la soluzione di archiviazione appropriata. Questo documento presuppone che tu abbia selezionato una piattaforma di calcolo che soddisfi i requisiti del tuo workload. Per i carichi di lavoro di AI e ML, ti consigliamo di utilizzare Compute Engine o Google Kubernetes Engine (GKE). Per ulteriori informazioni sulla selezione di una piattaforma di calcolo, consulta Hosting di applicazioni su Google Cloud.
Le seguenti schede forniscono un breve riepilogo delle scelte di archiviazione consigliate per ogni fase del flusso di lavoro ML. Per saperne di più, vedi Scegliere lo spazio di archiviazione appropriato.
Preparazione
Nella fase di preparazione del flusso di lavoro ML, esegui le seguenti operazioni:
- Carica e importa i dati.
- Trasforma i dati nel formato corretto prima di addestrare il modello.
Per ottimizzare i costi di archiviazione utilizzando più classi di archiviazione, ti consigliamo di utilizzare la funzionalità Autoclass di Cloud Storage o la gestione del ciclo di vita degli oggetti.
Addestra
Nella fase di addestramento del flusso di lavoro ML, esegui le seguenti operazioni:
- Sviluppo del modello: sviluppa il modello utilizzando i notebook e applicando prove ed errori iterativi.
- Addestramento del modello:
- Utilizza un numero di acceleratori di machine learning che va da pochi a molti per leggere ripetutamente il set di dati di addestramento.
- Applica un processo iterativo allo sviluppo e all'addestramento del modello.
- Checkpoint e riavvio:
- Salva periodicamente lo stato durante l'addestramento del modello creando un checkpoint in modo che l'addestramento possa riprendere dopo un errore del nodo.
- Esegui la selezione del checkpoint in base al pattern di I/O e alla quantità di dati da salvare al checkpoint.
Per le fasi di addestramento, consigliamo le seguenti opzioni di archiviazione:
- Utilizza Managed Lustre se il tuo workload presenta queste caratteristiche:
- Un requisito di capacità di addestramento minima di 18 TiB.
- Dati di addestramento costituiti da file di piccole dimensioni inferiori a 50 MB per sfruttare le funzionalità a bassa latenza.
- Un requisito di latenza inferiore a 1 millisecondo per soddisfare i requisiti di archiviazione per I/O casuali e accesso ai metadati.
- Un requisito per eseguire checkpointing ad alte prestazioni frequenti.
- Un'esperienza simile a quella del computer con supporto POSIX completo per visualizzare e gestire i dati dei tuoi utenti.
- Utilizza Cloud Storage con Cloud Storage FUSE e
Anywhere Cache se il tuo carico di lavoro presenta le seguenti caratteristiche:
- Dati di addestramento costituiti da file di grandi dimensioni di 50 MB o più.
- Tolleranza per una latenza di archiviazione più elevata nell'ordine di decine di millisecondi.
- Una priorità di durabilità dei dati e alta disponibilità rispetto alle prestazioni di archiviazione.
Per ottimizzare i costi, ti consigliamo di utilizzare lo stesso servizio di archiviazione in tutte le fasi dell'addestramento del modello.
Distribuzione
Nella fase di serving del flusso di lavoro ML, esegui le seguenti operazioni:
- Memorizza il modello.
- Carica il modello in un'istanza che esegue gli acceleratori di machine learning all'avvio.
- Memorizza i risultati dell'inferenza del modello, ad esempio le immagini generate.
- Se vuoi, archivia e carica il set di dati utilizzato per l'inferenza del modello.
Per le fasi di pubblicazione, consigliamo le seguenti opzioni di archiviazione:
- Managed Lustre se il tuo workload presenta queste caratteristiche:
- Il tuo workload di addestramento e checkpointing utilizza Managed Lustre.
- Un requisito per 10-100 nodi di inferenza.
- Aggiornamenti frequenti del modello.
- Cloud Storage con Cloud Storage FUSE e
Anywhere Cache se il tuo carico di lavoro presenta queste caratteristiche:
- Un requisito per una soluzione conveniente per un ambiente dinamico in cui il numero di nodi di inferenza può cambiare.
- Aggiornamenti poco frequenti del modello.
- Una priorità per l'alta disponibilità e la durabilità dei tuoi modelli, anche in caso di interruzioni a livello regionale.
- Google Cloud Hyperdisk ML se il tuo workload presenta le seguenti caratteristiche:
- Un requisito per più di 100 nodi di inferenza.
- Aggiornamenti poco frequenti del modello.
- Il tuo workload utilizza un tipo di macchina virtuale (VM) supportato.
- La pipeline può gestire volumi di sola lettura per archiviare i modelli.
Archivia
Nella fase di archiviazione dei carichi di lavoro di ML, conservi i dati di addestramento e il modello per periodi di tempo prolungati.
Per ottimizzare i costi di archiviazione con più classi di archiviazione, ti consigliamo di utilizzare Autoclass di Cloud Storage o la gestione del ciclo di vita degli oggetti.
Panoramica del processo di progettazione
Per determinare le opzioni di archiviazione appropriate per il tuo carico di lavoro di AI e ML in Google Cloud, procedi nel seguente modo:
- Considera le caratteristiche del tuo carico di lavoro, le aspettative in termini di prestazioni e gli obiettivi di costo.
- Esamina i servizi e le funzionalità di archiviazione consigliati in Google Cloud.
- In base ai tuoi requisiti e alle opzioni disponibili, scegli i servizi e le funzionalità di archiviazione di cui hai bisogno per ogni fase del flusso di lavoro di ML: preparazione, addestramento, pubblicazione e archiviazione.
Questo documento si concentra sulle fasi del flusso di lavoro ML in cui la valutazione attenta delle opzioni di archiviazione è più critica, ma non copre l'intero ciclo di vita, processi e funzionalità di ML.
Di seguito viene fornita una panoramica della procedura di progettazione in tre fasi per scegliere l'archiviazione per il tuo carico di lavoro AI e ML:
- Definisci i tuoi requisiti:
- Caratteristiche del workload
- Vincoli di sicurezza
- Requisiti di resilienza
- Aspettative di rendimento
- Obiettivi di costo
- Controlla le opzioni di archiviazione:
- Managed Lustre
- Cloud Storage
- Hyperdisk ML
- Scegliere l'archiviazione appropriata: scegli servizi di archiviazione, funzionalità e opzioni di progettazione in base alle caratteristiche del carico di lavoro in ogni fase del flusso di lavoro ML.
Definisci i tuoi requisiti
Prima di scegliere le opzioni di archiviazione per il tuo carico di lavoro di AI e ML in Google Cloud, devi definire i requisiti di archiviazione per il carico di lavoro. Per definire i requisiti di archiviazione, devi considerare fattori quali la piattaforma di calcolo, la capacità, la velocità effettiva e i requisiti di latenza.
Per aiutarti a scegliere un'opzione di archiviazione per i tuoi carichi di lavoro di AI e ML, considera le caratteristiche del tuo carico di lavoro:
- Le dimensioni richiesta di I/O e dei file sono piccole (KB), medie o grandi (MB o GB)?
- Il tuo workload mostra principalmente pattern di accesso ai file sequenziali o casuali?
- I tuoi carichi di lavoro di AI e ML sono sensibili alla latenza I/O e al tempo al primo byte (TTFB)?
- Hai bisogno di un'elevata velocità effettiva di lettura e scrittura per singoli client, client aggregati o entrambi?
- Qual è il numero massimo di Graphics Processing Unit (GPU) o Tensor Processing Unit (TPU) richiesto dal tuo singolo carico di lavoro di addestramento AI e ML più grande?
Utilizzerai le risposte a queste domande per scegliere lo spazio di archiviazione appropriato più avanti in questo documento.
Esaminare le opzioni di archiviazione
Google Cloud offre servizi di archiviazione per tutti i formati di archiviazione principali: blocchi, file, file system parallelo e oggetti. La tabella seguente descrive le opzioni che puoi prendere in considerazione per il tuo carico di lavoro AI e ML su Google Cloud. La tabella include le tre opzioni di spazio di archiviazione gestito da Google su cui si concentra questo documento per i tuoi carichi di lavoro di AI e ML. Tuttavia, se hai requisiti specifici che non sono soddisfatti da queste offerte, valuta le soluzioni di archiviazione gestite dai partner disponibili in Google Cloud Marketplace.
Esamina e valuta le funzionalità, le opzioni di progettazione e i vantaggi relativi dei servizi disponibili per ogni formato di archiviazione.
Servizio di archiviazione | Tipo di archiviazione | Funzionalità |
---|---|---|
Managed Lustre | File system parallelo |
|
Cloud Storage | Oggetto |
|
Hyperdisk ML | Blocca |
|
Managed Lustre
Managed Lustre è un file system completamente gestito in Google Cloud. Managed Lustre fornisce istanze permanenti e zonali basate sul file system Lustre DDN EXAScaler. Managed Lustre è ideale per i workload di AI e ML che devono fornire un accesso a bassa latenza inferiore a un millisecondo con un throughput elevato e un numero elevato di operazioni di input/output al secondo (IOPS). Managed Lustre può mantenere un'alta velocità effettiva e un numero elevato di IOPS per poche VM o per migliaia di VM.
Managed Lustre offre i seguenti vantaggi:
- Conformità POSIX: supporto dello standard POSIX, che contribuisce a garantire la compatibilità con molte applicazioni e strumenti esistenti.
- TCO inferiore per l'addestramento: accelera i tempi di addestramento fornendo in modo efficiente i dati ai nodi di calcolo. Questa accelerazione contribuisce a ridurre il TCO per l'addestramento dei modelli di AI e ML.
- TCO inferiore per la pubblicazione: consente un caricamento più rapido dei modelli e una pubblicazione dell'inferenza ottimizzata rispetto a Cloud Storage. Queste funzionalità contribuiscono a ridurre i costi di calcolo e a migliorare l'utilizzo delle risorse.
- Utilizzo efficiente delle risorse: combina il checkpointing e l'addestramento in una singola istanza. L'utilizzo di queste risorse contribuisce a massimizzare l'uso efficiente della velocità effettiva di lettura e scrittura in un unico sistema di archiviazione ad alte prestazioni.
Cloud Storage
Cloud Storage è un servizio di archiviazione di oggetti completamente gestito, adatto ai carichi di lavoro di AI e ML di qualsiasi scala. Cloud Storage eccelle nella gestione dei dati non strutturati per tutte le fasi del flusso di lavoro di AI e ML.
Cloud Storage offre i seguenti vantaggi:
- Scalabilità massiccia: ottieni una capacità di archiviazione illimitata che può essere scalata fino a exabyte a livello globale.
- Velocità effettiva elevata: scalabilità fino a 1 TB/s con la pianificazione richiesta.
- Opzioni di località flessibili: scegli tra opzioni di archiviazione regionali, multiregionali e a doppia regione per i carichi di lavoro AI e ML.
- Convenienza: usufruisci di una gamma di classi di archiviazione progettate per ottimizzare i costi in base ai pattern di accesso ai dati.
Cloud Storage eccelle in termini di scalabilità ed efficacia dei costi, ma è importante considerare la latenza e le caratteristiche di I/O. Prevedi una latenza di decine di millisecondi, superiore a quella di altre opzioni di archiviazione. Per massimizzare il throughput, devi utilizzare centinaia o migliaia di thread, file di grandi dimensioni e richieste I/O di grandi dimensioni. Cloud Storage fornisce librerie client in vari linguaggi di programmazione e offre Cloud Storage FUSE e Anywhere Cache.
Cloud Storage FUSE è un adattatore FUSE open source supportato da Google. Cloud Storage FUSE ti consente di montare i bucket Cloud Storage come unità locali. Cloud Storage FUSE non è completamente conforme a POSIX. Pertanto, è importante comprendere i limiti e le differenze di Cloud Storage FUSE rispetto ai file system tradizionali. Con Cloud Storage FUSE, puoi accedere ai dati di addestramento, ai modelli e ai checkpoint con la scalabilità, la convenienza e le prestazioni di Cloud Storage.
La memorizzazione nella cache di Cloud Storage FUSE offre i seguenti vantaggi:
- Portabilità: monta e accedi ai bucket Cloud Storage utilizzando la semantica standard del file system, il che rende le tue applicazioni più portatili.
- Compatibilità: elimina la necessità di eseguire il refactoring delle applicazioni per utilizzare API specifiche per il cloud, il che ti consente di risparmiare tempo e risorse.
- Tempi di inattività ridotti: avvia rapidamente i job di addestramento accedendo direttamente ai dati in Cloud Storage, il che riduce al minimo i tempi di inattività per GPU e TPU.
- Velocità effettiva elevata: sfrutta la scalabilità e le prestazioni integrate di Cloud Storage, ottimizzato per carichi di lavoro di ML con molte letture con GPU o TPU.
- Cache dei file locale per il client: accelera l'addestramento con una cache locale per il client che velocizza le letture ripetute dei file. Questa accelerazione può essere ulteriormente migliorata se utilizzata con l'SSD locale da 6 TiB incluso nei tipi di macchine A3.
Anywhere Cache è una funzionalità di Cloud Storage che fornisce fino a 1 PiB di cache di lettura zonale basata su SSD per i bucket Cloud Storage. Anywhere Cache è progettato per accelerare le applicazioni ad alta intensità di dati fornendo un livello di accesso locale e rapido per i dati letti di frequente all'interno di una zona specifica.
Anywhere Cache offre i seguenti vantaggi:
- Throughput accelerato: scala automaticamente la capacità della cache e la larghezza di banda per offrire un throughput elevato, superando le quote di larghezza di banda regionali, con latenze coerenti e prevedibili.
- Costi ridotti: evita le tariffe per il traffico in uscita del trasferimento di dati o le tariffe di recupero della classe di archiviazione per i dati memorizzati nella cache. Anywhere Cache dimensiona automaticamente la cache e la larghezza di banda disponibile per soddisfare le esigenze del tuo workload.
Hyperdisk ML
Hyperdisk ML è una soluzione di archiviazione a blocchi ad alte prestazioni progettata per accelerare i carichi di lavoro di AI e ML che richiedono l'accesso in sola lettura a set di dati di grandi dimensioni. Hyperdisk ML sfrutta la scalabilità e la disponibilità di Colossus per bilanciare le prestazioni nel file system sottostante. Hyperdisk ML è particolarmente adatto alle attività di gestione rispetto ad altri servizi di archiviazione su Google Cloud perché può fornire un throughput aggregato eccezionalmente elevato contemporaneamente a molte VM.
Hyperdisk ML offre i seguenti vantaggi:
- Scalabilità e servizio di modelli accelerati: esegui lo scale up fino a migliaia di nodi simultanei e ottieni un'elevata velocità effettiva aggregata, che ottimizza i tempi di caricamento e l'utilizzo delle risorse per i carichi di lavoro di inferenza con la modalità Kubernetes
ReadOnlyMany
. - Densità ad alte prestazioni: ottieni la velocità effettiva più elevata disponibile su Google Cloud e operazioni di lettura rapide per grandi set di dati condivisi.
- Miglioramento del costo totale di proprietà (TCO): riduci i costi con tempi di inattività della GPU più brevi, funzionalità multi-attach e pooling delle prestazioni.
- Accesso simultaneo in sola lettura: riduci i costi condividendo i dischi tra le VM, il che è più conveniente rispetto ad avere più dischi con gli stessi dati. Per accedere ai dati statici da più VM, devi collegare lo stesso disco in modalità di sola lettura a centinaia di VM. Per aggiornare il volume, il disco deve essere scollegato da tutte le VM tranne una.
Soluzioni di archiviazione partner
Per i requisiti dei workload che i servizi di archiviazione precedenti non soddisfano, puoi utilizzare le seguenti soluzioni partner, disponibili in Cloud Marketplace:
- Sycomp Storage Fueled by IBM Storage Scale
- WEKA Data Platform
- Licenza della piattaforma di dati VAST.
Queste soluzioni partner non sono gestite da Google. Devi gestire le attività di deployment e operative per garantire un'integrazione e prestazioni ottimali all'interno della tua infrastruttura.
Analisi comparativa
La tabella seguente mostra le funzionalità chiave dei servizi di archiviazione in Google Cloud.
Managed Lustre | Cloud Storage | Hyperdisk ML | |
---|---|---|---|
Capacità | 18 TiB - 8 PiB | Nessun limite inferiore o superiore. | 4 GiB - 64 TiB |
Scalabilità | Non scalabile | Scalabilità automatica in base all'utilizzo. | Scale up |
Condivisione | Può essere montato su più VM di Compute Engine e cluster GKE. |
|
Supportato |
Opzione chiave di crittografia | Google-owned and Google-managed encryption keys |
|
|
Persistenza | Durata dell'istanza Managed Lustre. | Durata del bucket | Durata del disco |
Disponibilità | A livello di zona |
|
A livello di zona |
Prestazioni | Scalabilità lineare con capacità di provisioning | Scalabilità automatica delle velocità di lettura/scrittura e ridistribuzione dinamica del carico | Scalabilità dinamica persistente |
Gestione | Completamente gestito, conforme a POSIX | Completamente gestito | Formattare e montare manualmente |
Strumenti di trasferimento dei dati
Questa sezione descrive le opzioni per spostare i dati tra i servizi di archiviazione su Google Cloud. Quando esegui attività di AI e ML, potresti dover spostare i dati da una posizione all'altra. Ad esempio, se i dati iniziano in Cloud Storage, potresti spostarli altrove per addestrare il modello e poi copiare gli snapshot del checkpoint o il modello addestrato di nuovo in Cloud Storage.
Puoi utilizzare i seguenti metodi per trasferire i dati a Google Cloud:
- Trasferisci i dati online utilizzando Storage Transfer Service: automatizza il trasferimento di grandi quantità di dati tra sistemi di archiviazione di oggetti e file, tra cui Cloud Storage, Amazon S3, servizi di archiviazione Azure e origini dati on-premise. Storage Transfer Service ti consente di copiare i dati in modo sicuro dalla posizione di origine a quella di destinazione ed eseguire trasferimenti periodici dei dati modificati. Fornisce inoltre la convalida dell'integrità dei dati, i tentativi automatici e il bilanciamento del carico.
- Trasferisci i dati offline utilizzando Transfer Appliance: trasferisci e carica grandi quantità di dati offline su Google Cloud in situazioni in cui la connettività di rete e la larghezza di banda non sono disponibili, sono limitate o costose.
- Carica dati in Cloud Storage: carica i dati online nei bucket Cloud Storage utilizzando la console, gcloud CLI, le API Cloud Storage o le librerie client. Google Cloud
Quando scegli un metodo di trasferimento dei dati, considera fattori come le dimensioni dei dati, i vincoli di tempo, la disponibilità di larghezza di banda, gli obiettivi di costo e i requisiti di sicurezza e conformità. Per informazioni sulla pianificazione e l'implementazione dei trasferimenti di dati a Google Cloud, consulta Eseguire la migrazione a Google Cloud: trasferire i set di dati di grandi dimensioni.
Scegliere lo spazio di archiviazione appropriato
I carichi di lavoro di AI e ML in genere prevedono quattro fasi principali: preparazione, addestramento, pubblicazione e archiviazione. Ciascuna di queste fasi ha requisiti di archiviazione unici e la scelta della soluzione giusta può influire in modo significativo su prestazioni, costi ed efficienza operativa. Un approccio ibrido o ottimizzato localmente ti consente di adattare le tue scelte di archiviazione alle esigenze specifiche di ogni fase del tuo carico di lavoro AI e ML. Tuttavia, se le tue priorità sono la gestione unificata e la facilità di operazione, un approccio semplificato a livello globale che utilizza una soluzione coerente in tutte le fasi può essere vantaggioso per i workload di qualsiasi scala. L'efficacia della scelta di archiviazione dipende dalle proprietà del set di dati, dalle dimensioni delle risorse di calcolo e archiviazione richieste, dalla latenza e dai requisiti del workload che hai definito in precedenza.
Le sezioni seguenti forniscono dettagli sulle fasi principali dei carichi di lavoro di AI e ML e sui fattori che potrebbero influenzare la scelta dello spazio di archiviazione.
Preparazione
La fase di preparazione pone le basi per la tua applicazione di AI e ML. Consiste nel caricare dati non elaborati da varie origini nel tuo ambiente cloud e nel trasformarli in un formato utilizzabile per l'addestramento del modello di AI e ML. Questo processo include attività come la pulizia, l'elaborazione e la conversione dei tipi di dati per garantire la compatibilità con il framework di AI e ML scelto.
Cloud Storage è adatto alla fase di preparazione grazie a scalabilità, durabilità ed economicità, in particolare per i grandi set di dati comuni nell'AI. Cloud Storage offre un'integrazione perfetta con altri serviziGoogle Cloud che ti consente di sfruttare le potenziali ottimizzazioni per l'addestramento che richiede un uso intensivo dei dati.
Durante la fase di preparazione dei dati, puoi riorganizzarli in blocchi di grandi dimensioni per migliorare l'efficienza dell'accesso ed evitare richieste di lettura casuali. Per ridurre ulteriormente i requisiti di prestazioni di I/O sul sistema di archiviazione, puoi aumentare il numero di thread I/O utilizzando il pipelining, l'ottimizzazione dell'addestramento o entrambi.
Addestra
La fase di addestramento è il fulcro dello sviluppo del modello, in cui il modello di AI e ML impara dai dati forniti. Questa fase prevede due aspetti chiave con requisiti distinti: caricamento efficiente dei dati per accedere ai dati di addestramento e checkpoint affidabile per salvare l'avanzamento del modello. Le sezioni seguenti forniscono consigli e fattori da considerare per scegliere le opzioni di archiviazione appropriate per il caricamento e il checkpoint dei dati.
Caricamento dei dati
Durante il caricamento dei dati, le GPU o le TPU importano ripetutamente batch di dati per addestrare il modello. In questa fase, puoi utilizzare una cache per ottimizzare le attività di caricamento dei dati, a seconda delle dimensioni dei batch e dell'ordine in cui li richiedi. Il tuo obiettivo durante il caricamento dei dati è addestrare il modello con la massima efficienza, ma al costo più basso.
Se le dimensioni dei dati di addestramento raggiungono i petabyte, potrebbe essere necessario rileggere i dati più volte. Una scala di questo tipo richiede un'elaborazione intensiva da parte di un acceleratore GPU o TPU. Tuttavia, devi assicurarti che le GPU e le TPU non siano inattive e che elaborino attivamente i tuoi dati. In caso contrario, paghi un acceleratore costoso e inattivo mentre copi i dati da una posizione all'altra.
Per ottimizzare prestazioni e costi per il caricamento dei dati, considera i seguenti fattori:
- Dimensione del set di dati: la dimensione del corpus complessivo dei dati di addestramento e la dimensione di ogni set di dati di addestramento.
- Pattern di accesso: quale delle seguenti opzioni classifica meglio
il pattern di accesso I/O del tuo carico di lavoro di addestramento:
- Accesso parallelo e sequenziale: un file viene assegnato a un singolo nodo e viene letto in sequenza.
- Accesso parallelo e casuale: un file viene assegnato a un singolo nodo e viene letto in modo casuale per creare un batch di campioni.
- Accesso completamente casuale: un nodo può leggere qualsiasi intervallo di qualsiasi file per creare un batch.
- Dimensioni file: le dimensioni tipiche delle richieste di lettura.
Managed Lustre per il caricamento dei dati
Devi scegliere Managed Lustre per caricare i dati se si verifica una delle seguenti condizioni:
- Hai un requisito di capacità di addestramento minima di 18 TiB.
- I dati di addestramento sono costituiti da piccoli file di dimensioni inferiori a 50 MB per sfruttare le funzionalità a bassa latenza.
- Hai un requisito di latenza inferiore a 1 millisecondo per soddisfare i requisiti di archiviazione per l'accesso I/O e ai metadati casuali.
- Per visualizzare e gestire i dati dei tuoi utenti, hai bisogno di un'esperienza simile a quella del computer con supporto POSIX completo.
Puoi utilizzare Managed Lustre come cache ad alte prestazioni su Cloud Storage per accelerare i carichi di lavoro di AI e ML che richiedono operazioni di I/O a bassa latenza e velocità effettiva estremamente elevata con un file system parallelo completamente gestito. Per ridurre al minimo la latenza durante l'addestramento, puoi importare i dati in Managed Lustre da Cloud Storage. Se utilizzi GKE come piattaforma di calcolo, puoi utilizzare
Driver CSI GKE Managed Lustre per precompilare PersistentVolumesClaims con i dati di Cloud Storage. Al termine dell'addestramento, puoi ridurre al minimo le spese di archiviazione a lungo termine esportando i dati in una classe Cloud Storage a costi inferiori.
Cloud Storage per il caricamento dei dati
In genere, devi scegliere Cloud Storage per caricare i dati se si verifica una delle seguenti condizioni:
- Hai un requisito di capacità di addestramento di almeno 100 TiB.
- I dati di addestramento sono costituiti da file di grandi dimensioni, pari o superiori a 50 MB.
- Dai la priorità alla durabilità e all'alta disponibilità dei dati rispetto alle prestazioni di archiviazione.
Cloud Storage offre una soluzione scalabile ed economica per archiviare set di dati di grandi dimensioni e Cloud Storage FUSE ti consente di accedere ai dati come file system locale. Cloud Storage FUSE accelera l'accesso ai dati durante l'addestramento mantenendo i dati di addestramento vicini agli acceleratori della macchina, il che aumenta la velocità effettiva.
Per i workload che richiedono un throughput superiore a 1 TB/s, Anywhere Cache accelera le velocità di lettura memorizzando nella cache i dati e scalando oltre le quote di larghezza di banda regionali. Per valutare se Anywhere Cache è adatto al tuo carico di lavoro, utilizza il motore per suggerimenti di Anywhere Cache per analizzare l'utilizzo e l'archiviazione dei dati.
Checkpoint e ripristino
Per il checkpoint e il ripristino, i job di addestramento devono salvare periodicamente il proprio stato in modo da poter recuperare rapidamente dagli errori dell'istanza. Quando si verifica l'errore, i job devono riavviarsi, inserire l'ultimo checkpoint e riprendere l'addestramento. Il meccanismo esatto utilizzato per creare e importare i checkpoint è in genere specifico di un framework. Per scoprire di più sui checkpoint e sulle tecniche di ottimizzazione per TensorFlow Core, consulta Checkpoint di addestramento. Per informazioni sui checkpoint e sulle tecniche di ottimizzazione per PyTorch, consulta la sezione Salvataggio e caricamento dei modelli.
Devi salvare solo alcuni checkpoint in un determinato momento. I carichi di lavoro del checkpoint in genere sono costituiti principalmente da scritture, diverse eliminazioni e, idealmente, letture poco frequenti in caso di errori.
Per ottimizzare il checkpointing e il ripristino delle prestazioni, considera i seguenti fattori:
- Dimensioni del modello: il numero di parametri presenti nel modello di AI e ML. La dimensione del modello influisce direttamente sulla dimensione dei file checkpoint, che può variare da GiB a TiB.
- Frequenza dei checkpoint: la frequenza con cui il modello salva i checkpoint. Salvataggi frequenti offrono una migliore tolleranza agli errori, ma aumentano i costi di archiviazione e possono influire sulla velocità di addestramento.
- Tempo di recupero del checkpoint: il tempo di recupero che vuoi per caricare i checkpoint e riprendere l'addestramento. Per ridurre al minimo il tempo di recupero, considera fattori come le dimensioni del checkpoint, le prestazioni di archiviazione e la larghezza di banda della rete.
Managed Lustre per il checkpoint
Devi scegliere Managed Lustre per il checkpoint se si verifica una delle seguenti condizioni:
- Il tuo carico di lavoro di addestramento utilizza già Managed Lustre per il caricamento dei dati.
- Devi eseguire checkpointing ad alte prestazioni frequenti.
Per massimizzare l'utilizzo delle risorse e ridurre al minimo il tempo di inattività dell'acceleratore, utilizza Managed Lustre per l'addestramento e il checkpoint. Managed Lustre può ottenere scritture di checkpoint veloci che raggiungono un throughput elevato per VM. Puoi conservare i checkpoint nell'istanza Managed Lustre permanente oppure puoi ottimizzare i costi esportando periodicamente i checkpoint in Cloud Storage.
Cloud Storage per il checkpoint
Devi scegliere Cloud Storage per il checkpoint se si verifica una delle seguenti condizioni:
- Il carico di lavoro di addestramento utilizza Cloud Storage FUSE.
- Dai la priorità alla durabilità e all'alta disponibilità dei dati rispetto alle prestazioni di archiviazione.
Per migliorare le prestazioni del checkpointing, utilizza Cloud Storage FUSE con spazi dei nomi gerarchici attivati per sfruttare l'operazione di ridenominazione atomica rapida e per salvare i checkpoint in modo asincrono. Per evitare l'esposizione accidentale di informazioni sensibili dal set di dati di addestramento durante la pubblicazione, devi archiviare i checkpoint in un bucket Cloud Storage separato. Per contribuire a ridurre le latenze di scrittura per i caricamenti bloccati, Cloud Storage FUSE tenta un nuovo tentativo dopo 10 secondi.
Distribuzione
Quando esegui il servizio del modello, noto anche come inferenza, il pattern I/O principale è di sola lettura per caricare il modello nella memoria della GPU o della TPU. Il tuo obiettivo nella fase di pubblicazione è eseguire il modello in produzione. Il modello è molto più piccolo dei dati di addestramento, il che significa che puoi replicarlo e scalare il modello su più istanze. Quando fornisci dati, è importante che tu disponga di alta disponibilità e protezione da errori zonali e regionali. Pertanto, devi assicurarti che il modello sia disponibile per una serie di scenari di errore.
Per molti casi d'uso di AI generativa e ML, i dati di input del modello potrebbero essere piuttosto piccoli e non è necessario archiviarli in modo permanente. In altri casi, potrebbe essere necessario eseguire grandi volumi di dati sul modello (ad esempio, set di dati scientifici). Per eseguire grandi volumi di dati, scegli un'opzione di archiviazione che possa ridurre al minimo il tempo di inattività della GPU o della TPU durante l'analisi del set di dati e utilizza una posizione persistente per archiviare i risultati dell'inferenza.
I tempi di caricamento del modello influiscono direttamente sul tempo di inattività dell'acceleratore, che comporta costi considerevoli. Un aumento del tempo di caricamento del modello per nodo può essere amplificato su molti nodi, il che può comportare un aumento significativo dei costi. Pertanto, per ottenere un'efficienza dei costi nell'infrastruttura di pubblicazione, è importante ottimizzare il caricamento rapido del modello.
Per ottimizzare il rendimento e i costi della pubblicazione, prendi in considerazione i seguenti fattori:
- Dimensioni modello: le dimensioni del modello in GiB o TiB. I modelli più grandi richiedono più risorse di calcolo e memoria, il che può aumentare la latenza.
- Frequenza di caricamento del modello: la frequenza con cui prevedi di aggiornare il modello. Il caricamento e lo scaricamento frequenti consumano risorse di calcolo e aumentano la latenza.
- Numero di nodi di servizio: quanti nodi serviranno il tuo modello. Un numero maggiore di nodi in genere riduce la latenza e aumenta il throughput, ma anche i costi dell'infrastruttura.
Managed Lustre per la pubblicazione
Devi scegliere Managed Lustre per pubblicare il modello se si verifica una delle seguenti condizioni:
- Il tuo workload di addestramento e checkpointing utilizza Managed Lustre.
- Il carico di lavoro utilizza da 10 a 100 nodi di inferenza.
- Aggiorni spesso il modello.
Se utilizzi già Managed Lustre per l'addestramento e il checkpoint, può essere un'opzione conveniente e ad alte prestazioni per la pubblicazione dei modelli. Managed Lustre offre un'elevata velocità effettiva per VM e una velocità effettiva del cluster aggregata che contribuisce a ridurre i tempi di caricamento del modello. Puoi utilizzare Managed Lustre per qualsiasi numero di VM di gestione.
Cloud Storage per la pubblicazione
Devi scegliere Cloud Storage per pubblicare il modello se si verifica una delle seguenti condizioni:
- Hai bisogno di una soluzione economicamente vantaggiosa per un ambiente dinamico in cui il numero di nodi di inferenza può variare.
- Apporti aggiornamenti poco frequenti al modello.
- Dai la priorità all'alta disponibilità e alla durabilità dei tuoi modelli, anche in caso di interruzioni regionali.
Con l'architettura multiregionale o dual-region, Cloud Storage offre alta disponibilità e protegge il tuo workload da errori a livello di zona e regione. Per accelerare il caricamento del modello, puoi utilizzare Cloud Storage FUSE con i download paralleli attivati in modo che le parti del modello vengano recuperate in parallelo.
Per ottenere la distribuzione del modello con un throughput superiore a 1 TB/s o per i deployment che superano un centinaio di nodi di servizio, utilizza Anywhere Cache con un bucket multiregionale. Questa combinazione offre storage ridondante ad alte prestazioni in più regioni e flessibilità. Inoltre, Anywhere Cache elimina le tariffe di uscita dei dati e di recupero della classe di archiviazione sui dati memorizzati nella cache.
Hyperdisk ML per la pubblicazione
Devi scegliere Hyperdisk ML per pubblicare il modello se si verifica una delle seguenti condizioni:
- Hai bisogno di più di 100 nodi di inferenza.
- Apporti aggiornamenti poco frequenti al modello.
- Il tuo workload utilizza un tipo di VM supportato.
- La pipeline può gestire volumi di sola lettura per archiviare i modelli.
Ottimizza le prestazioni di pubblicazione utilizzando Hyperdisk ML come cache per i dati di Cloud Storage. Hyperdisk ML utilizza il pooling delle prestazioni condivise e il throughput sottoposto a provisioning dinamico su più VM per gestire in modo efficiente la pubblicazione di modelli di sola lettura su qualsiasi scala.
Archivia
La fase di archiviazione ha un pattern I/O di "scrittura una sola volta, lettura rara". Il tuo obiettivo è archiviare i diversi set di dati di addestramento e le diverse versioni dei modelli che hai generato. Puoi utilizzare queste versioni incrementali di dati e modelli per scopi di backup e disaster recovery. Devi anche conservare questi articoli in un luogo sicuro per un lungo periodo di tempo. Anche se potresti non richiedere l'accesso ai dati e ai modelli molto spesso, vuoi che gli elementi siano disponibili quando ne hai bisogno.
Grazie alla sua estrema durabilità, alla sua ampia scalabilità e al suo basso costo, l'opzione migliore per archiviare i dati degli oggetti per un lungo periodo di tempo è Cloud Storage.Google Cloud A seconda della frequenza di accesso al set di dati, al modello e ai file di backup, Cloud Storage offre l'ottimizzazione dei costi tramite diverse classi di archiviazione. Puoi selezionare una classe di archiviazione in base alla frequenza con cui prevedi di accedere ai dati archiviati:
- Accesso frequente ai dati: Standard Storage
- Accesso mensile ai dati: Nearline Storage
- Accesso ai dati trimestrale: Coldline Storage
- Accesso annuale ai dati: Archive Storage
Utilizzando la gestione del ciclo di vita degli oggetti, puoi creare criteri per spostare automaticamente i dati in classi di storage a lungo termine o per eliminare i dati in base a criteri specifici. Se non sai con certezza la frequenza con cui potresti accedere ai tuoi dati, puoi utilizzare la funzionalità Autoclass per spostare automaticamente i dati tra le classi di archiviazione in base ai tuoi pattern di accesso.
Passaggi successivi
Per saperne di più sulle opzioni di archiviazione e sui carichi di lavoro AI/ML, consulta le seguenti risorse:
- Scopri come ottimizzare i carichi di lavoro di AI e ML con Managed Lustre.
- Scopri di più su come ottimizzare i carichi di lavoro AI e ML con Cloud Storage FUSE.
- Scopri di più sulla prospettiva AI e ML nel Google Cloud Well-Architected Framework.
- Per ulteriori architetture di riferimento, diagrammi e best practice, esplora il Cloud Architecture Center.
Collaboratori
Autore: Samantha He | Technical Writer
Altri collaboratori:
- David Stiver | Group Product Manager
- Dean Hildebrand | Technical Director, Office of the CTO
- Kumar Dhanagopal | Sviluppatore di soluzioni cross-product
- Sean Derrington | Group Outbound Product Manager, Storage