Progettare lo spazio di archiviazione per i carichi di lavoro di IA e ML in Google Cloud

Last reviewed 2024-03-20 UTC

Quando scegli i servizi di archiviazione di Google Cloud per i tuoi intelligenza artificiale (AI) carichi di lavoro di machine learning (ML), devi prestare attenzione selezionare la corretta combinazione di opzioni di archiviazione per ogni job specifico. Questa necessità di una selezione accurata si applica quando carichi il set di dati, addestri e ottimizzi il modello, lo inserisci in produzione o archivi il set di dati e il modello. In breve, devi selezionare i migliori servizi di archiviazione la latenza, la scalabilità e i costi appropriati per ogni fase dei carichi di lavoro di AI e ML.

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

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

Figura 1: considerazioni principali sull'archiviazione di IA e ML

Scegli Cloud Storage se hai file di dimensioni maggiori, IOPS inferiori o latenza superiore. Scegli Filestore quando hai bisogno di un numero maggiore di IOPS, dimensioni di file più piccole o una 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, . Queste sono le quattro fasi del ciclo di vita di un carico di lavoro di AI e ML in cui devi decidere quali opzioni di archiviazione scegliere per l'utilizzo. 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. Stai seguendo consente di ridurre la copia dei set di dati tra l'archiviazione i servizi di machine learning. 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 dello spazio di archiviazione dipende dalle proprietà del set di dati, dalla scala delle risorse di calcolo e archiviazione richieste, dalla latenza e da altri fattori. La tabella seguente 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 le albero decisionale.

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

Preparazione

Preparazione dei dati

  • Carica ed esegui l'importazione dei 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 Zonal

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

Treno

  1. Sviluppo del modello
    • Sviluppa il tuo modello utilizzando i blocchi note e applicando prove iterative e .
  2. Addestramento del modello
    • Utilizza un numero da piccolo a grande 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 del modello.

Cloud Storage

  • Se selezioni Cloud Storage nella fase di preparazione, è meglio addestrare i dati in Cloud Storage.

Cloud Storage con SSD locale o Filestore

  • Se selezioni Cloud Storage nella fase di preparazione, ma devi supportare piccole richieste I/O o piccoli file, puoi integrare le tue attività di addestramento. A tale scopo, sposta alcuni dati da Cloud Storage a SSD locale o Filestore Zonal.

Filestore

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

Cloud Storage

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

Zona Filestore

  • Se selezioni Filestore nella fase di preparazione, è preferibile per utilizzare Filestore per il checkpoint e il riavvio.
  • Ottima per la latenza, una velocità effettiva elevata per client e un numero ridotto di thread.

Servire

  • Memorizza il modello.
  • Carica il modello in un'istanza che esegue GPU o Cloud TPU al momento dell'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.

Cloud Storage

  • Se addestri il modello in Cloud Storage, è preferibile usare Cloud Storage per gestire il modello.
  • Salva il contenuto generato dal modello in Cloud Storage.

Filestore

  • Se addestri il modello in Filestore, è preferibile utilizzare Filestore per fornire il modello.
  • Se hai bisogno di durabilità e bassa latenza durante la generazione file di piccole dimensioni, scegli la zona di Filestore (a livello di zona) Filestore Enterprise (a livello di regione).

Archivia

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

Cloud Storage

  • Ottimizza i costi di archiviazione con più classi di archiviazione, Autoclass o Gestione del ciclo di vita degli oggetti.
  • Se utilizzi Filestore, puoi utilizzare Crea snapshot e backup di Filestore oppure copia i dati in di archiviazione ideale in Cloud Storage.

Per maggiori dettagli sulle ipotesi alla base di questa tabella, consulta le seguenti sezioni:

Criteri

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

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

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

Considerazioni sulla piattaforma di calcolo

Google Cloud supporta tre metodi principali per eseguire i carichi di lavoro di IA e ML:

Sia per Compute Engine che per GKE, ti consigliamo di utilizzare il Cluster Toolkit per eseguire il deployment di cluster chiavi in mano ripetibili che rispettano le best practice di Google Cloud.

Considerazioni sull'acceleratore

