Guia do principiante de treino personalizado

Este guia para principiantes é uma introdução à preparação personalizada no Vertex AI. A preparação personalizada refere-se à preparação de um modelo através de uma framework de ML, como o TensorFlow, o PyTorch ou o XGBoost.

Objetivos de aprendizagem

Nível de experiência do Vertex AI: principiante

Tempo de leitura estimado: 15 minutos

O que vai aprender:

  • Vantagens da utilização de um serviço gerido para preparação personalizada.
  • Práticas recomendadas para a preparação do código de preparação.
  • Como enviar e monitorizar uma tarefa de preparação.

Por que motivo deve usar um serviço de preparação gerido?

Imagine que está a trabalhar num novo problema de ML. Abre um notebook, importa os seus dados e executa a experimentação. Neste cenário, cria um modelo com a estrutura de ML à sua escolha e executa células do bloco de notas para executar um ciclo de preparação. Quando a preparação estiver concluída, avalie os resultados do modelo, faça alterações e, em seguida, volte a executar a preparação. Este fluxo de trabalho é útil para a experimentação, mas, à medida que começa a pensar em criar aplicações de produção com ML, pode descobrir que a execução manual das células do seu bloco de notas não é a opção mais conveniente.

Por exemplo, se o conjunto de dados e o modelo forem grandes, pode experimentar a preparação distribuída. Além disso, num ambiente de produção, é improvável que só precise de formar o modelo uma vez. Ao longo do tempo, volta a formar o modelo para se certificar de que se mantém atualizado e continua a produzir resultados valiosos. Quando quiser automatizar a experimentação em grande escala ou voltar a preparar modelos para uma aplicação de produção, a utilização de um serviço de preparação de ML gerido simplifica os seus fluxos de trabalho.

Este guia apresenta uma introdução à preparação de modelos personalizados no Vertex AI. Uma vez que o serviço de preparação é totalmente gerido, o Vertex AI aprovisiona automaticamente recursos de computação, executa a tarefa de preparação e garante a eliminação dos recursos de computação assim que a tarefa de preparação estiver concluída. Tenha em atenção que existem personalizações, funcionalidades e formas adicionais de interagir com o serviço que não são abordadas aqui. Este guia destina-se a fornecer uma vista geral. Para mais detalhes, consulte a documentação do Vertex AI Training.

Vista geral da formação personalizada

A preparação de modelos personalizados no Vertex AI segue este fluxo de trabalho padrão:

  1. Empacote o código da aplicação de preparação.

  2. Configure e envie uma tarefa de preparação personalizada.

  3. Monitorize a tarefa de preparação personalizada.

Código da aplicação de formação sobre embalagens

A execução de uma tarefa de preparação personalizada no Vertex AI é feita com contentores. Os contentores são pacotes do código da sua aplicação, neste caso, o código de preparação, juntamente com dependências, como versões específicas de bibliotecas necessárias para executar o seu código. Além de ajudar na gestão de dependências, os contentores podem ser executados praticamente em qualquer lugar, o que permite uma maior portabilidade. A criação de um pacote do código de preparação com os respetivos parâmetros e dependências num contentor para criar um componente portátil é um passo importante quando move as suas aplicações de ML do protótipo para a produção.

Antes de poder iniciar uma tarefa de preparação personalizada, tem de criar um pacote da sua aplicação de preparação. Neste caso, a aplicação de preparação refere-se a um ficheiro ou a vários ficheiros que executam tarefas como carregar dados, pré-processar dados, definir um modelo e executar um ciclo de preparação. O serviço de preparação do Vertex AI executa qualquer código que fornecer, pelo que depende inteiramente de si os passos que inclui na sua aplicação de preparação.

O Vertex AI oferece contentores pré-criados para o TensorFlow, o PyTorch, o XGBoost e o Scikit-learn. Estes contentores são atualizados regularmente e incluem bibliotecas comuns que pode precisar no seu código de preparação. Pode optar por executar o seu código de preparação com um destes contentores ou criar um contentor personalizado com o seu código de preparação e dependências pré-instaladas.

Existem três opções para criar pacotes do seu código no Vertex AI:

  1. Envie um único ficheiro Python.
  2. Crie uma distribuição de origem do Python.
  3. Use contentores personalizados.

Ficheiro Python

