Cloud Storage als bereitgestelltes Dateisystem verwenden

Mit Cloud Storage FUSE können Sie Trainingsdaten in einen Cloud Storage-Bucket laden und über Ihren serverlosen Vertex AI-Trainingsjob, beispielsweise ein bereitgestelltes Dateisystem, auf diese Daten zugreifen. Die Verwendung von Cloud Storage FUSE bietet die folgenden Vorteile:

  • Trainingsdaten werden an den Trainingsjob gestreamt, nicht in Replikate heruntergeladen. Das kann das Laden von Daten und die Einrichtungen beim Start der Jobausführung beschleunigen.
  • Trainingsjobs können Eingabe und Ausgabe in großem Umfang verarbeiten, ohne API-Aufrufe oder Antworten verarbeiten oder eine Einbindung in clientseitige Bibliotheken vornehmen zu müssen.
  • Cloud Storage FUSE bietet einen hohen Durchsatz für sequenzielle Lesevorgänge großer Dateien und in Szenarien mit verteiltem Training.

Anwendungsfälle

In folgenden Situationen empfehlen wir die Verwendung von Cloud Storage zum Speichern von Trainingsdaten:

  • Ihre Trainingsdaten sind unstrukturierte Daten, beispielsweise Bilder, Texte und Videos.
  • Ihre Trainingsdaten sind strukturierte Daten in einem Format wie beispielsweise TFRecord.
  • Ihre Trainingsdaten enthalten große Dateien, z. B. Rohvideos.
  • Sie verwenden verteiltes Training.

Funktionsweise

Serverlose Trainingsjobs können auf Ihre Cloud Storage-Buckets als Unterverzeichnisse des Stammverzeichnisses /gcs zugreifen. Beispiel: Wenn sich die Trainingsdaten unter gs://example-bucket/data.csv befinden, können Sie aus Ihrer Python-Trainingsanwendung folgende Elemente im Bucket lesen und schreiben:

In den Bucket lesen

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

In den Bucket schreiben

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

Bucket-Zugriffsberechtigungen

Standardmäßig kann ein serverloser Trainingsjob mit dem Dienst-Agent für benutzerdefinierten Vertex AI-Code auf jeden Cloud Storage-Bucket im selben Google Cloud Projekt zugreifen. Wenn Sie den Zugriff auf Buckets steuern möchten, können Sie dem Job ein benutzerdefiniertes Dienstkonto zuweisen. In diesem Fall wird der Zugriff auf einen Cloud Storage-Bucket basierend auf den Berechtigungen gewährt, die mit den Cloud Storage-Rollen des benutzerdefinierten Dienstkontos verknüpft sind.

Beispiel: Wenn Sie dem serverlosen Trainingsjob Lese- und Schreibzugriff auf Bucket-A, aber nur Lesezugriff auf Bucket-B gewähren möchten, können Sie dem Job ein benutzerdefiniertes Dienstkonto mit folgenden Rollen zuweisen:

  • roles/storage.objectAdmin für Bucket A
  • roles/storage.objectViewer für Bucket B

Wenn der Trainingsjob versucht, in Bucket-B zu schreiben, wird der Fehler „Berechtigung verweigert“ zurückgegeben.

Weitere Informationen zu Cloud Storage-Rollen finden Sie unter IAM-Rollen für Cloud Storage.

Best Practices

  • Vermeiden Sie es, Verzeichnisse umzubenennen. Umbenennungsvorgänge sind in Cloud Storage FUSE nicht atomar. Wenn der Vorgang unterbrochen wird, verbleiben einige Dateien im alten Verzeichnis.
  • Vermeiden Sie unnötiges Schließen (close() ) oder das Leeren von Dateien (flush()). Wenn Sie eine Datei schließen oder leeren, wird die Datei in Cloud Storage verschoben, was Kosten verursacht.

Richtlinien zur Leistungsoptimierung

Um einen optimalen Lesedurchsatz bei der Verwendung von Cloud Storage als Dateisystem zu erzielen, sollten Sie folgende Richtlinien implementieren:

  • Speichern Sie Daten in größeren und damit in weniger Dateien, um die Latenz durch das Aufrufen und Öffnen von Objekten in einem Bucket zu reduzieren.
  • Verwenden Sie verteiltes Training, um die Bandbreitennutzung zu maximieren.
  • Häufig aufgerufene Dateien im Cache speichern, um die Leseleistung zu verbessern Weitere Informationen finden Sie unter Übersicht über das Caching in Cloud Storage FUSE.
  • Verwenden Sie für Checkpointing und Logs den lokalen Speicher anstelle von Cloud Storage.

Beschränkungen

Weitere Informationen zu den Einschränkungen von Cloud Storage FUSE, einschließlich der Unterschiede zwischen den Cloud Storage FUSE- und POSIX-Dateisystemen, finden Sie unter Einschränkungen und Unterschiede zu POSIX-Dateisystemen.

Cloud Storage FUSE verwenden

So verwenden Sie Cloud Storage FUSE für serverloses Training:

  1. Cloud Storage-Bucket erstellen Beachten Sie, dass Buckets mit zwei Regionen und multiregionale Buckets für serverloses Training nicht unterstützt werden.
  2. Laden Sie Ihre Trainingsdaten in den Bucket hoch. Weitere Informationen finden Sie unter Uploads.

    Informationen zu anderen Optionen zum Übertragen von Daten in Cloud Storage finden Sie unter Optionen für die Datenübertragung.

  3. Cloud Storage FUSE installieren

  4. Cloud Storage-Dateisystem verwenden

Nächste Schritte