Notebook-Dateien mit dem Executor ausführen

Auf dieser Seite wird beschrieben, wie Sie den Executor in einer von Vertex AI Workbench verwalteten Notebookinstanz verwenden, um Notebookdateien einmalig und nach einem Zeitplan auszuführen.

Übersicht

Mit dem Executor können Sie eine Notebook-Datei (ipynb) senden, um sie im benutzerdefinierten Vertex AI-Training auszuführen. Sie können für jede Ausführung einer Notebook-Datei Parameterwerte festlegen. Sie können eine Notebook-Datei auch nach einem wiederkehrenden Zeitplan ausführen. Nach Abschluss der Ausführung können Sie die Ausführungsergebnisse aufrufen und für andere freigeben.

Wenn eine Notebook-Datei an das benutzerdefinierte Training von Vertex AI gesendet wird, erstellt Vertex AI einen neuen benutzerdefinierten Trainingsjob, der Ihre Notebook-Datei gemäß dem Lebenszyklus eines Trainingsjobs ausführt.

Anforderungen für Notebookcode, der vom Executor ausgeführt wird

Beachten Sie beim Schreiben von Notebookcode zur Ausführung im Executor, dass der Code in einem Mandantenprojekt ausgeführt wird, das vom Projekt der verwalteten Notebook-Instanz getrennt ist. In diesem Abschnitt wird beschrieben, wie sich dies auf Ihren Code auswirkt, wenn er im Executor ausgeführt wird.

Sorgen Sie dafür, dass Paketinstallationen für den Executor verfügbar sind

Wenn Ihr Notebook von Paketinstallationen abhängig ist, die nicht bereits in dem von Ihnen verwendeten verwalteten Notebooks-Kernel enthalten sind, stellen Sie sicher, dass Ihre Pakete auf einer der folgenden Arten für Ihren Notebookcode im Executor verfügbar sind:

Explizite Projektauswahl verwenden

Wenn Sie über den Code, der vom Executor ausgeführt wird, auf Ressourcen zugreifen, kann der Executor möglicherweise keine Verbindung zum richtigen Google Cloud-Projekt herstellen. Wenn Berechtigungsfehler auftreten, kann das an der Verbindung mit dem falschen Projekt liegen.

Dieses Problem tritt auf, weil der Executor Ihren Code nicht direkt im Google Cloud-Projekt Ihrer verwalteten Notebook-Instanz ausführt. Stattdessen führt der Executor Ihren Code in einem benutzerdefinierten Training für Vertex AI in einem von Google verwalteten Mandantenprojekt aus. Versuchen Sie daher nicht, eine Projekt-ID aus der Umgebung im Notebookcode abzuleiten, und geben Sie Projekt-IDs explizit an.

Wenn Sie eine Projekt-ID in Ihrem Code nicht hartcodieren möchten, können Sie auf die Umgebungsvariable CLOUD_ML_PROJECT_ID verweisen. Vertex AI legt diese Umgebungsvariable in jedem benutzerdefinierten Trainingscontainer so fest, dass sie die Projektnummer des Projekts enthält, in dem Sie benutzerdefiniertes Training initiiert haben. Viele Google Cloud-Tools akzeptieren eine Projektnummer, wenn sie eine Projekt-ID verwenden.

Wenn Sie z. B. mit dem Python-Client für Google BigQuery auf eine BigQuery-Tabelle im selben Projekt zugreifen möchten, leiten Sie das Projekt nicht in Ihrem Notebookcode ab:

Implizite Projektauswahl

from google.cloud import bigquery

client = bigquery.Client()

Verwenden Sie stattdessen Code, der explizit ein Projekt auswählt:

Explizite Projektauswahl

import os

from google.cloud import bigquery

project_number = os.environ["CLOUD_ML_PROJECT_ID"]

client = bigquery.Client(project=project_number)

Zugriff über Dienstkonten authentifizieren

Standardmäßig kann Ihre Instanz mit verwalteten Notebooks auf Ressourcen zugreifen, die im selben Projekt vorhanden sind. Wenn Sie den Code Ihrer Notebook-Datei manuell ausführen, benötigen diese Ressourcen daher keine zusätzliche Authentifizierung. Da der Executor jedoch in einem separaten Mandantenprojekt ausgeführt wird, hat er nicht denselben Standardzugriff.