Quando selezioni le scelte di archiviazione per i carichi di lavoro di AI e ML, devi selezionare anche le opzioni di elaborazione dell'acceleratore appropriate per la tua attività. Google Cloud supporta due opzioni di acceleratore: le GPU NVIDIA Cloud e le Cloud TPU di Google sviluppate su misura. Entrambi i tipi di acceleratore sono ASIC (Application-Specific Integrated Circuit) utilizzati per elaborare per svolgere carichi di lavoro di machine learning in modo più efficiente rispetto ai processori standard.

Ci sono alcune differenze importanti di archiviazione tra le GPU Cloud Acceleratori Cloud TPU. Le istanze che utilizzano GPU Cloud supportano SSD locale con velocità remota fino a 200 GBps velocità effettiva di archiviazione disponibili. I nodi e le VM di Cloud TPU non supportano l'SSD locale e si basano esclusivamente su l'accesso remoto allo spazio di archiviazione.

Per ulteriori informazioni sui tipi di macchine ottimizzate per l'acceleratore, consulta la Famiglia di macchine ottimizzate per l'acceleratore. Per ulteriori informazioni sulle GPU Cloud, consulta Piattaforme GPU Cloud. Per ulteriori informazioni sulle Cloud TPU, vedi 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 riassunto in precedenza nella Tabella 1, l'archiviazione di oggetti o di file con per i carichi di lavoro di AI e ML e poi integrare questa opzione di archiviazione con archiviazione. Figura 2 mostra tre opzioni tipiche che puoi prendere in considerazione selezionando la scelta di archiviazione iniziale per il carico di lavoro di AI e ML: Cloud Storage, Filestore, e Google Cloud NetApp Volumes.

Figura 2: servizi di archiviazione appropriati per l'IA e l'ML offerti da Google Cloud

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

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

  • Una posizione di archiviazione per oggetti e dati non strutturati.
  • API, come l'API JSON di Cloud Storage, per accedere ai bucket di archiviazione.
  • Spazio di archiviazione permanente per salvare i dati.
  • Velocità in uscita di terabyte al secondo, ma richiede una latenza di archiviazione più elevata.

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

  • Filestore
    • Archiviazione di file enterprise ad alte prestazioni basata su NFS.
    • Spazio di archiviazione permanente per salvare i dati.
    • Bassa latenza di archiviazione e velocità effettiva di 26 GBps.
  • 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.
    • Spazio di archiviazione permanente per salvare i dati.
    • Velocità effettiva di 4,5 GBps.

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

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

Se devi trasferire dati tra queste opzioni di archiviazione, puoi utilizzare gli strumenti di trasferimento dei dati.

Cloud Storage

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

  • Capacità di archiviazione illimitata che può raggiungere gli exabyte su base globale
  • Prestazioni con velocità effettiva ultra elevata
  • Opzioni di archiviazione a livello di regione e di doppia regione per i carichi di lavoro di IA e ML

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

Cloud Storage supporta le librerie client in diversi linguaggi di programmazione, ma supporta anche Cloud Storage FUSE. Cloud Storage FUSE ti consente di montare i bucket Cloud Storage sul tuo file system locale. Cloud Storage FUSE consente alle applicazioni di utilizzare le API di file system standard per leggere da un bucket o scrivere in un bucket. Puoi archiviare e accedere ai tuoi dati di addestramento, modelli e punti di controllo con scalabilità, convenienza delle prestazioni di Cloud Storage.

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

Filestore

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

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

Filestore offre prestazioni I/O a bassa latenza. È un buon per set di dati con requisiti di accesso I/O ridotti o file di dimensioni ridotte. Tuttavia, Filestore può gestire anche casi di utilizzo di I/O o file di grandi dimensioni, se necessario. Filestore può essere scalato fino a circa 100 TB di dimensione. Per i carichi di lavoro di addestramento dell'IA che leggono i dati ripetutamente, puoi migliorare la lettura della throughput utilizzando FS-Cache con l'SSD locale.

