NFS-Freigabe für benutzerdefiniertes Training bereitstellen

Sie können Ihre benutzerdefinierten Trainingsjobs so konfigurieren, dass NFS-Dateifreigaben (Network File System) für den Container bereitgestellt werden, in dem Ihr Code ausgeführt wird. Dadurch können Ihre Jobs auf Remotedateien zugreifen, als ob sie lokal wären, was einen hohen Durchsatz und eine niedrige Latenz ermöglicht.

In dieser Anleitung wird beschrieben, wie Sie beim Ausführen eines benutzerdefinierten Trainingsjobs eine NFS-Freigabe bereitstellen.

Hinweis

  1. Erstellen Sie eine NFS-Freigabe in einer Virtual Private Cloud (VPC). Ihre Freigabe muss ohne Authentifizierung zugänglich sein.

    Sie können eine Filestore-Instanz als NFS-Freigabe verwenden. Wenn Sie Filestore verwenden und im nächsten Schritt VPC-Peering für Vertex AI verwenden möchten, wählen Sie beim Erstellen einer Instanz den Zugriff auf private Dienste als Verbindungsmodus aus. Ein Beispiel finden Sie in der Filestore-Dokumentation unter Instanzen erstellen.

  2. Wenn Sie Vertex AI mit der VPC verbinden möchten, die Ihre NFS-Freigabe hostet, folgen Sie der Anleitung unter Private Service Connect-Schnittstelle für Vertex AI verwenden (empfohlen) oder VPC-Netzwerk-Peering einrichten.

NFS-Informationen für benutzerdefiniertes Training

Wenn Sie einen benutzerdefinierten Trainingsjob erstellen, der eine NFS-Freigabe bereitstellt, müssen Sie Folgendes angeben:

  • Den Namen des Netzwerks, auf das Vertex AI zugreifen soll. Die Art und Weise, wie Sie den Netzwerknamen angeben, hängt vom Typ des benutzerdefinierten Trainingsjobs ab. Weitere Informationen finden Sie unter Benutzerdefiniertes Training durchführen.

  • Ihre NFS-Konfiguration im WorkerPoolSpec-Feld. Füllen Sie die folgenden Felder aus:

    Feld Beschreibung
    nfsMounts.server Die IP-Adresse Ihres NFS-Servers. Dies muss eine private Adresse in Ihrer VPC sein.
    nfsMounts.path Der NFS-Freigabepfad. Dies muss ein absoluter Pfad sein, der mit / beginnt.
    nfsMounts.mountPoint Der lokale Bereitstellungspunkt. Dies muss ein gültiger UNIX-Verzeichnisname sein. Wenn der lokale Bereitstellungspunkt beispielsweise sourceData lautet, geben Sie den Pfad /mnt/nfs/sourceData aus Ihrer Trainings-VM-Instanz an.

    Weitere Informationen finden Sie unter Hier geben Sie Rechenressourcen an.

Beispiel: Benutzerdefinierten Job mithilfe der gcloud CLI erstellen

  1. Führen Sie die Schritte unter Python-Trainingsanwendung für einen vordefinierten Container erstellen aus, um eine Trainingsanwendung zur Ausführung mit Vertex AI zu erstellen.

  2. Erstellen Sie eine Datei mit dem Namen config.yaml, die die PSA- oder Private Service Connect-Schnittstellenkonfigurations-Bereitstellungseinstellungen für Ihren Trainingsjob beschreibt. Verwenden Sie eines der folgenden Formate:

Private Service Connect-Benutzeroberfläche

  1. So verwenden Sie die Private Service Connect-Schnittstelle:

    pscInterfaceConfig:
         network_attachment: NETWORK_ATTACHMENT_NAME
    workerPoolSpecs:
        - machineSpec:
            machineType: MACHINE_TYPE
        replicaCount: 1
        pythonPackageSpec:
           executorImageUri: PYTHON_PACKAGE_EXECUTOR_IMAGE_URI or PRE_BUILT_CONTAINER_IMAGE_URI
           packageUris:
           -  PYTHON_PACKAGE_URIS
           pythonModule: PYTHON_MODULE
        nfsMounts:
          - server: NFS_SERVER_IP
          path: NFS_SHARE_NAME
          mountPoint: LOCAL_FOLDER
    

    Ersetzen Sie Folgendes:

    • NETWORK_ATTACHMENT_NAME: Der Name des Netzwerkanhangs.

    • MACHINE_TYPE: Die Kennung des VM-Typs.

    • PYTHON_PACKAGE_EXECUTOR_IMAGE_URI oder PRE_BUILT_CONTAINER_IMAGE_URI: Der URI eines Container-Images in Artifact Registry, in dem das bereitgestellte Python-Paket ausgeführt wird. Vertex AI bietet eine breite Palette von Executor-Images mit vorinstallierten Paketen, um die Anforderungen der verschiedenen Anwendungsfälle der Nutzer zu erfüllen.

    • PYTHON_PACKAGE_URIS: Eine durch Kommas getrennte Liste von Cloud Storage-URIs, die die Python-Paketdateien angeben, aus denen das Trainingsprogramm und seine abhängigen Pakete bestehen. Die maximale Anzahl der Paket-URIs beträgt 100.

    • PYTHON_MODULE: Der Name des Python-Moduls, das nach der Installation der Pakete ausgeführt werden soll.

    • NFS_SERVER_IP: Die IP-Adresse Ihres NFS-Servers.

    • NFS_SHARE_NAME: Der NFS-Freigabepfad. Dabei handelt es sich um einen absoluten Pfad, der mit / beginnt.

    • LOCAL_FOLDER: Der lokale Bereitstellungspunkt (UNIX-Verzeichnisname).

    Prüfen Sie, ob der Netzwerkname richtig formatiert ist und die NFS-Freigabe im angegebenen Netzwerk vorhanden ist.

  2. Erstellen Sie Ihren benutzerdefinierten Job und übergeben Sie die Datei config.yaml an den Parameter --config.

    gcloud ai custom-jobs create \
      --region=LOCATION \
      --display-name=JOB_NAME \
      --config=config.yaml
    

    Dabei gilt:

    • LOCATION: Geben Sie die Region an, in der der Job erstellt werden soll.

    • JOB_NAME: Ein Name für den benutzerdefinierten Job.

