Progetta l'archiviazione per i carichi di lavoro di AI e ML in Google Cloud

Last reviewed 2024-03-20 UTC

Quando scegli i servizi di archiviazione di Google Cloud per i tuoi carichi di lavoro di intelligenza artificiale (AI) e machine learning (ML), devi prestare attenzione a selezionare la combinazione corretta di opzioni di archiviazione per ogni job specifico. Questa esigenza di un'attenta selezione si applica quando carichi il set di dati, addestra e ottimizza il modello, metti il modello in produzione o archivi il set di dati e il modello in un archivio. In breve, devi selezionare i migliori servizi di archiviazione che forniscono la latenza, la scalabilità e i costi adeguati per ogni fase dei tuoi carichi di lavoro di AI e ML.

Per aiutarti a fare scelte ben informate, questo documento fornisce indicazioni sulla progettazione su come utilizzare e integrare la varietà di opzioni di archiviazione offerte da Google Cloud per i principali carichi di lavoro AI e ML.

La Figura 1 mostra un riepilogo delle principali scelte di archiviazione. Come mostrato nel diagramma, in genere scegli Cloud Storage quando hai dimensioni dei file più grandi, operazioni di input e output al secondo (IOPS) inferiori o latenza superiore. Tuttavia, quando hai bisogno di un numero maggiore di IOPS, di file di dimensioni più piccole o di latenza inferiore, scegli Filestore.

Figura 1: considerazioni primarie sull'archiviazione per AI e ML

Scegli Cloud Storage quando hai dimensioni di file più grandi, IOPS più bassi o latenza maggiore. Scegli Filestore quando hai bisogno di IOPS più elevati, dimensioni di file più piccole o latenza inferiore.

Panoramica delle fasi dei carichi di lavoro di AI e ML

I carichi di lavoro di AI e ML sono costituiti da quattro fasi principali: preparazione, addestramento, pubblicazione e archiviazione. Queste sono le quattro volte del ciclo di vita di un carico di lavoro AI e ML in cui è necessario prendere una decisione sulle opzioni di archiviazione da utilizzare. Nella maggior parte dei casi, ti consigliamo di continuare a utilizzare la stessa scelta di archiviazione selezionata nella fase di preparazione per le fasi rimanenti. Seguendo questo suggerimento puoi ridurre la copia di set di dati tra i servizi di archiviazione. Tuttavia, esistono alcune eccezioni a questa regola generale, descritte più avanti in questa guida.

Alcune soluzioni di archiviazione funzionano meglio di altre in ogni fase e potrebbero dover essere combinate con opzioni di archiviazione aggiuntive per ottenere risultati ottimali. L'efficacia della scelta dell'archiviazione dipende dalle proprietà del set di dati, dalla scala delle risorse di calcolo e di archiviazione richieste, dalla latenza e da altri fattori. La seguente tabella descrive le fasi e un breve riepilogo delle scelte di archiviazione consigliate per ogni fase. Per una rappresentazione visiva di questa tabella e per ulteriori dettagli, consulta l'albero decisionale.

Tabella 1: suggerimenti di archiviazione per le fasi e i passaggi nei carichi di lavoro di AI e ML
Fasi Procedura Suggerimenti per lo spazio di archiviazione

Preparazione

Preparazione dei dati

  • Carica e importa i tuoi dati.
  • Trasforma i dati nel formato corretto prima di addestrare il modello.

Cloud Storage

  • File di grandi dimensioni (50 MB o più grandi) che possono tollerare una latenza di archiviazione superiore (decine di millisecondi).

Filestore a livello di zona

  • Set di dati più piccoli con file più piccoli (meno di 50 MB) e minore latenza di archiviazione (~ 1 millisecondo).

Treno

  1. Sviluppo di modelli
    • Sviluppa il modello utilizzando i blocchi note e applicando prove ed errori iterativi.
  2. Addestramento del modello
    • Utilizza numeri su scala da scala ridotta di unità di elaborazione grafica (GPU Cloud) o Tensor Processing Unit (Cloud TPU) per leggere ripetutamente il set di dati di addestramento.
    • Applica un processo iterativo allo sviluppo e all'addestramento di un modello.

Cloud Storage

  • Se selezioni Cloud Storage nella fase di preparazione, ti consigliamo di addestrare i dati in Cloud Storage.

Cloud Storage con SSD locale o Filestore

  • Se selezioni Cloud Storage in fase di preparazione, ma devi supportare richieste di I/O o file di piccole dimensioni, puoi integrare le attività di addestramento. Per farlo, sposta alcuni dati da Cloud Storage all'SSD locale o a Filestore di zona.

Filestore

  • Se selezioni Filestore nella fase di preparazione, ti consigliamo di addestrare i dati in Filestore.
  • Crea una cache SSD locale per integrare le attività di addestramento di Filestore.
  1. Checkpoint e riavvio
    • Salva lo stato periodicamente durante l'addestramento del modello creando un checkpoint in modo che l'addestramento possa riavviarsi in seguito a un errore del nodo.
    • Effettua questa selezione in base al pattern I/O e alla quantità di dati da salvare nel checkpoint.

Cloud Storage

  • Se selezioni Cloud Storage nella fase di preparazione, ti consigliamo di utilizzare Cloud Storage per il checkpoint e il riavvio.
  • Ideale per la velocità effettiva e i carichi di lavoro che richiedono un numero elevato di thread.

