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:

  1. Nella finestra di dialogo Invia notebook a Executor, espandi Opzioni avanzate.

  2. 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

  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. Se non l'hai ancora fatto, crea un'istanza di notebook gestiti.
  9. 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.

    1. Apri JupyterLab.

    2. Carica un file notebook (ipynb), apri un file esistente o apri un nuovo file notebook e aggiungi il codice che vuoi eseguire al notebook.

    3. Assicurati che il codice del file del blocco note 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 pianificazione delle esecuzioni sia la creazione di un'esecuzione una tantum.

    1. Nell'interfaccia utente JupyterLab dell'istanza di blocchi note gestita, apri il file del blocco note che vuoi eseguire.

    2. Fai clic sul pulsante  Esegui.

    3. Nella finestra di dialogo Invia notebook a Executor, nel campo Nome esecuzione, inserisci un nome per l'esecuzione.

    4. Seleziona un tipo di macchina e un tipo di acceleratore.

    5. Seleziona un ambiente.

    6. Nel campo Tipo, seleziona Esecuzione una tantum o Esecuzioni ricorrenti basate sulla pianificazione e completa la finestra di dialogo per la pianificazione delle esecuzioni.

    7. In Opzioni avanzate, seleziona la Regione in cui vuoi eseguire il notebook.

    8. 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.

    9. (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.

    10. (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.

    11. (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.

    12. 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 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

    1. Nella console Google Cloud , vai alla pagina Vertex AI Workbench e fai clic sulla scheda Esecuzioni.

      Vai a Esecuzioni

    2. Seleziona la regione che contiene i risultati.

    3. Accanto all'esecuzione che vuoi visualizzare, fai clic su Visualizza risultato.

      Il risultato si apre in una nuova scheda del browser.

    JupyterLab

    1. Nel menu di navigazione di JupyterLab, fai clic sul pulsante  Esecutore di notebook.

    2. Fai clic sulla scheda Esecuzioni.

    3. Fai clic su Visualizza risultato in corrispondenza dell'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. 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

    1. Nella console Google Cloud , vai alla pagina Vertex AI Workbench e fai clic sulla scheda Esecuzioni.

      Vai a Esecuzioni

    2. Seleziona la Regione che contiene l'esecuzione.

    3. Accanto all'esecuzione che vuoi condividere, fai clic sul pulsante  Condividi.

    4. Segui le istruzioni nella finestra di dialogo per concedere agli utenti l'accesso al bucket Cloud Storage che contiene l'esecuzione del notebook.

    JupyterLab

    1. Nell'interfaccia utente di JupyterLab dell'istanza di blocchi note gestiti, fai clic sul pulsante  Esecutore di blocchi note nel menu di navigazione.

    2. Fai clic sulla scheda Esecuzioni.

    3. Accanto all'esecuzione che vuoi condividere, fai clic sul menu delle opzioni e seleziona Condividi risultato dell'esecuzione.

    4. Segui le istruzioni nella finestra di dialogo per concedere agli utenti l'accesso al bucket Cloud Storage che contiene l'esecuzione del notebook.

    Importa un notebook eseguito in JupyterLab

    Per importare un notebook eseguito in JupyterLab:

    1. Nell'interfaccia utente di JupyterLab dell'istanza di blocchi note gestiti, fai clic sul pulsante  Esecutore di blocchi note nel menu di navigazione.

    2. Fai clic sulla scheda Esecuzioni.

    3. Seleziona la regione che contiene il notebook eseguito.

    4. Accanto all'esecuzione da importare, fai clic sul menu delle opzioni e seleziona Importa notebook eseguito.

    5. 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.

    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

    1. Nella console Google Cloud , vai alla pagina Vertex AI Workbench e fai clic sulla scheda Pianificazioni.

      Vai a Pianificazioni

    2. Seleziona la regione che contiene la pianificazione.

    3. Fai clic sul nome di una pianificazione per aprire la pagina Dettagli pianificazione.

    4. 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.

    JupyterLab

    1. Nell'interfaccia utente di JupyterLab dell'istanza di blocchi note gestiti, fai clic sul pulsante  Esecutore di blocchi note nel menu di navigazione.

    2. Fai clic sulla scheda Pianificazioni.

    3. 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 .

    4. 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.

    Elimina una pianificazione

    L'eliminazione di una pianificazione non comporta l'eliminazione delle esecuzioni generate da quella pianificazione.

    Console

    1. Nella console Google Cloud , vai alla pagina Vertex AI Workbench e fai clic sulla scheda Pianificazioni.

      Vai a Pianificazioni

    2. Seleziona la regione che contiene la pianificazione.

    3. Seleziona la programmazione che vuoi eliminare.

    4. Fai clic su  Elimina

    JupyterLab

    1. Nell'interfaccia utente di JupyterLab dell'istanza di blocchi note gestiti, fai clic sul pulsante  Esecutore di blocchi note nel menu di navigazione.

    2. Fai clic sulla scheda Pianificazioni.

    3. Fai clic sul nome della pianificazione che vuoi eliminare. L'esecutore apre la pagina Dettagli pianificazione nella console Google Cloud .

    4. Fai clic su  Elimina

    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.

    Passaggi successivi