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. Questo quando carichi il set di dati, esegui l'addestramento e ottimizza mettere il modello in produzione, oppure archiviare il set di dati e il modello un archivio. In breve, devi selezionare i migliori servizi di archiviazione che 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 principali. Come mostrato in nel diagramma, in genere scegli Cloud Storage se le dimensioni dei file sono maggiori, operazioni di input e output al secondo (IOPS) inferiore o latenza superiore. 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 per IA e ML
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 per lo spazio di archiviazione selezionato 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, che sono descritti più avanti in questa guida.
Alcune soluzioni di archiviazione funzionano meglio di altre in ogni fase e potrebbero richiedere essere combinati con altre opzioni di archiviazione per ottenere risultati ottimali. La efficacia della scelta dello spazio di archiviazione dipende dalle proprietà del set di dati, dalla scala risorse di calcolo e archiviazione, latenza e altri fattori. La tabella seguente descrive 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 sull'archiviazione per le fasi e i passaggi nei carichi di lavoro di AI e ML
Fasi | Passaggi | Suggerimenti sullo spazio di archiviazione |
---|---|---|
Preparazione |
Preparazione dei dati
|
Cloud Storage
Zona Filestore
|
Treno |
|
Cloud Storage
Cloud Storage con SSD locale o Filestore
Filestore
|
|
Cloud Storage
Zona Filestore
|
|
Gestione |
|
Cloud Storage
Filestore
|
Archivia |
|
Cloud Storage
|
Per ulteriori dettagli sui presupposti di base per questa tabella, consulta sezioni seguenti:
- Criteri
- Opzioni di archiviazione
- Mappa le tue scelte di archiviazione alle fasi di AI e ML
- Suggerimenti sull'archiviazione per AI e ML
Criteri
Per restringere le scelte delle opzioni di archiviazione da utilizzare per AI e ML carichi di lavoro, 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 AI e ML sono sensibili alla latenza I/O e al time to first byte (TTFB)?
- Hai bisogno di un'elevata velocità effettiva di lettura e scrittura per singoli client, aggregati clienti o entrambi?
- Qual è il maggior numero di GPU Cloud o Cloud TPU il carico di lavoro di addestramento più grande richiesto per l'addestramento di AI e ML?
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 computing
Google Cloud supporta tre metodi principali per eseguire AI e ML carichi di lavoro standard:
- Compute Engine: le macchine virtuali (VM) supportano tutte le risorse gestite da Google i servizi di archiviazione e le offerte dei partner. Compute Engine fornisce il supporto per SSD locali, Persistent Disk, Cloud Storage Cloud Storage FUSE, NetApp Volumes, e Filestore. Per job di addestramento su larga scala in Compute Engine, Google ha collaborato SchedMD di fornire lo scheduler Slurm miglioramenti.
Google Kubernetes Engine (GKE) GKE è una piattaforma di IA molto diffusa che si integra con i framework, i carichi di lavoro e gli strumenti di elaborazione dati più diffusi. GKE fornisce il supporto per SSD locali, volumi persistenti, Cloud Storage FUSE, e Filestore.
Vertex AI: Vertex AI è una piattaforma di IA completamente gestita che fornisce una soluzione end-to-end per i carichi di lavoro di AI e ML. Vertex AI supporta sia Cloud Storage e archiviazione basata su file di rete file system (NFS), come Filestore e NetApp Volumes.
Per Compute Engine e GKE, consigliamo di utilizzare Cluster Toolkit per esegui il deployment di cluster ripetibili e pronti all'uso che seguono i migliori risultati di Google Cloud pratiche.
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 macchina ottimizzati per l'acceleratore, consulta Macchina ottimizzata per l'acceleratore Famiglia. 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 AI e ML offerti da Google Cloud
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.
- API, come l'API JSON di Cloud Storage, per accedere allo spazio di archiviazione bucket.
- Archiviazione persistente per salvare i dati.
- Velocità effettiva 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 aziendale ad alte prestazioni, basata su NFS.
- Archiviazione persistente 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 l'opzione per utilizzare NetApp ONTAP di archiviazione software.
- Archiviazione persistente 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 AI e ML:
Se devi trasferire i dati tra queste opzioni di archiviazione, puoi utilizzare strumenti per il trasferimento di dati.
Cloud Storage
Cloud Storage è un servizio di archiviazione di oggetti completamente gestito che si concentra su preparazione dei dati, addestramento del modello di AI, distribuzione dei dati, backup e archiviazione e non strutturati. Alcuni dei vantaggi di Cloud Storage includono seguenti:
- Capacità di archiviazione illimitata che scala fino agli exabyte su base globale
- Prestazioni velocità effettiva ultra elevata
- Opzioni di archiviazione a livello di regione e di doppia regione 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ù 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, un'elevata velocità effettiva richiede anche l'utilizzo di file di grandi dimensioni e di grandi I/O richieste.
Cloud Storage supporta librerie client in un'ampia gamma di programmi linguaggi di programmazione, ma supporta anche Cloud Storage FUSE. Cloud Storage FUSE consente devi montare i bucket Cloud Storage nel 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:
- Panoramica del prodotto per Cloud Storage
- Linee guida per tasso di richieste e distribuzione degli accessi
- FUSE Cloud Storage
- Prestazioni e best practice di Cloud Storage FUSE
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 un'area geografica la disponibilità del servizio.
- Livello a livello di zona: utilizzato per applicazioni ad alte prestazioni che richiedono servizi con requisiti elevati di IOPS e velocità effettiva.
- Livello base: utilizzato per la condivisione di file, lo sviluppo di software, l'hosting web e carichi di lavoro di AI e ML di base.
Filestore offre prestazioni di 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ò anche gestire I/O di grandi dimensioni o l'utilizzo di file di grandi dimensioni in base alle esigenze. Filestore può fare lo scale up fino a circa 100 TB di dimensioni. Per i carichi di lavoro di addestramento IA che leggono i dati ripetutamente, puoi migliorare la velocità effettiva di lettura FS-Cache con SSD locale.
Per ulteriori informazioni su Filestore, consulta Panoramica di Filestore. Per per ulteriori informazioni sui livelli di servizio Filestore, 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 sulle prestazioni di NetApp Volumes, consulta Rendimento previsto.
Archiviazione a blocchi
Dopo aver selezionato la scelta di archiviazione principale, puoi utilizzare l'archiviazione a blocchi per integrare le prestazioni, trasferire i dati tra le opzioni di archiviazione e e sfruttare le operazioni a bassa latenza. Sono disponibili due opzioni di archiviazione: archiviazione: SSD locale e Persistent Disk.
SSD locale
L'SSD locale fornisce spazio di archiviazione locale direttamente su una VM o un container. Più alta I tipi di macchine Google Cloud che contengono GPU Cloud includono quantità di annunci locali SSD. Poiché i dischi SSD locali sono collegati fisicamente alle GPU Cloud, fornire 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 temporaneo. Di conseguenza, i dati archiviati su un'unità SSD locale vanno persi quando ti fermi per eliminare l'istanza. 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, è normale copiare i dati di addestramento da Cloud Storage all'SSD locale di un GPU. Il motivo è che l'SSD locale fornisce una latenza I/O inferiore e riduce per l'addestramento.
Per ulteriori informazioni su SSD locale, consulta Informazioni sulle unità SSD locali. Per ulteriori informazioni sulla quantità di capacità SSD locale disponibile con Tipi di istanza GPU 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 usare Persistent Disk con carichi di lavoro AI, come archiviazione. Persistent Disk è disponibile nelle opzioni seguenti:
- Standard, che offre 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 dalle prestazioni più elevate 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 tra Cloud Storage, potresti spostarlo altrove per addestrare il modello, quindi e copiare di nuovo gli snapshot dei checkpoint o il modello addestrato 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. Questo illustra le opzioni a tua disposizione per spostare i dati tra 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. La Storage Transfer Service consente di copiare i dati in modo sicuro dall'origine posizione geografica rispetto alla località target, nonché eseguire trasferimenti periodici 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 dati tra Filestore e Cloud Storage, dovresti utilizzare Google Cloud CLI. 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 si espande rispetto al riepilogo fornito nella Tabella 1. per esplorare consigli e linee guida 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 esplorati nella sezione: Suggerimenti sull'archiviazione per AI e ML.
La figura seguente fornisce un albero decisionale che mostra le metriche consigliate di archiviazione disponibili per le quattro fasi principali di un carico di lavoro di AI e ML. Il diagramma è seguita da una spiegazione dettagliata di ciascuna fase e le scelte che che puoi eseguire in ogni fase.
Figura 3: scelte di archiviazione per ciascuna fase di AI 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 di addestramento ad alta intensità di dati. Tieni presente che team diversi della tua organizzazione possono diversi tipi di carichi di lavoro e set di dati, che potrebbero portare i team a creare decisioni di archiviazione diverse. Per soddisfare queste diverse esigenze, puoi combinare e le scelte di archiviazione tra Cloud Storage Filestore di conseguenza.
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 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 carico di lavoro in Cloud Storage, puoi selezionare una regione archiviazione e posizionare il bucket nella stessa regione delle risorse di computing. Tuttavia, se hai bisogno di maggiore affidabilità o se utilizzi acceleratori situati in due regioni diverse, dovrai scegliere l'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 carico di lavoro richiede un numero maggiore di IOPS.
- 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.
- I tuoi utenti hanno bisogno di un'esperienza simile a quella di un computer con supporto completo per POSIX per visualizzare e per gestire i dati.
- Gli utenti devono eseguire altre attività, ad esempio lo sviluppo del 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 AI e ML, come Dataflow, Spark o BigQuery sul set di dati, Cloud Storage è logica grazie all'integrazione personalizzata che ha con questi tipi i modelli di machine learning.
- Filestore ha una capacità massima di circa 100 TB. Se devi addestrare il modello con set di dati di dimensioni maggiori o, se non puoi 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 andare oltre ridurre i requisiti di prestazioni di I/O sul sistema di archiviazione, molti utenti usano pipeline, ottimizzazione dell'addestramento per aumentare il numero di thread di I/O oppure entrambi.
Addestra
Durante la fase di addestramento, in genere riutilizzi l'opzione di archiviazione principale selezionate per la fase di preparazione. Se la scelta dello spazio di archiviazione principale non supporta potrebbe essere necessario 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 scegliere Cloud Storage durante l'addestramento dei dati include:
- 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 durante la preparazione dei dati, nella maggior parte dei casi, devi continuare ad addestrare i tuoi dati 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 hai bisogno di integrare le attività di addestramento in Filestore, valuta la possibilità di creare un Cache SSD locale dell'oggetto o eliminare definitivamente una versione archiviata, in base alle necessità.
Dimensioni del file e dimensioni della richiesta
Quando il set di dati è pronto per l'addestramento, è possibile scegliere tra due opzioni principali per valutare le diverse opzioni di archiviazione.
- Set di dati contenenti file di grandi dimensioni e a cui si accede con richieste di grandi dimensioni
- Set di dati contenenti file di piccole e medie dimensioni o accessibili con richieste di dimensioni ridotte
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 50 MB o altro ancora. 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 aver bisogno da centinaia a migliaia di thread per ottenere le massime prestazioni con questa .
Tuttavia, se hai bisogno di API POSIX complete per altre applicazioni o per 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 a cui si accede con richieste di dimensioni ridotte
Con questa opzione, puoi classificare il job di addestramento in uno dei due modi seguenti:
- Molti file di dimensioni piccole e medie 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 di dimensioni relativamente ridotte (ad esempio, inferiori a 1 MB). Un 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, allora consigliamo di conservare i dati in Filestore per l'addestramento. Filestore offre accesso ai dati a bassa latenza di I/O. Questo valore inferiore latenza può ridurre il tempo complessivo di addestramento e il costo durante l'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 memorizzata nella cache, a seconda delle dimensioni batch e nell'ordine in cui li richiedi. A questo punto, il tuo obiettivo è addestrare il modello con la massima efficienza ma al costo più basso.
Se la dimensione dei tuoi dati di addestramento viene scalata fino a petabyte, i dati potrebbero dover essere rileggere più volte. Una tale scala richiede un'elaborazione intensiva da parte di GPU Acceleratore TPU. Tuttavia, devi assicurarti che Le GPU Cloud e le Cloud TPU non sono inattivo, ma elabora i dati attivamente. Altrimenti, paghi per un costoso dell'acceleratore 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: Come il numero di acceleratori e VM aumentano, l'impatto sul sistema di archiviazione significativo e potrebbero comportare un aumento dei costi se 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: Ridurre al minimo 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'SSD locale di ogni istanza Cloud Storage presenta le proprie 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, i disponibili La velocità effettiva di rete SSD locale e networking di archiviazione non sempre aumenta 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 bilancia questi requisiti di sistema di archiviazione e delle applicazioni con i tuoi dati ottimizzazioni del caricamento, come la conservazione delle GPU Cloud Cloud TPU occupate ed efficienti.
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 complessi framework consentono di eseguire un checkpoint con maggiore frequenza.
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 ripristino, il pattern I/O include scritture e cancellazioni frequenti, nonché letture frequenti punto di controllo.
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, ti consigliamo di aumentare gli elementi seguenti:
- La frequenza dei checkpoint
- La velocità effettiva di scrittura aggregata richiesta per i checkpoint
- Efficienza di riavvio
Distribuzione
Quando pubblichi il tuo modello, noto anche come inferenza IA, la prima Il pattern I/O è di sola lettura per caricare il modello nelle GPU Cloud Memoria Cloud TPU. Il tuo obiettivo è l'esecuzione del modello in produzione. Il modello è molto più piccolo di addestramento, per poter replicare e scalare il modello di Compute Engine. 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'AI generativa, i dati di input per il modello potrebbero essere piuttosto piccoli e potrebbe non essere necessario essere archiviato 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 fornire la disponibilità dei modelli tra errori regionali.
Filestore per la fase di pubblicazione
I motivi principali per selezionare Filestore durante la pubblicazione dei dati include:
- 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) fornisce una disponibilità del 99,99%, il livello di servizio Filestore Enterprise è una buona scelta disponibilità se vuoi pubblicare il modello tra più zone di una regione.
- I livelli di servizio della zona Filestore più economica, ma solo se l'alta disponibilità non è un requisito per il carico di lavoro di AI e ML.
- Se hai bisogno di un recupero tra regioni, puoi archiviare il modello in un una località di backup o un bucket Cloud Storage remoto, quindi ripristina il modello 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 tipo "scrivi una volta, leggi raramente". Il tuo obiettivo è per archiviare i diversi set di dati di addestramento e le diverse versioni che hai generato. Puoi usare queste versioni incrementali dei dati 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 non richiedono accesso molto spesso ai dati e ai modelli, è consigliabile disponibili quando ne hai bisogno.
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. In base alla frequenza con cui accedi al set di dati, modelli e file di 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 in Coldline Storage.
- Conserva i dati a cui accedi una volta all'anno in Archive Storage.
Utilizzo del ciclo di vita degli oggetti , possono creare criteri per spostare i dati in classi di archiviazione ad accesso meno frequente o per eliminare dati 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 Snapshot Filestore per il ripristino di file locali e file system. Per per ulteriori informazioni sui backup di Filestore, Panoramica dei backup. Per maggiori informazioni informazioni sugli snapshot di Filestore, 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. it fornisce i dettagli sulle tre combinazioni di opzioni di archiviazione principali consigliato per la maggior parte dei carichi di lavoro di AI e ML. Le tre opzioni sono le seguenti:
- Seleziona Cloud Storage
- Seleziona Cloud Storage e SSD locale o Filestore
- Seleziona Filestore e l'SSD locale facoltativo
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 gran numero di clienti, offre regioni o due regioni accessibilità e disponibilità ed è 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 dei dati a lungo termine e per 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 ad alta intensità di dati, il checkpoint e il riavvio dei carichi di lavoro, può ha senso utilizzare un'offerta di archiviazione più rapida durante la fase di addestramento intensivo di I/O. Le scelte tipiche includono la copia dei dati su un SSD locale Filestore. Questa azione riduce il runtime complessivo del job mantenendo le GPU Cloud le Cloud TPU fornite con dati e impedisce che le istanze si blocchino durante il completamento delle operazioni di checkpoint. Inoltre, più spesso crei checkpoint, maggiore è il numero di checkpoint disponibili come backup. Questo aumento del numero di backup aumenta la velocità complessiva con cui arrivano i dati utili (noto anche come goodput). Questa combinazione di ottimizzare i processori e aumentare il buonput riduce i costi complessivi durante l'addestramento del modello.
Ci sono dei compromessi da considerare quando utilizzi un SSD locale Filestore. La sezione seguente descrive alcuni vantaggi e gli svantaggi di ciascuno.
Vantaggi degli 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 Cloud TPU di 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 istanza GPU Cloud.
- Fornisce una capacità di archiviazione limitata.
- Supporta i checkpoint, ma devi trasferire manualmente i checkpoint a un di archiviazione durevole come Cloud Storage.
Vantaggi di Filestore
- Fornisce spazio di archiviazione NFS condiviso che consente il trasferimento dei dati una volta sola e poi condivisi tra più utenti e lavori.
- Non esiste tempo per GPU Cloud o Cloud TPU inattive perché il trasferimento dei dati prima che per pagare le GPU Cloud o le Cloud TPU.
- Ha una grande capacità di archiviazione.
- Supporta checkpoint rapidi per migliaia di VM.
- Supporta GPU Cloud, Cloud TPU e tutti gli altri Tipi di istanza Compute Engine.
Svantaggi di Filestore
- Costi iniziali elevati; ma la maggiore efficienza di calcolo può potenzialmente ridurre i costi complessivi dell'addestramento.
Seleziona Filestore con l'SSD locale facoltativo
Filestore è la scelta migliore per i carichi di lavoro AI e ML che richiedono bassa latenza e supporto completo 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 eseguire il deployment di Filestore per l'addestramento ad alte prestazioni e l'archiviazione permanente dei checkpoint. Deployment Filestore in una zona offre anche il 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:
- Progetta una strategia di archiviazione ottimale per il tuo carico di lavoro cloud
- Panoramica del prodotto per Cloud Storage
- FUSE Cloud Storage
- Panoramica di Filestore
- Informazioni sulle unità SSD locali
- Panoramica di Storage Transfer Service
- Introduzione a Vertex AI
- Estendere la connettività di rete di Vertex AI Pipelines
- Video -- Accedere a set di dati più ampi in modo più rapido e semplice per accelerare l'addestramento dei modelli ML in Vertex AI | Google Cloud
- Cloud Storage come file system nell'addestramento dell'IA
- Lettura e archiviazione dei dati per l'addestramento di modelli personalizzati su Vertex AI | Blog di Google Cloud
Collaboratori
Autori:
- Dean Hildebrand | Direttore tecnico, ufficio del CTO
- Sean Derrington | Product Manager di Group Outbound, Storage
- Richard Hendricks | Personale del Centro architetture
Altro collaboratore: Kumar Dhanagopal | Sviluppatore di soluzioni cross-product