Cloud Storage als bereitgestelltes Dateisystem verwenden

Mit Cloud Storage FUSE können Sie Trainingsdaten in einen Cloud Storage-Bucket laden und über Ihren benutzerdefinierten Trainingsjob, beispielsweise ein bereitgestelltes Dateisystem, auf diese Daten zugreifen. Die Verwendung von Cloud Storage FUSE bietet folgende 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 für verteilte Trainingsszenarien.

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

Benutzerdefinierte 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:

Daten 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')

Berechtigungen für den Bucket-Zugriff

Standardmäßig kann ein Job für benutzerdefiniertes Training über den Dienst-Agent für benutzerdefinierten Vertex AI-Code auf jeden Cloud Storage-Bucket im selben Google Cloud-Projekt zugreifen. Um den Zugriff auf Buckets zu steuern, 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 benutzerdefinierten 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.
  • Dateien, auf die häufig zugegriffen wird, 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 das Checkpointing und Protokolle 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 benutzerdefinierte Trainings:

  1. Cloud Storage-Bucket erstellen Für benutzerdefiniertes Training werden keine Buckets mit zwei oder mehreren Regionen unterstützt.
  2. Laden Sie Ihre Trainingsdaten in den Bucket hoch. Weitere Informationen finden Sie unter Uploads.

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

  3. Cloud Storage FUSE installieren

  4. Bereitstellen Sie den Bucket in Ihrer Trainingsanwendung.

Nächste Schritte