Filestore a livello di zona

  • Se selezioni Filestore nella fase di preparazione, ti consigliamo di utilizzare Filestore per il checkpoint e il riavvio.
  • Ideale per latenza, velocità effettiva per client elevata e numero ridotto di thread.

Pubblicare

  • Archivia il modello.
  • Carica il modello in un'istanza che esegue GPU Cloud o Cloud TPU all'avvio.
  • Archivia i risultati dell'inferenza del modello, ad esempio le immagini generate.
  • Facoltativamente, archivia e carica il set di dati utilizzato per l'inferenza del modello.

Cloud Storage

  • Se addestra il modello in Cloud Storage, ti consigliamo di utilizzare Cloud Storage per gestire il modello.
  • Salva il contenuto generato dal modello in Cloud Storage.

Filestore

  • Se addestra il modello in Filestore, ti consigliamo di utilizzare Filestore per la gestione del modello.
  • Se hai bisogno di durabilità e bassa latenza quando generi file di piccole dimensioni, scegli Filestore di zona (a livello di zona) o Filestore Enterprise (a livello di regione).

Archivio

  • Conserva i dati di addestramento e il modello per periodi di tempo prolungati.

Cloud Storage

Per ulteriori dettagli sui presupposti sottostanti per questa tabella, consulta le sezioni seguenti:

Criteri

Per restringere le scelte delle opzioni di archiviazione da utilizzare per i carichi di lavoro di AI e ML, inizia rispondendo a queste domande:

  • Le dimensioni delle richieste di AI e ML I/O e dei file sono di piccole, medie o grandi dimensioni?
  • I tuoi carichi di lavoro di AI e ML sono sensibili alla latenza I/O e al time to first byte (TTFB)?
  • Hai bisogno di una velocità effettiva di lettura e scrittura elevata per client singoli, client aggregati o entrambi?
  • Qual è il numero maggiore di GPU Cloud o Cloud TPU richieste dal tuo carico di lavoro di addestramento AI e ML più grande?

Oltre a rispondere alle domande precedenti, devi anche conoscere le opzioni di calcolo e gli acceleratori che puoi scegliere per ottimizzare i carichi di lavoro di AI e ML.

Considerazioni sulla piattaforma di computing

Google Cloud supporta tre metodi principali per l'esecuzione di carichi di lavoro AI e ML:

Sia per Compute Engine che per GKE, consigliamo di utilizzare l'HPC Toolkit per eseguire il deployment di cluster ripetibili e pronti all'uso che seguono le best practice di Google Cloud.

Considerazioni sull'acceleratore

Quando selezioni le scelte di archiviazione per i carichi di lavoro AI e ML, devi anche selezionare le opzioni di elaborazione dell'acceleratore appropriate per l'attività. Google Cloud supporta due scelte per gli acceleratori: GPU NVIDIA Cloud e Google Cloud TPU sviluppate appositamente. Entrambi i tipi di acceleratore sono circuiti integrati specifici per le applicazioni (ASIC) che vengono utilizzati per elaborare i carichi di lavoro di machine learning in modo più efficiente rispetto ai processori standard.

Esistono alcune importanti differenze di archiviazione tra le GPU Cloud e gli acceleratori Cloud TPU. Le istanze che utilizzano GPU Cloud supportano gli SSD locali con una velocità effettiva di archiviazione remota disponibile fino a 200 GBps. I nodi e le VM Cloud TPU non supportano gli SSD locali e si affidano esclusivamente all'accesso allo spazio di archiviazione remoto.

Per saperne di più sui tipi di macchine ottimizzate per l'acceleratore, consulta la pagina relativa alla famiglia di macchine ottimizzate per l'acceleratore. Per ulteriori informazioni sulle GPU Cloud, consulta Piattaforme GPU Cloud. Per ulteriori informazioni sulle Cloud TPU, consulta Introduzione a Cloud TPU. Per ulteriori informazioni sulla scelta tra Cloud TPU e GPU Cloud, consulta Quando utilizzare le Cloud TPU.

Opzioni di archiviazione

Come riepilogato in precedenza nella Tabella 1, utilizza l'archiviazione di oggetti o file con i carichi di lavoro AI e ML e poi integra questa opzione di archiviazione con l'archiviazione a blocchi. La Figura 2 mostra tre opzioni tipiche che puoi prendere in considerazione quando selezioni la scelta di archiviazione iniziale per il tuo carico di lavoro AI e ML: Cloud Storage, Filestore e Google Cloud NetApp Volumes.

Figura 2: servizi di archiviazione appropriati per AI e ML offerti da Google Cloud

Le tre opzioni che puoi prendere in considerazione quando selezioni la scelta di archiviazione iniziale per i tuoi carichi di lavoro AI e ML sono Cloud Storage, Filestore e NetApp Volumes.

Se hai bisogno di archiviazione di oggetti, scegli Cloud Storage. Cloud Storage fornisce quanto segue:

  • Una posizione di archiviazione per dati e oggetti non strutturati.
  • come l'API JSON Cloud Storage, per accedere ai bucket di archiviazione.
  • Archiviazione persistente per salvare i dati.
  • Velocità effettiva di terabyte al secondo, ma richiede una latenza di archiviazione superiore.

