Addestrare ed eseguire il deployment del modello

Nei passaggi precedenti di questo tutorial, hai preparato i dati per l'addestramento e hai creato uno script utilizzato da Vertex AI per addestrare il modello. Ora puoi utilizzare l'SDK Vertex AI per Python per creare un CustomTrainingJob.

Quando crei un CustomTrainingJob, definisci una pipeline di addestramento in background. Vertex AI utilizza la pipeline di addestramento e il codice nello script di addestramento Python per addestrare e creare il modello. Per ulteriori informazioni, consulta Creare pipeline di addestramento.

Definisci la pipeline di addestramento

Per creare una pipeline di addestramento, devi creare un oggetto CustomTrainingJob. Nel passaggio successivo, utilizza il comando run di CustomTrainingJob per creare e addestrare il tuo modello. Per creare un CustomTrainingJob, devi passare i seguenti parametri al suo costruttore:

  • display_name: la variabile JOB_NAME creata quando hai definito gli argomenti del comando per lo script di addestramento Python.

  • script_path: il percorso dello script di addestramento Python che hai creato in precedenza in questo tutorial.

  • container_url: l'URI di un'immagine container Docker utilizzata per addestrare il modello.

  • requirements: l'elenco delle dipendenze dei pacchetti Python dello script.

  • model_serving_container_image_uri: l'URI di un'immagine container Docker che fornisce le previsioni per il modello. Questo contenitore può essere precompilato o la tua immagine personalizzata. Questo tutorial utilizza un container predefinito.

Esegui il seguente codice per creare la pipeline di addestramento. Il metodo CustomTrainingJob utilizza lo script di addestramento Python nel file task.py per creare un CustomTrainingJob.

job = aiplatform.CustomTrainingJob(
    display_name=JOB_NAME,
    script_path="task.py",
    container_uri="us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-8:latest",
    requirements=["google-cloud-bigquery>=2.20.0", "db-dtypes", "protobuf<3.20.0"],
    model_serving_container_image_uri="us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-8:latest",
)

Crea e addestra il modello

Nel passaggio precedente hai creato un CustomTrainingJob chiamato job. Per creare e addestrare il modello, chiama il metodo run sull'oggetto CustomTrainingJob e passa i seguenti parametri:

  • dataset: il set di dati tabulari che hai creato in precedenza in questo tutorial. Questo parametro può essere un set di dati tabulare, di immagini, video o testo.

  • model_display_name: un nome per il modello.

  • bigquery_destination: una stringa che specifica la posizione del set di dati BigQuery.

  • args: gli argomenti della riga di comando passati allo script di addestramento Python.

Per iniziare ad addestrare i dati e creare il modello, esegui il seguente codice nel tuo notebook:

MODEL_DISPLAY_NAME = "penguins_model_unique"

# Start the training and create your model
model = job.run(
    dataset=dataset,
    model_display_name=MODEL_DISPLAY_NAME,
    bigquery_destination=f"bq://{project_id}",
    args=CMDARGS,
)

Prima di continuare con il passaggio successivo, assicurati che nell'output del comando job.run venga visualizzato quanto segue per verificare che l'operazione sia stata completata:

CustomTrainingJob run completed.

Al termine del job di addestramento, puoi eseguire il deployment del modello.

Esegui il deployment del modello

Quando esegui il deployment del modello, crei anche una risorsa Endpoint utilizzata per fare previsioni. Per eseguire il deployment del modello e creare un endpoint, esegui il seguente codice nel notebook:

DEPLOYED_NAME = "penguins_deployed_unique"

endpoint = model.deploy(deployed_model_display_name=DEPLOYED_NAME)

Attendi il deployment del modello prima di procedere al passaggio successivo. Dopo il deployment del modello, l'output include il testo Endpoint model deployed.

Per visualizzare lo stato del deployment nella console Google Cloud, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Endpoint.

    Vai a Endpoints

  2. Monitora il valore in Modelli. Il valore è 0 dopo la creazione dell'endpoint e prima del deployment del modello. Dopo il deployment del modello, il valore viene aggiornato in 1.

    Di seguito è mostrato un endpoint dopo la sua creazione e prima che venga eseguito il deployment di un modello.

    Un endpoint in cui non è stato eseguito il deployment di un modello.

    Di seguito è mostrato un endpoint dopo la sua creazione e dopo che è stato eseguito il deployment di un modello.

    Un endpoint in cui non è stato eseguito il deployment di un modello.