Eseguire la previsione delle serie temporali

Questa pagina descrive come eseguire previsioni di serie temporali direttamente nel database AlloyDB. Puoi utilizzare vari modelli di previsione, inclusi i modelli TimesFM, per aiutarti a gestire l'incertezza e prendere decisioni strategiche informate. Per maggiori dettagli sul modello, consulta il blog di ricerca TimesFM.

La funzione ai.forecast di AlloyDB è progettata per funzionare con qualsiasi modello registrato con il tipo di modello ts_forecasting, offrendoti la flessibilità di utilizzare il modello migliore per le tue esigenze. Questo documento fornisce una guida dettagliata sull'utilizzo di TimesFM, ma puoi applicare i principi anche ad altri modelli.

Prima di iniziare

Prima di poter eseguire la previsione di serie temporali, devi abilitare la funzionalità di previsione in AlloyDB e registrare un modello.

Registrare un modello di previsione

Puoi utilizzare vari modelli di previsione con AlloyDB.

Questa sezione fornisce istruzioni per la registrazione del modello TimesFM. Per istruzioni sulla registrazione di altri modelli, consulta Registrare un endpoint del modello con la gestione degli endpoint dei modelli.

Utilizzare il modello TimesFM

I modelli TimesFM sono disponibili in due versioni:

  • TimesFM 1.0: la versione iniziale del modello TimesFM.
  • TimesFM 2.0: questa versione è consigliata, in quanto offre un'accuratezza fino al 25% superiore rispetto alla versione 1.0.

Entrambi i modelli sono disponibili in Model Garden per un deployment rapido.

Per utilizzare i modelli TimesFM, devi prima eseguire il deployment del modello TimesFM su un endpoint di Gemini Enterprise Agent Platform e poi registrarlo in AlloyDB.

Eseguire il deployment del modello TimesFM su un endpoint di Agent Platform

Puoi eseguire il deployment del modello utilizzando un deployment con un solo clic dalla Google Cloud console 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:

  1. Nella Google Cloud console, vai alla pagina Model Garden:

    Vai a Model Garden
  2. Nel campo Cerca, inserisci TimesFM.
  3. Nei risultati di ricerca, fai clic su TimesFM.
  4. Nella pagina TimesFM, completa i seguenti passaggi:

  5. Fai clic su Esegui il deployment del modello.
  6. Seleziona Agent Platform.
  7. Nel riquadro Esegui il deployment su Agent Platform, configura ed esegui il deployment del modello:

    1. Per utilizzare l'ultima versione del modello TimesFM, seleziona google/timesfm-2.0 dal menu a discesa ID risorsa.
    2. Per semplificare l'identificazione del deployment in un secondo momento, inserisci quanto segue:
      1. In Nome modello, un MODEL_NAME.
      2. In the Nome endpoint, un ENDPOINT_NAME univoco.
    3. Per espandere le opzioni di configurazione, fai clic su Avanzate in Impostazioni di deployment.
      1. Per garantire la latenza più bassa possibile, seleziona la stessa regione in cui si trova l'istanza AlloyDB dal menu a discesa Regione.
      2. Per ottenere prestazioni ottimali, seleziona una specifica della macchina appropriata dal menu a discesa Specifica macchina. Tieni presente che una GPU o una TPU potrebbe offrire una latenza inferiore.
    4. Seleziona Pubblico (endpoint condiviso) dal menu a discesa Accesso endpoint di Norme di disponibilità.

      Viene creato un endpoint nel dominio aiplatform che funziona con AlloyDB.

    5. Per eseguire il deployment del modello su un endpoint gestito, fai clic su Esegui il deployment. Il deployment potrebbe richiedere circa 10-15 minuti.
  8. Dopo aver eseguito il deployment del modello TimesFM, in Endpoint viene visualizzato un link simile a google_timesfm-VERSION-one-click-deploy.
  9. Per ottenere l'URL della richiesta del modello, fai clic sul link di deployment in Endpoint.
  10. Nella pagina dei dettagli dell'endpoint, fai clic su Richiesta di esempio.
  11. Nel riquadro Richiesta di esempio, individua e prendi nota dell'URL della richiesta del modello. Utilizzerai queste informazioni in Registrare 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 notebook Colaboratory:

  1. Vai alla pagina Model Garden nella Google Cloud console:

    Vai a Model Garden
  2. Nel campo Cerca, inserisci TimesFM.
  3. Nei risultati di ricerca, fai clic su TimesFM per aprire la scheda del modello.
  4. Nella pagina TimesFM, fai clic su CO Open Notebook.
  5. Nella finestra Apri notebook, fai clic sul link Collab Enterprise per TimesFM 2.0.
  6. Nella pagina Collab Enterprise, completa i seguenti passaggi:

    1. Per stabilire una connessione all'ambiente di runtime, fai clic su Connetti.
    2. (Facoltativo) Se necessario, completa i seguenti passaggi:

      • Nella sezione Prerequisiti di Configura progetto Google Cloud, imposta BUCKET_URI e REGION, ad esempio imposta BUCKET_URI su gs://your-unique-bucket-name e REGION su us-central1.

      • Se necessario, seleziona un tipo di acceleratore diverso dal menu a discesa accelerator_type di Esegui il deployment di TimesFM su un endpoint Vertex AI.
      • Nel Passaggio 3: imposta l'orizzonte di previsione massimo, compila i campi horizon e max_context, ad esempio imposta horizon su 128 e max_context su 512.
    3. Deseleziona la casella di controllo use_dedicated_endpoint.
    4. 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.

  7. Per creare model_request_url per 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');

    Avrai bisogno di questo model_request_url nella chiamata the google_ml.create_model quando registri il modello TimesFM in AlloyDB, come descritto nella sezione seguente.

  8. Per verificare che la funzione ai.forecast funzioni 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
    );
Registrare il modello TimesFM in AlloyDB

Per registrare il modello TimesFM in AlloyDB:

  1. Verifica che l'estensione google_ml_integration sia installata nel database AlloyDB che contiene i dati su cui vuoi eseguire le previsioni.

  2. Verifica di aver installato la versione 1.4.5 o successive 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)
    
  3. Chiama google_ml.create_model utilizzando l'URL della richiesta del modello di cui hai preso nota in Registrare 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 per il modello registrato che vuoi utilizzare per la previsione, ad esempio vertex_timesfm.
    • MODEL_QUALIFIED_NAME: un nome definito dall'utente per il modello, ad esempio timesfm_v2.
    • REGION: la regione in cui si trova l'istanza, ad esempio us-central1.
    • PROJECT_ID: il nome del progetto in cui è stato eseguito il deployment del modello, ad esempio forecast_project.
    • ENDPOINT_ID: il nome del deployment del modello, ad esempio my-timesfm-endpoint.

      model_request_url viene fornito da Agent Platform dopo il deployment del modello. Copia l'intero URL dal riquadro Richiesta di esempio nella console di Agent Platform. Contiene già le informazioni corrette sul progetto e sull'endpoint.

    Google Cloud

Generare 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 descrizioni e gli esempi, consulta il riferimento alla gestione degli endpoint dei modelli.

Generare 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
);

Generare 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 1) AS time_series_data',
    data_col => 'data_points',
    timestamp_col => 'timestamp',
    horizon => 2,
    conf_level => 0.80
);

Utilizzare altri modelli di previsione

Puoi utilizzare la funzione ai.forecast con qualsiasi altro modello di previsione di serie temporali registrato 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 Registrare e chiamare 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.

Passaggi successivi