Se hai bisogno di spazio di archiviazione per i file, hai a disposizione due opzioni, Filestore e NetApp Volumes, che offrono quanto segue:

  • Filestore
    • Archiviazione di file aziendale ad alte prestazioni basata su NFS.
    • Archiviazione persistente per salvare i dati.
    • Bassa latenza di archiviazione e velocità effettiva di 26 GB/s.
  • NetApp Volumes
    • Archiviazione di file compatibile con NFS e Server Message Block (SMB).
    • Può essere gestito con la possibilità di utilizzare lo strumento software di archiviazione NetApp ONTAP.
    • Archiviazione persistente per salvare i dati.
    • Velocità effettiva di 4,5 GB/s.

Utilizza le seguenti opzioni di archiviazione come prima scelta per i carichi di lavoro AI e ML:

Utilizza le seguenti opzioni di archiviazione per integrare i tuoi carichi di lavoro di AI e ML:

Se hai bisogno di trasferire dati tra queste opzioni di archiviazione, puoi utilizzare gli strumenti di trasferimento di dati.

Cloud Storage

Cloud Storage è un servizio di archiviazione di oggetti completamente gestito che si concentra su preparazione dei dati, addestramento di modelli di AI, pubblicazione dei dati, backup e archiviazione per i dati non strutturati. Ecco alcuni dei vantaggi di Cloud Storage:

  • Capacità di archiviazione illimitata, scalabile fino a exabyte su base globale
  • Prestazioni con velocità effettiva ultra elevata
  • Opzioni di archiviazione a livello di regione e doppia per i carichi di lavoro di AI e ML

Cloud Storage scala la velocità effettiva fino a terabyte al secondo e oltre, ma ha una latenza relativamente più elevata (decine di millisecondi) rispetto a Filestore o a un file system locale. La velocità effettiva dei singoli thread è limitata a circa 100-200 MB al secondo, il che significa che una velocità effettiva elevata può essere raggiunta solo utilizzando centinaia o migliaia di singoli thread. Inoltre, l'alta velocità effettiva richiede anche l'utilizzo di file di grandi dimensioni e richieste di I/O di grandi dimensioni.

Cloud Storage supporta librerie client in vari linguaggi di programmazione, ma supporta anche Cloud Storage FUSE. Cloud Storage FUSE consente di montare bucket Cloud Storage nel file system locale. Cloud Storage FUSE consente alle tue applicazioni di utilizzare API di file system standard per leggere da un bucket o scrivere in un bucket. Puoi archiviare e accedere a dati di addestramento, modelli e checkpoint con la scalabilità, la convenienza e le prestazioni di Cloud Storage.

Per saperne di più su Cloud Storage, utilizza le seguenti risorse:

Filestore

Filestore è un servizio di archiviazione basato su file NFS completamente gestito. I livelli di servizio Filestore utilizzati per i carichi di lavoro AI e ML includono:

  • Livello Enterprise: utilizzato per i carichi di lavoro mission-critical che richiedono disponibilità a livello regionale.
  • Livello di zona: utilizzato per le applicazioni ad alte prestazioni che richiedono una disponibilità a livello di zona con requisiti elevati di IOPS e velocità effettiva.
  • Livello base: utilizzato per la condivisione di file, lo sviluppo di software, l'hosting web e i carichi di lavoro di base di AI e ML.

Filestore offre prestazioni I/O a bassa latenza. È una buona scelta per i set di dati con requisiti di accesso I/O di piccole dimensioni o file di piccole dimensioni. Tuttavia, Filestore può gestire anche casi d'uso di file di grandi dimensioni o I/O di grandi dimensioni, se necessario. Filestore può fare lo scale up fino a circa 100 TB. Per i carichi di lavoro di addestramento IA che leggono i dati ripetutamente, puoi migliorare la velocità effettiva di lettura utilizzando FS-Cache con SSD locale.

Per ulteriori informazioni su Filestore, consulta la panoramica di Filestore. Per ulteriori informazioni sui livelli di servizio Filestore, consulta Livelli di servizio. Per ulteriori informazioni sulle prestazioni di Filestore, consulta Ottimizzare e testare le prestazioni delle istanze.

Google Cloud NetApp Volumes

NetApp Volumes è un servizio completamente gestito con funzionalità di gestione dei dati avanzate che supportano gli ambienti NFS, SMB e multiprotocollo. NetApp Volumes supporta bassa latenza, volumi multi-tebibyte e gigabyte al secondo di velocità effettiva.

Per ulteriori informazioni su NetApp Volumes, consulta Che cos'è Google Cloud NetApp Volumes? Per ulteriori informazioni sulle prestazioni di NetApp Volumes, consulta Prestazioni previste.

Archiviazione a blocchi

Dopo aver selezionato la tua opzione di archiviazione principale, puoi utilizzare l'archiviazione a blocchi per integrare le prestazioni, trasferire i dati tra le opzioni di archiviazione e sfruttare le operazioni a bassa latenza. L'archiviazione a blocchi offre due opzioni: SSD locale e Persistent Disk.

SSD locale

L'SSD locale fornisce l'archiviazione locale direttamente su una VM o un container. La maggior parte dei tipi di macchine Google Cloud che contiene GPU Cloud include una quantità di SSD locali. Poiché i dischi SSD locali sono collegati fisicamente alle GPU Cloud, forniscono un accesso a bassa latenza con potenzialmente milioni di IOPS. Al contrario, le istanze basate su Cloud TPU non includono SSD locali.

