Este documento apresenta uma visão geral do fluxo de trabalho tabular para componentes e componentes do TabNet. Para saber como treinar um modelo com o TabNet, consulte Treinar um modelo com o TabNet.
A TabNet usa a atenção sequencial para escolher quais recursos usar em cada etapa de decisão. Isso promove interpretabilidade e aprendizado mais eficiente, porque a capacidade de aprendizado é usada para os atributos mais significativos.
Benefícios
- Seleciona automaticamente o espaço de pesquisa de hiperparâmetros adequado com base no tamanho do conjunto de dados, no tipo de previsão e no orçamento de treinamento.
- Integrado com a Vertex AI. O modelo treinado é um modelo da Vertex AI. Você pode executar previsões em lote ou implantar o modelo para previsões on-line imediatamente.
- Fornece a interpretabilidade inerente do modelo. É possível receber insights sobre quais atributos a TabNet usou para tomar a decisão.
- Oferece suporte ao treinamento de GPUs.
TabNet nos pipelines da Vertex AI
O fluxo de trabalho tabular para treinamento do TabNet é uma instância gerenciada do Vertex AI Pipelines.
O Vertex AI Pipelines é um serviço sem servidor que executa pipelines do Kubeflow. É possível usar pipelines para automatizar e monitorar suas tarefas de machine learning e de preparação de dados. Cada etapa em um pipeline executa parte do fluxo de trabalho do pipeline. Por exemplo, um pipeline pode incluir etapas para dividir dados, transformar tipos de dados e treinar um modelo. Como as etapas são instâncias de componentes do pipeline, as etapas têm entradas, saídas e uma imagem de contêiner. As entradas de etapa podem ser definidas nas entradas do pipeline ou elas podem depender da saída de outras etapas dentro do pipeline. Essas dependências definem o fluxo de trabalho do pipeline como um gráfico acíclico dirigido.
Duas versões do fluxo de trabalho tabular para o treinamento do TabNet estão disponíveis:
- HyperparameterTuningJob procura o melhor conjunto de valores de hiperparâmetros a serem usados para treinamento de modelos.
- Com o CustomJob, é possível especificar os valores de hiperparâmetros a serem usados para o treinamento do modelo. Se você souber exatamente de quais valores de hiperparâmetro é necessário, especifique-os em vez de procurá-los e economizar recursos de treinamento.
Visão geral do pipeline e dos componentes do TabNet CustomJob
O pipeline do TabNet CustomJob pode ser ilustrado pelo seguinte diagrama:
Estes são os componentes do pipeline:
- feature-transform-engine: executa a engenharia de atributos. Consulte Feature Transform Engine para saber mais detalhes.
- split-materialized-data:
divida os dados materializados em um conjunto de treinamento, de avaliação e de teste.
Entrada:
- Dados materializados
materialized_data
.
Saída:
- Divisão de treinamento materializada
materialized_train_split
. - Divisão de avaliação materializada
materialized_eval_split
. - Conjunto de teste materializado
materialized_test_split
.
- Dados materializados
- tabnet-trainer:
realize o treinamento do modelo.
Entrada:
- Valor de referência de instância
instance_baseline
. - Esquema de treinamento
training_schema
. - Saída de transformação
transform_output
. - Divisão materializada do trem
materialized_train_split
. - Divisão de avaliação materializada
materialized_eval_split
. - Conjunto de teste materializado
materialized_test_split
.
Saída:
- modelo final
- Valor de referência de instância
- automl-tabular-infra-validador: valida o modelo treinado enviando uma solicitação de previsão e verificando se ele foi concluído.
- model-upload: fazer upload do modelo do bucket do Cloud Storage do usuário para a Vertex AI como um modelo da Vertex AI.
- condition-run-evaluate-2: Opcional. Use o conjunto de teste para calcular as métricas de avaliação. É executado apenas quando
run_evaluation
está definido comotrue
.
Visão geral do pipeline e dos componentes do TabNet HyperparameterTuningJob
O pipeline do TabNet HyperparameterTuningJob pode ser ilustrado pelo diagrama a seguir:
- feature-transform-engine: executa a engenharia de atributos. Consulte Feature Transform Engine para saber mais detalhes.
- split-materialized-data:
divida os dados materializados em um conjunto de treinamento, de avaliação e de teste.
Entrada:
- Dados materializados
materialized_data
.
Saída:
- Divisão de treinamento materializada
materialized_train_split
. - Divisão de avaliação materializada
materialized_eval_split
. - Conjunto de teste materializado
materialized_test_split
.
- Dados materializados
- get-tabnet-study-spec-params: gere a especificação do estudo com base em uma
configuração do pipeline de treinamento. Se o usuário fornecer valores para
study_spec_parameters_override
, use-os para substituir os valores da especificação do estudo.Entrada:
- Configuração do pipeline de treinamento (
max_trial_count
,prediction_type
). - Estatísticas do conjunto de dados
dataset_stats
- Substituição opcional dos parâmetros de especificações de estudo
study_spec_parameters_override
.
Saída:
- Lista final de hiperparâmetros e os intervalos deles para o job de ajuste de hiperparâmetros.
- Configuração do pipeline de treinamento (
- tabnet-parameter-tuning-job:
execute um ou mais testes de ajuste de hiperparâmetro.
Entrada:
- Valor de referência de instância
instance_baseline
. - Esquema de treinamento
training_schema
. - Saída de transformação
transform_output
. - Divisão materializada do trem
materialized_train_split
. - Divisão de avaliação materializada
materialized_eval_split
. - Conjunto de teste materializado
materialized_test_split
. - Lista de hiperparâmetros e os intervalos deles para o job de ajuste de hiperparâmetros.
- Valor de referência de instância
- get-best-hyperparameter-Tuning-job-trial: selecione o modelo usando o melhor
teste de job de ajuste de hiperparâmetros da etapa anterior.
Saída:
- modelo final
- automl-tabular-infra-validador: valida o modelo treinado enviando uma solicitação de previsão e verificando se ele foi concluído.
- model-upload: fazer upload do modelo do bucket do Cloud Storage do usuário para a Vertex AI como um modelo da Vertex AI.
- condition-run-evaluate-2: Opcional. Use o conjunto de teste para calcular as métricas de avaliação. É executado apenas quando
run_evaluation
está definido comotrue
.