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 als Dateisystem 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 in großen Dateien sowie in verteilten 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 als Unterverzeichnisse des Stammverzeichnisses /gcs auf Ihre Cloud Storage-Buckets 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 benutzerdefinierter Trainingsjob mit dem 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 den Cloud Storage-Rollen des benutzerdefinierten Dienstkontos zugeordnet 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 das Umbenennen von Verzeichnissen. Umbenennungsvorgänge sind in Cloud Storage FUSE nicht atomar. Wenn der Vorgang unterbrochen wird, bleiben 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 das parallele Training, um die Bandbreitennutzung zu maximieren.
  • Speichern Sie häufig aufgerufene Dateien im Cache, um die Leseleistung zu verbessern.

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 Unterschiede zu anderen Dateisystemen.

Daten in Cloud Storage laden

Weitere Informationen zu Optionen für die Datenübertragung in Cloud Storage finden Sie unter Datenübertragungsoptionen.

Nächste Schritte