Sebbene l'SSD locale offra prestazioni elevate, ogni istanza di archiviazione è temporanea. Di conseguenza, i dati archiviati su un'unità SSD locale andranno persi quando arresti o elimini l'istanza. A causa della natura temporanea degli SSD locali, prendi in considerazione altri tipi di archiviazione se i dati richiedono una maggiore durabilità.

Tuttavia, quando la quantità di dati di addestramento è molto ridotta, capita di copiare i dati di addestramento da Cloud Storage all'SSD locale di una GPU. Il motivo è che l'SSD locale offre una latenza di I/O inferiore e riduce i tempi di addestramento.

Per saperne di più sugli SSD locali, consulta Informazioni sulle SSD locali. Per ulteriori informazioni sulla quantità di capacità SSD locale disponibile con i tipi di istanza per GPU Cloud, consulta la pagina dedicata alle piattaforme GPU.

Persistent Disk

Persistent Disk è un servizio di archiviazione a blocchi di rete con una suite completa di funzionalità di persistenza e gestione dei dati. Oltre a essere utilizzato come disco di avvio, puoi utilizzare Persistent Disk con carichi di lavoro AI, ad esempio l'archiviazione temporanea. Persistent Disk è disponibile nelle seguenti opzioni:

  • Standard, che offre archiviazione a blocchi efficiente e affidabile.
  • Bilanciata, che offre archiviazione a blocchi economica e affidabile.
  • SSD, che offre archiviazione a blocchi rapida e affidabile.
  • Extreme, che offre l'opzione di archiviazione a blocchi con le massime prestazioni con IOPS personalizzabili.

Per ulteriori informazioni su Persistent Disk, consulta Persistent Disk.

Strumenti per il trasferimento di dati

Quando esegui attività di AI e ML, a volte è necessario copiare i dati da una posizione all'altra. Ad esempio, se i dati iniziano in Cloud Storage, puoi spostarli altrove per addestrare il modello, quindi copiare gli snapshot dei checkpoint o il modello addestrato di nuovo in Cloud Storage. Puoi anche eseguire la maggior parte delle attività in Filestore, quindi spostare i dati e il modello in Cloud Storage per scopi di archiviazione. Questa sezione illustra le opzioni a tua disposizione per spostare i dati tra i servizi di archiviazione in Google Cloud.

Storage Transfer Service

Con Storage Transfer Service, puoi trasferire i tuoi dati tra Cloud Storage, Filestore e NetApp Volumes. Questo servizio completamente gestito consente inoltre di copiare dati tra repository di archiviazione di file e di archiviazione di oggetti on-premise, Google Cloud Storage e altri cloud provider. Storage Transfer Service ti consente di copiare i dati in modo sicuro dalla località di origine a quella di destinazione, nonché di eseguire trasferimenti periodici dei dati modificati. Fornisce inoltre la convalida dell'integrità dei dati, i nuovi tentativi automatici e il bilanciamento del carico.

Per ulteriori informazioni su Storage Transfer Service, consulta Che cos'è Storage Transfer Service?

Opzioni dell'interfaccia a riga di comando

Quando sposti dati tra Filestore e Cloud Storage, puoi utilizzare i seguenti strumenti:

  • gcloud storage (consigliato): crea e gestisci bucket e oggetti Cloud Storage con una velocità effettiva ottimale e una suite completa di comandi gcloud CLI.
  • gsutil: gestisci e gestisci i componenti di Cloud Storage. Richiede un'ottimizzazione per ottenere una velocità effettiva migliore.

Mappa le tue scelte di archiviazione alle fasi di AI e ML

Questa sezione si espande sul riepilogo fornito nella Tabella 1 per esplorare i suggerimenti e le indicazioni specifici per ogni fase di un carico di lavoro AI e ML. L'obiettivo è aiutarti a comprendere il motivo di queste scelte e selezionare le migliori opzioni di archiviazione per ogni fase di AI e ML. Questa analisi genera tre suggerimenti principali esplorati nella sezione Suggerimenti per lo spazio di archiviazione per AI e ML.

La figura seguente fornisce un albero decisionale che mostra le opzioni di archiviazione consigliate per le quattro fasi principali di un carico di lavoro AI e ML. Il diagramma è seguito da una spiegazione dettagliata di ogni fase e delle scelte che puoi fare in ogni fase.

Figura 3: scelte di archiviazione per ogni fase di AI e ML

Un albero decisionale che mostra le opzioni di archiviazione consigliate per le quattro fasi principali di un carico di lavoro AI e ML.

Preparazione

In questa fase iniziale, devi scegliere se utilizzare Cloud Storage o Filestore come fonte attendibile permanente per i dati. Puoi anche selezionare potenziali ottimizzazioni per un addestramento che richiede un uso intensivo dei dati. Tieni presente che team diversi nella tua organizzazione possono avere tipi di carichi di lavoro e set di dati variabili che possono portare a decisioni di archiviazione diverse. Per soddisfare queste diverse esigenze, puoi combinare di conseguenza le tue scelte di archiviazione tra Cloud Storage e Filestore.

Cloud Storage per la fase di preparazione

  • Il carico di lavoro contiene file di grandi dimensioni di almeno 50 MB.
  • Il carico di lavoro richiede un numero di IOPS inferiore.
  • Il carico di lavoro può tollerare una latenza di archiviazione superiore in decine di millisecondi.

  • Devi accedere al set di dati tramite le API Cloud Storage oppure Cloud Storage FUSE e un sottoinsieme di API di file.

