Esegui i file del blocco note con l'eseguibile
Questa pagina descrive come utilizzare l'executor in un'istanza di Notebooks gestita da Vertex AI Workbench per eseguire i file del blocco note come esecuzione una tantum e pianificata.
Panoramica
L'executor ti consente di inviare un file del blocco note (ipynb) da eseguire su Vertex AI custom training. Puoi impostare i valori dei parametri per ogni esecuzione di un file del notebook. Puoi anche eseguire un file del notebook in base a una pianificazione ricorrente. Al termine dell'esecuzione, puoi visualizzare i risultati e condividerli con altri utenti.
Quando un file del blocco note viene inviato all'addestramento personalizzato di Vertex AI, Vertex AI crea un nuovo job di addestramento personalizzato che esegue il file del blocco note seguendo il ciclo di vita di un job di addestramento.
Requisiti per il codice del notebook eseguito dall'eseguitore
Quando scrivi il codice del notebook da eseguire nell'executor, tieni presente che il codice verrà eseguito in un progetto tenant distinto dal progetto dell'istanza di notebook gestita. Questa sezione descrive in che modo questo influisce sul codice quando viene eseguito nell'executor.
Assicurati che le installazioni dei pacchetti siano disponibili per l'eseguitore
Se il tuo notebook dipende da installazioni di pacchetti non ancora incluse 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 del notebook. Il pacchetto viene installato ogni volta che viene eseguito il file del notebook, ma ciò garantisce che sia disponibile nel contenitore selezionato quando esegui il notebook.
Utilizzare la selezione esplicita del progetto
Quando accedi alle risorse tramite il codice eseguito dall'eseguitore, l'eseguitore potrebbe non connettersi al progetto Google Cloud corretto. Se riscontri errori di autorizzazione, il problema potrebbe essere la connessione al progetto sbagliato.
Questo problema si verifica perché l'eseguitore non esegue il codice direttamente nel progetto Google Cloud dell'istanza di notebook gestita. L'executore, invece, 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 tuo notebook, ma 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 del progetto del progetto in cui hai avviato l'addestramento personalizzato. Molti strumenti Google Cloud possono accettare un numero di progetto ovunque venga richiesto 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 tuo 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 gli account di servizio
Per impostazione predefinita, l'istanza di Notebooks gestita può avere accesso alle risorse esistenti nello stesso progetto. Pertanto, quando esegui manualmente il codice del file del notebook, queste risorse non richiedono un'autenticazione aggiuntiva. Tuttavia, poiché l'eseguitore viene eseguito in un progetto tenant separato, non ha lo 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 blocco note, autentica l'accesso alle risorse tramite un account di servizio.
Quando crei un'esecuzione o una pianificazione, specifica l'account di servizio.
Ad esempio, durante la creazione di un'esecuzione, completa i seguenti passaggi:
Nella finestra di dialogo Invia notebook all'eseguibile, espandi Opzioni avanzate.
Nella sezione Identità e accesso API, rimuovi 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 la creazione di un'esecuzione.
Requisiti per l'utilizzo di un container personalizzato
Puoi utilizzare l'executor per eseguire il codice del blocco note su un contenitore personalizzato.
Il contenitore personalizzato deve includere l'estensione nbexecutor
, che consente all'esecutore di eseguire il codice del blocco note come job di addestramento personalizzato Vertex AI.
Per assicurarti che il tuo container personalizzato abbia l'estensione nbexecutor
,
puoi modificare una delle
immagini container di Deep Learning Containers per creare un'immagine container derivata.
Le immagini di 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.
Ruoli obbligatori
Per assicurarti che l'account di servizio della tua istanza disponga delle autorizzazioni necessarie per interagire con l'executor di Vertex AI Workbench, chiedi all'amministratore di concedere all'account di servizio della tua istanza i seguenti ruoli IAM nel progetto:
-
Notebooks Viewer (
roles/notebooks.viewer
) -
Utente Vertex AI (
roles/aiplatform.user
) -
Storage Admin (
roles/storage.admin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di assegnare all'account di servizio della tua istanza le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
Apri JupyterLab
Per aprire JupyterLab e preparare un file del notebook da eseguire, completa i seguenti passaggi.
Carica un file del notebook (ipynb), apri un file esistente o apri un nuovo file del notebook e aggiungi il codice che vuoi eseguire nel notebook.
Assicurati che il codice del file del notebook soddisfi i requisiti per l'utilizzo dell'executor.
Creazione di un'esecuzione
Per creare un'esecuzione che esegua il file del notebook, completa i seguenti passaggi. Questi passaggi riguardano sia la programmazione delle esecuzioni sia la creazione di un'esecuzione una tantum.
Nell'interfaccia utente di 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 all'eseguitore, 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 su pianificazione e completa la finestra di dialogo per la pianificazione delle esecuzioni.
In Opzioni avanzate, seleziona la regione in cui vuoi eseguire il blocco note.
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 blocco note in questo bucket Cloud Storage.
(Facoltativo) Nella sezione Parametrizazione del notebook, nella casella di testo Parametri di input, aggiungi i parametri del notebook separati da virgole, ad esempio
optimizer="SGD",learning_rate=0.01
.Scopri di più su come utilizzare i parametri del notebook.
(Facoltativo) Nella sezione Identità e accesso API, selezionate Utilizza l'account di servizio predefinito di Vertex AI Training o deselezionate il segno di spunta e inserite 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, nella pagina Vertex AI Workbench, puoi visualizzare le esecuzioni completate nella scheda Esecuzioni e le pianificazioni nella scheda Pianificazioni.
Visualizzare, condividere e importare un file del notebook eseguito
Utilizzando l'interfaccia utente JupyterLab dell'istanza di blocchi note gestita, puoi visualizzare l'output di un notebook eseguito, condividere i risultati con altri utenti e importare il file del notebook eseguito in JupyterLab.
Visualizzare i risultati dell'esecuzione di un blocco note
Puoi visualizzare i risultati dell'esecuzione di un blocco note nella console Google Cloud o nell'interfaccia utente di JupyterLab.
Console
Nella console Google Cloud, vai alla pagina Vertex AI Workbench e fai clic sulla scheda Esecuzioni.
Seleziona la regione che contiene i risultati.
Fai clic su Visualizza risultato accanto all'esecuzione che vuoi visualizzare.
Il risultato si apre in una nuova scheda del browser.
JupyterLab
Nel menu di navigazione di JupyterLab, fai clic sul pulsante Executor di notebook.
Fai clic sulla scheda Esecuzioni.
Fai clic su Visualizza risultato sotto l'esecuzione che vuoi visualizzare.
Il risultato si apre in una nuova scheda del browser.
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. Fornendo questo accesso, gli utenti possono accedere anche a qualsiasi altra risorsa nello stesso bucket Cloud Storage. Per condividere i risultati dell'esecuzione, completa i seguenti passaggi.
Console
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 contenente l'esecuzione del tuo blocco note.
JupyterLab
Nell'interfaccia utente di JupyterLab dell'istanza di blocchi note gestiti, nel menu di navigazione, fai clic sul pulsante Esegui blocco note.
Fai clic sulla scheda Esecuzioni.
Accanto all'esecuzione che vuoi condividere, fai clic sul menu di opzioni
e seleziona Condividi risultato esecuzione.Segui le istruzioni nella finestra di dialogo per concedere agli utenti l'accesso al bucket Cloud Storage contenente l'esecuzione del tuo blocco note.
Importa un notebook eseguito in JupyterLab
Per importare un notebook eseguito in JupyterLab:
Nell'interfaccia utente di JupyterLab dell'istanza di blocchi note gestiti, nel menu di navigazione, fai clic sul pulsante Esegui blocco note.
Fai clic sulla scheda Esecuzioni.
Seleziona la regione contenente il notebook eseguito.
Accanto all'esecuzione da importare, fai clic sul menu di opzioni
e seleziona Importa blocco note eseguito.Seleziona il kernel con cui vuoi aprire il notebook.
L'eseguitore apre il file del blocco note eseguito in JupyterLab e lo memorizza nel browser dei file JupyterLab in una cartella denominata imported_notebook_jobs.
Visualizzare o eliminare una pianificazione
Puoi visualizzare ed eliminare le pianificazioni utilizzando la console Google Cloud o l'interfaccia utente JupyterLab dell'istanza di Notebook gestita.
Visualizzare una pianificazione
Visualizza una pianificazione per visualizzare le impostazioni di frequenza della pianificazione o per visualizzare i risultati delle esecuzioni del notebook.
Console
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'eseguibile apre il risultato in una nuova scheda del browser.
JupyterLab
Nell'interfaccia utente di JupyterLab dell'istanza di blocchi note gestiti, nel menu di navigazione, fai clic sul pulsante Esegui blocco note.
Fai clic sulla scheda Pianificazioni.
Per visualizzare l'ultima esecuzione, fai clic su Visualizza risultato dell'ultima esecuzione sotto l'esecuzione che vuoi visualizzare. L'eseguibile apre il risultato in una nuova scheda del browser.
Per visualizzare tutte le esecuzioni, fai clic sul nome della pianificazione. L'eseguitore 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'eseguibile apre il risultato in una nuova scheda del browser.
Elimina una pianificazione
L'eliminazione di una pianificazione non comporta l'eliminazione delle esecuzioni generate da quella pianificazione.
Console
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 pianificazione da eliminare.
Fai clic su
Elimina
JupyterLab
Nell'interfaccia utente di JupyterLab dell'istanza di blocchi note gestiti, nel menu di navigazione, fai clic sul pulsante Esegui blocco note.
Fai clic sulla scheda Pianificazioni.
Fai clic sul nome della pianificazione che vuoi eliminare. L'eseguitore apre la pagina Dettagli pianificazione nella console Google Cloud.
Fai clic su
Elimina
Job nell'addestramento personalizzato di Vertex AI
Poiché le esecuzioni dei notebook vengono eseguite sull'addestramento personalizzato di Vertex AI, vengono esposte come job di addestramento personalizzato in Vertex AI. Puoi visualizzare questi job di addestramento personalizzati nella console Google Cloud, nella scheda Job personalizzati della pagina Addestramento Vertex AI. Scopri di più su come utilizzare i job di addestramento personalizzato di Vertex AI.
Passaggi successivi
Scopri come eseguire le esecuzioni dei notebook con parametri.
Scopri di più sull'addestramento personalizzato di Vertex AI.