Classes de treinamento

O SDK da Vertex AI inclui várias classes que você usa ao treinar seu modelo. A maioria das classes de treinamento é usada para criar, treinar e retornar o modelo. Use HyperparameterTuningJob para ajustar os hiperparâmetros do job de treinamento. Use o fluxo de trabalho de PipelineJob para gerenciar seu machine learning (ML) para automatizar e monitorar seus sistemas de ML.

Os tópicos a seguir fornecem uma descrição de alto nível de cada classe relacionada ao treinamento no SDK da Vertex AI.

Aulas de treinamento do AutoML para dados estruturados

O SDK da Vertex AI inclui as seguintes classes usadas para treinar um modelo estruturado do AutoML.

AutoMLForecastingTrainingJob

A classe AutoMLForecastingTrainingJob usa o método de treinamento AutoML para treinar e executar um modelo de previsão. O método de treinamento AutoML é uma boa opção para a maioria dos casos de uso de previsão. Se seu caso de uso não se beneficiar do Seq2seq ou Temporal fusion transformer método de treinamento oferecido pelo SequenceToSequencePlusForecastingTrainingJob e TemporalFusionTransformerForecastingTrainingJob classes, respectivamente,AutoML provavelmente é o melhor método de treinamento para as previsões.

Para ver um exemplo de código que mostra como usar o AutoMLForecastingTrainingJob, consulte o Criar um exemplo de previsão de pipeline de treinamento (em inglês) no GitHub.

AutoMLTabularTrainingJob

A classe AutoMLTabularTrainingJob representa um job que cria, treina e retorna um modelo tabular do AutoML. Para mais informações sobre o treinamento de modelos tabulares e a Vertex AI, consulte Dados tabulares e Visão geral de dados tabulares.

O snippet de exemplo de código a seguir mostra como usar o SDK da Vertex AI para criar e executar um modelo tabular do AutoML:

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 treinamento Seq2seq+ para treinar e executar um modelo de previsão. O método de treinamento Seq2seq+ é uma boa opção para testes. O algoritmo é mais simples e usa um espaço de pesquisa menor do que a opção AutoML. Seq2seq+ é uma boa opção se você quer resultados rápidos e os conjuntos de dados têm menos de 1 GB.

Para ver um exemplo de código que mostra como usar o SequenceToSequencePlusForecastingTrainingJob, consulte o exemplo de criação de um pipeline de previsão Seq2seq (em inglês) no GitHub.

TemporalFusionTransformerForecastingTrainingJob

A classe TemporalFusionTransformerForecastingTrainingJob usa o método de treinamento do Transformador de fusão temporal (TFT, na sigla em inglês) para treinar e executar um modelo de previsão. O método de treinamento TFT implementa um modelo de rede neural profunda (DNN, na sigla em inglês) baseado em atenção que usa uma tarefa de previsão em vários horizontes para produzir previsões.

Para um código de amostra que mostre como usar o TemporalFusionTransformerForecastingTrainingJob, consulte a amostra de transformador de fusão temporal de previsão do pipeline de treinamento no GitHub.

TimeSeriesDenseEncoderForecastingTrainingJob

A classe TimeSeriesDenseEncoderForecastingTrainingJob usa o método de treinamento Codificador denso de série temporal (TiDE, na sigla em inglês) para treinar e executar um modelo de previsão. O TiDE usa um perceptron de várias camadas (MLP, na sigla em inglês) para fornecer a velocidade de previsão de modelos lineares com covariáveis e dependências não lineares. Para saber mais sobre o TiDE, consulte Avanços recentes na previsão profunda de longo horizonte e esta postagem do blog sobre o TiDE.

Classes de treinamento do AutoML para dados não estruturados

O SDK da Vertex AI inclui as seguintes classes para treinar modelos de imagens, textos e vídeos não estruturados:

AutoMLImageTrainingJob

Use a classe AutoMLImageTrainingJob para criar, treinar e retornar um modelo de imagem. Para mais informações sobre como trabalhar com modelos de dados de imagens na Vertex AI, consulte Dados de imagens.

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

AutoMLTextTrainingJob

Use a classe AutoMLTextTrainingJob para criar, treinar e retornar um modelo de texto. Para mais informações sobre como trabalhar com modelos de dados de texto na Vertex AI, consulte Dados de texto.

Para ver um exemplo de como usar o AutoMLTextTrainingJob consulte o tutorial naModelo de extração de entidade de texto de treinamento do AutoML para previsão on-line notebook.

AutoMLVideoTrainingJob

Use a classe AutoMLVideoTrainingJob para criar, treinar e retornar um modelo de vídeo. Para mais informações sobre como trabalhar com modelos de dados de vídeo na Vertex AI, consulte Dados de vídeo.

Para ver um exemplo de como usar o AutoMLVideoTrainingJob consulte o tutorial naModelo de reconhecimento da ação em vídeo de treinamento do AutoML para previsão em lote notebook.

Aulas personalizadas de treinamento de dados