Per ottimizzare il carico di lavoro in Cloud Storage, puoi selezionare l'archiviazione regionale e posizionare il bucket nella stessa regione delle risorse di calcolo. Tuttavia, se hai bisogno di una maggiore affidabilità o se utilizzi acceleratori situati in due regioni diverse, ti consigliamo di selezionare l'archiviazione a due regioni.

Filestore per la fase di preparazione

Devi selezionare Filestore per preparare i dati nel caso in cui si applichi una delle seguenti condizioni:

  • Il carico di lavoro contiene file di dimensioni inferiori a 50 MB.
  • Il carico di lavoro richiede un numero maggiore di IOPS.
  • Il carico di lavoro richiede una latenza inferiore, inferiore a 1 millisecondo, per soddisfare i requisiti di archiviazione per l'accesso casuale ai metadati e a I/O.
  • Per visualizzare e gestire i dati, gli utenti hanno bisogno di un'esperienza simile a quella del computer desktop con il supporto completo di POSIX.
  • I tuoi utenti devono eseguire altre attività, ad esempio lo sviluppo di software.

Altre considerazioni per la fase di preparazione

Se in questa fase hai difficoltà a scegliere un'opzione, considera i seguenti aspetti per aiutarti a prendere una decisione:

  • Se vuoi utilizzare sul set di dati altri framework di AI e ML, come Dataflow, Spark o BigQuery, Cloud Storage è una scelta logica perché l'integrazione personalizzata ha questi tipi di framework.
  • Filestore ha una capacità massima di circa 100 TB. Se devi addestrare il modello con set di dati più grandi di queste dimensioni o se non riesci a suddividere l'insieme in più istanze da 100 TB, Cloud Storage è un'opzione migliore.

Durante la fase di preparazione dei dati, molti utenti riorganizzano i propri dati in grandi blocchi per migliorare l'efficienza dell'accesso ed evitare richieste di lettura casuali. Per ridurre ulteriormente i requisiti delle prestazioni di I/O sul sistema di archiviazione, molti utenti utilizzano la pipeline, l'ottimizzazione dell'addestramento per aumentare il numero di thread di I/O o entrambi.

Addestramento

Nella fase di addestramento, in genere si riutilizza l'opzione di archiviazione principale selezionata per la fase di preparazione. Se la soluzione di archiviazione principale non è in grado di gestire da solo il carico di lavoro di addestramento, potresti dover integrare lo spazio di archiviazione principale. Puoi aggiungere spazio di archiviazione supplementare in base alle esigenze, ad esempio SSD locali, per bilanciare il carico di lavoro.

Oltre a fornire suggerimenti per l'utilizzo di Cloud Storage o Filestore in questa fase, questa sezione fornisce anche ulteriori dettagli su questi suggerimenti. I dettagli includono quanto segue:

  • Indicazioni sulle dimensioni dei file e delle richieste
  • Suggerimenti su quando integrare lo spazio di archiviazione principale scelto
  • Una spiegazione dei dettagli di implementazione dei due carichi di lavoro chiave in questa fase: caricamento dei dati, controllo

Cloud Storage per la fase di addestramento

I motivi principali per scegliere Cloud Storage durante l'addestramento dei dati includono quanto segue:

  • Se utilizzi Cloud Storage quando prepari i dati, ti consigliamo di addestrare i dati in Cloud Storage.
  • Cloud Storage è un'ottima scelta per velocità effettiva, carichi di lavoro che non richiedono un'elevata velocità effettiva di VM singola o carichi di lavoro che utilizzano molti thread per aumentare la velocità effettiva in base alle esigenze.

Cloud Storage con SSD locale o Filestore per la fase di addestramento

Il motivo principale per scegliere Cloud Storage con SSD locale o Filestore durante l'addestramento dei dati si verifica quando devi supportare richieste di I/O di piccole dimensioni o file di piccole dimensioni. In questo caso, puoi integrare l'attività di addestramento di Cloud Storage spostando alcuni dati su SSD locale o Filestore di zona.

Filestore per la fase di addestramento

I motivi principali per scegliere Filestore durante l'addestramento dei dati includono quanto segue:

  • Se utilizzi Filestore per preparare i dati, nella maggior parte dei casi devi continuare ad addestrare i dati in Filestore.
  • Filestore è un'ottima scelta per bassa latenza, velocità effettiva elevata per client e applicazioni che utilizzano un numero ridotto di thread ma che richiedono comunque prestazioni elevate.
  • Se devi integrare le attività di addestramento in Filestore, valuta la possibilità di creare una cache SSD locale in base alle tue esigenze.

Dimensioni dei file e dimensioni delle richieste

Quando il set di dati è pronto per l'addestramento, esistono due opzioni principali che possono aiutarti a valutare le diverse opzioni di archiviazione.

Set di dati contenenti file di grandi dimensioni e a cui si accede con richieste di grandi dimensioni

In questa opzione, il job di addestramento è costituito principalmente da file più grandi di almeno 50 MB. Il job di addestramento importa i file con una dimensione compresa tra 1 e 16 MB per richiesta. In genere consigliamo Cloud Storage con Cloud Storage FUSE per questa opzione, perché i file sono abbastanza grandi da consentire a Cloud Storage di mantenere forniti gli acceleratori. Tieni presente che potresti aver bisogno di centinaia o migliaia di thread per ottenere le massime prestazioni con questa opzione.

