Addestra ed esegui il deployment del modello

Nei passaggi precedenti di questo tutorial, hai preparato i dati per l'addestramento e hai creato uno script che Gemini Enterprise Agent Platform utilizza per addestrare il modello. Ora puoi utilizzare l'SDK Agent Platform per Python per creare un CustomTrainingJob.

Quando crei un CustomTrainingJob, definisci una pipeline di addestramento in background. Gemini Enterprise Agent Platform utilizza la pipeline di addestramento e il codice nello script di addestramento Python per addestrare e creare il modello. Per saperne di più, consulta Creare pipeline di addestramento.

Definisci la pipeline di addestramento

Per creare una pipeline di addestramento, crea un oggetto CustomTrainingJob. Nel passaggio successivo, utilizzerai il comando run di CustomTrainingJob per creare e addestrare il modello. Per creare un CustomTrainingJob, passa i seguenti parametri al relativo costruttore:

  • display_name - La variabile JOB_NAME che hai creato 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 pubblica le previsioni per il modello. Questo container può essere precompilato o la tua immagine personalizzata. Questo tutorial utilizza un container precompilato.

Esegui il seguente codice per creare la pipeline di addestramento. Il CustomTrainingJob metodo utilizza lo script di addestramento Python nel task.py file 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 denominato job. Per creare e addestrare il modello, chiama il metodo run sull'oggetto CustomTrainingJob e passagli i seguenti parametri:

Per iniziare ad addestrare i dati e creare il modello, esegui il seguente codice nel 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 sia stato completato:

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 generare 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 completamento del deployment del modello prima di procedere al passaggio successivo. Al termine del deployment del modello, l'output include il testo Endpoint model deployed.

Per visualizzare lo stato del deployment nella Google Cloud console, procedi nel seguente modo:

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

    Vai a Endpoint

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

    Di seguito è riportato un endpoint dopo la creazione e prima del deployment di un modello.

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

    Di seguito è riportato un endpoint dopo la creazione e dopo il deployment di un modello.

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