VPC-Peering

  1. Wählen Sie „VPC-Peering verwenden“, wenn für den Job VPC-Peering/PSA verwendet werden soll.

    network: projects/PROJECT_NUMBER/global/networks/NETWORK_NAME
    workerPoolSpecs:
        - machineSpec:
            machineType: MACHINE_TYPE
          replicaCount: 1
          pythonPackageSpec:
            executorImageUri: PYTHON_PACKAGE_EXECUTOR_IMAGE_URI or 
                  PRE_BUILT_CONTAINER_IMAGE_URI
            packageUris:
              -  PYTHON_PACKAGE_URIS
            pythonModule: PYTHON_MODULE
          nfsMounts:
            - server: NFS_SERVER_IP
              path: NFS_SHARE_NAME
              mountPoint: LOCAL_FOLDER
    

    Ersetzen Sie Folgendes:

    • PROJECT_NUMBER: Die Projekt-ID Ihres Google Cloud-Projekts.

    • NETWORK_NAME: Der Name Ihrer privaten oder freigegebene VPC.

    • MACHINE_TYPE: Die Kennung des VM-Typs.

    • PYTHON_PACKAGE_EXECUTOR_IMAGE_URI or PRE_BUILT_CONTAINER_IMAGE_URI: Der URI eines Container-Images in Artifact Registry, in dem das bereitgestellte Python-Paket ausgeführt wird. Vertex AI bietet eine breite Palette von Executor-Images mit vorinstallierten Paketen, um die Anforderungen der verschiedenen Anwendungsfälle der Nutzer zu erfüllen.

    • PYTHON_PACKAGE_URIS: Eine durch Kommas getrennte Liste von Cloud Storage-URIs, die die Python-Paketdateien angeben, aus denen das Trainingsprogramm und seine abhängigen Pakete bestehen. Die maximale Anzahl der Paket-URIs beträgt 100.

    • PYTHON_MODULE: Der Name des Python-Moduls, das nach der Installation der Pakete ausgeführt werden soll.

    • NFS_SERVER_IP: Die IP-Adresse Ihres NFS-Servers.

    • NFS_SHARE_NAME: Der NFS-Freigabepfad. Dabei handelt es sich um einen absoluten Pfad, der mit / beginnt.

    • LOCAL_FOLDER: Der lokale Bereitstellungspunkt (UNIX-Verzeichnisname).

    Prüfen Sie, ob der Netzwerkname richtig formatiert ist und die NFS-Freigabe im angegebenen Netzwerk vorhanden ist.

  2. Erstellen Sie Ihren benutzerdefinierten Job und übergeben Sie die Datei config.yaml an den Parameter --config.

    gcloud ai custom-jobs create \
      --region=LOCATION \
      --display-name=JOB_NAME \
      --config=config.yaml
    

Dabei gilt:

  • LOCATION: Geben Sie die Region an, in der der Job erstellt werden soll.

  • JOB_NAME: Ein Name für den benutzerdefinierten Job.

Beschränkungen

  • Sie müssen Ihre NFS-Freigabe mit einer internen IP-Adresse Ihrer VPC bereitstellen. Die Verwendung öffentlicher URLs ist nicht zulässig.

  • Trainingsjobs stellen NFS-Freigaben ohne Authentifizierung bereit und schlagen fehl, wenn ein Nutzername und ein Passwort erforderlich sind.

    Legen Sie zum Schutz Ihrer Daten Berechtigungen für Ihre NFS-Freigabe fest. Wenn Sie Filestore verwenden, finden Sie weitere Informationen unter Zugriffssteuerung in der Filestore-Dokumentation.

  • Sie können nicht zwei Trainingsjobs, die NFS-Freigaben aus verschiedenen VPC-Netzwerken bereitstellen, gleichzeitig ausführen. Dies liegt an der Beschränkung für Netzwerk-Peering.