Außerdem kann der Executor keine Endnutzer-Anmeldedaten verwenden, um den Zugriff auf Ressourcen zu authentifizieren, z. B. den Befehl gcloud auth login.

Authentifizieren Sie den Zugriff auf Ressourcen über ein Dienstkonto, um diese Probleme zu beheben.

Geben Sie dann beim Erstellen einer Ausführung oder eines Zeitplans das Dienstkonto an.

Führen Sie beispielsweise beim Erstellen einer Ausführung die folgenden Schritte aus:

  1. Erweitern Sie im Dialogfeld Notebooks an Executor senden die Option Erweiterte Optionen.

  2. Entfernen Sie im Abschnitt Identität und API-Zugriff das Häkchen neben Vertex AI Training-Standarddienstkonto verwenden und geben Sie das spezifische zu verwendende Dienstkonto ein.

Lesen Sie die vollständige Liste der Schritte zum Erstellen einer Ausführung.

Anforderungen bei Verwendung eines benutzerdefinierten Containers

Sie können den Executor verwenden, um Notebook-Code auf einem benutzerdefinierten Container auszuführen. Ihr benutzerdefinierter Container muss die Erweiterung nbexecutor enthalten, mit der der Executor Notebook-Code als benutzerdefinierten Vertex AI-Trainingsjob ausführen kann. Damit der benutzerdefinierte Container die Erweiterung nbexecutor hat, können Sie eines der Container-Images für Deep Learning Container ändern, um ein abgeleitetes Container-Image zu erstellen. Deep Learning Container-Images enthalten die Erweiterung nbexecutor.

Vorbereitung

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Notebooks and Vertex AI APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Notebooks and Vertex AI APIs.

    Enable the APIs

  8. Falls noch nicht geschehen, erstellen Sie eine verwaltete Notebookinstanz.

Erforderliche Rollen

Damit das Dienstkonto Ihrer Instanz die erforderlichen Berechtigungen für die Interaktion mit dem Vertex AI Workbench-Executor hat, bitten Sie Ihren Administrator, dem Dienstkonto Ihrer Instanz die folgenden IAM-Rollen für das Projekt zu erteilen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Ihr Administrator kann dem Dienstkonto Ihrer Instanz möglicherweise auch die erforderlichen Berechtigungen über benutzerdefinierte Rollen oder andere vordefinierte Rollen erteilen.

JupyterLab öffnen

Führen Sie die folgenden Schritte aus, um JupyterLab zu öffnen und eine Notebookdatei für die Ausführung vorzubereiten.

  1. Öffnen Sie JupyterLab.

  2. Laden Sie eine Notebook-Datei (ipynb) hoch, öffnen Sie eine vorhandene Datei oder öffnen Sie eine neue Notebookdatei und fügen Sie den Code hinzu, den Sie im Notebook ausführen möchten.

  3. Achten Sie darauf, dass der Code Ihrer Notebook-Datei die Anforderungen für die Verwendung des Executors erfüllt.

Ausführung erstellen

Führen Sie die folgenden Schritte aus, um eine Ausführung zu erstellen, mit der Ihre Notebook-Datei ausgeführt wird. Diese Schritte decken sowohl das Planen von Ausführungen als auch das Erstellen einer einmaligen Ausführung ab.

  1. Öffnen Sie in der JupyterLab-Benutzeroberfläche Ihrer verwalteten Notebook-Instanz die Notebookdatei, die Sie ausführen möchten.

  2. Klicken Sie auf die Schaltfläche Ausführen.

  3. Geben Sie im Dialogfeld Notebooks an Executor senden im Feld Ausführungsname einen Namen für die Ausführung ein.

  4. Wählen Sie einen Maschinentyp und einen Beschleunigertyp aus.

  5. Wählen Sie eine Umgebung aus

  6. Wählen Sie im Feld Typ die Option Einmalige Ausführung oder Planbasierte wiederkehrende Ausführungen aus und schließen Sie die Dialogfeld zum Planen von Ausführungen.

  7. Wählen Sie unter Erweiterte Optionen die Region aus, in der Sie das Notebook ausführen möchten.

  8. Wählen Sie im Feld Cloud Storage-Bucket einen verfügbaren Cloud Storage-Bucket aus oder geben Sie einen Namen für einen neuen Bucket ein. Klicken Sie dann auf Erstellen und auswählen. Der Executor speichert Ihre Notebookausgabe in diesem Cloud Storage-Bucket.

  9. Optional: Fügen Sie im Abschnitt Notebook-Parametrisierung im Textfeld Eingabeparameter durch Kommas getrennte Notebook-Parameter hinzu. Beispiel:optimizer="SGD",learning_rate=0.01.

    Weitere Informationen zur Verwendung von Notebook-Parametern

  10. Optional: Wählen Sie im Abschnitt Identität und API-Zugriff Vertex AI Training-Standarddienstkonto verwenden aus oder entfernen Sie das Häkchen daneben und geben Sie das spezifische zu verwendende Dienstkonto ein.

  11. Optional: Geben Sie im Abschnitt Netzwerk ein Virtual Private Cloud-Netzwerk an. Wenn Sie ein VPC-Netzwerk für Ihre Ausführung verwenden, benötigen Sie eine Verbindung für den Zugriff auf private Dienste.

  12. Klicken Sie auf Senden.

    Einmalige Ausführungen beginnen sofort. Geplante Ausführungen werden automatisch nach dem von Ihnen festgelegten Zeitplan ausgeführt.