Per ulteriori informazioni su Filestore, consulta Panoramica di Filestore. Per ulteriori informazioni sui livelli di servizio Filestore, consulta Livelli di servizio. Per per ulteriori informazioni sulle prestazioni di Filestore, Ottimizza e testa le prestazioni delle istanze.

Google Cloud NetApp Volumes

NetApp Volumes è un servizio completamente gestito con dati avanzati che supportano gli ambienti NFS, SMB e multiprotocollo. NetApp Volumes supporta volumi a bassa latenza, multi-tebibyte e di gigabyte al secondo.

Per ulteriori informazioni su NetApp Volumes, vedi Che cos'è Google Cloud NetApp Volumes? Per ulteriori informazioni sul rendimento di NetApp Volumes, consulta Rendimento previsto.

Archiviazione a blocchi

Dopo aver selezionato lo spazio di archiviazione principale, puoi utilizzare l'archiviazione a blocchi per migliorare le prestazioni, trasferire dati tra le opzioni di archiviazione e sfruttare le operazioni a bassa latenza. Sono disponibili due opzioni di archiviazione: all'archiviazione: SSD locale e Persistent Disk.

SSD locale

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

Sebbene l'SSD locale offra prestazioni elevate, ogni istanza di archiviazione è temporanea. Pertanto, i dati archiviati su un'unità SSD locale vengono persi quando l'istanza viene arrestata o eliminata. Data la natura temporanea dell'SSD locale, valuta e altri tipi di archiviazione quando i dati richiedono una maggiore durabilità.

Tuttavia, quando la quantità di dati di addestramento è molto ridotta, è comune copiarli da Cloud Storage all'unità SSD locale di una GPU. Il motivo è che l'SSD locale fornisce una latenza I/O inferiore e riduce per l'addestramento.

Per ulteriori informazioni sulle unità SSD locali, consulta la pagina Informazioni sulle unità SSD locali. Per ulteriori informazioni sulla quantità di capacità SSD locale disponibile con i tipi di istanze GPU di Cloud, consulta Piattaforme GPU.

Persistent Disk

Persistent Disk è un servizio di archiviazione a blocchi di rete con una suite completa delle funzionalità di persistenza e gestione dei dati. Oltre a utilizzarlo come disco di avvio, puoi utilizzare il disco permanente con i carichi di lavoro di IA, ad esempio lo spazio di archiviazione scratch. Persistent Disk è disponibile nelle seguenti opzioni:

  • Standard, che fornisce un'archiviazione a blocchi efficiente e affidabile.
  • Bilanciata, che offre archiviazione a blocchi affidabile ed economica.
  • SSD, che fornisce archiviazione a blocchi veloce 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 (Disco permanente).

Strumenti di trasferimento 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 del checkpoint o il modello addestrato di nuovo in Cloud Storage. Puoi anche eseguire la maggior parte delle attività in Filestore, quindi spostare i tuoi dati e il tuo modello in Cloud Storage a scopo 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 NetApp Volumes. Questo servizio completamente gestito consente anche dati tra i tuoi repository di archiviazione file on-premise e di oggetti, Google Cloud Storage e altri cloud provider. Storage Transfer Service consente di copiare i dati in modo sicuro dalla posizione di origine a quella di destinazione, nonché di eseguire trasferimenti periodici dei dati modificati. Fornisce inoltre convalida dell'integrità dei dati, nuovi tentativi automatici e il bilanciamento del carico.

Per saperne di più su Storage Transfer Service, consulta Che cos'è Storage Transfer Service?

Interfaccia a riga di comando

Quando sposti i dati tra Filestore e Cloud Storage, devi utilizzare l'interfaccia a riga di comando Google Cloud. La gcloud CLI consente di creare e gestire i bucket Cloud Storage e oggetti con una velocità effettiva ottimale e una suite completa di comandi.

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

Questa sezione espande il riepilogo fornito nella Tabella 1 per esplorare i consigli e le indicazioni specifici per ogni fase di un carico di lavoro di AI e ML. L'obiettivo è aiutarti a comprendere la motivazione di queste scelte e selezionare le migliori opzioni di archiviazione per ogni fase di AI e ML. Questa analisi genera tre consigli principali che vengono esaminati nella sezione Consigli per lo spazio di archiviazione per l'IA e l'ML.

