Um contentor personalizado é uma imagem Docker que cria para executar a sua aplicação de preparação. Ao executar a tarefa de preparação de aprendizagem automática (ML) num contentor personalizado, pode usar frameworks de ML, dependências não relacionadas com ML, bibliotecas e ficheiros binários que não são suportados de outra forma no Vertex AI.
Como funciona a preparação com contentores
A sua aplicação de preparação, implementada na framework de ML à sua escolha, é o núcleo do processo de preparação.
Crie uma aplicação que prepare o seu modelo com a framework de AA à sua escolha.
Decida se quer usar um contentor personalizado. Pode existir um contentor pré-criado que já suporte as suas dependências. Caso contrário, tem de criar um contentor personalizado para a sua tarefa de preparação. No seu contentor personalizado, pré-instale a sua aplicação de preparação e todas as respetivas dependências numa imagem usada para executar a sua tarefa de preparação.
Armazene os seus dados de preparação e validação numa origem à qual o Vertex AI possa aceder. Para simplificar a autenticação e reduzir a latência, armazene os seus dados no Cloud Storage, no Bigtable ou noutroGoogle Cloud serviço de armazenamento no mesmo Google Cloud projeto e região que está a usar para o Vertex AI. Saiba mais sobre as formas como a Vertex AI pode carregar os seus dados.
Quando a sua aplicação estiver pronta para ser executada, tem de criar a imagem do Docker e enviá-la para o Artifact Registry ou o Docker Hub, certificando-se de que o Vertex AI consegue aceder ao seu registo.
Envie a sua tarefa de preparação personalizada criando uma tarefa personalizada ou criando um pipeline de preparação personalizado.
A Vertex AI configura recursos para a sua tarefa. Aloca uma ou mais máquinas virtuais (denominadas instâncias de preparação) com base na configuração do seu trabalho. Configura uma instância de preparação usando o contentor personalizado que especifica como parte do objeto
WorkerPoolSpec
quando envia a sua tarefa de preparação personalizada.O Vertex AI executa a sua imagem Docker, transmitindo todos os argumentos da linha de comandos que especificar quando criar a tarefa de preparação.
Quando a tarefa de preparação é bem-sucedida ou encontra um erro irrecuperável, o Vertex AI interrompe todos os processos da tarefa e limpa os recursos.
Vantagens dos contentores personalizados
Os contentores personalizados permitem-lhe especificar e pré-instalar todas as dependências necessárias para a sua aplicação.
- Arranque mais rápido. Se usar um contentor personalizado com as dependências pré-instaladas, pode poupar o tempo que a aplicação de preparação demoraria a instalar as dependências no arranque.
- Use a estrutura de AA da sua preferência. Se não conseguir encontrar um contentor pré-criado do Vertex AI com a framework de ML que quer usar, pode criar um contentor personalizado com a framework escolhida e usá-lo para executar tarefas no Vertex AI. Por exemplo, pode usar um contentor de cliente para preparar o modelo com o PyTorch.
- Apoio técnico alargado para preparação distribuída. Com os contentores personalizados, pode fazer a preparação distribuída usando qualquer framework de ML.
- Use a versão mais recente. Também pode usar a versão mais recente ou uma versão secundária
de uma framework de ML. Por exemplo, pode
criar um contentor personalizado para fazer a preparação com o
tf-nightly
.
Aperfeiçoamento de hiperparâmetros com contentores personalizados
Para fazer a otimização de hiperparâmetros na Vertex AI, especifica métricas de objetivos, juntamente com a indicação de se deve minimizar ou maximizar cada métrica. Por exemplo, pode querer maximizar a precisão do modelo ou minimizar a perda do modelo. Também indica os hiperparâmetros que quer ajustar, juntamente com o intervalo de valores aceitáveis para cada hiperparâmetro. O Vertex AI faz várias avaliações da sua aplicação de preparação, monitorizando e ajustando os hiperparâmetros após cada avaliação. Quando a tarefa de ajuste de hiperparâmetros estiver concluída, o Vertex AI comunica os valores da configuração mais eficaz dos seus hiperparâmetros e um resumo de cada tentativa.
Para fazer o ajuste de hiperparâmetros com contentores personalizados, tem de fazer os seguintes ajustes:
- No seu Dockerfile: instale
cloudml-hypertune
. - No seu código de preparação:
- Use
cloudml-hypertune
para comunicar os resultados de cada teste chamando a respetiva função auxiliar,report_hyperparameter_tuning_metric
. - Adicione argumentos da linha de comandos para cada hiperparâmetro e processe a análise de argumentos com um analisador de argumentos, como
argparse
.
- Use
Veja como configurar uma tarefa de hiperaperfeiçoamento dos parâmetros que usa contentores personalizados ou saiba mais sobre como o hiperaperfeiçoamento dos parâmetros funciona no Vertex AI.
GPUs em contentores personalizados
Para a preparação com GPUs, o seu contentor personalizado tem de cumprir alguns requisitos especiais. Tem de criar uma imagem do Docker diferente da que usaria para a preparação com CPUs.
- Pré-instale o conjunto de ferramentas CUDA e o cuDNN na sua imagem do Docker. A forma recomendada de criar um contentor personalizado com suporte para GPUs é usar a imagem
nvidia/cuda
como imagem de base para o seu contentor personalizado. A imagem do contentornvidia/cuda
tem versões correspondentes do conjunto de ferramentas CUDA e do cuDNN pré-instaladas, e ajuda a configurar as variáveis de ambiente relacionadas corretamente. - Instale a sua aplicação de preparação, juntamente com a framework de ML necessária e outras dependências na sua imagem do Docker.
Veja um exemplo de Dockerfile para preparação com GPUs.