Aulas de formação

O SDK Vertex AI inclui várias classes que usa quando treina o seu modelo. A maioria das classes de preparação é usada para criar, preparar e devolver o seu modelo. Use o HyperparameterTuningJob para ajustar os hiperparâmetros da tarefa de preparação. Use o PipelineJob para gerir o seu fluxo de trabalho de aprendizagem automática (ML) para que possa automatizar e monitorizar os seus sistemas de ML.

Os tópicos seguintes fornecem uma descrição de nível elevado de cada classe relacionada com o treino no SDK do Vertex AI.

Classes de preparação do AutoML para dados estruturados

O SDK do Vertex AI inclui as seguintes classes que são usadas para preparar um modelo AutoML estruturado.

AutoMLForecastingTrainingJob

A classe AutoMLForecastingTrainingJob usa o método de preparação AutoML para preparar e executar um modelo de previsão. O método de preparação AutoML é uma boa escolha para a maioria dos exemplos de utilização de previsões. Se o seu exemplo de utilização não beneficiar do método de preparação Seq2seq ou Temporal fusion transformer que as classes SequenceToSequencePlusForecastingTrainingJob e TemporalFusionTransformerForecastingTrainingJob oferecem, respetivamente, é provável que AutoML seja o melhor método de preparação para as suas previsões.

Para ver um código de exemplo que lhe mostra como usar AutoMLForecastingTrainingJob, consulte o exemplo de previsão de criação de um pipeline de preparação no GitHub.

AutoMLTabularTrainingJob

A classe AutoMLTabularTrainingJob representa uma tarefa que cria, prepara e devolve um modelo tabular AutoML. Para mais informações sobre a preparação de modelos tabulares e o Vertex AI, consulte os artigos Dados tabulares e Vista geral dos dados tabulares.

O seguinte fragmento de código de exemplo mostra como pode usar o SDK do Vertex AI para criar e executar um AutoMLmodelo tabular:

dataset = aiplatform.TabularDataset('projects/my-project/location/us-central1/datasets/{DATASET_ID}')

job = aiplatform.AutoMLTabularTrainingJob(
  display_name="train-automl",
  optimization_prediction_type="regression",
  optimization_objective="minimize-rmse",
)

model = job.run(
    dataset=dataset,
    target_column="target_column_name",
    training_fraction_split=0.6,
    validation_fraction_split=0.2,
    test_fraction_split=0.2,
    budget_milli_node_hours=1000,
    model_display_name="my-automl-model",
    disable_early_stopping=False,
)

SequenceToSequencePlusForecastingTrainingJob

A classe SequenceToSequencePlusForecastingTrainingJob usa o método de preparação Seq2seq+ para preparar e executar um modelo de previsão. O método de preparação Seq2seq+ é uma boa escolha para a experimentação. O seu algoritmo é mais simples e usa um espaço de pesquisa mais pequeno do que a opção AutoML. Seq2seq+ é uma boa opção se quiser resultados rápidos e os seus conjuntos de dados forem inferiores a 1 GB.

Para ver um código de exemplo que lhe mostra como usar SequenceToSequencePlusForecastingTrainingJob, consulte o exemplo de previsão Seq2seq de criação de uma pipeline de preparação no GitHub.

TemporalFusionTransformerForecastingTrainingJob

A classe TemporalFusionTransformerForecastingTrainingJob usa o método de preparação do transformador de fusão temporal (TFT) para preparar e executar um modelo de previsão. O método de preparação do TFT implementa um modelo de rede neural profunda (DNN) baseado em atenção que usa uma tarefa de previsão multi-horizon para produzir previsões.

Para ver um código de exemplo que lhe mostra como usar TemporalFusionTransformerForecastingTrainingJob, consulte o exemplo de criação de uma previsão de pipeline de preparação do Transformer de fusão temporal no GitHub.

TimeSeriesDenseEncoderForecastingTrainingJob