La figura seguente fornisce un albero decisionale che mostra le metriche consigliate di archiviazione per le quattro fasi principali di un carico di lavoro di 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 ciascuna 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 di IA e ML.

Preparazione

In questa fase iniziale, devi scegliere se utilizzare Cloud Storage o Filestore come origine permanente per i tuoi dati. Puoi anche selezionare potenziali ottimizzazioni per l'addestramento con un volume elevato di dati. Tieni presente che i diversi team della tua organizzazione possono avere tipi di carichi di lavoro e set di dati diversi, il che potrebbe portare a decisioni di archiviazione diverse. Per soddisfare queste diverse esigenze, puoi combinare e le scelte di archiviazione tra Cloud Storage di conseguenza Filestore.

Cloud Storage per la fase di preparazione

  • Il tuo carico di lavoro contiene file di grandi dimensioni di almeno 50 MB.
  • Il carico di lavoro richiede un numero inferiore di IOPS.
  • Il tuo carico di lavoro può tollerare una latenza di archiviazione più elevata nell'arco di decine di millisecondi.

  • Devi ottenere l'accesso al set di dati tramite le API Cloud Storage. Cloud Storage FUSE e un sottoinsieme di API di file.

Per ottimizzare il tuo carico di lavoro in Cloud Storage, puoi selezionare lo 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 lo spazio di archiviazione a due regioni.

Filestore per la fase di preparazione

Devi selezionare Filestore per preparare i dati se uno degli si applicano le seguenti condizioni:

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

Altre considerazioni per la fase di preparazione

Se in questa fase trovi difficile scegliere un'opzione, considera quanto segue: per aiutarti a prendere una decisione:

  • Se vuoi utilizzare altri framework di IA e ML, come Dataflow, Spark o BigQuery, su un set di dati, Cloud Storage è una scelta logica per l'integrazione personalizzata con questi tipi di framework.
  • Filestore ha una capacità massima di circa 100 TB. Se devi addestrare il modello con set di dati più grandi o se non riesci a suddividere il set 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 chunk per migliorare l'efficienza dell'accesso ed evitare richieste di lettura casuali. Per ridurre ulteriormente i requisiti di prestazioni I/O sul sistema di archiviazione, molti utenti utilizzano la pipeline, l'ottimizzazione dell'addestramento per aumentare il numero di thread I/O o entrambi.

Addestra

Nella fase di addestramento, in genere riutilizzi l'opzione di archiviazione principale selezionata per la fase di preparazione. Se lo spazio di archiviazione principale che hai scelto non è in grado di gestire da solo il carico di lavoro di addestramento, potresti dover integrare lo spazio di archiviazione principale. Tu se necessario, puoi aggiungere spazio di archiviazione supplementare, ad esempio gli SSD locali, per bilanciare carico di lavoro.

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

  • Indicazioni per le dimensioni dei file e delle richieste
  • Suggerimenti su quando integrare la scelta dello spazio di archiviazione principale
  • Qui troverai una spiegazione dei dettagli di implementazione dei due carichi di lavoro principali fase: caricamento dei dati, checkpoint e riavvio

Cloud Storage per la fase di addestramento

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

  • Se utilizzi Cloud Storage per preparare i dati, ti consigliamo di per addestrare i tuoi dati in Cloud Storage.
  • Cloud Storage è una buona scelta per velocità effettiva, carichi di lavoro che non richiedono un'elevata velocità effettiva di una singola VM o carichi di lavoro che 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 Filestore, durante l'addestramento dei dati si verifica quando devi supportare piccole richieste I/O o file di piccole dimensioni. In questo caso, puoi integrare l'attività di addestramento di Cloud Storage spostando alcuni dei dati in SSD locale o a livello di zona Filestore.

Filestore per la fase di addestramento

I motivi principali per selezionare Filestore durante l'addestramento dei dati include:

  • Se utilizzi Filestore per preparare i dati, nella maggior parte dei casi dovresti continuare ad addestrarli in Filestore.
  • Filestore è una buona scelta per bassa latenza e alta per client velocità effettiva massima e applicazioni che usano un numero ridotto di thread, richiedono prestazioni elevate.
  • Se devi integrare le attività di addestramento in Filestore, prendi in considerazione la creazione di una cache SSD locale in base alle tue esigenze.