In der Google Cloud Console können Sie auf der Seite Vertex AI Workbench die abgeschlossenen Ausführungen auf dem Tab Ausführungen und die Zeitpläne auf dem Tab Zeitpläne ansehen.

Ausgeführte Notebookdatei ansehen, teilen und importieren

Mit der JupyterLab-Benutzeroberfläche Ihrer verwalteten Notebookinstanz können Sie die Ausgabe eines ausgeführten Notebooks ansehen, die Ergebnisse mit anderen teilen und die ausgeführte Notebook-Datei in JupyterLab importieren.

Ergebnisse der Notebookausführung ansehen

Sie können sich die Ergebnisse einer Notebookausführung in der Google Cloud Console oder in der JupyterLab-Benutzeroberfläche ansehen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Vertex AI Workbench auf und klicken Sie auf den Tab Ausführungen.

    Ausführungen aufrufen

  2. Wählen Sie die Region aus, die die Ergebnisse enthält.

  3. Klicken Sie neben der Ausführung, die Sie aufrufen möchten, auf Ergebnis anzeigen.

    Das Ergebnis wird in einem neuen Browsertab geöffnet.

JupyterLab

  1. Klicken Sie im Navigationsmenü von JupyterLab auf die Schaltfläche  Notebook Executor.

  2. Klicken Sie auf den Tab Ausführungen.

  3. Klicken Sie unter der Ausführung, die Sie sehen möchten, auf Ergebnis anzeigen.

    Das Ergebnis wird in einem neuen Browsertab geöffnet.

Ergebnisse einer Notebookausführung freigeben

Sie können Ausführungsergebnisse freigeben, indem Sie Zugriff auf den Cloud Storage-Bucket gewähren, der die Notebookausführung enthält. Mit diesem Zugriff erhalten Nutzer auch Zugriff auf andere Ressourcen im selben Cloud Storage-Bucket. Führen Sie die folgenden Schritte aus, um die Ausführungsergebnisse freizugeben.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Vertex AI Workbench auf und klicken Sie auf den Tab Ausführungen.

    Ausführungen aufrufen

  2. Wählen Sie die Region aus, die die Ausführung enthält.

  3. Klicken Sie neben der Ausführung, die Sie freigeben möchten, auf die Schaltfläche  Freigeben.

  4. Folgen Sie der Anleitung im Dialogfeld, um Nutzern Zugriff auf den Cloud Storage-Bucket zu gewähren, der die Ausführung Ihres Notebooks enthält.

JupyterLab

  1. Klicken Sie in der JupyterLab-Benutzeroberfläche Ihrer verwalteten Notebookinstanz im Navigationsmenü auf die Schaltfläche  Notebook Executor.

  2. Klicken Sie auf den Tab Ausführungen.

  3. Klicken Sie neben der Ausführung, die Sie teilen möchten, auf das Optionsmenü und wählen Sie Ausführungsergebnis teilen aus.

  4. Folgen Sie der Anleitung im Dialogfeld, um Nutzern Zugriff auf den Cloud Storage-Bucket zu gewähren, der die Ausführung Ihres Notebooks enthält.

Ausgeführtes Notebook in JupyterLab importieren