Tuttavia, se hai bisogno di API POSIX complete per altre applicazioni o se il tuo carico di lavoro non è appropriato per l'elevato numero di thread richiesti, Filestore è una buona alternativa.

Set di dati contenenti file di piccole e medie dimensioni o accessibili con richieste di dimensioni ridotte

Con questa opzione, puoi classificare il job di addestramento in uno dei due seguenti modi:

  • Molti file di dimensioni medio-piccole di dimensioni inferiori a 50 MB.
  • Un set di dati con file più grandi, ma i dati vengono letti in sequenza o casuale con dimensioni delle richieste di lettura relativamente ridotte (ad esempio, meno di 1 MB). Un esempio di questo caso d'uso è quando il sistema legge meno di 100 kB alla volta da un file multi-gigabyte o multi-terabyte.

Se utilizzi già Filestore per le sue funzionalità POSIX, ti consigliamo di conservare i dati in Filestore per l'addestramento. Filestore offre un accesso ai dati a bassa latenza di I/O. Questa latenza inferiore può ridurre il tempo complessivo di addestramento e i costi di addestramento del modello.

Se utilizzi Cloud Storage per archiviare i tuoi dati, ti consigliamo di copiarli su SSD locale o Filestore prima dell'addestramento.

Caricamento dei dati

Durante il caricamento dei dati, le GPU Cloud o le Cloud TPU importano ripetutamente batch di dati per addestrare il modello. Questa fase può essere compatibile con la cache, a seconda delle dimensioni dei batch e dell'ordine in cui vengono richiesti. A questo punto, l'obiettivo è addestrare il modello con la massima efficienza, ma al minor costo.

Se la dimensione dei dati di addestramento scala fino a petabyte, potrebbe essere necessario rileggere più volte i dati. Una tale scala richiede un'elaborazione intensiva da parte di un acceleratore GPU o TPU. Tuttavia, devi assicurarti che le GPU e le Cloud TPU di Cloud non siano inattive, ma elaborano i dati attivamente. Altrimenti, mentre copi i dati da una posizione all'altra, ti viene addebitato un costoso acceleratore inattivo.

Per il caricamento dei dati, considera quanto segue:

  • Parallelismo: esistono molti modi per eseguire l'addestramento in parallelo e ognuno può avere un impatto sulle prestazioni di archiviazione complessive richieste e sulla necessità di memorizzare i dati nella cache localmente su ogni istanza.
  • Numero massimo di GPU Cloud o Cloud TPU per un singolo job di addestramento: con l'aumento del numero di acceleratori e VM, l'impatto sul sistema di archiviazione può essere significativo e comportare un aumento dei costi in caso di inattività delle GPU Cloud o delle Cloud TPU. Tuttavia, esistono modi per ridurre al minimo i costi man mano che aumenti il numero di acceleratori. A seconda del tipo di parallelismo utilizzato, puoi ridurre al minimo i costi aumentando i requisiti di velocità effettiva di lettura aggregata, necessari per evitare acceleratori inattivi.

Per supportare questi miglioramenti in Cloud Storage o Filestore, devi aggiungere SSD locale a ogni istanza in modo da scaricare I/O dal sistema di archiviazione sovraccarico.

Tuttavia, il precaricamento dei dati nell'SSD locale di ogni istanza da Cloud Storage presenta delle sfide. Rischi di incorrere in costi maggiori per gli acceleratori inattivi durante il trasferimento dei dati. Se i tempi di trasferimento dei dati e i costi di inattività dell'acceleratore sono elevati, potresti riuscire a ridurre i costi utilizzando Filestore con un SSD locale.

  • Numero di GPU Cloud per istanza: se esegui il deployment di più GPU Cloud per ogni istanza, puoi aumentare la velocità effettiva delle GPU tra Cloud con NVLink. Tuttavia, la velocità effettiva di networking di SSD locali e di archiviazione non aumenta sempre in modo lineare.
  • Ottimizzazioni delle applicazioni e dello spazio di archiviazione: le opzioni e le applicazioni di archiviazione hanno requisiti di prestazioni specifici per poter funzionare in modo ottimale. Assicurati di bilanciare questi requisiti di sistema di archiviazione e delle applicazioni con le ottimizzazioni del caricamento dei dati, come mantenere occupate le GPU Cloud o le Cloud TPU e operare in modo efficiente.

Checkpoint e riavvio

Per il checkpoint e il riavvio, i job di addestramento devono salvare periodicamente il loro stato in modo da poter ripristinare rapidamente gli errori dell'istanza. Quando si verifica l'errore, i job devono riavviarsi, importare il checkpoint più recente e quindi riprendere l'addestramento. Il meccanismo esatto utilizzato per creare e importare i checkpoint è in genere specifico per un framework come TensorFlow o PyTorch. Alcuni utenti hanno creato framework complessi per aumentare l'efficienza del checkpointing. Questi complessi framework consentono di eseguire un checkpoint più spesso.

Tuttavia, la maggior parte degli utenti utilizza in genere spazio di archiviazione condiviso, come Cloud Storage o Filestore. Quando salvi i checkpoint, basta salvarne solo da tre a cinque in un dato momento. I carichi di lavoro dei checkpoint tendono a essere composti principalmente da scritture, da diverse eliminazioni e, idealmente, da letture non frequenti quando si verificano errori. Durante il ripristino, il pattern I/O include scritture intensive e frequenti, eliminazioni frequenti e letture frequenti del checkpoint.

