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.
CustomTrainingJob
usa 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 saber como executar um pipeline do Kubeflow Pipelines (KFP), consulte o tutorial Estruturas de controle do pipeline usando o SDK do KFP no GitHub.
Para saber como treinar um modelo de classificação tabular do scikit-learn e criar um job de previsão em lote com um pipeline da Vertex AI, consulte a seção Treinamento e previsão em lote com origem e destino no BigQuery para um tutorial do modelo de classificação tabular personalizado no GitHub.
Para saber como criar um modelo de classificação de imagens do AutoML e usar um pipeline da Vertex AI, consulte o tutorial Pipelines de classificação de imagens do AutoML usando google-cloud-pipeline-components no GitHub.
Para saber como usar um pipeline para criar um modelo de classificação de texto do AutoML, consulte o tutorial Pipelines de classificação de texto do AutoML usando google-cloud-pipeline-components no GitHub.
Para mais notebooks de tutoriais, consulte Tutoriais de notebook da Vertex AI.
A seguir
- Saiba mais sobre o SDK Vertex AI.