Treinar e implantar seu modelo

Nas etapas anteriores deste tutorial, você preparou seus dados para treinamento e criou um script que a Vertex AI usa para treinar seu modelo. Agora está tudo pronto para usar o SDK da Vertex AI para Python e criar um CustomTrainingJob.

Ao criar um CustomTrainingJob, você define um pipeline de treinamento em segundo plano. A Vertex AI usa o pipeline de treinamento e o código em seu script de treinamento do Python para treinar e criar seu modelo. Para mais informações, consulte Criar pipelines de treinamento.

Definir o pipeline de treinamento

Para criar um pipeline de treinamento, crie um objeto CustomTrainingJob. Na próxima etapa, use o comando run do CustomTrainingJob para criar e treinar seu modelo. Para criar um CustomTrainingJob, transmita os seguintes parâmetros para o construtor:

  • display_name: a variável JOB_NAME que você criou quando definiu os argumentos de comando do script de treinamento do Python.

  • script_path: o caminho para o script de treinamento do Python que você criou anteriormente neste tutorial.

  • container_url: o URI de uma imagem de contêiner do Docker usada para treinar o modelo.

  • requirements: a lista de dependências do pacote Python do script.

  • model_serving_container_image_uri: o URI de uma imagem de contêiner do Docker que exibe previsões para seu modelo. Esse contêiner pode ser pré-criado ou sua própria imagem personalizada. Este tutorial usa um contêiner pré-criado.

Execute o código a seguir para criar o pipeline de treinamento. O método CustomTrainingJob usa o script de treinamento em Python no arquivo 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",
)

Criar e treinar o modelo

Na etapa anterior, você criou um CustomTrainingJob chamado job. Para criar e treinar seu modelo, chame o método run no seu objeto CustomTrainingJob e transmita a ele os seguintes parâmetros:

  • dataset: o conjunto de dados tabular que você criou anteriormente neste tutorial. Esse parâmetro pode ser um conjunto de dados tabular, de imagem, vídeo ou texto.

  • model_display_name: um nome para o modelo.

  • bigquery_destination: uma string que especifica o local do conjunto de dados do BigQuery.

  • args: os argumentos de linha de comando que são transmitidos para o script de treinamento do Python.

Para começar a treinar os dados e criar o modelo, execute o seguinte código no seu 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,
)

Antes de continuar na próxima etapa, verifique se o item a seguir aparece na saída do comando job.run para verificar se ele foi concluído:

CustomTrainingJob run completed.

Depois que o job de treinamento for concluído, será possível implantar o modelo.

Implantar seu modelo

Ao implantar o modelo, você também cria um recurso Endpoint que é usado para fazer previsões. Para implantar o modelo e criar um endpoint, execute o seguinte código no seu notebook:

DEPLOYED_NAME = "penguins_deployed_unique"

endpoint = model.deploy(deployed_model_display_name=DEPLOYED_NAME)

Aguarde até que seu modelo seja implantado antes de prosseguir para a próxima etapa. Depois que o modelo for implantado, a saída incluirá o texto Endpoint model deployed. Também é possível clicar em Endpoints no painel de navegação esquerdo do console da Vertex AI e monitorar o valor dele em Modelos. O valor é 0 após a criação do endpoint e antes da implantação do modelo. Após a implantação do modelo, o valor é atualizado para 1.

Confira a seguir um endpoint depois de criado e antes da implantação de um modelo.

Um endpoint sem um modelo implantado nele.

Confira a seguir um endpoint depois de criado e depois da implantação de um modelo.

Um endpoint sem um modelo implantado nele.