É possível usar o SDK da Vertex AI para automatizar um fluxo de trabalho de treinamento personalizado. Para informações sobre como usar a Vertex AI para executar aplicativos de treinamento personalizados, consulte Visão geral do treinamento personalizado.

O SDK da Vertex AI inclui três classes que criam um pipeline de treinamento personalizado. Um pipeline de treinamento aceita um conjunto de dados gerenciado de entrada da Vertex AI usado para treinar um modelo. Em seguida, ele retorna o modelo após a conclusão do job de treinamento. Cada uma das três classes de pipeline de treinamento personalizado cria um pipeline de treinamento de maneira diferente. CustomTrainingJobusa um script Python; CustomContainerTrainingJob usa um contêiner personalizado; e CustomPythonPackageTrainingJob usa um pacote Python e um contêiner pré-criado.

A classe CustomJob cria um job de treinamento personalizado, mas não é um pipeline. Ao contrário de um pipeline de treinamento personalizado, o CustomJob pode usar um conjunto de dados gerenciado pela Vertex AI para treinar um modelo e não retorna o modelo treinado. Como a classe aceita diferentes tipos de conjuntos de dados e não retorna um modelo treinado, ela é menos automatizada e mais flexível do que um pipeline de treinamento personalizado.

CustomContainerTrainingJob

Use a classe CustomContainerTrainingJob para usar um contêiner e iniciar um pipeline de treinamento personalizado na Vertex AI.

Para um exemplo de como usar a classe CustomContainerTrainingJob, consulte o tutorial no treinamento em paralelo de dados distribuídos para vários nós da PyTorch na GPU. usando o notebook da Vertex AI com contêiner personalizado.

CustomJob

Use a classe CustomJob para usar um script para iniciar um job de treinamento personalizado na Vertex AI.

Um job de treinamento é mais flexível do que um pipeline de treinamento porque você não tem restrições para carregar seus dados em um conjunto de dados gerenciado da Vertex AI. Além disso, uma referência ao seu modelo não é registrada após a conclusão do job de treinamento. Por exemplo, convém usar a classe CustomJob, o método from_local_script e um script a ser carregado. um conjunto de dados do scikit-learn ou do TensorFlow; Você também pode querer analisar ou testar seu modelo treinado antes que ele seja registrado na Vertex AI.

Para mais informações sobre jobs de treinamento personalizados, incluindo requisitos antes de enviar um job de treinamento personalizado, o que um job personalizado inclui e um exemplo de código Python, consulte Criar jobs de treinamento personalizados. (em inglês).

Como o CustomJob.run não retorna o modelo treinado, é necessário usar um script para gravar o artefato do modelo em um local, como um Cloud Storage. Para mais informações, consulte Exportar um modelo de ML treinado.

Na amostra de código a seguir, demonstramos como criar e executar um job personalizado usando uma especificação de pool de workers de amostra. O código grava o modelo treinado em um bucket do Cloud Storage chamado 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 treinamento personalizado na Vertex AI.

Para ver um exemplo de como usar a classe CustomPythonPackageTrainingJob, consulte o tutorial no treinamento personalizado usando o pacote do Python, o conjunto de dados de texto gerenciado e o TensorFlow. notebook de contêiner.

CustomTrainingJob

Use a classe CustomTrainingJob para iniciar um pipeline de treinamento personalizado na Vertex AI com um script.

Para um exemplo de como usar a classe CustomTrainingJob, consulte o tutorial no Modelo de classificação de imagem de treinamento personalizado para previsão on-line com Notebook.

Classe de treinamento de hiperparâmetros

O SDK da Vertex AI inclui uma classe para o ajuste de hiperparâmetros. O ajuste de hiperparâmetros maximiza a acurácia das previsões do modelo com a otimização de variáveis conhecidas como hiperparâmetros, que controlam o processo de treinamento. Para mais informações, consulte Visão geral do ajuste de hiperparâmetros.

HyperparameterTuningJob

Use a classe HyperparameterTuningJob para automatizar o ajuste de hiperparâmetros em um aplicativo de treinamento.

Para saber como usar a classe HyperparameterTuningJob para criar e ajustar um modelo treinado personalizado, consulte o tutorial Ajuste de hiperparâmetros no GitHub.

Para saber como usar a classe HyperparameterTuningJob para executar um job de ajuste de hiperparâmetros da Vertex AI para um modelo do TensorFlow, consulte Executar o ajuste de hiperparâmetros para um modelo do TensorFlow no GitHub.

Classe de treinamento do pipeline

Um pipeline orquestra o fluxo de trabalho de ML na Vertex AI. É possível usar um pipeline para automatizar, monitorar e controlar seus sistemas de machine learning. Para saber mais sobre pipelines na Vertex AI, consulte Introdução aos pipelines da Vertex AI.

PipelineJob

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

Há vários notebooks de tutorial que demonstram como usar a classe PipelineJob:

Para mais notebooks de tutoriais, consulte Tutoriais de notebook da Vertex AI.

A seguir