Devi inoltre considerare le dimensioni del checkpoint che ogni GPU o TPU ha bisogno di creare. La dimensione del checkpoint determina la velocità effettiva di scrittura necessaria per completare il job di addestramento in modo conveniente e tempestivo.

Per ridurre al minimo i costi, ti consigliamo di aumentare i seguenti elementi:

  • La frequenza dei checkpoint
  • La velocità effettiva di scrittura aggregata necessaria per i checkpoint
  • Efficienza di riavvio

Distribuzione

Quando pubblichi il modello, noto anche come inferenza IA, il pattern di I/O principale è di sola lettura per caricare il modello nelle GPU Cloud o nella memoria Cloud TPU. In questa fase, l'obiettivo è eseguire il modello in produzione. Il modello è molto più piccolo dei dati di addestramento, perciò puoi replicarlo e scalarlo su più istanze. L'alta disponibilità e la protezione contro errori a livello di zona e di regione sono importanti in questa fase, quindi devi assicurarti che il modello sia disponibile per diversi scenari di errore.

In molti casi d'uso dell'AI generativa, i dati di input nel modello potrebbero essere ridotti e potrebbero non essere necessario archiviarli in modo permanente. In altri casi, potrebbe essere necessario eseguire grandi volumi di dati sul modello (ad esempio set di dati scientifici). In questo caso, devi selezionare un'opzione che possa mantenere le GPU Cloud o Cloud TPU fornite durante l'analisi del set di dati, nonché selezionare una località permanente in cui archiviare i risultati di inferenza.

Esistono due opzioni principali per pubblicare il modello.

Cloud Storage per la fase di elaborazione

I motivi principali per scegliere Cloud Storage quando fornisci i tuoi dati includono quanto segue:

  • Quando addestra il modello in Cloud Storage, puoi risparmiare sui costi di migrazione lasciando il modello in Cloud Storage quando lo gestisci.
  • Puoi salvare i contenuti generati in Cloud Storage.
  • Cloud Storage è una buona scelta quando l'inferenza dell'AI si verifica in più regioni.
  • Puoi utilizzare bucket a due o più regioni per fornire la disponibilità dei modelli negli errori a livello di regione.

Filestore per la fase di pubblicazione

I motivi principali per selezionare Filestore quando fornisci i dati includono quanto segue:

  • Quando addestra il tuo modello in Filestore, puoi risparmiare sui costi di migrazione lasciando il modello in Filestore quando lo fornisci.
  • Poiché il relativo accordo sul livello del servizio (SLA) offre una disponibilità del 99,99%, il livello di servizio Filestore Enterprise è una buona scelta per l'alta disponibilità quando vuoi pubblicare il tuo modello tra più zone in una regione.
  • I livelli di servizio di zona Filestore potrebbero essere una scelta ragionevole dai costi inferiori, ma solo se l'alta disponibilità non è un requisito per il carico di lavoro di AI e ML.
  • Se hai bisogno del recupero tra regioni, puoi archiviare il modello in una località di backup remota o in un bucket Cloud Storage remoto e poi ripristinare il modello in base alle esigenze.
  • Filestore offre un'opzione durevole e ad alta disponibilità che consente di accedere a bassa latenza al tuo modello quando generi file di piccole dimensioni o richiedi API file.

Archive

La fase di archiviazione ha un pattern di I/O che prevede "scrivi una volta, leggi raramente". Il tuo obiettivo è archiviare i diversi set di dati di addestramento e le diverse versioni dei modelli che hai generato. Puoi usare queste versioni incrementali di dati e modelli per scopi di backup e ripristino di emergenza. Devi inoltre archiviare questi articoli in una posizione duratura per un lungo periodo di tempo. Sebbene potresti non richiedere molto spesso l'accesso a dati e modelli, vuoi che questi elementi siano disponibili quando ne hai bisogno.

Grazie all'estrema durabilità, alla vasta scalabilità e al basso costo, l'opzione migliore per l'archiviazione di dati degli oggetti per un lungo periodo di tempo è Cloud Storage. A seconda della frequenza con cui accedi al set di dati, al modello e ai file di backup, Cloud Storage offre l'ottimizzazione dei costi tramite diverse classi di archiviazione con i seguenti approcci:

  • Collocare i dati a cui si accede di frequente in Standard Storage.
  • Conserva i dati a cui accedi mensilmente su Nearline Storage.
  • Archivia in Coldline Storage i dati a cui accedi ogni tre mesi.
  • Conserva i dati a cui accedi una volta all'anno in Archive Storage.

Utilizzando la gestione del ciclo di vita degli oggetti, puoi creare criteri per spostare i dati in classi di archiviazione ad accesso meno frequente o per eliminare i dati in base a criteri specifici. Se non sai con quale frequenza accederai ai tuoi dati, puoi utilizzare la funzionalità Autoclass per spostare automaticamente i dati tra classi di archiviazione in base al tuo pattern di accesso.

Se i tuoi dati si trovano in Filestore, spesso è opportuno spostarli in Cloud Storage per scopi di archiviazione. Tuttavia, puoi fornire ulteriore protezione per i tuoi dati Filestore creando backup di Filestore in un'altra regione. Puoi anche creare snapshot di Filestore per il recupero di file e file system locali. Per ulteriori informazioni sui backup di Filestore, consulta Panoramica dei backup. Per ulteriori informazioni sugli snapshot di Filestore, consulta la panoramica degli snapshot.

