Zeitreihenprognosen durchführen

Auf dieser Seite wird beschrieben, wie Sie Zeitreihen-Vorhersagen direkt in Ihrer AlloyDB-Datenbank ausführen. Sie können verschiedene Prognosemodelle verwenden, darunter die TimesFM-Modelle, um mit Unsicherheiten umzugehen und fundierte strategische Entscheidungen zu treffen. Weitere Informationen zum Modell finden Sie im TimesFM-Forschungsblog.

Die ai.forecast-Funktion von AlloyDB ist für die Verwendung mit jedem Modell konzipiert, das mit dem Modelltyp ts_forecasting registriert wurde. So können Sie das Modell verwenden, das am besten zu Ihren Anforderungen passt. In diesem Dokument finden Sie eine detaillierte Anleitung zur Verwendung von TimesFM. Sie können die Prinzipien aber auch auf andere Modelle anwenden.

Hinweis

Bevor Sie Zeitreihenvorhersagen ausführen können, müssen Sie die Prognosefunktion in AlloyDB aktivieren und ein Modell registrieren.

Prognosemodell registrieren

Sie können verschiedene Prognosemodelle mit AlloyDB verwenden.

In diesem Abschnitt finden Sie eine Anleitung zum Registrieren des TimesFM-Modells. Eine Anleitung zum Registrieren anderer Modelle finden Sie unter Modellendpunkt bei der Modellendpunktverwaltung registrieren.

TimesFM-Modell verwenden

Es gibt zwei Versionen von TimesFM-Modellen:

  • TimesFM 1.0: die erste Version des TimesFM-Modells.
  • TimesFM 2.0: Diese Version enthält einen Checkpoint mit 500 Millionen Parametern und den zugehörigen Inferenzcode. Sie bietet eine bessere Modellleistung als das Modell 1.0.
  • TimesFM 2.5: Diese Version enthält einen Checkpoint mit 200 Millionen Parametern und den zugehörigen Inferenzcode. Sie bietet eine bessere Modellleistung als das Modell 2.0.

Alle Modelle sind in Model Garden für die schnelle Bereitstellung verfügbar.

Wenn Sie TimesFM-Modelle verwenden möchten, müssen Sie das TimesFM-Modell zuerst auf einem Gemini Enterprise Agent Platform-Endpunkt bereitstellen und es dann in AlloyDB registrieren.

TimesFM-Modell auf einem Agent Platform-Endpunkt bereitstellen

Sie können das Modell mit einer Bereitstellung mit einem Klick über die Google Cloud Console oder manuell mit einem Colaboratory-Notebook bereitstellen.

Bereitstellung mit nur einem Klick

