Die Auswahl der richtigen Speicherkonfiguration ist entscheidend für die Leistung und Stabilität Ihres Trainingsclusters. Der Dienst lässt sich in zwei separate, 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 einen Überblick über die wichtigsten Anwendungsfälle sowie die spezifischen Netzwerk- und Bereitstellungsanforderungen für eine erfolgreiche Integration in Ihren Cluster.
Speicherintegration für Trainingscluster
Für den Betrieb von Vertex AI-Trainingsclustern sind bestimmte vernetzte Speicherlösungen erforderlich. Filestore ist erforderlich, um die freigegebenen /home-Verzeichnisse für den Cluster bereitzustellen. Managed Lustre ist ein optionales leistungsstarkes 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
Für diesen Dienst wird eine Filestore-Instanz verwendet, um das freigegebene Verzeichnis /home 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 mit der empfohlenen MTU (z. B. 8896) bereit.
- Filestore-Instanz erstellen: Stellen Sie als Nächstes die Filestore-Instanz in der gerade erstellten VPC bereit.
- Trainingscluster erstellen: Stellen Sie den Cluster bereit. Er kann dann eine Verbindung zur Filestore-Instanz im selben Netzwerk herstellen.
Google Cloud Managed Lustre für leistungsstarke Arbeitslasten
Für Arbeitslasten, die maximale E/A-Leistung erfordern, können Sie ein verwaltetes Lustre-Dateisystem anhängen. Dieser Dienst stellt über den Zugriff auf private Dienste eine Verbindung zu Ihrer VPC her.
Wichtige Einschränkung für die Vernetzung: 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 Ihres Clusters (N1) per Peering mit dem Speicherdienst verbunden ist, hat eine andere VPC (N2), die per Peering mit N1 verbunden ist, keinen Zugriff.
Speicherintegration für Trainingscluster
Für den Betrieb von Vertex AI-Trainingsclustern sind bestimmte vernetzte Speicherlösungen erforderlich. Filestore ist erforderlich, um die freigegebenen /home-Verzeichnisse für den Cluster bereitzustellen. Google Cloud Managed Lustre ist ein optionales leistungsstarkes 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 für Filestore mit Trainingsclustern
Filestore ist nicht nur das erforderliche Home-Verzeichnis, sondern bietet auch eine flexible Möglichkeit, Daten mit Ihrem Cluster zu teilen.
Zusätzlicher gemeinsamer Speicher: Sie können einem beliebigen Knotenpool eine oder mehrere zusätzliche Filestore-Instanzen anhängen. Das ist nützlich, um gemeinsame Datasets, Anwendungsbinärdateien oder andere gemeinsame Dateien für Ihre Trainingsjobs bereitzustellen. Wenn sie in der Knotenpoolkonfiguration angegeben sind, werden diese Instanzen in Trainingsclustern automatisch auf jedem Knoten im Verzeichnis /mnt/filestore 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
/home-Verzeichnis: Für jeden Trainingscluster ist eine dedizierte Filestore-Instanz als freigegebenes/home-Verzeichnis erforderlich. Für diese Instanz gelten bestimmte Konfigurationsanforderungen:- Netzwerk: Es muss sich im selben VPC-Netzwerk wie die Compute- und Anmeldeknoten des Clusters befinden.
- Standort: Er 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 dem Cluster ein Filestore als /home-Verzeichnis zugewiesen werden.
Diese Filestore-Instanz muss sich in derselben Zone oder Region und im selben Netzwerk wie alle Rechenknoten 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.
Verwaltete 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 der Mitte der 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.
Wenn Sie die Netzwerklatenz verringern möchten, empfehlen wir, eine verwaltete Lustre-Instanz in einer Region und Zone zu erstellen, die sich in der Nähe der geplanten Verwendung befindet.
Beim Erstellen einer verwalteten Lustre-Instanz müssen Sie die folgenden Attribute definieren:
- Der Name der von Google Cloud verwendeten Instanz.
- 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 sollten Sie die Instanz in derselben Zone wie Ihren Trainingscluster erstellen.
- Das VPC-Netzwerk für diese Instanz muss dasselbe sein, das Ihr Trainingscluster verwendet.
Managed Lustre bietet vier Leistungsstufen mit jeweils unterschiedlichen maximalen Durchsatzgeschwindigkeiten pro TiB. Leistungsstufen wirken sich auch auf die Mindest- und Höchstinstanzgröß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 Zugriff auf private Dienste erforderlich. Dadurch wird VPC-Peering zwischen der VPC des Trainingsclusters und der VPC, in der Managed Lustre gehostet wird, über ein dediziertes /20-Subnetz eingerichtet.
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 Dienst für parallele Dateisysteme in Google Cloud. Sie wurde speziell für die Beschleunigung anspruchsvoller Arbeitslasten in den Bereichen KI/maschinelles Lernen und Hochleistungs-Computing (HPC) entwickelt.
Für eine optimale Leistung bei Verwendung von Trainingsclustern sollte Google Cloud Managed Lustre über VPC-Peering für Dienste-Networking in derselben VPC und Zone wie Ihr Trainingscluster bereitgestellt werden.
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-Einbindung
Prüfen Sie, ob das VM-Dienstkonto die Rolle „Storage-Objekt-Nutzer“ hat.
Standard-Mount
Vertex AI-Trainingscluster verwenden Cloud Storage FUSE, um Ihre Cloud Storage-Buckets dynamisch auf allen Anmelde- und Rechenknoten bereitzustellen. Dadurch sind sie über das Verzeichnis /gcs zugänglich. 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 Halterung
Wenn Sie einen bestimmten Cloud Storage-Bucket mit benutzerdefinierten Optionen in ein lokales Verzeichnis einbinden möchten, verwenden Sie die folgende Befehlsstruktur. Sie können sie entweder als Teil des Startskripts bei der Clustererstellung ü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 sollten Sie Ihre benutzerdefinierten Mount-Skripts in die Startskripts des Clusters einfügen. So wird sichergestellt, dass Ihre Cloud Storage-Buckets beim Start automatisch auf allen Knoten bereitgestellt werden, sodass keine manuelle Konfiguration erforderlich ist.
Weitere Konfigurationsempfehlungen für KI/ML-Arbeitslasten finden Sie im Leitfaden mit Best Practices zur Leistungsoptimierung. Sie enthält 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: Damit Sie die Vorteile eines Clusters mit mehreren Knoten und eines leistungsstarken Speichers voll ausschöpfen können, müssen Sie Ihren Trainingscode für eine verteilte Umgebung anpassen.
- Jobs mit Vertex AI Pipelines orchestrieren: Automatisieren Sie für Produktionsworkflows den Prozess der Datenvorbereitung, der Jobübermittlung und der Modellregistrierung mit Vertex AI Pipelines.
- Trainingsjobs überwachen und debuggen: Verfolgen Sie den Fortschritt und die Ressourcenauslastung Ihrer Jobs für verteiltes Training, um Probleme zu erkennen und zu beheben.