Treinamento personalizado do Hello: treinar um modelo personalizado de classificação de imagens

Nesta página, você aprenderá a executar um aplicativo de treinamento Keras do TensorFlow na Vertex AI. Esse modelo particular treina um modelo de classificação de imagem que classifica flores por tipo.

Este documento faz parte do tutorial "Treinamento personalizado do Hello", que ensina a usar a Vertex AI para treinar um modelo de classificação de imagens e exibir previsões usando o modelo. Neste tutorial, você usará o recurso de treinamento personalizado da Vertex AI para executar um aplicativo de treinamento Keras do TensorFlow em um dos ambientes de contêineres predefinidos da Vertex AI. Esse job de treinamento personalizado treina um modelo de machine learning (ML) para classificar imagens de flores por tipo. Depois de treinar o modelo de ML, o tutorial mostra como criar um endpoint e exibir previsões desse endpoint para um app da Web simples.


Para seguir as instruções detalhadas desta tarefa diretamente no console do Google Cloud, clique em Orientação:

Orientações


Este tutorial tem várias páginas:

  1. Como configurar o projeto e o ambiente

  2. Como treinar um modelo personalizado de classificação de imagens.

  3. Como exibir previsões de um modelo de classificação de imagens personalizado

  4. Como limpar o projeto

Cada página pressupõe que você já tenha realizado as instruções das páginas anteriores do tutorial.

O restante deste documento pressupõe que você está usando o mesmo ambiente do Cloud Shell criado ao seguir a primeira página deste tutorial. Se a sessão original do Cloud Shell não estiver mais aberta, será possível retornar ao ambiente fazendo o seguinte:

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

  2. Na sessão do Cloud Shell, execute o seguinte comando:

    cd hello-custom-sample
    

Execute um pipeline de treinamento personalizado

Nesta seção, descrevemos como usar o pacote de treinamento que você enviou ao Cloud Storage para executar um pipeline de treinamento personalizado da Vertex AI.

  1. No Console do Google Cloud, na seção "Vertex AI", acesse a página Pipelines de treinamento.

    Acessar pipelines de treinamento

  2. Clique em Criar para abrir o painel Treinar novo modelo.

  3. Na etapa Escolher método de treinamento, faça o seguinte:

    1. Na lista suspensa Conjunto de dados, selecione Nenhum conjunto de dados gerenciado. Esse aplicativo de treinamento específico carrega dados da biblioteca TensorFlow Datasets, em vez de um conjunto de dados gerenciado da Vertex AI.

    2. Verifique se a opção Treinamento personalizado (avançado) está selecionada.

    Clique em Continuar.

  4. Na etapa Detalhes do modelo, no campo Nome, insira hello_custom. Clique em Continuar.

  5. Na etapa Configurações do contêiner, forneça à Vertex AI as informações necessárias para usar o pacote de treinamento que você enviou ao Cloud Storage:

    1. Selecione Contêiner pré-criado.

    2. Na lista suspensa Framework do modelo, selecione TensorFlow.

    3. Na lista suspensa Versão do framework do modelo, selecione 2.3.

    4. No campo Localização do pacote, insira cloud-samples-data/ai-platform/hello-custom/hello-custom-sample-v1.tar.gz.

    5. No campo módulo Python, insira trainer.task. trainer é o nome do pacote Python no tarball, e task.py contém o código de treinamento. Portanto, trainer.task é o nome do módulo que você quer que a Vertex AI execute.

    6. No campo Diretório de saída do modelo, clique em Procurar. Faça o seguinte no painel Selecionar pasta:

      1. Navegue até o bucket do Cloud Storage.

      2. Clique em Criar nova pasta.

      3. Nomeie a nova pasta como output. Clique em Criar.

      4. Clique em Selecionar.

      Confirme se o campo tem o valor gs://BUCKET_NAME/output, em que BUCKET_NAME é o nome do bucket do Cloud Storage.

      Esse valor é transmitido à Vertex AI no campo da API baseOutputDirectory, que define diversas variáveis de ambiente que o aplicativo de treinamento acessa quando é executado.

      Por exemplo, quando você define esse campo como gs://BUCKET_NAME/output, a Vertex AI define a variável de ambiente AIP_MODEL_DIR como gs://BUCKET_NAME/output/model. No final do treinamento, a Vertex AI usa todos os artefatos no diretório AIP_MODEL_DIR ara criar um recurso de modelo.

      Saiba mais sobre as variáveis de ambiente definidas por este campo.

    Clique em Continuar.

  6. Na etapa opcional Hiperparâmetros, verifique se a caixa de seleção Ativar ajuste de hiperparâmetros está desmarcada. Este tutorial não usa o ajuste de hiperparâmetro. Clique em Continue.

  7. Na etapa Computação e preços, aloque recursos para o job de treinamento personalizado:

    1. Na lista suspensa Região, selecione us-central1 (Iowa).

    2. Na lista suspensa Tipo de máquina, selecione n1-standard-4 na seção Padrão.

    Não adicione aceleradores ou pools de workers para este tutorial. Clique em Continue.

  8. Na etapa Contêiner de previsão, forneça à Vertex AI informações necessárias para exibir predições:

    1. Selecione Contêiner pré-criado.

    2. Na seção Configurações de contêiner pré-criado, faça o seguinte:

      1. Na lista suspensa Framework do modelo, selecione TensorFlow.

      2. Na lista suspensa Versão do framework do modelo, selecione 2.3.

      3. Na lista suspensa Tipo de acelerador, selecione Nenhum.

      4. Confirme se o campo Diretório do modelo tem o valor gs://BUCKET_NAME/output, em que BUCKET_NAME é o nome do bucket do Cloud Storage. Isso corresponde ao valor do diretório de saída do modelo fornecido em uma etapa anterior.

    3. Deixe os campos na seção Schemata de previsão em branco.

  9. Clique em Iniciar treinamento.

Agora é possível visualizar o novo pipeline de treinamento, chamado hello_custom, na página Treinamento. Talvez seja necessário atualizar a página. Esse pipeline de treinamento executa, principalmente, as seguintes tarefas:

  1. Ele cria um recurso de job personalizado chamado hello_custom-custom-job. Depois de alguns instantes, será possível visualizar esse recurso na página Jobs personalizados da seção Treinamento:

    Acessar "Jobs personalizados"

    O job personalizado executa o aplicativo de treinamento usando os recursos de computação especificados nesta seção.

  2. Após a conclusão do job personalizado, o pipeline de treinamento encontrará os artefatos criados pelo aplicativo de treinamento no diretório output/model/ do bucket do Cloud Storage. Ele usa esses artefatos para criar um recurso de modelo.

Monitorar o treinamento

Para visualizar os logs de treinamento faça o seguinte:

  1. No console do Google Cloud, na seção "Vertex AI", acesse a página Jobs personalizados.

    Acessar "Jobs personalizados"

  2. Para visualizar os detalhes do CustomJob que você acabou de criar, clique em hello_custom-custom-job na lista.

  3. Na página de detalhes do job, clique em Visualizar registros.

Ver o modelo treinado

Quando o pipeline de treinamento personalizado for concluído, será possível encontrar o modelo treinado no Console do Google Cloud, na seção "Vertex AI", na página Modelos.

Acessar a página "Modelos"

O modelo tem o nome hello_custom.

A seguir

Siga a próxima página deste tutorial para exibir previsões no seu modelo treinado de ML.