So stellen Sie das TimesFM-Modell mit einer Bereitstellung mit einem Klick bereit:

  1. Rufen Sie in der Google Cloud Console die Seite Model Garden auf:

    Zu Model Garden
  2. Geben Sie im Feld Search (Suche) TimesFM ein.
  3. Klicken Sie in den Suchergebnissen auf TimesFM.
  4. Führen Sie auf der Seite TimesFM die folgenden Schritte aus:

  5. Klicken Sie auf Modell bereitstellen.
  6. Wählen Sie Agent Platform aus.
  7. Konfigurieren und stellen Sie Ihr Modell im Bereich Deploy on Agent Platform (Auf der Agent Platform bereitstellen) bereit:

    1. Wenn Sie die neueste Version des TimesFM-Modells verwenden möchten, wählen Sie im Drop-down-Menü Resource ID (Ressourcen-ID) die Option google/timesfm-2.0 aus.
    2. Damit Sie die Bereitstellung später leichter identifizieren können, geben Sie Folgendes ein:
      1. Geben Sie unter Model name (Modellname) einen eindeutigen MODEL_NAME ein.
      2. Geben Sie unter Endpoint name (Endpunktname) einen eindeutigen ENDPOINT_NAME ein.
    3. Wenn Sie die Konfigurationsoptionen maximieren möchten, klicken Sie unter Deployment settings (Bereitstellungseinstellungen) auf Advanced (Erweitert).
      1. Wählen Sie im Drop-down-Menü Region (Region) dieselbe Region aus, in der sich Ihre AlloyDB-Instanz befindet, um die niedrigstmögliche Latenz zu gewährleisten.
      2. Wählen Sie im Drop-down-Menü Machine spec (Maschinenspezifikation) eine geeignete Maschinenspezifikation aus, um die beste Leistung zu erzielen. Eine GPU oder TPU bietet möglicherweise eine geringere Latenz.
    4. Wählen Sie im Drop-down-Menü Endpoint access (Endpunktzugriff) unter Availability policies (Verfügbarkeitsrichtlinien) die Option Public (Shared endpoint) (Öffentlich (gemeinsamer Endpunkt)) aus.

      Dadurch wird ein Endpunkt in der Domain aiplatform erstellt, der mit AlloyDB funktioniert.

    5. Wenn Sie das Modell auf einem verwalteten Endpunkt bereitstellen möchten, klicken Sie auf Deploy (Bereitstellen). Die Bereitstellung kann etwa 10 bis 15 Minuten dauern.
  8. Nachdem das TimesFM-Modell bereitgestellt wurde, wird unter Endpoints ein Link ähnlich google_timesfm-VERSION-one-click-deploy angezeigt.
  9. Klicken Sie unter Endpoints (Endpunkte) auf den Bereitstellungslink, um die Modellanfrage-URL abzurufen.
  10. Klicken Sie auf der Seite mit den Endpunktdetails auf Sample request (Beispielanfrage).
  11. Suchen Sie im Bereich Sample request (Beispielanfrage) die Modellanfrage-URL und notieren Sie sie. Sie verwenden diese Informationen unter TimesFM-Modell in AlloyDB registrieren, z. B. https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict.

    Achten Sie darauf, dass die Anfrage-URL aiplatform.googleapis.com enthält.

Manuelle Bereitstellung

So stellen Sie das TimesFM-Modell manuell mit einem Colaboratory-Notebook bereit:

  1. Rufen Sie in der Google Cloud Console die Seite Model Garden auf:

    Zu Model Garden
  2. Geben Sie im Feld Search (Suche) TimesFM ein.
  3. Klicken Sie in den Suchergebnissen auf TimesFM, um die Modellkarte zu öffnen.
  4. Klicken Sie auf der Seite TimesFM auf CO Open Notebook (Notebook in Colab Enterprise öffnen).
  5. Klicken Sie im Fenster Open Notebook (Notebook öffnen) auf den Link Colab Enterprise für TimesFM 2.0.
  6. Führen Sie auf der Seite Colab Enterprise die folgenden Schritte aus:

    1. Klicken Sie auf Connect (Verbinden), um eine Verbindung zur Laufzeitumgebung herzustellen.
    2. Optional: Führen Sie bei Bedarf die folgenden Schritte aus:

      • Legen Sie im Abschnitt Prerequisites (Voraussetzungen) von Setup Google Cloud project (Google Cloud-Projekt einrichten) die BUCKET_URI und die REGION fest. Legen Sie beispielsweise die BUCKET_URI auf gs://your-unique-bucket-name und die REGION auf us-central1 fest.

      • Wählen Sie im Drop-down-Menü accelerator_type (Beschleunigertyp) unter Deploy TimesFM to a Vertex AI Endpoint (TimesFM auf einem Vertex AI-Endpunkt bereitstellen) bei Bedarf einen anderen Beschleunigertyp aus.
      • Füllen Sie unter Step 3: Set the maximum forecast horizon (Schritt 3: Maximalen Prognosezeitraum festlegen) die Felder horizon (Zeitraum) und max_context (Maximaler Kontext) aus. Legen Sie beispielsweise horizon auf 128 und max_context auf 512 fest.
    3. Deaktivieren Sie das Kästchen use_dedicated_endpoint (Dedizierten Endpunkt verwenden).
    4. Führen Sie alle Zellen im Notebook aus.

    Die Ausgabe des Notebooks enthält die Endpunktdetails im folgenden Format: projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID.

  7. Ersetzen Sie zum Erstellen der model_request_url für den SQL-Aufruf zur Modellerstellung die Projekt- und Endpunkt-IDs durch die Endpunktdetails aus dem vorherigen Schritt:

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

    Sie benötigen diese model_request_url im Aufruf the google_ml.create_model, wenn Sie das TimesFM-Modell in AlloyDB registrieren, wie im folgenden Abschnitt beschrieben.

  8. Führen Sie die folgende Beispielabfrage aus, um zu bestätigen, dass die Funktion ai.forecast wie erwartet funktioniert:

    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
    );
