La funzione ai.forecast in AlloyDB per PostgreSQL consente di eseguire previsioni di serie temporali direttamente sui dati del database utilizzando SQL. Puoi registrare e chiamare modelli di previsione come TimesFM o qualsiasi modello registrato con il tipo di modello ts_forecasting per prevedere le tendenze future dai dati storici. Per ulteriori informazioni sull'architettura TimesFM, consulta il blog di ricerca di TimesFM.
Prima di iniziare
Prima di poter eseguire la previsione delle serie temporali, devi attivare la funzionalità di previsione in AlloyDB e registrare un modello.
Registra un modello di previsione
Con AlloyDB puoi utilizzare vari modelli di previsione.
Questa sezione fornisce istruzioni per la registrazione del modello TimesFM. Per istruzioni sulla registrazione di altri modelli, consulta Registra un endpoint del modello con la gestione degli endpoint del modello.
Utilizza il modello TimesFM
I modelli TimesFM sono disponibili nelle seguenti versioni:
TimesFM 1.0: la versione iniziale del modello TimesFM.
TimesFM 2.0: questa versione contiene un checkpoint con 500 milioni di parametri e il relativo codice di inferenza. Offre prestazioni migliori rispetto al modello 1.0.
TimesFM 2.5: questa versione contiene un checkpoint con 200 milioni di parametri e il relativo codice di inferenza. Offre prestazioni del modello migliori rispetto al modello 2.0.
Tutti i modelli sono disponibili in Model Garden per un deployment rapido.
Per utilizzare i modelli TimesFM, devi prima eseguirne il deployment in un endpoint di Gemini Enterprise Agent Platform e poi registrarli in AlloyDB.
Esegui il deployment del modello TimesFM su un endpoint Agent Platform
Puoi eseguire il deployment del modello con un solo clic dalla console Google Cloud o manualmente utilizzando un notebook Colaboratory.
Deployment con un solo clic
Per eseguire il deployment del modello TimesFM utilizzando un deployment con un solo clic, segui questi passaggi:
Nella console Google Cloud , vai alla pagina Model Garden:
Vai a Model Garden- Nel campo Cerca, inserisci
TimesFM. - Nei risultati di ricerca, fai clic su
TimesFM. -
Nella pagina TimesFM, completa i seguenti passaggi:
- Fai clic su Esegui il deployment del modello.
- Seleziona Agent Platform.
Nel riquadro Esegui il deployment su Agent Platform, configura ed esegui il deployment del modello:
- Per utilizzare l'ultima versione del modello TimesFM, seleziona
google/timesfm-2.0nel menu a discesa ID risorsa. - Per semplificare l'identificazione del deployment in un secondo momento, inserisci quanto segue:
- In Nome modello, un
MODEL_NAMEunivoco. - In Nome endpoint, un
ENDPOINT_NAMEunivoco.
- In Nome modello, un
- Per espandere le opzioni di configurazione, in Impostazioni di deployment, fai clic su Avanzate.
- Per garantire la latenza più bassa possibile, nel menu a discesa Regione, seleziona la stessa regione in cui si trova l'istanza AlloyDB.
- Per ottenere le prestazioni migliori, nel menu a discesa Specifica della macchina, seleziona una specifica della macchina appropriata. Tieni presente che una GPU o una TPU potrebbe offrire una latenza inferiore.
Nel menu a discesa Accesso endpoint di Policy di disponibilità, seleziona Pubblico (endpoint condiviso).
In questo modo viene creato un endpoint nel dominio
aiplatformche funziona con AlloyDB.- Per eseguire il deployment del modello su un endpoint gestito, fai clic su Esegui il deployment. Il deployment potrebbe richiedere circa 10-15 minuti.
- Per utilizzare l'ultima versione del modello TimesFM, seleziona
- Dopo il deployment del modello TimesFM, in Endpoint viene visualizzato un link simile a
google_timesfm-VERSION-one-click-deploy. - Per ottenere l'URL della richiesta del modello, fai clic sul link di deployment in Endpoint.
- Nella pagina dei dettagli dell'endpoint, fai clic su Richiesta di esempio.
Nel riquadro Richiesta di esempio, individua e prendi nota dell'URL della richiesta del modello. Utilizza queste informazioni in Registra il modello TimesFM in AlloyDB, ad esempio
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict.Assicurati che l'URL della richiesta contenga
aiplatform.googleapis.com.
Deployment manuale
Per eseguire manualmente il deployment del modello TimesFM utilizzando un blocco note Colaboratory, segui questi passaggi:
-
Vai alla pagina Model Garden nella console Google Cloud :
Vai a Model Garden - Nel campo Cerca, inserisci
TimesFM. - Nei risultati di ricerca, fai clic su
TimesFMper aprire la scheda del modello. - Nella pagina TimesFM, fai clic su CO Apri blocco note.
- Nella finestra Apri notebook, fai clic sul link Colab Enterprise per TimesFM 2.0.
-
Nella pagina Collab Enterprise, completa i seguenti passaggi:
- Per stabilire una connessione all'ambiente di runtime, fai clic su Connetti.
-
(Facoltativo) Se necessario, completa i seguenti passaggi:
-
Nella sezione Prerequisiti di Configura il progetto Google Cloud, imposta
BUCKET_URIeREGION, ad esempio impostaBUCKET_URIsugs://your-unique-bucket-nameeREGIONsuus-central1. - Nel menu a discesa accelerator_type di Esegui il deployment di TimesFM su un endpoint Vertex AI, seleziona un tipo di acceleratore diverso, se necessario.
- In Passaggio 3: imposta l'orizzonte di previsione massimo, compila i campi horizon e max_context, ad esempio imposta
horizonsu128emax_contextsu512.
-
- Deseleziona la casella di controllo
use_dedicated_endpoint. - Esegui tutte le celle nel notebook.
L'output del notebook fornisce i dettagli dell'endpoint nel seguente formato:
projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID. -
Per creare
model_request_urlper la chiamata di creazione del modello SQL, sostituisci gli identificatori del progetto e dell'endpoint con i dettagli dell'endpoint del passaggio precedente come segue:CALL google_ml.create_model( model_id => 'timesfm_v2', model_qualified_name => 'timesfm_v2', model_type => 'ts_forecasting', model_provider => 'google', model_request_url => 'https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict');
Questo
model_request_urlè necessario nella chiamatagoogle_ml.create_modelquando registri il modello TimesFM in AlloyDB, come descritto nella sezione seguente. Per verificare che la funzione
ai.forecastfunzioni come previsto, esegui la seguente query di esempio:SELECT * FROM ai.forecast( source_query=> ' SELECT my_timestamp, my_data_value FROM ( VALUES (CAST(''2025-01-01'' AS TIMESTAMP), 10.0), (CAST(''2025-01-02'' AS TIMESTAMP), 12.0), (CAST(''2025-01-03'' AS TIMESTAMP), 11.0), (CAST(''2025-01-04'' AS TIMESTAMP), 13.0), (CAST(''2025-01-05'' AS TIMESTAMP), 15.0), (CAST(''2025-01-06'' AS TIMESTAMP), 14.0), (CAST(''2025-01-07'' AS TIMESTAMP), 16.0), (CAST(''2025-01-08'' AS TIMESTAMP), 18.0), (CAST(''2025-01-09'' AS TIMESTAMP), 17.0), (CAST(''2025-01-10'' AS TIMESTAMP), 20.0) ) AS t (my_timestamp, my_data_value) ' , model_id => 'timesfm_v2', data_col => 'my_data_value', timestamp_col => 'my_timestamp', -- The rest of the parameters are the same horizon => 7, conf_level => 0.80 );
Registra il modello TimesFM in AlloyDB
Per registrare il modello TimesFM in AlloyDB, segui questi passaggi:
Verifica che l'estensione
google_ml_integrationsia installata nel database AlloyDB che contiene i dati su cui vuoi eseguire le previsioni.Verifica di aver installato la versione 1.4.5 o successiva dell'estensione
google_ml_integration.SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';Di seguito è riportato l'output di esempio:
extversion ------------ 1.4.5 (1 row)Chiama
google_ml.create_modelutilizzando l'URL della richiesta del modello che hai annotato in Registra un modello di previsione.CALL google_ml.create_model( model_id => 'MODEL_ID', model_qualified_name => 'MODEL_QUALIFIED_NAME', model_type => 'ts_forecasting', model_provider => 'google', model_request_url => 'https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict' -- Example endpoint from Model Garden );Sostituisci quanto segue:
MODEL_ID: un identificatore univoco del modello registrato che vuoi utilizzare per la previsione, ad esempiovertex_timesfm.MODEL_QUALIFIED_NAME: un nome definito dall'utente per il modello, ad esempiotimesfm_v2.REGION: la regione in cui si trova l'istanza, ad esempious-central1.PROJECT_ID: il nome del progetto in cui è stato eseguito il deployment del modello, ad esempioforecast_project.ENDPOINT_ID: il nome del deployment del modello, ad esempiomy-timesfm-endpoint.model_request_urlviene fornito da Agent Platform dopo il deployment del modello. Copia l'intero URL dal riquadro Richiesta di esempio nella console Agent Platform. Contiene già le informazioni corrette sul progetto e sull'endpoint.
Genera previsioni
Dopo aver registrato il modello TimesFM e abilitato il flag necessario, puoi generare previsioni passando una tabella di origine o una query con i dati delle serie temporali.
La funzione ai.forecast è documentata separatamente. Per un elenco completo dei parametri, incluse le relative descrizioni ed esempi, consulta il riferimento per la gestione degli endpoint del modello.
Genera previsioni da una tabella di origine
L'esempio seguente mostra come chiamare la funzione ai.forecast utilizzando una tabella di origine per generare previsioni:
SELECT * FROM ai.forecast(
model_id => 'MODEL_ID',
source_table => 'time_series_data',
data_col => 'data_points',
timestamp_col => 'timestamp',
horizon => 2,
conf_level => 0.80
);
Genera previsioni da una query
L'esempio seguente mostra come generare previsioni chiamando la funzione ai.forecast utilizzando una sottoquery come origine dati:
SELECT * FROM ai.forecast(
model_id => 'MODEL_ID',
source_query => 'SELECT * FROM time_series_data ORDER BY timestamp LIMIT 10',
data_col => 'data_points',
timestamp_col => 'timestamp',
horizon => 2,
conf_level => 0.80
);
Utilizza altri modelli di previsione
Puoi utilizzare la funzione ai.forecast con qualsiasi altro modello di previsione delle serie temporali che registri in AlloyDB. La chiave è assicurarsi che il modello sia registrato con il tipo di modello ts_forecasting.
Per istruzioni dettagliate su come registrare diversi tipi di modelli, consulta Registra e chiama modelli di AI remoti utilizzando la gestione degli endpoint dei modelli. Una volta registrato il modello, puoi utilizzarlo con la funzione ai.forecast specificando il relativo model_id.