Suggerimenti sullo spazio di archiviazione per AI e ML

Questa sezione riassume l'analisi fornita nella sezione precedente, Mappare le scelte di archiviazione alle fasi di AI e ML. Fornisce i dettagli sulle tre combinazioni principali di opzioni di archiviazione che consigliamo per la maggior parte dei carichi di lavoro di AI e ML. Le tre opzioni sono le seguenti:

Seleziona Cloud Storage

Cloud Storage offre l'offerta di archiviazione con il costo per capacità più basso rispetto a tutte le altre offerte di archiviazione. È scalabile per un numero elevato di client, fornisce accessibilità e disponibilità a livello di due regioni ed è accessibile tramite Cloud Storage FUSE. Devi selezionare Regional Storage se la tua piattaforma di computing per l'addestramento si trova nella stessa regione e, se hai bisogno di una maggiore affidabilità, la scelta di archiviazione a due regioni se hai bisogno di una maggiore affidabilità oppure puoi utilizzare GPU Cloud o Cloud TPU situate in due regioni diverse.

Cloud Storage è la scelta migliore per la conservazione dei dati a lungo termine e per i carichi di lavoro con requisiti di prestazioni di archiviazione inferiori. Tuttavia, altre opzioni, come Filestore e SSD locale, sono preziose alternative in casi specifici in cui è necessario il supporto completo di POSIX o che Cloud Storage diventi un collo di bottiglia delle prestazioni.

Seleziona Cloud Storage con SSD locale o Filestore

Per carichi di lavoro di addestramento o di riavvio e di checkpoint che richiedono un uso intensivo dei dati, può considerare l'utilizzo di un'offerta di archiviazione più veloce durante la fase di addestramento ad alta intensità di I/O. Le scelte tipiche includono la copia dei dati su un SSD locale o su Filestore. Questa azione riduce il tempo di esecuzione complessivo del job mantenendo le GPU Cloud o le Cloud TPU fornite con i dati e impedisce che le istanze si blocchino durante il completamento delle operazioni dei checkpoint. Inoltre, più spesso crei checkpoint, maggiore sarà il numero di checkpoint disponibili come backup. Questo aumento del numero di backup aumenta anche la frequenza complessiva con cui arrivano i dati utili (nota anche come goodput). Questa combinazione di ottimizzazione dei processori e aumento del goodput riduce i costi complessivi di addestramento del modello.

Quando utilizzi SSD locali o Filestore, devi prendere in considerazione alcuni compromessi. La seguente sezione descrive alcuni vantaggi e svantaggi di ciascuna.

Vantaggi degli SSD locali

  • Velocità effettiva elevata e IOPS dopo il trasferimento dei dati
  • Costo extra da basso a minimo

Svantaggi degli SSD locali

  • Le GPU Cloud o Cloud TPU rimangono inattive durante il caricamento dei dati.
  • Il trasferimento dei dati deve avvenire su ogni job per ogni istanza.
  • È disponibile solo per alcuni tipi di istanza GPU Cloud.
  • Fornisce una capacità di archiviazione limitata.
  • Supporta i checkpoint, ma devi trasferirli manualmente in un'opzione di archiviazione durevole, come Cloud Storage.

Vantaggi di Filestore

  • Fornisce spazio di archiviazione NFS condiviso che consente di trasferire i dati una volta e poi condividerli tra più job e utenti.
  • Non è previsto tempo per le GPU Cloud o Cloud TPU inattive perché i dati vengono trasferiti prima del pagamento delle GPU o delle Cloud TPU Cloud.
  • Ha un'elevata capacità di archiviazione.
  • Supporta i checkpoint rapidi per migliaia di VM.
  • Supporta GPU Cloud, Cloud TPU e tutti gli altri tipi di istanze di Compute Engine.

Svantaggi di Filestore

  • Elevati costi iniziali, ma la maggiore efficienza di calcolo può potenzialmente ridurre i costi complessivi di addestramento.

Seleziona Filestore con SSD locale facoltativo

Filestore è la scelta migliore per i carichi di lavoro AI e ML che richiedono bassa latenza e supporto completo per POSIX. Oltre a essere la scelta consigliata per i job di addestramento I/O di piccole o piccole dimensioni, Filestore può offrire un'esperienza reattiva per blocchi note AI e ML, sviluppo di software e molte altre applicazioni. Puoi anche eseguire il deployment di Filestore in una zona per addestramento ad alte prestazioni e archiviazione permanente dei checkpoint. Il deployment di Filestore in una zona offre anche un riavvio rapido in caso di errore. In alternativa, puoi eseguire il deployment di Filestore a livello di regione per supportare job di inferenza ad alta disponibilità. L'aggiunta facoltativa di FS-Cache per supportare la memorizzazione nella cache SSD locale consente letture ripetute rapide dei dati di addestramento per ottimizzare i carichi di lavoro.

Passaggi successivi

Per ulteriori informazioni sulle opzioni di archiviazione e su AI e ML, consulta le seguenti risorse:

Collaboratori

Autori:

  • Dean Hildebrand | Direttore tecnico, Ufficio del CTO
  • Sean Derrington | Group Outbound Product Manager, Storage
  • Richard Hendricks | Personale del Centro di architettura

Altro collaboratore: Kumar Dhanagopal | Cross-Product Solution Developer