Questa pagina mostra come addestrare un modello di previsione da un dataset tabellare utilizzando la console Google Cloud o l'API Vertex AI.
Prima di iniziare
Prima di poter addestrare un modello di previsione, devi completare le seguenti operazioni:
Addestra un modello
Google Cloud console
Nella console Google Cloud , nella sezione Vertex AI, vai alla pagina Set di dati.
Fai clic sul nome del set di dati che vuoi utilizzare per addestrare il modello per aprire la pagina dei dettagli.
Se il tipo di dati utilizza set di annotazioni, seleziona quello che vuoi utilizzare per questo modello.
Fai clic su Addestra nuovo modello.
Seleziona Altro.
Nella pagina Metodo di addestramento, configura quanto segue:
Seleziona il metodo di addestramento del modello. Per scoprire di più, consulta Metodi di addestramento dei modelli.
Fai clic su Continua.
Nella pagina Dettagli modello, configura quanto segue:
Inserisci il nome visualizzato per il nuovo modello.
Seleziona la colonna di destinazione.
La colonna target è il valore che il modello prevede. Scopri di più sui requisiti della colonna target.
Se non hai impostato le colonne Identificatore serie e Timestamp nel set di dati, selezionale ora.
Seleziona la granularità dei dati. Seleziona
Daily
se vuoi utilizzare la modellazione degli effetti delle festività. Scopri come scegliere la granularità dei dati.(Facoltativo): nel menu a discesa Regioni per festività, scegli una o più regioni geografiche per attivare la modellazione dell'effetto delle festività. Durante l'addestramento, Vertex AI crea funzionalità categoriche per le festività all'interno del modello in base alla data della colonna Timestamp e alle regioni geografiche specificate. Puoi selezionare questa opzione solo quando la granularità dei dati è impostata su
Daily
. Per impostazione predefinita, la modellazione dell'effetto festività è disattivata. Per scoprire di più sulle regioni geografiche utilizzate per la modellazione degli effetti delle festività, consulta Regioni delle festività.Inserisci la finestra contestuale e l'orizzonte di previsione.
L'orizzonte di previsione determina per quanto lontano nel futuro il modello prevede il valore target per ogni riga di dati di previsione. L'orizzonte di previsione è specificato in unità di granularità dei dati.
La finestra contestuale imposta quanto indietro nel tempo il modello guarda durante l'addestramento (e per le previsioni). In altre parole, per ogni punto dati di addestramento, la finestra di contesto determina quanto indietro nel tempo il modello cerca pattern predittivi. La finestra di contesto è specificata in unità di granularità dei dati.
Se vuoi esportare il set di dati di test in BigQuery, seleziona Esporta il set di dati di test in BigQuery e fornisci il nome della tabella.
Se vuoi controllare manualmente la suddivisione dei dati o configurare la finestra di previsione, apri le opzioni avanzate.
La suddivisione predefinita dei dati è cronologica, con le percentuali standard 80/10/10. Se vuoi specificare manualmente a quale suddivisione vengono assegnate le righe, seleziona Manuale e specifica la colonna Suddivisione dati.
Scopri di più sulle suddivisioni dei dati.
Seleziona una strategia di finestra mobile per la generazione della finestra di previsione. La strategia predefinita è Conteggio.
- Conteggio: imposta il valore per il numero massimo di finestre nella casella di testo fornita.
- Passo: imposta il valore della lunghezza del passo nella casella di testo fornita.
- Colonna: seleziona il nome della colonna appropriato dal menu a discesa fornito.
Per scoprire di più, vedi Strategie per le finestre temporali continue.
Fai clic su Continua.
Nella pagina Training options (Opzioni di addestramento), configura quanto segue:
Se non l'hai ancora fatto, fai clic su Genera statistiche.
La generazione delle statistiche compila i menu a discesa Trasformazione.
Esamina l'elenco delle colonne ed escludi dall'addestramento le colonne che non devono essere utilizzate per addestrare il modello.
Se utilizzi una colonna di suddivisione dati, questa deve essere inclusa.
Rivedi le trasformazioni selezionate per le funzionalità incluse e apporta gli aggiornamenti necessari.
Le righe contenenti dati non validi per la trasformazione selezionata vengono escluse dall'addestramento. Scopri di più sulle trasformazioni.
Per ogni colonna inclusa per l'addestramento, specifica il tipo di funzionalità per il modo in cui la funzionalità si relaziona alla serie temporale e se è disponibile al momento della previsione. Scopri di più su tipo e disponibilità delle funzionalità.
Se vuoi specificare una colonna del peso, modificare l'obiettivo di ottimizzazione rispetto a quello predefinito o attivare la previsione gerarchica, apri Opzioni avanzate.
(Facoltativo) Se vuoi specificare una colonna del peso, selezionala dall'elenco a discesa. Scopri di più sulle colonne di ponderazione.
(Facoltativo) Se vuoi selezionare l'obiettivo di ottimizzazione, selezionalo dall'elenco. Scopri di più sugli obiettivi di ottimizzazione.
(Facoltativo) Se vuoi utilizzare la previsione gerarchica, seleziona Attiva previsione gerarchica. Puoi scegliere tra tre opzioni di raggruppamento:
No grouping
Group by columns
Group all
Puoi anche scegliere di impostare i seguenti pesi della perdita aggregata:
Group total weight
. Questo campo può essere impostato solo se selezioni l'opzioneGroup by columns
oGroup all
.Temporal total weight
.Group temporal total weight
. Questo campo può essere impostato solo se selezioni l'opzioneGroup by columns
oGroup all
.
Scopri di più sulle previsioni gerarchiche.
Fai clic su Continua.
Nella pagina Compute e prezzi, configura quanto segue:
Inserisci il numero massimo di ore per cui vuoi addestrare il modello. Questa impostazione ti aiuta a limitare i costi di addestramento. Il tempo effettivo trascorso può essere superiore a questo valore, perché sono coinvolte altre operazioni nella creazione di un nuovo modello.
Il tempo di addestramento suggerito è correlato alle dimensioni dell'orizzonte di previsione e ai dati di addestramento. La tabella seguente fornisce alcuni esempi di esecuzioni di addestramento per la previsione e l'intervallo di tempo di addestramento necessario per addestrare un modello di alta qualità.
Righe Funzionalità Orizzonte di previsione Tempo di addestramento 12 milioni 10 6 3-6 ore 20 milioni 50 13 6-12 ore 16 milioni 30 365 24-48 ore Per informazioni sui prezzi dell'addestramento, consulta la pagina dei prezzi.
Fai clic su Inizia addestramento.
L'addestramento del modello può richiedere molte ore, a seconda delle dimensioni e della complessità dei dati e del budget di addestramento, se ne hai specificato uno. Puoi chiudere questa scheda e tornarci in un secondo momento. Riceverai un'email al termine dell'addestramento del modello.
API
Seleziona una scheda per la tua lingua o il tuo ambiente:
REST
Per addestrare un modello, utilizza il comando trainingPipelines.create.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: La tua regione.
- PROJECT: il tuo ID progetto
- TRAINING_PIPELINE_DISPLAY_NAME: Nome visualizzato per la pipeline di addestramento creata per questa operazione.
-
TRAINING_TASK_DEFINITION: il metodo di addestramento del modello.
- Time series Dense Encoder (TiDE)
gs://google-cloud-aiplatform/schema/trainingjob/definition/time_series_dense_encoder_forecasting_1.0.0.yaml
- Trasformatore di fusione temporale (TFT)
gs://google-cloud-aiplatform/schema/trainingjob/definition/temporal_fusion_transformer_time_series_forecasting_1.0.0.yaml
- AutoML (L2L)
gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_forecasting_1.0.0.yaml
- Seq2Seq+
gs://google-cloud-aiplatform/schema/trainingjob/definition/seq2seq_plus_time_series_forecasting_1.0.0.yaml
- Time series Dense Encoder (TiDE)
- TARGET_COLUMN: la colonna (valore) che vuoi che questo modello preveda.
- TIME_COLUMN: la colonna dell'ora. Scopri di più.
- TIME_SERIES_IDENTIFIER_COLUMN: la colonna identificatore serie temporale. Scopri di più.
- WEIGHT_COLUMN: (facoltativo) la colonna del peso. Scopri di più.
- TRAINING_BUDGET: il periodo di tempo massimo per cui vuoi che il modello venga addestrato, in ore nodo millesimi (1000 ore nodo millesimi equivalgono a un'ora nodo).
-
GRANULARITY_UNIT: l'unità da utilizzare per la granularità dei dati di addestramento e per l'orizzonte di previsione e la finestra di contesto. Può essere
minute
,hour
,day
,week
,month
oyear
. Selezionaday
se vuoi utilizzare la modellazione degli effetti delle festività. Scopri come scegliere la granularità dei dati. - GRANULARITY_QUANTITY: il numero di unità di granularità che compongono l'intervallo tra le osservazioni nei dati di addestramento. Deve essere 1 per tutte le unità, tranne i minuti, che possono essere 1, 5, 10, 15 o 30. Scopri come scegliere la granularità dei dati.
- GROUP_COLUMNS: Nomi delle colonne nella tabella di input di addestramento che identificano il raggruppamento per il livello gerarchico. Le colonne devono essere `time_series_attribute_columns`. Scopri di più.
- GROUP_TOTAL_WEIGHT: Peso della perdita aggregata del gruppo rispetto alla perdita individuale. Disattivato se impostato su "0.0" o se non è impostato. Se la colonna del gruppo non è impostata, tutte le serie temporali verranno trattate come parte dello stesso gruppo e aggregate in tutte le serie temporali. Scopri di più.
- TEMPORAL_TOTAL_WEIGHT: Peso della perdita aggregata nel tempo rispetto alla perdita individuale. Disattivato se impostato su "0.0" o se non è impostato. Scopri di più.
- GROUP_TEMPORAL_TOTAL_WEIGHT: Peso della perdita aggregata totale (gruppo x tempo) rispetto alla perdita individuale. Disattivato se impostato su "0.0" o se non è impostato. Se la colonna del gruppo non è impostata, tutte le serie temporali verranno trattate come parte dello stesso gruppo e verranno aggregate in tutte le serie temporali. Scopri di più.
-
HOLIDAY_REGIONS: (facoltativo) puoi selezionare una o più regioni geografiche per attivare
la modellazione dell'effetto delle festività. Durante l'addestramento, Vertex AI crea funzionalità categoriche per le festività all'interno del modello in base alla data di TIME_COLUMN e alle regioni geografiche specificate. Per abilitarlo, imposta GRANULARITY_UNIT su
day
e specifica una o più regioni nel campo HOLIDAY_REGIONS. Per impostazione predefinita, la modellazione dell'effetto festività è disattivata. Per saperne di più, consulta la sezione Regioni delle festività. - FORECAST_HORIZON: L'orizzonte di previsione determina per quanto lontano nel futuro il modello prevede il valore target per ogni riga di dati di previsione. L'orizzonte di previsione è specificato in unità di granularità dei dati (GRANULARITY_UNIT). Scopri di più.
- CONTEXT_WINDOW: La finestra contestuale imposta il periodo di tempo che il modello prende in considerazione durante l'addestramento (e per le previsioni). In altre parole, per ogni punto dati di addestramento, la finestra di contesto determina quanto indietro nel tempo il modello cerca pattern predittivi. La finestra di contesto è specificata in unità di granularità dei dati (GRANULARITY_UNIT). Scopri di più.
- OPTIMIZATION_OBJECTIVE: per impostazione predefinita, Vertex AI riduce al minimo l'errore quadratico medio (RMSE). Se vuoi un obiettivo di ottimizzazione diverso per il tuo modello di previsione, scegli una delle opzioni in Obiettivi di ottimizzazione per i modelli di previsione. Se scegli di ridurre al minimo la perdita quantile, devi anche specificare un valore per QUANTILES.
-
PROBABILISTIC_INFERENCE: (facoltativo) se impostato su
true
, i modelli Vertex AI modellano la distribuzione di probabilità della previsione. L'inferenza probabilistica può migliorare la qualità del modello gestendo i dati rumorosi e quantificando l'incertezza. Se vengono specificati QUANTILES, Vertex AI restituisce anche i quantili della distribuzione di probabilità. L'inferenza probabilistica è compatibile solo con i metodi di addestramentoTime series Dense Encoder (TiDE)
eAutoML (L2L)
. Non è compatibile con la previsione gerarchica e con l'obiettivo di ottimizzazioneminimize-quantile-loss
. -
QUANTILES: i quantili da utilizzare per l'ottimizzazione
minimize-quantile-loss
dell'obiettivo e l'inferenza probabilistica. Fornisci un elenco di massimo cinque numeri univoci compresi tra0
e1
esclusi. - TIME_SERIES_ATTRIBUTE_COL: Il nome o i nomi delle colonne che sono attributi delle serie temporali. Scopri di più.
- AVAILABLE_AT_FORECAST_COL: il nome o i nomi delle colonne delle covariate il cui valore è noto al momento della previsione. Scopri di più.
- UNAVAILABLE_AT_FORECAST_COL: il nome o i nomi delle colonne delle covariate il cui valore è sconosciuto al momento della previsione. Scopri di più.
- TRANSFORMATION_TYPE: Il tipo di trasformazione viene fornito per ogni colonna utilizzata per addestrare il modello. Scopri di più.
- COLUMN_NAME: il nome della colonna con il tipo di trasformazione specificato. Deve essere specificata ogni colonna utilizzata per addestrare il modello.
- MODEL_DISPLAY_NAME: il nome visualizzato per il modello appena addestrato.
- DATASET_ID: ID del set di dati di addestramento.
-
Puoi fornire un oggetto
Split
per controllare la suddivisione dei dati. Per informazioni sul controllo della suddivisione dei dati, vedi Controllare la suddivisione dei dati utilizzando REST. -
Puoi fornire un oggetto
windowConfig
per configurare una strategia di finestra mobile per la generazione della finestra di previsione. Per ulteriori informazioni, vedi Configurare la strategia per le finestre temporali continue utilizzando REST. - PROJECT_NUMBER: Il numero di progetto generato automaticamente per il tuo progetto
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
Corpo JSON della richiesta:
{ "displayName": "TRAINING_PIPELINE_DISPLAY_NAME", "trainingTaskDefinition": "TRAINING_TASK_DEFINITION", "trainingTaskInputs": { "targetColumn": "TARGET_COLUMN", "timeColumn": "TIME_COLUMN", "timeSeriesIdentifierColumn": "TIME_SERIES_IDENTIFIER_COLUMN", "weightColumn": "WEIGHT_COLUMN", "trainBudgetMilliNodeHours": TRAINING_BUDGET, "dataGranularity": {"unit": "GRANULARITY_UNIT", "quantity": GRANULARITY_QUANTITY}, "hierarchyConfig": {"groupColumns": GROUP_COLUMNS, "groupTotalWeight": GROUP_TOTAL_WEIGHT, "temporalTotalWeight": TEMPORAL_TOTAL_WEIGHT, "groupTemporalTotalWeight": GROUP_TEMPORAL_TOTAL_WEIGHT} "holidayRegions" : ["HOLIDAY_REGIONS_1", "HOLIDAY_REGIONS_2", ...] "forecast_horizon": FORECAST_HORIZON, "context_window": CONTEXT_WINDOW, "optimizationObjective": "OPTIMIZATION_OBJECTIVE", "quantiles": "QUANTILES", "enableProbabilisticInference": "PROBABILISTIC_INFERENCE", "time_series_attribute_columns": ["TIME_SERIES_ATTRIBUTE_COL_1", "TIME_SERIES_ATTRIBUTE_COL_2", ...] "available_at_forecast_columns": ["AVAILABLE_AT_FORECAST_COL_1", "AVAILABLE_AT_FORECAST_COL_2", ...] "unavailable_at_forecast_columns": ["UNAVAILABLE_AT_FORECAST_COL_1", "UNAVAILABLE_AT_FORECAST_COL_2", ...] "transformations": [ {"TRANSFORMATION_TYPE_1": {"column_name" : "COLUMN_NAME_1"} }, {"TRANSFORMATION_TYPE_2": {"column_name" : "COLUMN_NAME_2"} }, ... }, "modelToUpload": {"displayName": "MODEL_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/trainingPipelines/TRAINING_PIPELINE_ID", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-08-18T01:22:57.479336Z", "updateTime": "2020-08-18T01:22:57.479336Z" }
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Controllare la suddivisione dei dati utilizzando REST
Puoi controllare come vengono suddivisi i dati di addestramento tra i set di addestramento,
convalida e test. Utilizza una colonna di suddivisione per specificare manualmente la suddivisione dei dati per ogni riga e forniscila come parte di un PredefinedSplit
oggetto Split
nel
inputDataConfig
della richiesta JSON.
DATA_SPLIT_COLUMN è la colonna contenente i valori di divisione dei dati
(TRAIN
, VALIDATION
, TEST
).
"predefinedSplit": {
"key": DATA_SPLIT_COLUMN
},
Scopri di più sulle suddivisioni dei dati.
Configura la strategia della finestra mobile utilizzando REST
Puoi fornire un oggetto windowConfig
per configurare una strategia di finestra mobile per
la generazione della finestra di previsione. La strategia predefinita è maxCount
.
Per utilizzare l'opzione
maxCount
, aggiungi quanto segue atrainingTaskInputs
della richiesta JSON. MAX_COUNT_VALUE si riferisce al numero massimo di finestre."windowConfig": { "maxCount": MAX_COUNT_VALUE }, ```
Per utilizzare l'opzione
strideLength
, aggiungi quanto segue atrainingTaskInputs
della richiesta JSON. STRIDE_LENGTH_VALUE si riferisce al valore della lunghezza del passo."windowConfig": { "strideLength": STRIDE_LENGTH_VALUE }, ```
Per utilizzare l'opzione
column
, aggiungi quanto segue atrainingTaskInputs
della richiesta JSON. COLUMN_NAME si riferisce al nome della colonna con valoriTrue
oFalse
."windowConfig": { "column": "COLUMN_NAME" }, ```
Per scoprire di più, vedi Strategie per le finestre temporali continue.