Esta opção é adequada para experimentação rápida. Pode usar esta opção se todo o código necessário para executar a sua aplicação de preparação estiver num ficheiro Python e um dos contentores de preparação do Vertex AI pré-criados tiver todas as bibliotecas necessárias para executar a sua aplicação. Para ver um exemplo de como criar um pacote da sua aplicação de preparação como um único ficheiro Python, consulte o tutorial do bloco de notas Preparação personalizada e inferência em lote.

Distribuição de origem do Python

Pode criar uma distribuição de origem Python que contenha a sua aplicação de preparação. Armazena a distribuição de origem com o código de preparação e as dependências num contentor do Cloud Storage. Para ver um exemplo de como criar um pacote da sua aplicação de preparação como uma distribuição de origem do Python, consulte o tutorial do bloco de notas Preparar, otimizar e implementar um modelo de classificação do PyTorch.

Contentor personalizado

Esta opção é útil quando quer ter mais controlo sobre a sua aplicação ou quando quer executar código que não foi escrito em Python. Neste caso, tem de escrever um Dockerfile, criar a sua imagem personalizada e enviá-la para o Artifact Registry. Para ver um exemplo de contentorização da sua aplicação de preparação, consulte o tutorial do bloco de notas Crie um perfil do desempenho da preparação de modelos com o Profiler.

Se optar por agrupar o seu código como uma distribuição de origem Python ou como um contentor personalizado, recomendamos que estruture a sua aplicação da seguinte forma:

training-application-dir/
....setup.py
....Dockerfile
trainer/
....task.py
....model.py
....utils.py

Crie um diretório para armazenar todo o código da aplicação de preparação. Neste caso, training-application-dir. Este diretório contém um ficheiro setup.py se estiver a usar uma distribuição de origem do Python ou um ficheiro Dockerfile se estiver a usar um contentor personalizado.

Em ambos os cenários, este diretório de nível superior também contém um subdiretório trainer, que contém todo o código para executar a preparação. Em trainer, task.py é o ponto de entrada principal da sua aplicação. Este ficheiro executa o preparação de modelos. Pode optar por colocar todo o código neste ficheiro, mas para aplicações de produção, é provável que tenha ficheiros adicionais, por exemplo, model.py, data.py e utils.py, entre outros.

Executar treino personalizado

As tarefas de preparação na Vertex AI aprovisionam automaticamente recursos de computação, executam o código da aplicação de preparação e garantem a eliminação dos recursos de computação assim que a tarefa de preparação estiver concluída.

À medida que cria fluxos de trabalho mais complicados, é provável que use o SDK Vertex AI para Python para configurar, enviar e monitorizar as suas tarefas de preparação. No entanto, na primeira vez que executar uma tarefa de preparação personalizada, pode ser mais fácil usar a Google Cloud consola.

  1. Navegue para Preparação na secção Vertex AI da Cloud Console. Pode criar uma nova tarefa de preparação clicando no botão CRIAR. criar tarefa de preparação
  2. Em Método de preparação do modelo, selecione Preparação personalizada (avançada). especificar o método de preparação
  3. Na secção Contentor de preparação, selecione o contentor pré-criado ou personalizado, consoante a forma como preparou a sua aplicação. especifique o contentor de preparação
  4. Em Computação e preços, especifique o hardware para a tarefa de preparação. Para a formação de nó único, só precisa de configurar o Worker Pool 0. Se tiver interesse em executar a preparação distribuída, tem de compreender os outros conjuntos de trabalhadores. Pode saber mais sobre a preparação distribuída.

preparação computacional

A configuração do contentor de inferência é opcional. Se quiser apenas preparar um modelo no Vertex AI e aceder aos artefactos do modelo guardado resultantes, pode ignorar este passo. Se quiser alojar e implementar o modelo resultante no serviço de inferência gerido do Vertex AI, tem de configurar um contentor de inferência. Para saber mais, consulte o artigo Obtenha inferências a partir de um modelo com preparação personalizada.

Monitorização de tarefas de preparação

Pode monitorizar a tarefa de preparação na Google Cloud consola. É apresentada uma lista de todas as tarefas que foram executadas. Pode clicar numa tarefa específica e examinar os registos se algo correr mal.

painel de controlo de formação

Blocos de notas

Vídeo