Prepare e implemente o seu modelo

Nos passos anteriores deste tutorial, preparou os dados para a preparação e criou um script que o Vertex AI usa para preparar o modelo. Já pode usar o SDK Vertex AI para Python para criar um CustomTrainingJob.

Quando cria um CustomTrainingJob, define um pipeline de preparação em segundo plano. O Vertex AI usa o pipeline de preparação e o código no seu script de preparação em Python para preparar e criar o seu modelo. Para mais informações, consulte o artigo Crie pipelines de preparação.

Defina o seu pipeline de preparação

Para criar um pipeline de preparação, cria um objeto CustomTrainingJob. No passo seguinte, usa o comando CustomTrainingJob's run para criar e formar o seu modelo. Para criar um CustomTrainingJob, transmite os seguintes parâmetros ao respetivo construtor:

  • display_name - A variável JOB_NAME que criou quando definiu os argumentos do comando para o script de preparação do Python.

  • script_path - O caminho para o script de preparação Python que criou anteriormente neste tutorial.

  • container_url: o URI de uma imagem de contentor Docker que é usada para preparar o seu modelo.

  • requirements - A lista das dependências do pacote Python do script.

  • model_serving_container_image_uri - O URI de uma imagem de contentor Docker que fornece previsões para o seu modelo. Este contentor pode ser pré-criado ou uma imagem personalizada sua. Este tutorial usa um contentor pré-criado.

Execute o seguinte código para criar o pipeline de preparação. O método CustomTrainingJob usa o script de preparação do Python no ficheiro task.py para criar um 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",
)

Crie e prepare o seu modelo

No passo anterior, criou um CustomTrainingJob denominado job. Para criar e preparar o seu modelo, chame o método run no objeto CustomTrainingJob e transmita-lhe os seguintes parâmetros:

  • dataset - O conjunto de dados tabular que criou anteriormente neste tutorial. Este parâmetro pode ser um conjunto de dados tabular, de imagem, de vídeo ou de texto.

  • model_display_name – Um nome para o modelo.

  • bigquery_destination - Uma string que especifica a localização do seu conjunto de dados do BigQuery.

  • args - Os argumentos da linha de comandos que são transmitidos ao script de preparação do Python.

Para começar a preparar os dados e criar o modelo, execute o seguinte código no bloco de notas:

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,
)

Antes de continuar com o passo seguinte, certifique-se de que o seguinte aparece no resultado do comando job.run para verificar se está concluído:

CustomTrainingJob run completed.

Após a conclusão da tarefa de preparação, pode implementar o seu modelo.

Implemente o modelo

Quando implementa o modelo, também cria um recurso Endpoint que é usado para fazer previsões. Para implementar o modelo e criar um ponto final, execute o seguinte código no bloco de notas:

DEPLOYED_NAME = "penguins_deployed_unique"

endpoint = model.deploy(deployed_model_display_name=DEPLOYED_NAME)

Aguarde até que o modelo seja implementado antes de continuar para o passo seguinte. Depois de implementar o modelo, a saída inclui o texto Endpoint model deployed.

Para ver o estado da sua implementação na consola Google Cloud , faça o seguinte:

  1. Na Google Cloud consola, aceda à página Endpoints.

    Aceda a Pontos finais

  2. Monitorize o valor em Modelos. O valor é 0 depois de o ponto final ser criado e antes de o modelo ser implementado. Após a implementação do modelo, o valor é atualizado para 1.

    A imagem seguinte mostra um ponto final após a criação e antes de um modelo ser implementado no mesmo.

    Um ponto final sem um modelo implementado.

    A imagem seguinte mostra um ponto final após a criação e a implementação de um modelo no mesmo.

    Um ponto final sem um modelo implementado.