Führen Sie die folgenden Schritte aus, um ein ausgeführtes Notebook in JupyterLab zu importieren.

  1. Klicken Sie in der JupyterLab-Benutzeroberfläche Ihrer verwalteten Notebookinstanz im Navigationsmenü auf die Schaltfläche  Notebook Executor.

  2. Klicken Sie auf den Tab Ausführungen.

  3. Wählen Sie die Region aus, die Ihr ausgeführtes Notebook enthält.

  4. Klicken Sie neben der Ausführung, die Sie importieren möchten, auf das Optionsmenü und wählen Sie Ausgeführtes Notebook importieren aus.

  5. Wählen Sie den Kernel aus, der das Notebook öffnen soll.

    Der Executor öffnet die ausgeführte Notebookdatei in JupyterLab und speichert diese Notebookdatei im JupyterLab-Dateibrowser in einem Ordner mit dem Namen imported_notebook_jobs.

Zeitplan ansehen oder löschen

Sie können Zeitpläne entweder mit der Google Cloud Console oder mit der JupyterLab-Benutzeroberfläche Ihrer verwalteten Notebookinstanz aufrufen und löschen.

Zeitplan ansehen

Sehen Sie sich einen Zeitplan an, um die Häufigkeitseinstellungen des Zeitplans aufzurufen oder die Ergebnisse Ihrer Notebookausführungen aufzurufen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Vertex AI Workbench auf und klicken Sie auf den Tab Zeitpläne.

    Zu "Zeitpläne"

  2. Wählen Sie die Region aus, die Ihren Zeitplan enthält.

  3. Klicken Sie auf einen Zeitplannamen, um die Seite Zeitplandetails zu öffnen.

  4. Klicken Sie neben einem Ausführungsnamen auf Ergebnis anzeigen, um die ausgeführte Notebookdatei zu öffnen. Executor öffnet Ihr Ergebnis in einem neuen Browsertab.

JupyterLab

  1. Klicken Sie in der JupyterLab-Benutzeroberfläche Ihrer verwalteten Notebookinstanz im Navigationsmenü auf die Schaltfläche  Notebook Executor.

  2. Klicken Sie auf den Tab Zeitpläne.

  3. Klicken Sie unter der Ausführung, die Sie ansehen möchten, auf Neuestes Ausführungsergebnis ansehen, um die neueste Ausführung aufzurufen. Der Executor öffnet Ihr Ergebnis in einem neuen Browsertab.

    Klicken Sie auf den Namen des Zeitplans, um alle Ausführungen aufzurufen. Der Executor öffnet die Seite Zeitplandetails in der Google Cloud Console.

  4. Klicken Sie neben einem Ausführungsnamen auf Ergebnis anzeigen, um die ausgeführte Notebookdatei zu öffnen. Executor öffnet Ihr Ergebnis in einem neuen Browsertab.

Zeitplan löschen

Beim Löschen eines Zeitplans werden die Ausführungen, die mit diesem Zeitplan generiert wurden, nicht gelöscht.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Vertex AI Workbench auf und klicken Sie auf den Tab Zeitpläne.

    Zu "Zeitpläne"

  2. Wählen Sie die Region aus, die Ihren Zeitplan enthält.

  3. Wählen Sie den Zeitplan aus, den Sie löschen möchten.

  4. Klicken Sie auf  Löschen.

JupyterLab

  1. Klicken Sie in der JupyterLab-Benutzeroberfläche Ihrer verwalteten Notebookinstanz im Navigationsmenü auf die Schaltfläche  Notebook Executor.

  2. Klicken Sie auf den Tab Zeitpläne.

  3. Klicken Sie auf den Namen des Zeitplans, den Sie löschen möchten. Der Executor öffnet die Seite Zeitplandetails in der Google Cloud Console.

  4. Klicken Sie auf  Löschen.

Jobs in benutzerdefiniertem Vertex AI-Training

Da Notebook-Ausführungen für benutzerdefiniertes Vertex AI-Training ausgeführt werden, werden sie als benutzerdefinierte Trainingsjobs in Vertex AI bereitgestellt. Sie können diese benutzerdefinierten Trainingsjobs in der Google Cloud Console auf dem Tab Benutzerdefinierte Jobs der Seite Vertex AI-Training aufrufen. Arbeit mit benutzerdefinierten Vertex AI-Trainingsjobs

Nächste Schritte