Die Auswahl der richtigen Speicherkonfiguration ist entscheidend für die Leistung und Stabilität Ihres Trainingsclusters. Der Dienst lässt sich in zwei verschiedene, leistungsstarke Speicherlösungen einbinden:
- Filestore: Ein erforderlicher verwalteter Dateidienst, der die freigegebenen
/home-Verzeichnisse für alle Knoten im Cluster bereitstellt. - Google Cloud Managed Lustre: Ein optionales paralleles Dateisystem, das für extreme E/A-Leistung entwickelt wurde und sich ideal für das Training mit riesigen Datasets eignet.
Auf dieser Seite finden Sie eine Übersicht über die wichtigsten Anwendungsfälle und die spezifischen Anforderungen an Netzwerk und Bereitstellung für eine erfolgreiche Einbindung in Ihren Cluster.
Speicherintegration für Trainingscluster
Vertex AI-Trainingscluster sind für ihren Betrieb auf bestimmte vernetzte Speicherlösungen angewiesen. Filestore ist erforderlich, um die freigegebenen /home-Verzeichnisse für den Cluster bereitzustellen. Managed Lustre ist ein optionales Hochleistungs-Dateisystem für anspruchsvolle Arbeitslasten.
Es ist wichtig, das Netzwerk für diese Speicherdienste richtig zu konfigurieren, bevor Sie Ihren Cluster bereitstellen.
Filestore für Basisverzeichnisse
Dieser Dienst verwendet eine Filestore-Instanz, um das freigegebene /home-Verzeichnis für den Cluster bereitzustellen. Damit die Verbindung ordnungsgemäß funktioniert, müssen Sie Ihre Cloud-Ressourcen in dieser Reihenfolge erstellen:
- VPC-Netzwerk erstellen: Stellen Sie zuerst ein VPC-Netzwerk bereit, das mit der empfohlenen MTU konfiguriert ist (z. B. 8896).
- Filestore-Instanz erstellen: Stellen Sie als Nächstes die Filestore-Instanz in der gerade erstellten VPC bereit.
- Trainingscluster erstellen: Stellen Sie schließlich den Cluster bereit, der dann eine Verbindung zur Filestore-Instanz im selben Netzwerk herstellen kann.
Google Cloud Managed Lustre für Hochleistungs-Arbeitslasten
Für Arbeitslasten, die maximale E/A-Leistung erfordern, können Sie ein Managed Lustre-Dateisystem anhängen. Dieser Dienst stellt über den privaten Dienstzugriff eine Verbindung zu Ihrer VPC her.
Wichtige Einschränkung des Netzwerks: Kein transitives Peering
Eine wichtige Einschränkung für Filestore und Google Cloud Managed Lustre ist, dass sie kein transitives Peering unterstützen. Das bedeutet, dass nur Ressourcen innerhalb der direkt verbundenen VPC auf den Speicherdienst zugreifen können. Wenn beispielsweise die VPC (N1) Ihres Clusters mit dem Speicherdienst verbunden ist, hat eine andere VPC (N2), die mit N1 verbunden ist, keinen Zugriff.
Speicherintegration für Trainingscluster
Vertex AI-Trainingscluster sind für ihren Betrieb auf bestimmte vernetzte Speicherlösungen angewiesen. Filestore ist erforderlich, um die freigegebenen /home-Verzeichnisse für den Cluster bereitzustellen. Google Cloud Managed Lustre ist ein optionales Hochleistungs-Dateisystem für anspruchsvolle Arbeitslasten.
Es ist wichtig, das Netzwerk für diese Speicherdienste richtig zu konfigurieren, bevor Sie Ihren Cluster bereitstellen.
Filestore
Wichtige Anwendungsfälle von Filestore mit Trainingsclustern
Neben seiner Rolle als obligatorisches Basisverzeichnis bietet Filestore eine flexible Möglichkeit, Daten für Ihren Cluster freizugeben.
Zusätzlicher freigegebener Speicher: Sie können jedem Knotenpool eine oder mehrere zusätzliche Filestore
Instanzen anhängen. Das ist nützlich, um freigegebene Datasets, Anwendungsbinärdateien,
oder andere gängige Dateien für Ihre Trainingsjobs bereitzustellen. Wenn in der Knotenpoolkonfiguration angegeben,
werden diese Instanzen von Trainingsclustern automatisch im
/mnt/filestore Verzeichnis auf jedem Knoten bereitgestellt.
Filestore-Anforderungen
Für eine erfolgreiche Filestore-Integration mit Trainingsclustern ist die folgende Konfiguration erforderlich:
- API aktivieren: Die Filestore API muss in Ihrem Google Cloud-Projekt aktiviert sein, bevor Sie den Cluster erstellen können.
- Obligatorisches
/homeVerzeichnis: Jeder Trainingscluster benötigt eine dedizierte Filestore-Instanz, die als freigegebenes/homeVerzeichnis dient. Für diese Instanz gelten bestimmte Konfigurationsanforderungen:- Netzwerk: Sie muss sich im selben VPC-Netzwerk wie die Compute- und Anmeldeknoten des Clusters befinden.
- Standort: Sie muss sich in derselben Region oder Zone wie der Cluster befinden.
- Konfiguration: Sie müssen den vollständigen Ressourcennamen dieser Instanz im
Feld angeben, wenn Sie den Cluster über die API erstellen.orchestrator_spec.slurm_spec.home_directory_storage
Filestore-Speicher konfigurieren
Erstellen Sie eine zonale oder regionale Filestore-Instanz in der Zone, in der Sie den Cluster erstellen möchten. Für die Vertex AI API muss eine Filestore-Instanz an den Cluster angehängt sein, die als /home-Verzeichnis dient.
Diese Filestore-Instanz muss sich in derselben Zone oder Region und im selben Netzwerk wie alle Compute- und Anmeldeknoten befinden. Im folgenden Beispiel wird 172.16.10.0/24 für die Filestore-Bereitstellung verwendet.
SERVICE_TIER=ZONAL # Can use BASIC_SSD # Create reserved IP address range gcloud compute addresses create CLUSTER_IDfs-ip-range \ --project=PROJECT_ID \ --global \ --purpose=VPC_PEERING \ --addresses=172.16.10.0 \ --prefix-length=24 \ --description="Filestore instance reserved IP range" \ --network=NETWORK # Get the CIDR range FS_IP_RANGE=$( gcloud compute addresses describe CLUSTER_IDfs-ip-range \ --global \ --format="value[separator=/](address, prefixLength)" ) # Create the Filestore instance gcloud filestore instances create FS_INSTANCE_ID \ --project=PROJECT_ID \ --location=ZONE \ --tier=ZONAL \ --file-share=name="nfsshare",capacity=1024 \ --network=name=NETWORK,connect-mode=DIRECT_PEERING,reserved-ip-range="${FS_IP_RANGE}"
Lustre
Google Cloud Managed Lustre bietet ein leistungsstarkes, vollständig verwaltetes paralleles Dateisystem, das für KI- und HPC-Anwendungen optimiert ist. Mit einer Kapazität im Multi-Petabyte-Bereich und einem Durchsatz von bis zu 1 TB/s erleichtert Managed Lustre die Migration anspruchsvoller Arbeitslasten in die Cloud.
Managed Lustre-Instanzen befinden sich in
Zonen innerhalb von Regionen. Eine Region ist ein spezifischer geografischer Ort, an dem Sie Ihre Ressourcen ausführen können. Jede Region ist in mehrere Zonen unterteilt. Die Region us-central1 in den zentralen USA hat beispielsweise die Zonen
us-central1-a, us-central1-b, us-central1-c und us-central1-f. Weitere Informationen finden Sie unter
Geografie und Regionen.
Wir empfehlen, zum Verringern der Netzwerklatenz eine Managed Lustre-Instanz in einer Region und Zone zu erstellen, die sich in der Nähe der geplanten Verwendung befindet.
Beim Erstellen einer Managed Lustre-Instanz müssen Sie die folgenden Attribute definieren:
- Der Name der Instanz, die von Google Cloud verwendet wird.
- Der Dateisystemname, der von clientseitigen Tools verwendet wird, z. B.
lfs. - Die Speicherkapazität in Gibibyte (GiB). Die Kapazität kann zwischen 9.000 GiB und etwa 8 PiB (7.632.000 GiB) liegen. Die maximale Größe einer Instanz hängt von ihrer Leistungsstufe ab.
- Managed Lustre bietet Leistungsstufen von 125 MB/s pro TiB bis 1.000 MB/s pro TiB.
- Für eine optimale Leistung erstellen Sie die Instanz in derselben Zone wie Ihren Trainingscluster.
- Das VPC-Netzwerk für diese Instanz muss dasselbe sein, das Ihr Trainingscluster verwendet.
Managed Lustre bietet vier Leistungsstufen, mit jeweils unterschiedlicher maximaler Durchsatzgeschwindigkeit pro TiB. Die Leistungsstufen wirken sich auch auf die minimale und maximale Instanzgröße sowie auf die Schrittgröße zwischen akzeptablen Kapazitätswerten aus. Die Leistungsstufe einer Instanz kann nach dem Erstellen nicht mehr geändert werden.
Für die Bereitstellung von Managed Lustre ist der private Dienstzugriff erforderlich, der VPC-Peering zwischen der VPC des Trainingsclusters und der VPC, in der Managed Lustre gehostet wird, über ein dediziertes /20-Subnetz herstellt.
Managed Lustre-Instanz konfigurieren (optional)
Verwenden Sie Google Cloud Managed Lustre nur, wenn Sie Managed Lustre im Model Development Service verwenden möchten.
Google Cloud Managed Lustre ist ein vollständig verwalteter, leistungsstarker paralleler Dateisystemdienst in Google Cloud. Er wurde speziell entwickelt, um anspruchsvolle Arbeitslasten in den Bereichen KI/maschinelles Lernen und Hochleistungs-Computing (HPC) zu beschleunigen.
Für eine optimale Leistung bei der Verwendung von Trainingsclustern, sollte Google Cloud Managed Lustre in derselben VPC und Zone wie Ihr Trainingscluster bereitgestellt werden. Verwenden Sie dazu VPC-Peering für die Vernetzung von Diensten.
Lustre-Instanz erstellen
gcloud lustre instances create LUSTRE_INSTANCE_ID \
--project=PROJECT_ID \
--location=ZONE \
--filesystem=lustrefs \
--per-unit-storage-throughput=500 \
--capacity-gib=36000 \
--network=NETWORK_NAME
Cloud Storage bereitstellen
Als Voraussetzung muss das VM-Dienstkonto die Rolle „Storage-Objekt-Nutzer“ haben.
Standardbereitstellung
Vertex AI-Trainingscluster verwenden Cloud Storage FUSE, um Ihre Cloud Storage-Buckets dynamisch auf allen Anmelde- und Compute-Knoten bereitzustellen und sie so im Verzeichnis /gcs zugänglich zu machen. Dynamisch bereitgestellte Buckets können nicht vom Root-Bereitstellungspunkt /gcs aus aufgelistet werden. Sie können auf die dynamisch bereitgestellten Buckets als Unterverzeichnisse zugreifen:
user@testcluster:$ ls /gcs/your-bucket-name
user@testcluster:$ cd /gcs/your-bucket-name
Benutzerdefinierte Bereitstellung
Wenn Sie einen bestimmten Cloud Storage-Bucket mit benutzerdefinierten Optionen in einem lokalen Verzeichnis bereitstellen möchten, verwenden Sie die folgende Befehlsstruktur. Sie können sie entweder als Teil des Startskripts beim Erstellen des Clusters übergeben oder direkt auf dem Knoten ausführen, nachdem der Cluster erstellt wurde.
sudo mkdir -p $MOUNT_DIR
echo "$GCS_BUCKET $MOUNT_DIR gcsfuse $OPTION_1,$OPTION_2,..." | sudo tee -a /etc/fstab
sudo mount -a
Wenn Sie beispielsweise den Bucket mtdata im Verzeichnis /data bereitstellen möchten, verwenden Sie den folgenden Befehl:
sudo mkdir -p /data
echo "mtdata /data gcsfuse defaults,_netdev,implicit_dirs,allow_other,dir_mode=777,file-mode=777,metadata_cache_negative_ttl_secs=0,metadata_cache_ttl_secs=-1,stat_cache_max_size_mb=-1,type_cache_max_size_mb=-1,enable_streaming_writes=true" | sudo tee -a /etc/fstab
sudo mount -a
Für eine vollständig automatisierte und konsistente Einrichtung fügen Sie Ihre benutzerdefinierten Bereitstellungsskripts in die Startskripts des Clusters ein. So werden Ihre Cloud Storage-Buckets beim Start automatisch auf allen Knoten bereitgestellt und eine manuelle Konfiguration ist nicht erforderlich.
Weitere Konfigurationsempfehlungen, die auf KI/ML-Arbeitslasten zugeschnitten sind, finden Sie im Leitfaden mit Best Practices zur Leistungsoptimierung. Dort finden Sie spezifische Anleitungen zur Optimierung von Cloud Storage FUSE für Training, Inferenz und Prüfpunkte.
Nächste Schritte
In den nächsten Schritten geht es darum, wie Sie Ihren Cluster effektiv für das Training im großen Maßstab nutzen können.
- Code für verteiltes Training anpassen: Um einen Cluster mit mehreren Knoten und Hochleistungsspeicher optimal zu nutzen, passen Sie Ihren Trainingscode für eine verteilte Umgebung an.
- Jobs mit Vertex AI Pipelines orchestrieren: Automatisieren Sie für Produktionsworkflows die Datenvorbereitung, die Jobübermittlung und die Modellregistrierung mit Vertex AI Pipelines.
- Trainingsjobs beobachten und Fehler beheben: Verfolgen Sie den Fortschritt und die Ressourcenauslastung Ihrer verteilten Trainingsjobs, um Probleme zu erkennen und zu beheben.