Dimensioni del file e dimensioni della richiesta

Una volta che 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 di dimensioni maggiori, pari o superiori a 50 MB. Il job di addestramento importa i file con dimensioni comprese tra 1 MB e 16 MB per richiesta. Me in genere consigliano Cloud Storage con Cloud Storage FUSE perché i file sono abbastanza grandi che Cloud Storage dovrebbe in grado di mantenere gli acceleratori alimentati. Tieni presente che potresti dover utilizzare da centinaia a migliaia di thread per ottenere il massimo rendimento 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 o medie dimensioni o a cui si accede con richieste di piccole dimensioni

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

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

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

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

Caricamento dei dati

Durante il caricamento dei dati, vengono importate le GPU Cloud o le Cloud TPU più batch di dati addestrare il modello. Questa fase può essere adatta alla cache, a seconda delle dimensioni dei batch e dell'ordine in cui li richiedi. A questo punto, il tuo obiettivo è formare il modello con la massima efficienza, ma al costo più basso.

Se le dimensioni dei dati di addestramento raggiungono i petabyte, potrebbe essere necessario leggere nuovamente 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 di Cloud non siano inattive, ma elaborino attivamente i tuoi dati. In caso contrario, paghi un acceleratore costoso e inutilizzato mentre copi i dati da una posizione all'altra.

Per il caricamento dei dati, considera quanto segue:

  • Parallelismo: ci sono molti modi per parallelare dell'addestramento, e ognuno può influire sulle prestazioni di archiviazione complessive richieste la necessità di memorizzare i dati nella cache locale su ciascuna 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 potrebbe comportare un aumento dei costi se le GPU Cloud o le Cloud TPU sono inattive. Tuttavia, esistono modi per ridurre al minimo i costi man mano che aumenti il numero di acceleratori. A seconda del tipo di parallelismo che utilizzi, puoi: minimizzare i costi aumentando i requisiti di velocità effettiva di lettura aggregata necessari per evitare i tempi di inattività acceleratori.

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

Tuttavia, il precaricamento dei dati nell'unità SSD locale di ogni istanza da Cloud Storage presenta delle sfide. Rischio di un aumento del i costi 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 in grado di ridurre i costi usando invece Filestore con SSD locale.

  • Numero di GPU Cloud per istanza: quando esegui il deployment di più GPU Cloud a ogni istanza, puoi aumentare la velocità effettiva delle GPU tra cloud con NVLink. Tuttavia, la velocità effettiva disponibile delle SSD locali e della rete di archiviazione non aumenta sempre in modo lineare.
  • Ottimizzazioni dello spazio di archiviazione e delle applicazioni: opzioni e applicazioni di archiviazione hanno requisiti di prestazioni specifici per poter funzionare in modo ottimale. Assicurati di bilanciare questi requisiti di sistema di archiviazione e applicazioni con le ottimizzazioni del caricamento dei dati, ad esempio mantenendo occupate e in funzione in modo efficiente le tue GPU o TPU Cloud.

Checkpoint e riavvio

Per checkpoint e riavvia, i job di addestramento devono salvare periodicamente il loro stato per potersi recuperare rapidamente dagli errori delle istanze. Quando si verifica l'errore, i job devono riavviarsi, importare l'ultimo checkpoint e poi riprendi l'addestramento. L'esatto meccanismo utilizzato per creare e importare controlli è in genere specifico di un framework, come TensorFlow o PyTorch. Alcuni utenti hanno creato framework complessi per aumenta l'efficienza dei controlli. Questi framework complessi consentono di eseguire un controllo più di frequente.

Tuttavia, la maggior parte degli utenti in genere utilizza lo spazio di archiviazione condiviso, Cloud Storage o Filestore. Quando salvi i checkpoint, devi salvare solo da tre a cinque checkpoint in un dato momento. Posto di blocco consiste principalmente in scritture, diverse eliminazioni e, idealmente, letture non frequenti quando si verificano errori. Durante il recupero, il pattern I/O include scritture intensive e frequenti, eliminazioni frequenti e letture frequenti del checkpoint.

