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 AutoML
modelo 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 saber como executar um pipeline do Kubeflow Pipelines (KFP), consulte o tutorial Estruturas de controlo de pipelines com o SDK do KFP no GitHub.
Para saber como preparar um modelo de classificação tabular do scikit-learn e criar uma tarefa de previsão em lote com um pipeline do Vertex AI, consulte o tutorial Preparação e previsão em lote com origem e destino do BigQuery para um 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 do Vertex AI, consulte o tutorial Pipelines de classificação de imagens do AutoML com google-cloud-pipeline-components no GitHub.
Para ver mais notebooks de tutoriais, consulte os tutoriais de notebooks do Vertex AI.
O que se segue?
- Saiba mais sobre o SDK Vertex AI.