A classe TimeSeriesDenseEncoderForecastingTrainingJob usa o método de preparação do codificador denso de séries cronológicas (TiDE) para preparar e executar um modelo de previsão. O TiDE usa um perceção multicamadas (MLP) para fornecer a velocidade de previsão de modelos lineares com covariáveis e dependências não lineares. Para mais informações sobre o TiDE, consulte o artigo Avanços recentes na previsão profunda de longo prazo e esta publicação no blogue sobre o TiDE.

Aulas de preparação do AutoML para dados não estruturados

O SDK do Vertex AI inclui as seguintes classes para formar modelos de imagens não estruturadas:

AutoMLImageTrainingJob

Use a classe AutoMLImageTrainingJob para criar, preparar e devolver um modelo de imagem. Para mais informações sobre como trabalhar com modelos de dados de imagens no Vertex AI, consulte o artigo Dados de imagens.

Para ver um exemplo de como usar a classe AutoMLImageTrainingJob, consulte o tutorial no bloco de notas de classificação de imagens do AutoML.

Classes de preparação de dados personalizados

Pode usar o SDK do Vertex AI para automatizar um fluxo de trabalho de preparação personalizado. Para obter informações sobre a utilização do Vertex AI para executar aplicações de preparação personalizada, consulte o artigo Vista geral da preparação personalizada.

O SDK da Vertex AI inclui três classes que criam um pipeline de preparação personalizado. Um pipeline de preparação aceita um conjunto de dados gerido do Vertex AI de entrada que usa para preparar um modelo. Em seguida, devolve o modelo após a conclusão da tarefa de preparação. Cada uma das três classes de pipelines de preparação personalizados cria um pipeline de preparação de forma diferente. CustomTrainingJob usa um script Python, CustomContainerTrainingJob usa um contentor personalizado e CustomPythonPackageTrainingJob usa um pacote Python e um contentor pré-criado.

A classe CustomJob cria uma tarefa de preparação personalizada, mas não é um pipeline. Ao contrário de um pipeline de preparação personalizado, a classe CustomJob pode usar um conjunto de dados que não seja um conjunto de dados gerido do Vertex AI para preparar um modelo e não devolve o modelo preparado. Uma vez que a classe aceita diferentes tipos de conjuntos de dados e não devolve um modelo preparado, é menos automatizada e mais flexível do que um pipeline de preparação personalizado.

CustomContainerTrainingJob

Use a classe CustomContainerTrainingJob para usar um contentor para iniciar um pipeline de preparação personalizado no Vertex AI.

Para ver um exemplo de como usar a classe CustomContainerTrainingJob, consulte o tutorial no bloco de notas PyTorch Image Classification Multi-Node Distributed Data Parallel Training on GPU using Vertex AI Training with Custom Container.

CustomJob

Use a classe CustomJob para usar um script para iniciar uma tarefa de preparação personalizada no Vertex AI.

Uma tarefa de preparação é mais flexível do que um pipeline de preparação porque não tem restrições quanto ao carregamento dos dados num conjunto de dados gerido pelo Vertex AI e não é registada uma referência ao modelo após a conclusão da tarefa de preparação. Por exemplo, pode querer usar a classe CustomJob, o respetivo método from_local_script e um script para carregar um conjunto de dados de scikit-learn ou TensorFlow. Em alternativa, pode querer analisar ou testar o modelo preparado antes de o registar no Vertex AI.

Para mais informações sobre tarefas de preparação personalizadas, incluindo requisitos antes de enviar uma tarefa de preparação personalizada, o que uma tarefa personalizada inclui e um exemplo de código Python, consulte o artigo Crie tarefas de preparação personalizadas.

Uma vez que o CustomJob.run não devolve o modelo preparado, tem de usar um script para escrever o artefacto do modelo numa localização, como um contentor do Cloud Storage. Para mais informações, consulte o artigo Exporte um modelo de ML preparado.