Devi anche considerare le dimensioni del checkpoint che ogni Esigenze di GPU o TPU per creare. La dimensione del checkpoint determina la velocità effettiva di scrittura richiesta di completare il lavoro di formazione in modo economico e tempestivo.

Per ridurre al minimo i costi, valuta la possibilità di aumentare i seguenti elementi:

  • La frequenza dei checkpoint
  • La velocità in scrittura aggregata richiesta per i checkpoint
  • Efficienza del riavvio

Distribuzione

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

Per molti casi d'uso dell'IA generativa, i dati di input del modello potrebbero essere piuttosto ridotti e potrebbe 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). Nella in questo caso, devi selezionare un'opzione che possa mantenere le GPU Cloud le Cloud TPU fornite durante l'analisi del set di dati, e selezionare una posizione permanente per archiviare i risultati dell'inferenza.

Esistono due opzioni principali per la pubblicazione del modello.

Cloud Storage per la fase di pubblicazione

I motivi principali per scegliere Cloud Storage durante la fornitura dei dati includono: le seguenti:

  • Quando addestri il tuo modello in Cloud Storage, puoi risparmiare sulla migrazione lasciando il modello in Cloud Storage al momento della pubblicazione.
  • Puoi salvare i contenuti generati in Cloud Storage.
  • Cloud Storage è una buona scelta quando l'inferenza dell'AI avviene in più regioni.
  • Puoi utilizzare bucket a due e più regioni per garantire la disponibilità del modello in caso di guasti a livello regionale.

Filestore per la fase di pubblicazione

I motivi principali per selezionare Filestore per la pubblicazione dei dati includono:

  • Quando addestri il modello in Filestore, puoi risparmiare di migrazione lasciando il modello in Filestore di pubblicarla.
  • Poiché il suo accordo sul livello del servizio (SLA) garantisce 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 di una regione.
  • I livelli di servizio zonali di Filestore potrebbero essere una scelta ragionevole a un costo inferiore, ma solo se l'alta disponibilità non è un requisito per il tuo carico di lavoro di IA e ML.
  • Se hai bisogno di un recupero tra regioni, puoi archiviare il modello in una posizione di backup remota o in un bucket Cloud Storage remoto e poi ripristinarlo in base alle esigenze.
  • Filestore offre un'opzione durevole e ad alta disponibilità fornisce accesso a bassa latenza al modello quando generi file di piccole dimensioni o richiedono API di file.

Archivia

La fase di archiviazione ha un pattern I/O di "scrivi una volta, leggi raramente". Il tuo obiettivo è memorizzare 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 ripristino di emergenza. Devi archiviare anche questi di articoli in un luogo durevole per un lungo periodo di tempo. Anche se potresti non avere bisogno di accedere ai dati e ai modelli molto spesso, è importante che siano disponibili quando ti servono.

Grazie alla sua estrema durabilità, alla sua scalabilità estesa e al suo costo ridotto, è l'opzione per archiviare i dati degli oggetti in un lungo periodo di tempo, di archiviazione ideale in Cloud Storage. A seconda della frequenza con cui accedi ai file di set di dati, modelli e backup, Cloud Storage offre l'ottimizzazione dei costi tramite diverse classi di archiviazione con i seguenti approcci:

  • Inserisci i dati a cui accedi di frequente in Standard Storage.
  • Conserva in Nearline Storage i dati a cui accedi mensilmente.
  • Archivia i dati a cui accedi ogni tre mesi nello spazio di archiviazione Coldline.
  • Conserva i dati a cui accedi una volta all'anno nello spazio di archiviazione Archive.

Con la gestione del ciclo di vita degli oggetti, puoi creare criteri per spostare i dati in classi di archiviazione meno utilizzate o per eliminarli in base a criteri specifici. Se non sai con quale frequenza accederai ai tuoi puoi utilizzare Funzionalità Autoclass per spostare automaticamente i dati tra le classi di archiviazione, in base all'accesso pattern.

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

