Questa pagina mostra come addestrare un modello di previsione da un set di dati tabulare con il flusso di lavoro tabulare per le previsioni.
Per informazioni sugli account di servizio utilizzati da questo flusso di lavoro, consulta Account di servizio per i flussi di lavoro tabulari.
Se viene visualizzato un errore relativo alle quote durante l'esecuzione di Flusso di lavoro tabulare per Per eseguire la previsione, potresti dover richiedere una quota superiore. Per saperne di più, vedi Gestisci le quote per i flussi di lavoro tabulari.
Il flusso di lavoro tabulare per la previsione non supporta l'esportazione del modello.
API Workflow
Questo flusso di lavoro utilizza le seguenti API:
- Vertex AI
- Dataflow
- Compute Engine
- Cloud Storage
Ottieni l'URI del precedente risultato dell'ottimizzazione degli iperparametri
Se hai precedentemente completato l'esecuzione di un flusso di lavoro tabulare per la previsione, puoi usare il risultato dell'ottimizzazione degli iperparametri dell'esecuzione precedente per salvare l'addestramento in termini di tempo e risorse. Puoi trovare il risultato dell'ottimizzazione degli iperparametri precedente utilizzando la console Google Cloud o caricandolo in modo programmatico con l'API.
Console Google Cloud
Per trovare l'URI del risultato dell'ottimizzazione degli iperparametri utilizzando la console Google Cloud, segui questi passaggi:
Nella console Google Cloud, nella sezione Vertex AI, vai alla pagina Pipeline.
Seleziona la scheda Esecuzioni.
Seleziona l'esecuzione della pipeline che vuoi utilizzare.
Seleziona Espandi artefatti.
Fai clic sul componente exit-handler-1.
Fai clic sul componente stage_1_tuning_result_artifact_uri_empty.
Trova il componente automl-forecasting-stage-1-tuner.
Fai clic sull'artefatto associato tuning_result_output.
Seleziona la scheda Informazioni nodo.
Copia l'URI da utilizzare nel passaggio Addestramento di un modello.
API: Python
Il seguente codice campione mostra come caricare l'iperparametro
risultato dell'ottimizzazione mediante l'API. La variabile job
fa riferimento all'esecuzione precedente della pipeline di addestramento del modello.
def get_task_detail(
task_details: List[Dict[str, Any]], task_name: str
) -> List[Dict[str, Any]]:
for task_detail in task_details:
if task_detail.task_name == task_name:
return task_detail
pipeline_task_details = job.gca_resource.job_detail.task_details
stage_1_tuner_task = get_task_detail(
pipeline_task_details, "automl-forecasting-stage-1-tuner"
)
stage_1_tuning_result_artifact_uri = (
stage_1_tuner_task.outputs["tuning_result_output"].artifacts[0].uri
)
Addestra un modello
Il codice campione seguente mostra come eseguire una pipeline di addestramento del modello:
job = aiplatform.PipelineJob(
...
template_path=template_path,
parameter_values=parameter_values,
...
)
job.run(service_account=SERVICE_ACCOUNT)
Il parametro facoltativo service_account
in job.run()
ti consente di impostare l'account di servizio Vertex AI Pipelines su un account a tua scelta.
Vertex AI supporta i seguenti metodi per addestrare il modello:
TiDE (Time Series Dense Encoder). Per usare questo metodo di addestramento, definisci i valori della pipeline e dei parametri utilizzando la seguente funzione:
template_path, parameter_values = automl_forecasting_utils.get_time_series_dense_encoder_forecasting_pipeline_and_parameters(...)
Trasformatore di fusione temporale (TFT). Per utilizzare questo metodo di addestramento del modello, definisci la pipeline e i valori dei parametri utilizzando la seguente funzione:
template_path, parameter_values = automl_forecasting_utils.get_temporal_fusion_transformer_forecasting_pipeline_and_parameters(...)
AutoML (L2L). Per usare questo metodo di addestramento, definisci i valori della pipeline e dei parametri utilizzando la seguente funzione:
template_path, parameter_values = automl_forecasting_utils.get_learn_to_learn_forecasting_pipeline_and_parameters(...)
Seq2Seq+. Per usare questo metodo di addestramento, definisci i valori della pipeline e dei parametri utilizzando la seguente funzione:
template_path, parameter_values = automl_forecasting_utils.get_sequence_to_sequence_forecasting_pipeline_and_parameters(...)
Per scoprire di più, consulta Metodi di addestramento dei modelli.
I dati di addestramento possono essere un file CSV in Cloud Storage o una tabella in BigQuery.
Di seguito è riportato un sottoinsieme dei parametri di addestramento del modello:
Nome parametro | Tipo | Definizione |
---|---|---|
optimization_objective |
Stringa | Per impostazione predefinita, Vertex AI riduce al minimo l'errore quadratico medio (RMSE). Se vuoi un obiettivo di ottimizzazione diverso per il modello di previsione, scegli una delle opzioni in Obiettivi di ottimizzazione per i modelli di previsione. Se scegli di ridurre al minimo la perdita di quantili, devi specificare anche un valore per quantiles . |
enable_probabilistic_inference |
Booleano | Se impostato su true , Vertex AI modella la distribuzione di probabilità della previsione. L'inferenza probabilistica può migliorare la qualità del modello gestendo i dati con rumore e quantificando l'incertezza. Se quantiles sono specificati, Vertex AI restituisce anche i quantili della distribuzione. L'inferenza probabilistica è compatibile solo con i metodi di addestramento Time Series Dense Encoder (TiDE) e AutoML (L2L). L'inferenza probabilistica non è compatibile con l'obiettivo di ottimizzazione minimize-quantile-loss . |
quantiles |
List[float] | Quantili da utilizzare per l'obiettivo di ottimizzazione di minimize-quantile-loss e l'inferenza probabilistica. Fornisci un elenco di massimo cinque numeri univoci compresi tra 0 e 1 . |
time_column |
Stringa | La colonna dell'ora. Per scoprire di più, consulta la sezione Requisiti della struttura dei dati. |
time_series_identifier_columns |
List[str] | Le colonne degli identificatori delle serie temporali. Per saperne di più, consulta i requisiti relativi alla struttura dei dati. |
weight_column |
Stringa | (Facoltativo) La colonna del peso. Per scoprire di più, consulta Aggiungere pesi ai dati di addestramento. |
time_series_attribute_columns |
List[str] | (Facoltativo) Il nome o i nomi delle colonne che sono attributi delle serie temporali. Per saperne di più, vedi Tipo di funzionalità e disponibilità al momento della previsione. |
available_at_forecast_columns |
Elenco[str] | (Facoltativo) Il nome o i nomi delle colonne delle covariate il cui valore è noto al momento della previsione. Per scoprire di più, consulta Tipo di funzionalità e disponibilità al momento della previsione. |
unavailable_at_forecast_columns |
List[str] | (Facoltativo) Il nome o i nomi delle colonne covariate il cui valore non è noto al momento della previsione. Per scoprire di più, consulta Tipo di funzionalità e disponibilità al momento della previsione. |
forecast_horizon |
Numero intero | (Facoltativo) L'orizzonte di previsione determina per quanto lontano nel futuro il modello prevede il valore target per ogni riga di dati di previsione. Per saperne di più, consulta Orizzonte di previsione, finestra di contesto e finestra di previsione. |
context_window |
Numero intero | (Facoltativo) La finestra contestuale imposta quanto indietro può tornare il modello durante per l'addestramento (e per le previsioni). In altre parole, per ogni punto dati di addestramento, la finestra contestuale determina quanto indietro nel tempo il modello cerca pattern. Per saperne di più, consulta Orizzonte di previsione, finestra di contesto e finestra di previsione. |
window_max_count |
Numero intero | (Facoltativo) Vertex AI genera finestre di previsione dai dati di input utilizzando una strategia basata sulle finestre scorrevoli. La strategia predefinita è Conteggio. Il valore predefinito per il numero massimo di finestre è 100,000,000 . Imposta questo parametro per fornire un valore personalizzato per il numero massimo di finestre. Per scoprire di più, consulta la sezione Strategie per le finestre temporali continue. |
window_stride_length |
Numero intero | (Facoltativo) Vertex AI genera finestre di previsione dai dati di input utilizzando una strategia di finestra mobile. Per selezionare la strategia Corsa, imposta questo parametro sul valore della lunghezza del passo. Per scoprire di più, consulta la sezione Strategie per le finestre temporali continue. |
window_predefined_column |
Stringa | (Facoltativo) Vertex AI genera finestre di previsione dai dati di input utilizzando una strategia di finestra mobile. Per selezionare la strategia Colonna, imposta questo parametro sul nome della colonna con valori True o False . Per scoprire di più, consulta la sezione Strategie per le finestre temporali continue. |
holiday_regions |
List[str] | (Facoltativo) Puoi selezionare una o più regioni geografiche per attivare la modellazione degli effetti relativi alle festività. Durante l'addestramento, Vertex AI crea caratteristiche categoriche per le festività all'interno del modello in base alla data time_column e alle regioni geografiche specificate. Per impostazione predefinita, la modellazione degli effetti per le festività è disattivata. Per scoprire di più, consulta la sezione Regioni per le festività. |
predefined_split_key |
Stringa | (Facoltativo) Per impostazione predefinita, Vertex AI utilizza un algoritmo di suddivisione cronologica per separare i dati di previsione nelle tre suddivisioni di dati. Se vuoi controllare le righe di dati di addestramento da utilizzare per ogni suddivisione, fornisci il nome della colonna contenente i valori di suddivisione dei dati (TRAIN , VALIDATION , TEST ). Per saperne di più, consulta Suddivisioni dei dati per le previsioni. |
training_fraction |
Numero in virgola mobile | (Facoltativo) Per impostazione predefinita, Vertex AI utilizza un algoritmo di suddivisione cronologica per separare i dati di previsione nelle tre suddivisioni dei dati. L'80% dei dati viene assegnato al set di addestramento, il 10% alla suddivisione per la convalida e il 10% alla suddivisione per il test. Imposta questo parametro se vuoi personalizzare la frazione di dati assegnata al set di addestramento. Per scoprire di più, consulta Suddivisione dei dati per la previsione. |
validation_fraction |
Numero in virgola mobile | (Facoltativo) Per impostazione predefinita, Vertex AI utilizza un algoritmo di suddivisione cronologica per separare i dati di previsione nelle tre suddivisioni dei dati. L'80% dei dati viene assegnato al set di addestramento, il 10% alla suddivisione per la convalida e il 10% alla suddivisione per il test. Imposta questo parametro se vuoi personalizzare la frazione dei dati assegnata al set di convalida. Per scoprire di più, consulta la sezione Suddivisione dei dati per le previsioni. |
test_fraction |
Numero in virgola mobile | (Facoltativo) Per impostazione predefinita, Vertex AI utilizza un algoritmo di suddivisione cronologica per separare i dati di previsione nelle tre suddivisioni di dati. L'80% dei dati viene assegnato al set di addestramento, il 10% alla suddivisione per la convalida e il 10% alla suddivisione per il test. Imposta questo parametro se vuoi personalizzare la frazione dei dati assegnata al set di test. Per scoprire di più, consulta la sezione Suddivisione dei dati per le previsioni. |
data_source_csv_filenames |
Stringa | Un URI di un file CSV archiviato in Cloud Storage. |
data_source_bigquery_table_path |
Stringa | Un URI di una tabella BigQuery. |
dataflow_service_account |
Stringa | (Facoltativo) Account di servizio personalizzato per eseguire job Dataflow. Il job Dataflow può essere configurato per utilizzare IP privati e una sottorete VPC specifica. Questo parametro agisce da override per l'account di servizio worker predefinito di Dataflow. |
run_evaluation |
Booleano | Se impostato su True , Vertex AI valuta il modello aggregato nel segmento di test. |
evaluated_examples_bigquery_path |
Stringa | Il percorso del set di dati BigQuery utilizzato durante la valutazione del modello. Il set di dati funge da destinazione per gli esempi previsti. Il valore del parametro deve essere impostato se run_evaluation è impostato su True e deve avere il seguente formato: bq://[PROJECT].[DATASET] . |
Trasformazioni
Puoi fornire una mappatura di un dizionario delle risoluzioni automatiche o di tipo alle colonne delle funzionalità. I tipi supportati sono: automatico, numerico, categorico, di testo e timestamp.
Nome parametro | Tipo | Definizione |
---|---|---|
transformations |
Dict[str, List[str]] | Mappatura del dizionario delle risoluzioni automatiche o dei tipi |
Il codice seguente fornisce una funzione di supporto per compilare il parametro transformations
. Dimostra inoltre come utilizzare questa funzione per applicare
trasformazioni in un insieme di colonne definite da una variabile features
.
def generate_transformation(
auto_column_names: Optional[List[str]]=None,
numeric_column_names: Optional[List[str]]=None,
categorical_column_names: Optional[List[str]]=None,
text_column_names: Optional[List[str]]=None,
timestamp_column_names: Optional[List[str]]=None,
) -> List[Dict[str, Any]]:
if auto_column_names is None:
auto_column_names = []
if numeric_column_names is None:
numeric_column_names = []
if categorical_column_names is None:
categorical_column_names = []
if text_column_names is None:
text_column_names = []
if timestamp_column_names is None:
timestamp_column_names = []
return {
"auto": auto_column_names,
"numeric": numeric_column_names,
"categorical": categorical_column_names,
"text": text_column_names,
"timestamp": timestamp_column_names,
}
transformations = generate_transformation(auto_column_names=features)
Per saperne di più sulle trasformazioni, vedi Tipi di dati e trasformazioni.
Opzioni di personalizzazione del flusso di lavoro
Puoi personalizzare il flusso di lavoro tabulare per la previsione definendo un argomento vengono passati durante la definizione della pipeline. Puoi personalizzare del flusso di lavoro nei seguenti modi:
- Configura hardware
- Salta ricerca architettura
Configurare l'hardware
Il seguente parametro di addestramento del modello ti consente di configurare i tipi di macchine e il numero di macchine per l'addestramento. Questa opzione è una buona scelta se hai un set di dati di grandi dimensioni e di voler ottimizzare l'hardware della macchina di conseguenza.
Nome parametro | Tipo | Definizione |
---|---|---|
stage_1_tuner_worker_pool_specs_override |
Detta[Stringa, Qualsiasi] | (Facoltativo) Configurazione personalizzata dei tipi di macchina e del numero di macchine per l'addestramento. Questo parametro configura il componente automl-forecasting-stage-1-tuner della pipeline. |
Il codice seguente mostra come impostare il tipo di macchina n1-standard-8
per
Nodo principale TensorFlow e tipo di macchina n1-standard-4
per
Nodo di valutazione TensorFlow:
worker_pool_specs_override = [
{"machine_spec": {"machine_type": "n1-standard-8"}}, # override for TF chief node
{}, # override for TF worker node, since it's not used, leave it empty
{}, # override for TF ps node, since it's not used, leave it empty
{
"machine_spec": {
"machine_type": "n1-standard-4" # override for TF evaluator node
}
}
]
Salta la ricerca dell'architettura
Il seguente parametro di addestramento del modello ti consente di eseguire la pipeline senza la ricerca dell'architettura e di fornire un insieme di iperparametri da un'esecuzione precedente della pipeline.
Nome parametro | Tipo | Definizione |
---|---|---|
stage_1_tuning_result_artifact_uri |
Stringa | (Facoltativo) URI del risultato dell'ottimizzazione degli iperparametri di un'esecuzione della pipeline precedente. |
Passaggi successivi
- Scopri di più sulle previsioni batch per i modelli di previsione.
- Scopri di più sui prezzi per l'addestramento dei modelli.