Esegui i file notebook con l'executor
Questa pagina descrive come utilizzare l'executor in un'istanza di notebook gestiti di Vertex AI Workbench per eseguire file notebook come esecuzione una tantum e in base a una pianificazione.
Panoramica
L'executor consente di inviare un file notebook (ipynb) da eseguire nell'addestramento personalizzato di Vertex AI. Puoi impostare i valori dei parametri per ogni esecuzione di un file notebook. Puoi anche eseguire un file notebook in base a una pianificazione ricorrente. Al termine dell'esecuzione, puoi visualizzare i risultati e condividerli con altri.
Quando un file blocco note viene inviato all'addestramento personalizzato di Vertex AI, Vertex AI crea un nuovo job di addestramento personalizzato che esegue il file blocco note seguendo il ciclo di vita di un job di addestramento.
Requisiti per l'esecuzione del codice del notebook da parte dell'executor
Quando scrivi il codice del notebook da eseguire nell'executor, tieni presente che il codice verrà eseguito in un progetto tenant separato dal progetto dell'istanza Managed Notebooks. Questa sezione descrive in che modo ciò influisce sul codice quando viene eseguito nell'executor.
Assicurati che le installazioni dei pacchetti siano disponibili per l'esecutore
Se il tuo notebook dipende da installazioni di pacchetti non ancora inclusi nel kernel dei notebook gestiti che stai utilizzando, assicurati che i pacchetti siano disponibili per il codice del notebook nell'executor in uno dei seguenti modi:
Utilizza un container personalizzato in cui è già installato il pacchetto, quindi esegui il notebook su quel container personalizzato. Consulta i requisiti per l'utilizzo di un container personalizzato con l'executor.
Installa il pacchetto nel codice del file notebook. Il pacchetto viene installato ogni volta che viene eseguito il file del notebook, ma questo garantisce che il pacchetto sia disponibile sul container selezionato durante l'esecuzione del notebook.
Utilizza la selezione esplicita del progetto
Quando accedi alle risorse tramite il codice eseguito dall'executor, quest'ultimo potrebbe non connettersi al progettoGoogle Cloud corretto. Se si verificano errori di autorizzazione, il problema potrebbe essere la connessione al progetto sbagliato.
Questo problema si verifica perché l'executor non esegue il codice direttamente nel progettoGoogle Cloud dell'istanza di notebook gestiti. L'executor esegue il codice nell'addestramento personalizzato di Vertex AI all'interno di un progetto tenant gestito da Google. Pertanto, non tentare di dedurre un ID progetto dall'ambiente nel codice del notebook; specifica gli ID progetto in modo esplicito.
Se non vuoi codificare un ID progetto nel codice, puoi
fare riferimento alla variabile di ambiente CLOUD_ML_PROJECT_ID
.
Vertex AI
imposta questa variabile di ambiente in ogni container di addestramento personalizzato in modo che contenga il
numero di progetto del progetto in cui hai avviato
l'addestramento personalizzato. Molti Google Cloud strumenti possono accettare un numero di progetto ovunque accettino un ID progetto.
Ad esempio, se vuoi utilizzare il client Python per Google BigQuery per accedere a una tabella BigQuery nello stesso progetto, non dedurre il progetto nel codice del notebook:
Selezione implicita del progetto
from google.cloud import bigquery
client = bigquery.Client()
Utilizza invece un codice che selezioni esplicitamente un progetto:
Selezione esplicita del progetto
import os
from google.cloud import bigquery
project_number = os.environ["CLOUD_ML_PROJECT_ID"]
client = bigquery.Client(project=project_number)
Autenticare l'accesso utilizzando i service account
Per impostazione predefinita, l'istanza di notebook gestiti può accedere alle risorse che si trovano nello stesso progetto. Pertanto, quando esegui manualmente il codice del file del notebook, queste risorse non richiedono un'autenticazione aggiuntiva. Tuttavia, poiché l'executor viene eseguito in un progetto tenant separato, non dispone dello stesso accesso predefinito.
Inoltre, l'esecutore non può utilizzare le credenziali dell'utente finale per autenticare l'accesso
alle risorse, ad esempio il
comando gcloud auth login
.
Per risolvere questi problemi, nel codice del file del notebook, autentica l'accesso alle risorse tramite un account di servizio.
Poi, quando crei un'esecuzione o una pianificazione, specifica il account di serviziot.
Ad esempio, mentre crei un'esecuzione, completa questi passaggi:
Nella finestra di dialogo Invia notebook a Executor, espandi Opzioni avanzate.
Nella sezione Identità e accesso API, deseleziona il segno di spunta accanto a Utilizza l'account di servizio predefinito di Vertex AI Training e inserisci l'account di servizio specifico da utilizzare.
Consulta l'elenco completo dei passaggi per creare un'esecuzione.
Requisiti per l'utilizzo di un container personalizzato
Puoi utilizzare l'executor per eseguire il codice del notebook su un container personalizzato.
Il contenitore personalizzato deve includere l'estensione nbexecutor
, che
consente all'esecutore di eseguire il codice del blocco note come
un job di addestramento personalizzato di Vertex AI.
Per assicurarti che il tuo container personalizzato abbia l'estensione nbexecutor
,
puoi modificare una delle
immagini container Deep Learning Containers per creare un'immagine
container derivata.
Le immagini Deep Learning Containers
includono l'estensione nbexecutor
.
Prima di iniziare
- 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.
- Se non l'hai ancora fatto, crea un'istanza di notebook gestiti.
-
Notebooks Viewer (
roles/notebooks.viewer
) -
Vertex AI User (
roles/aiplatform.user
) -
Amministratore spazio di archiviazione (
roles/storage.admin
) Carica un file notebook (ipynb), apri un file esistente o apri un nuovo file notebook e aggiungi il codice che vuoi eseguire al notebook.
Assicurati che il codice del file del blocco note soddisfi i requisiti per l'utilizzo dell'executor.
Nell'interfaccia utente JupyterLab dell'istanza di blocchi note gestita, apri il file del blocco note che vuoi eseguire.
Fai clic sul pulsante
Esegui.Nella finestra di dialogo Invia notebook a Executor, nel campo Nome esecuzione, inserisci un nome per l'esecuzione.
Seleziona un tipo di macchina e un tipo di acceleratore.
Seleziona un ambiente.
Nel campo Tipo, seleziona Esecuzione una tantum o Esecuzioni ricorrenti basate sulla pianificazione e completa la finestra di dialogo per la pianificazione delle esecuzioni.
In Opzioni avanzate, seleziona la Regione in cui vuoi eseguire il notebook.
Nel campo Bucket Cloud Storage, seleziona un bucket Cloud Storage disponibile o inserisci un nome per un nuovo bucket e fai clic su Crea e seleziona. L'executor archivia l'output del notebook in questo bucket Cloud Storage.
(Facoltativo) Nella sezione Parametrizzazione del blocco note, nella casella di testo Parametri di input, aggiungi i parametri del blocco note separati da virgole, ad esempio
optimizer="SGD",learning_rate=0.01
.Scopri di più su come utilizzare i parametri del blocco note.
(Facoltativo) Nella sezione Identità e accesso API, seleziona Utilizza il service account predefinito di Vertex AI Training oppure deseleziona il segno di spunta e inserisci un account di servizio specifico da utilizzare.
(Facoltativo) Nella sezione Networking, specifica una rete Virtual Private Cloud. L'utilizzo di una rete VPC per l'esecuzione richiede una connessione di accesso privato ai servizi.
Fai clic su Invia.
Le esecuzioni una tantum iniziano immediatamente. Le esecuzioni pianificate vengono eseguite automaticamente in base alla pianificazione impostata.
Nella console Google Cloud , vai alla pagina Vertex AI Workbench e fai clic sulla scheda Esecuzioni.
Seleziona la regione che contiene i risultati.
Accanto all'esecuzione che vuoi visualizzare, fai clic su Visualizza risultato.
Il risultato si apre in una nuova scheda del browser.
Nel menu di navigazione di JupyterLab, fai clic sul pulsante
Esecutore di notebook.Fai clic sulla scheda Esecuzioni.
Fai clic su Visualizza risultato in corrispondenza dell'esecuzione che vuoi visualizzare.
Il risultato si apre in una nuova scheda del browser.
Nella console Google Cloud , vai alla pagina Vertex AI Workbench e fai clic sulla scheda Esecuzioni.
Seleziona la Regione che contiene l'esecuzione.
Accanto all'esecuzione che vuoi condividere, fai clic sul pulsante
Condividi.Segui le istruzioni nella finestra di dialogo per concedere agli utenti l'accesso al bucket Cloud Storage che contiene l'esecuzione del notebook.
Nell'interfaccia utente di JupyterLab dell'istanza di blocchi note gestiti, fai clic sul pulsante
Esecutore di blocchi note nel menu di navigazione.Fai clic sulla scheda Esecuzioni.
Accanto all'esecuzione che vuoi condividere, fai clic sul menu delle opzioni
e seleziona Condividi risultato dell'esecuzione.Segui le istruzioni nella finestra di dialogo per concedere agli utenti l'accesso al bucket Cloud Storage che contiene l'esecuzione del notebook.
Nell'interfaccia utente di JupyterLab dell'istanza di blocchi note gestiti, fai clic sul pulsante
Esecutore di blocchi note nel menu di navigazione.Fai clic sulla scheda Esecuzioni.
Seleziona la regione che contiene il notebook eseguito.
Accanto all'esecuzione da importare, fai clic sul menu delle opzioni
e seleziona Importa notebook eseguito.Seleziona il kernel con cui vuoi aprire il notebook.
L'executor apre il file del blocco note eseguito in JupyterLab e lo archivia nel browser di file di JupyterLab in una cartella denominata imported_notebook_jobs.
Nella console Google Cloud , vai alla pagina Vertex AI Workbench e fai clic sulla scheda Pianificazioni.
Seleziona la regione che contiene la pianificazione.
Fai clic sul nome di una pianificazione per aprire la pagina Dettagli pianificazione.
Accanto al nome di un'esecuzione, fai clic su Visualizza risultato per aprire il file del notebook eseguito. L'executor apre il risultato in una nuova scheda del browser.
Nell'interfaccia utente di JupyterLab dell'istanza di blocchi note gestiti, fai clic sul pulsante
Esecutore di blocchi note nel menu di navigazione.Fai clic sulla scheda Pianificazioni.
Per visualizzare l'ultima esecuzione, fai clic su Visualizza l'ultimo risultato dell'esecuzione sotto l'esecuzione che vuoi visualizzare. L'esecutore apre il risultato in una nuova scheda del browser.
Per visualizzare tutte le esecuzioni, fai clic sul nome della pianificazione. L'esecutore apre la pagina Dettagli pianificazione nella console Google Cloud .
Accanto al nome di un'esecuzione, fai clic su Visualizza risultato per aprire il file del notebook eseguito. L'executor apre il risultato in una nuova scheda del browser.
Nella console Google Cloud , vai alla pagina Vertex AI Workbench e fai clic sulla scheda Pianificazioni.
Seleziona la regione che contiene la pianificazione.
Seleziona la programmazione che vuoi eliminare.
Fai clic su
EliminaNell'interfaccia utente di JupyterLab dell'istanza di blocchi note gestiti, fai clic sul pulsante
Esecutore di blocchi note nel menu di navigazione.Fai clic sulla scheda Pianificazioni.
Fai clic sul nome della pianificazione che vuoi eliminare. L'esecutore apre la pagina Dettagli pianificazione nella console Google Cloud .
Fai clic su
EliminaScopri come eseguire notebook con parametri.
Scopri di più sull'addestramento personalizzato di Vertex AI.
Ruoli obbligatori
Per assicurarti che il account di servizio della tua istanza disponga delle autorizzazioni necessarie per interagire con l'executor Vertex AI Workbench, chiedi all'amministratore di concedere al account di servizio della tua istanza i seguenti ruoli IAM sul progetto:
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di concedere all'account di servizio della tua istanza le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Apri JupyterLab
Per aprire JupyterLab e preparare un file notebook da eseguire, completa i seguenti passaggi.
Creazione di un'esecuzione
Per creare un'esecuzione che esegua il file del notebook, completa i seguenti passaggi. Questi passaggi riguardano sia la pianificazione delle esecuzioni sia la creazione di un'esecuzione una tantum.
Nella console Google Cloud , nella pagina Vertex AI Workbench, puoi visualizzare le esecuzioni completate nella scheda Esecuzioni e visualizzare le pianificazioni nella scheda Pianificazioni.
Visualizzare, condividere e importare un file notebook eseguito
Utilizzando l'interfaccia utente JupyterLab dell'istanza di blocchi note gestiti, puoi visualizzare l'output di un notebook eseguito, condividere i risultati con altri e importare il file del notebook eseguito in JupyterLab.
Visualizzare i risultati dell'esecuzione di un notebook
Puoi visualizzare i risultati dell'esecuzione di un notebook nella console Google Cloud o nell'interfaccia utente di JupyterLab.
Console
JupyterLab
Condividere i risultati dell'esecuzione di un notebook
Puoi condividere i risultati dell'esecuzione fornendo l'accesso al bucket Cloud Storage che contiene l'esecuzione del notebook. La concessione di questo accesso consente inoltre agli utenti di accedere a qualsiasi altra risorsa nello stesso bucket Cloud Storage. Per condividere i risultati dell'esecuzione, completa i seguenti passaggi.
Console
JupyterLab
Importa un notebook eseguito in JupyterLab
Per importare un notebook eseguito in JupyterLab:
Visualizzare o eliminare una pianificazione
Puoi visualizzare ed eliminare le pianificazioni utilizzando la console Google Cloud o l'interfaccia utente JupyterLab dell'istanza di blocchi note gestiti.
Visualizzare una pianificazione
Visualizza una pianificazione per vedere le impostazioni di frequenza della pianificazione o per visualizzare i risultati delle esecuzioni del notebook.
Console
JupyterLab
Elimina una pianificazione
L'eliminazione di una pianificazione non comporta l'eliminazione delle esecuzioni generate da quella pianificazione.
Console
JupyterLab
Job nell'addestramento personalizzato di Vertex AI
Poiché le esecuzioni dei notebook vengono eseguite nell'addestramento personalizzato di Vertex AI, vengono esposte come job di addestramento personalizzato in Vertex AI. Puoi visualizzare questi job di addestramento personalizzato nella console Google Cloud , nella scheda Job personalizzati della pagina Vertex AI Training. Scopri di più su come lavorare con i job di addestramento personalizzato di Vertex AI.