Suggerimenti sull'archiviazione per AI e ML

Questa sezione riassume l'analisi fornita nella sezione precedente, Mappa le tue scelte di archiviazione alle fasi di AI e ML. Fornisce dettagli sulle tre combinazioni di opzioni di archiviazione principali 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, offre accessibilità e disponibilità a livello di regione e di due regioni e può essere accessibile tramite Cloud Storage FUSE. Devi selezionare Regional Storage quando la piattaforma di computing per l'addestramento è in la stessa regione e scegli l'archiviazione a due regioni se hai bisogno di una maggiore affidabilità o utilizzare GPU Cloud o Cloud TPU situati in due diversi regioni.

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

Seleziona Cloud Storage con SSD locale o Filestore

Per l'addestramento con uso intensivo di dati o per i carichi di lavoro di checkpoint e riavvio, può essere sensato utilizzare un'offerta di archiviazione più veloce durante la fase di addestramento con uso intensivo di I/O. Le scelte più comuni 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 o le TPU Cloud fornite di dati e impedisce alle istanze di bloccarsi durante il completamento delle operazioni di checkpoint. Inoltre, più spesso crei i checkpoint, più checkpoint hai a disposizione come backup. Questo aumento del numero di backup consente inoltre di incrementare la frequenza complessiva con cui arrivano i dati utili (nota anche come goodput). Questa combinazione di ottimizzare i processori e aumentare il buonput riduce i costi complessivi durante l'addestramento del modello.

Esistono compromessi da considerare quando utilizzi SSD locale o Filestore. La sezione seguente descrive alcuni vantaggi e gli svantaggi di ciascuno.

Vantaggi delle unità SSD locali

  • Velocità effettiva e IOPS elevate dopo il trasferimento dei dati
  • Costi aggiuntivi da bassi a minimi

Svantaggi degli SSD locali

  • Le GPU o le TPU Cloud 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 istanze Cloud GPU.
  • Fornisce una capacità di archiviazione limitata.
  • Supporta i checkpoint, ma devi trasferirli manualmente a un'opzione di archiviazione durevole come Cloud Storage.

Vantaggi di Filestore

  • Fornisce uno spazio di archiviazione NFS condiviso che consente di trasferire i dati una volta e poi condividerli tra più job e utenti.
  • Non esiste tempo di inattività delle Cloud GPU o delle Cloud TPU perché i dati vengono trasferiti prima che tu debba pagare le Cloud GPU o le Cloud TPU.
  • Ha una grande capacità di archiviazione.
  • Supporta checkpoint rapidi per migliaia di VM.
  • Supporta Cloud GPU, Cloud TPU e tutti gli altri tipi di istanze Compute Engine.

Svantaggi di Filestore

  • Costo iniziale elevato, ma l'aumento dell'efficienza di calcolo ha il potenziale per ridurre i costi di addestramento complessivi.

Seleziona Filestore con l'SSD locale facoltativo

Filestore è la scelta migliore per i carichi di lavoro di IA e ML che richiedono una bassa latenza e il supporto completo di POSIX. Oltre a essere la scelta consigliata per file di piccole dimensioni o job di addestramento I/O di piccole dimensioni, Filestore reattiva per blocchi note AI e ML, sviluppo di software e molte altre applicazioni. Puoi anche implementare Filestore in una zona per l'addestramento ad alte prestazioni e l'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 di job di inferenza ad alta disponibilità. L'aggiunta facoltativa di FS-Cache per supportare La memorizzazione nella cache SSD locale consente letture rapide e ripetute dei dati di addestramento per carichi di lavoro con scale out impegnativi.

Passaggi successivi

Per ulteriori informazioni sulle opzioni di archiviazione, sull'AI e sul machine learning, consulta le di risorse:

Collaboratori

Autori:

  • Dean Hildebrand | Technical Director, Office of the CTO
  • Sean Derrington | Group Outbound Product Manager, Archiviazione
  • Richard Hendricks | Personale del Centro architetture

Altro collaboratore: Kumar Dhanagopal | Sviluppatore di soluzioni cross-product