Visão geral dos contêineres

No AI Platform Training, os contêineres são um recurso que permite executar seu aplicativo em uma imagem do Docker. É possível criar seu contêiner personalizado para executar jobs no AI Platform Training usando frameworks e versões de ML, além de dependências, bibliotecas e binários não relacionados a ML que, de outro modo, não seriam compatíveis com o AI Platform Training.

Como funciona o treinamento com contêineres

O aplicativo de treinamento implementado no framework de ML escolhido é o núcleo do processo de treinamento.

  1. Crie um aplicativo que treine o modelo usando o framework de ML da sua preferência.
  2. Decida se quer usar um contêiner personalizado. Poderá haver uma versão de ambiente de execução que seja compatível com as dependências. Caso contrário, você precisará criar um contêiner personalizado para o job de treinamento. No contêiner personalizado, você pré-instala o aplicativo de treinamento e todas as respectivas dependências em uma imagem que será usada para executar esse job.
  3. Armazene seus dados de treinamento e verificação em uma fonte acessível ao AI Platform Training. Geralmente, isso significa colocá-los no Cloud Storage, no Bigtable ou em outro serviço do Google Cloud Storage associado ao mesmo projeto do Google Cloud usado no AI Platform Training.
  4. Quando o aplicativo estiver pronto para execução, crie a imagem do Docker e a envie para o Container Registry, certificando-se de que o serviço do AI Platform Training possa acessar o registro.
  5. Use gcloud ai-platform jobs submit training para enviar o job, especificando os argumentos em um arquivo config.yaml ou as sinalizações gcloud correspondentes.
  6. O serviço de treinamento do AI Platform Training configura os recursos para seu job. Ele aloca uma ou mais máquinas virtuais denominadas instâncias de treinamento com base na configuração do job. Para configurar uma instância de treinamento, use o contêiner personalizado especificado como parte do objeto TrainingInput ao enviar o job de treinamento.
  7. O serviço de treinamento executa a imagem do Docker, passando por qualquer argumento de linha de comando especificado ao criar o job.
  8. É possível conseguir informações sobre o job em execução destas maneiras:
  9. Quando o job de treinamento é bem-sucedido ou encontra um erro irrecuperável, o AI Platform Training interrompe todos os processos de job e limpa os recursos.

Vantagens dos contêineres personalizados

Com os contêineres personalizados, você especifica e pré-instala todas as dependências necessárias para o aplicativo.

  • Inicialização mais rápida. Se você usa um contêiner personalizado com dependências pré-instaladas, o aplicativo de treinamento leva menos tempo para instalar suas dependências durante a inicialização.
  • Uso do framework de ML de sua preferência. Se você não encontrar uma versão de ambiente de execução do AI Platform Training compatível com o framework de ML que quer usar, crie um contêiner personalizado que instale o framework escolhido e use-o para executar jobs no AI Platform Training. Por exemplo, é possível fazer treinamentos com o PyTorch.
  • Suporte estendido no treinamento distribuído. Com os contêineres personalizados, você faz treinamento distribuído usando qualquer framework de ML.
  • Uso da versão mais recente. Também é possível usar a compilação mais recente ou a versão secundária de um framework de ML. Por exemplo, é possível criar um contêiner personalizado para fazer treinamentos com tf-nightly.

Ajuste de hiperparâmetro com contêineres personalizados

Para fazer o ajuste de hiperparâmetros no AI Platform Training, você especifica uma métrica de objetivo e informa se quer minimizá-la ou maximizá-la. Por exemplo, aumentar a precisão do modelo ou reduzir a perda dele. Além disso, liste os hiperparâmetros que você quer ajustar, além de um valor de destino para cada um deles. O AI Platform Training realiza várias avaliações do aplicativo de treinamento, rastreando e ajustando os hiperparâmetros após cada avaliação. Quando o job de ajuste de hiperparâmetros é concluído, o AI Platform Training informa os valores da configuração mais eficaz dos seus hiperparâmetros. Ele também apresenta um resumo de cada avaliação.

Para realizar o ajuste de hiperparâmetros com contêineres personalizados, é preciso fazer as modificações a seguir:

Veja um exemplo de treinamento com contêineres personalizados usando o ajuste de hiperparâmetros ou saiba mais sobre como o ajuste de hiperparâmetros funciona no AI Platform Training.

Como usar GPUs com contêineres personalizados

Para fazer o treinamento com GPUs, o contêiner personalizado precisa atender a alguns requisitos especiais. É necessário criar uma imagem do Docker diferente daquela usada para fazer treinamentos com CPUs.

  • Pré-instale o kit de ferramentas CUDA e cuDNN na imagem do Docker. Usar a imagem nvidia/cuda (em inglês) como base é a maneira recomendada de lidar com esse processo. Isso acontece porque ela inclui as versões correspondentes do kit de ferramentas CUDA e cuDNN pré-instaladas e ajuda na configuração correta das variáveis de ambiente relacionadas.
  • Instale o aplicativo de treinamento com o framework de ML necessário e outras dependências na imagem do Docker.

Veja um exemplo de Dockerfile para treinamento com GPUs.

A seguir