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:
Verwenden Sie einen benutzerdefinierten Container, auf dem das Paket bereits installiert ist, und führen Sie Ihr Notebook dann in diesem benutzerdefinierten Container aus. Weitere Informationen finden Sie unter Anforderungen für die Verwendung eines benutzerdefinierten Containers mit dem Executor.
Installieren Sie das Paket im Code der Notebookdatei. Das Paket wird bei jeder Ausführung der Notebookdatei installiert. Dadurch wird jedoch sichergestellt, dass das Paket in dem Container verfügbar ist, den Sie beim Ausführen des Notebooks auswählen.
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:
Erweitern Sie im Dialogfeld Notebooks an Executor senden die Option Erweiterte Optionen.
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
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Notebooks and Vertex AI APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Notebooks and Vertex AI APIs.
- 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:
-
Notebooks Viewer (
roles/notebooks.viewer
) -
Vertex AI-Nutzer (
roles/aiplatform.user
) -
Storage Admin (
roles/storage.admin
)
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.
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.
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.
Öffnen Sie in der JupyterLab-Benutzeroberfläche Ihrer verwalteten Notebook-Instanz die Notebookdatei, die Sie ausführen möchten.
Klicken Sie auf die Schaltfläche Ausführen.
Geben Sie im Dialogfeld Notebooks an Executor senden im Feld Ausführungsname einen Namen für die Ausführung ein.
Wählen Sie einen Maschinentyp und einen Beschleunigertyp aus.
Wählen Sie eine Umgebung aus
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.
Wählen Sie unter Erweiterte Optionen die Region aus, in der Sie das Notebook ausführen möchten.
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.
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
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.
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.
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
Rufen Sie in der Google Cloud Console die Seite Vertex AI Workbench auf und klicken Sie auf den Tab Ausführungen.
Wählen Sie die Region aus, die die Ergebnisse enthält.
Klicken Sie neben der Ausführung, die Sie aufrufen möchten, auf Ergebnis anzeigen.
Das Ergebnis wird in einem neuen Browsertab geöffnet.
JupyterLab
Klicken Sie im Navigationsmenü von JupyterLab auf die Schaltfläche Notebook Executor.
Klicken Sie auf den Tab Ausführungen.
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
Rufen Sie in der Google Cloud Console die Seite Vertex AI Workbench auf und klicken Sie auf den Tab Ausführungen.
Wählen Sie die Region aus, die die Ausführung enthält.
Klicken Sie neben der Ausführung, die Sie freigeben möchten, auf die Schaltfläche
Freigeben.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
Klicken Sie in der JupyterLab-Benutzeroberfläche Ihrer verwalteten Notebookinstanz im Navigationsmenü auf die Schaltfläche Notebook Executor.
Klicken Sie auf den Tab Ausführungen.
Klicken Sie neben der Ausführung, die Sie teilen möchten, auf das Optionsmenü
und wählen Sie Ausführungsergebnis teilen aus.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.
Klicken Sie in der JupyterLab-Benutzeroberfläche Ihrer verwalteten Notebookinstanz im Navigationsmenü auf die Schaltfläche Notebook Executor.
Klicken Sie auf den Tab Ausführungen.
Wählen Sie die Region aus, die Ihr ausgeführtes Notebook enthält.
Klicken Sie neben der Ausführung, die Sie importieren möchten, auf das Optionsmenü
und wählen Sie Ausgeführtes Notebook importieren aus.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
Rufen Sie in der Google Cloud Console die Seite Vertex AI Workbench auf und klicken Sie auf den Tab Zeitpläne.
Wählen Sie die Region aus, die Ihren Zeitplan enthält.
Klicken Sie auf einen Zeitplannamen, um die Seite Zeitplandetails zu öffnen.
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
Klicken Sie in der JupyterLab-Benutzeroberfläche Ihrer verwalteten Notebookinstanz im Navigationsmenü auf die Schaltfläche Notebook Executor.
Klicken Sie auf den Tab Zeitpläne.
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.
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
Rufen Sie in der Google Cloud Console die Seite Vertex AI Workbench auf und klicken Sie auf den Tab Zeitpläne.
Wählen Sie die Region aus, die Ihren Zeitplan enthält.
Wählen Sie den Zeitplan aus, den Sie löschen möchten.
Klicken Sie auf
Löschen.
JupyterLab
Klicken Sie in der JupyterLab-Benutzeroberfläche Ihrer verwalteten Notebookinstanz im Navigationsmenü auf die Schaltfläche Notebook Executor.
Klicken Sie auf den Tab Zeitpläne.
Klicken Sie auf den Namen des Zeitplans, den Sie löschen möchten. Der Executor öffnet die Seite Zeitplandetails in der Google Cloud Console.
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