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 personalizzato come a 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ò velocizzare 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 le risposte o integrarsi con le librerie lato client.
  • Cloud Storage FUSE offre un'elevata velocità in termini di throughput per le letture sequenziali di file di grandi dimensioni e in scenari di addestramento distribuito.

Casi d'uso

Consigliamo di utilizzare Cloud Storage per l'archiviazione dei 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, come video non elaborati.
  • Utilizzi l'addestramento distribuito.

Come funziona

I job di addestramento personalizzato possono accedere ai bucket Cloud Storage come sottodirectory della directory principale /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 come segue:

Leggi nel 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 personalizzato 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 al job un account di servizio personalizzato. In questo caso, l'accesso a un bucket Cloud Storage viene concesso in base alle autorizzazioni associate ai ruoli Cloud Storage dell'account di servizio personalizzato.

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

  • roles/storage.objectAdmin per il bucket A
  • roles/storage.objectViewer per il 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 rinominazione non è atomica in Cloud Storage FUSE. Se l'operazione viene interrotta, alcuni file rimangono nella vecchia directory.
  • Evita di chiudere (close()) o svuotare la cache dei file (flush()) inutilmente. La chiusura o lo svuotamento della cache dei file comporta il trasferimento del file in Cloud Storage, con un costo.

Linee guida per l'ottimizzazione delle prestazioni

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

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

Limitazioni

Per conoscere le 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 personalizzato:

  1. Crea un bucket Cloud Storage. Tieni presente che i bucket a due regioni e a più regioni non sono supportati per l'addestramento personalizzato.
  2. Carica i dati di addestramento nel bucket. Per maggiori dettagli, consulta Caricarli.

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

  3. Installa Cloud Storage FUSE.

  4. Monta il bucket nell'applicazione di addestramento.

Passaggi successivi