Utilizzare Cloud Storage come file system montato

Cloud Storage FUSE ti consente di caricare i dati di addestramento in un bucket Cloud Storage e di accedervi dal tuo job di addestramento serverless Vertex AI come un file system montato. L'utilizzo di Cloud Storage FUSE offre i seguenti vantaggi:

  • I dati di addestramento vengono trasmessi in streaming al job di addestramento anziché scaricati nelle repliche, il che può rendere più veloci le attività di caricamento e configurazione dei dati quando il job inizia a essere eseguito.
  • I job di addestramento possono gestire input e output su larga scala senza effettuare chiamate API, gestire risposte o integrarsi con librerie lato client.
  • Cloud Storage FUSE offre un throughput elevato per le letture sequenziali di file di grandi dimensioni e negli scenari di addestramento distribuito.

Casi d'uso

Consigliamo di utilizzare Cloud Storage per archiviare i dati di addestramento nelle seguenti situazioni:

  • I dati di addestramento sono dati non strutturati, come immagini, testo e video.
  • I dati di addestramento sono dati strutturati in un formato come TFRecord.
  • I dati di addestramento contengono file di grandi dimensioni, ad esempio video non elaborati.
  • Utilizzi l'addestramento distribuito.

Come funziona

I job di addestramento serverless possono accedere ai bucket Cloud Storage come sottodirectory della directory radice /gcs. Ad esempio, se i dati di addestramento si trovano in gs://example-bucket/data.csv, puoi leggere e scrivere nel bucket dalla tua applicazione di addestramento Python nel seguente modo:

Read to the bucket

with open('/gcs/example-bucket/data.csv', 'r') as f:
  lines = f.readlines()

Scrivere nel bucket

with open('/gcs/example-bucket/epoch3.log', 'a') as f:
  f.write('success!\n')

Autorizzazioni di accesso al bucket

Per impostazione predefinita, un job di addestramento serverless può accedere a qualsiasi bucket Cloud Storage all'interno dello stesso progetto Google Cloud utilizzando l'agente di servizio del codice personalizzato Vertex AI. Per controllare l'accesso ai bucket, puoi assegnare un service account personalizzato al job. In questo caso, l'accesso a un bucket Cloud Storage viene concesso in base alle autorizzazioni associate ai ruoli Cloud Storage delaccount di serviziot personalizzato.

Ad esempio, se vuoi concedere al job di addestramento serverless l'accesso in lettura e scrittura al bucket A, ma solo l'accesso in lettura al bucket B, puoi assegnare al job un service account personalizzato con i seguenti ruoli:

  • roles/storage.objectAdmin per Bucket-A
  • roles/storage.objectViewer per Bucket-B

Se il job di addestramento tenta di scrivere nel bucket B, viene restituito un errore "Autorizzazione negata".

Per saperne di più sui ruoli Cloud Storage, consulta Ruoli IAM per Cloud Storage.

Best practice

  • Evita di rinominare le directory. Un'operazione di ridenominazione non è atomica in Cloud Storage FUSE. Se l'operazione viene interrotta, alcuni file rimangono nella vecchia directory.
  • Evita di chiudere (close()) o svuotare (flush()) inutilmente i file. La chiusura o lo svuotamento dei file li trasferisce in Cloud Storage, il che comporta un costo.

Linee guida per l'ottimizzazione del rendimento

Per ottenere una velocità effettiva di lettura ottimale quando utilizzi Cloud Storage come file system, ti consigliamo di implementare le seguenti linee guida:

  • Per ridurre la latenza introdotta dalla ricerca e dall'apertura di oggetti in un bucket, archivia i dati in file più grandi e in numero inferiore.
  • Utilizza l'addestramento distribuito per massimizzare l'utilizzo della larghezza di banda.
  • Memorizza nella cache i file a cui si accede di frequente per migliorare le prestazioni di lettura. Per maggiori dettagli, consulta la Panoramica della memorizzazione nella cache in Cloud Storage FUSE.
  • Utilizza l'archiviazione locale per i checkpoint e i log anziché Cloud Storage.

Limitazioni

Per informazioni sulle limitazioni di Cloud Storage FUSE, incluse le differenze tra Cloud Storage FUSE e i file system POSIX, consulta Limitazioni e differenze rispetto ai file system POSIX.

Utilizzare Cloud Storage FUSE

Per utilizzare Cloud Storage FUSE per l'addestramento serverless:

  1. Crea un bucket Cloud Storage. Tieni presente che i bucket dual-region e multiregionali non sono supportati per l'addestramento serverless.
  2. Carica i dati di addestramento nel bucket. Per maggiori dettagli, vedi Caricamenti.

    Per scoprire altre opzioni per trasferire i dati a Cloud Storage, consulta Opzioni di trasferimento dei dati.

  3. Installa Cloud Storage FUSE.

  4. Utilizza il file system Cloud Storage.

Passaggi successivi