O seguinte código de exemplo demonstra como criar e executar uma tarefa personalizada usando uma especificação de conjunto de trabalhadores de exemplo. O código escreve o modelo preparado num contentor do Cloud Storage denominado artifact-bucket.

# Create a worker pool spec that specifies a TensorFlow cassava dataset and
# includes the machine type and Docker image. The Google Cloud project ID
# is 'project-id'.
worker_pool_specs=[
     {
        "replica_count": 1,
        "machine_spec": { "machine_type": "n1-standard-8",
                          "accelerator_type": "NVIDIA_TESLA_V100",
                          "accelerator_count": 1
        },
        "container_spec": {"image_uri": "gcr.io/{project-id}/multiworker:cassava"}
      },
      {
        "replica_count": 1,
        "machine_spec": { "machine_type": "n1-standard-8",
                          "accelerator_type": "NVIDIA_TESLA_V100",
                          "accelerator_count": 1
        },
        "container_spec": {"image_uri": "gcr.io/{project-id}/multiworker:cassava"}
      }
]

# Use the worker pool spec to create a custom training job. The custom training
# job artifacts are stored in the Cloud Storage bucket
# named 'artifact-bucket'.
your_custom_training_job = aiplatform.CustomJob(
                                      display_name='multiworker-cassava-sdk',
                                      worker_pool_specs=worker_pool_specs,
                                      staging_bucket='gs://{artifact-bucket}')

# Run the training job. This method doesn't return the trained model.
my_multiworker_job.run()

CustomPythonPackageTrainingJob

Use a classe CustomPythonPackageTrainingJob para usar um pacote Python para iniciar um pipeline de preparação personalizado no Vertex AI.

Para ver um exemplo de como usar a classe CustomPythonPackageTrainingJob, consulte o tutorial no bloco de notas Preparação personalizada com o pacote Python, conjunto de dados de texto gerido e contentor do TensorFlow Serving.

CustomTrainingJob

Use a classe CustomTrainingJob para iniciar um pipeline de preparação personalizado no Vertex AI com um script.

Para ver um exemplo de como usar a classe CustomTrainingJob, consulte o tutorial no bloco de notas Custom training image classification model for online prediction with explainability.

Aula de formação de hiperparâmetros

O SDK Vertex AI inclui uma classe para o aperfeiçoamento de hiperparâmetros. O ajuste dos hiperparâmetros maximiza a precisão das previsões do seu modelo através da otimização das variáveis (conhecidas como hiperparâmetros) que regem o processo de preparação. Para mais informações, consulte a Vista geral do aperfeiçoamento de hiperparâmetros.

HyperparameterTuningJob

Use a classe HyperparameterTuningJob para automatizar o ajuste de hiperparâmetros numa aplicação de preparação.

Para saber como usar a classe HyperparameterTuningJob para criar e ajustar um modelo com preparação personalizada, consulte o tutorial de ajuste de hiperparâmetros no GitHub.

Para saber como usar a classe HyperparameterTuningJob para executar uma tarefa de hiperaperfeiçoamento dos parâmetros da Vertex AI para um modelo do TensorFlow, consulte o tutorial Execute o hiperaperfeiçoamento dos parâmetros para um modelo do TensorFlow no GitHub.

Aula de formação em pipelines

Um pipeline organiza o seu fluxo de trabalho de ML no Vertex AI. Pode usar um pipeline para automatizar, monitorizar e governar os seus sistemas de aprendizagem automática. Para saber mais sobre os pipelines no Vertex AI, consulte o artigo Introdução aos pipelines do Vertex AI.

PipelineJob

Uma instância da classe PipelineJob representa um pipeline do Vertex AI.

Existem vários blocos de notas de tutoriais que demonstram como usar a classe PipelineJob:

Para ver mais notebooks de tutoriais, consulte os tutoriais de notebooks do Vertex AI.

O que se segue?