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. Sei ora puoi usare l'SDK Vertex AI per Python per creare 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, vedi 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 che hai creato quando hai definito la gli argomenti dei comandi per lo script di addestramento Python.

  • script_path - Il percorso dello script di addestramento Python che hai creato in precedenza in questo durante il 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 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. La 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 creato in precedenza in questo tutorial. Questo parametro può essere un formato tabulare, di immagine, video o di testo del set di dati.

  • model_display_name: un nome per il modello.

  • bigquery_destination - Una stringa che specifica la posizione del tuo set di dati BigQuery.

  • args: gli argomenti della riga di comando che vengono 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 procedere 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 tuo blocco note:

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: le seguenti:

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

    Vai a Endpoints

  2. Monitora il valore in Modelli. Il valore è 0 dopo che l'endpoint è del modello e prima che ne venga eseguito il deployment. 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 viene mostrato un endpoint dopo la creazione e il deployment di un modello che le sono assegnati.

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