TimesFM-Modell in AlloyDB registrieren

So registrieren Sie das TimesFM-Modell in AlloyDB:

  1. Prüfen Sie, ob die Erweiterung google_ml_integration installiert ist in der AlloyDB-Datenbank, die die Daten enthält, für die Sie Vorhersagen ausführen möchten.

  2. Prüfen Sie, ob Version 1.4.5 oder höher der Erweiterung google_ml_integration installiert ist.

    SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';
    

    Hier ein Beispiel für eine Ausgabe:

    extversion
    ------------
    1.4.5
    (1 row)
    
  3. Rufen Sie google_ml.create_model mit der Modellanfrage-URL auf, die Sie unter Prognosemodell registrieren notiert haben.

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

    Ersetzen Sie Folgendes:

    • MODEL_ID: eine eindeutige ID für das registrierte Modell, das Sie für Prognosen verwenden möchten, z. B. vertex_timesfm.
    • MODEL_QUALIFIED_NAME: ein nutzerdefinierter Name für das Modell, z. B. timesfm_v2.
    • REGION: die Region, in der sich die Instanz befindet, z. B. us-central1.
    • PROJECT_ID: der Name des Projekts, in dem das Modell bereitgestellt wird, z. B. forecast_project.
    • ENDPOINT_ID: der Name der Modellbereitstellung, z. B. my-timesfm-endpoint.

      Die model_request_url wird von der Agent Platform bereitgestellt, nachdem Sie Ihr Modell bereitgestellt haben. Kopieren Sie die gesamte URL aus dem Bereich Sample request (Beispielanfrage) in der Agent Platform-Console. Sie enthält bereits die korrekten Projekt- und Endpunktinformationen.

Prognosen erstellen

Nachdem Sie das TimesFM-Modell registriert und das erforderliche Flag aktiviert haben, können Sie Prognosen erstellen, indem Sie entweder eine Quelltabelle oder eine Abfrage mit Ihren Zeitreihendaten übergeben.

Die Funktion ai.forecast wird separat dokumentiert. Eine vollständige Liste der Parameter mit Beschreibungen und Beispielen finden Sie in der Referenz zur Verwaltung von Modellendpunkten.

Prognosen aus einer Quelltabelle erstellen

Im folgenden Beispiel wird gezeigt, wie Sie die Funktion ai.forecast mit einer Quelltabelle aufrufen, um Vorhersagen zu erstellen:

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

Prognosen aus einer Abfrage erstellen

Im folgenden Beispiel wird gezeigt, wie Sie Prognosen erstellen, indem Sie die Funktion ai.forecast mit einer Unterabfrage als Datenquelle aufrufen:

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

Andere Prognosemodelle verwenden

Sie können die Funktion ai.forecast mit jedem anderen Zeitreihenprognosemodell verwenden, das Sie in AlloyDB registrieren. Wichtig ist, dass Ihr Modell mit dem Modelltyp ts_forecasting registriert ist.

Eine detaillierte Anleitung zum Registrieren verschiedener Modelltypen finden Sie unter Remote-KI-Modelle mit der Modellendpunktverwaltung registrieren und aufrufen. Sobald Ihr Modell registriert ist, können Sie es mit der Funktion ai.forecast verwenden, indem Sie die model_id angeben.

Nächste Schritte