Zeitreihenprognosen durchführen

Auf dieser Seite wird beschrieben, wie Sie Zeitreihenprognosen direkt in Ihrer AlloyDB-Datenbank durchführen. Sie können verschiedene Prognosemodelle, einschließlich der TimesFM-Modelle, verwenden, um Unsicherheiten zu berücksichtigen 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 ist. So können Sie das beste Modell für Ihre Anforderungen verwenden. In diesem Dokument finden Sie eine detaillierte Anleitung zur Verwendung von TimesFM. Sie können die Prinzipien jedoch auch auf andere Modelle anwenden.

Hinweise

Bevor Sie Zeitreihenprognosen erstellen 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 ursprüngliche Version des TimesFM-Modells.
  • TimesFM 2.0: Diese Version wird empfohlen, da sie im Vergleich zu Version 1.0 eine bis zu 25% höhere Genauigkeit bietet.

Beide 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 an einem Vertex AI-Endpunkt bereitstellen und es dann in AlloyDB registrieren.

TimesFM-Modell in einem Vertex AI-Endpunkt bereitstellen

Sie können das Modell mit der Google Cloud Console per Ein-Klick-Bereitstellung oder manuell mit einem Colaboratory-Notebook bereitstellen.

Bereitstellung mit nur einem Klick

So stellen Sie das TimesFM-Modell mit der Ein-Klick-Bereitstellung bereit:

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

    Zu Model Garden
  2. Geben Sie im Feld Suchen 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 Vertex AI aus.
  7. Konfigurieren und stellen Sie Ihr Modell im Bereich In Vertex AI bereitstellen bereit:

    1. Wenn Sie die aktuelle Version des TimesFM-Modells verwenden möchten, wählen Sie im Drop-down-Menü Ressourcen-ID die Option google/timesfm-2.0 aus.
    2. Geben Sie Folgendes ein, um die Bereitstellung später leichter zu identifizieren:
      1. Geben Sie unter Modellname einen eindeutigen MODEL_NAME ein.
      2. Geben Sie unter Endpunktname einen eindeutigen ENDPOINT_NAME ein.
    3. Klicken Sie unter Bereitstellungseinstellungen auf Erweitert, um die Konfigurationsoptionen zu maximieren.
      1. Damit die niedrigste Latenz gewährleistet wird, sollten Sie im Drop-down-Menü Region dieselbe Region auswählen, in der sich Ihre AlloyDB-Instanz befindet.
      2. Für die beste Leistung sollten Sie im Drop-down-Menü Maschinenspezifikation eine geeignete Maschinenspezifikation auswählen. Beachten Sie, dass eine GPU oder TPU möglicherweise eine geringere Latenz bietet.
    4. Wählen Sie im Drop-down-Menü Endpunktzugriff unter Verfügbarkeitsrichtlinien die Option Öffentlich (gemeinsamer Endpunkt) aus.

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

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

    Die Anfrage-URL muss aiplatform.googleapis.com enthalten.

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 Suchen 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.
  5. Klicken Sie im Fenster 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 Verbinden, um eine Verbindung zur Laufzeitumgebung herzustellen.
    2. Optional: Führen Sie bei Bedarf die folgenden Schritte aus:

      • Legen Sie im Abschnitt Voraussetzungen unter Google Cloud-Projekt einrichten die BUCKET_URI und REGION fest, z. B. BUCKET_URI auf gs://your-unique-bucket-name und REGION auf us-central1.

      • Wählen Sie im Drop-down-Menü accelerator_type von TimesFM in einem Vertex AI-Endpunkt bereitstellen bei Bedarf einen anderen Beschleunigertyp aus.
      • Füllen Sie in Schritt 3: Maximalen Prognosezeitraum festlegen die Felder horizon und max_context aus. Setzen Sie beispielsweise horizon auf 128 und max_context auf 512.
    3. Entfernen Sie das Häkchen aus dem Kästchen use_dedicated_endpoint.
    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. Um die model_request_url für den SQL-Modellerstellungsaufruf zu erstellen, ersetzen Sie 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 diesen model_request_url-Aufruf in the google_ml.create_model, wenn Sie das TimesFM-Modell in AlloyDB registrieren, wie im nächsten Abschnitt beschrieben.

  8. Führen Sie die folgende Beispielabfrage aus, um zu prüfen, ob 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 google_ml_integration-Erweiterung in der AlloyDB-Datenbank installiert ist, die die Daten enthält, für die Sie Vorhersagen erhalten möchten.

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

    SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';
    

    Hier ein Beispiel für die Ausgabe:

    extversion
    ------------
    1.4.5
    (1 row)
    
  3. Rufen Sie google_ml.create_model mit der Modellanfrage-URL auf, die Sie sich 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 Kennung für das registrierte Modell, das Sie für die Prognose verwenden möchten, z. B. vertex_timesfm.
    • MODEL_QUALIFIED_NAME: Ein benutzerdefinierter Name für das Modell, z. B. timesfm_v2.
    • 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 Vertex AI bereitgestellt, nachdem Sie Ihr Modell bereitgestellt haben. Kopieren Sie die vollständige URL aus dem Bereich Beispielanfrage in der Vertex AI-Konsole. Sie enthält bereits die richtigen Projekt- und Endpunktinformationen.

    Google Cloud

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 Zeitachsendaten übergeben.

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

Prognosen aus einer Quelltabelle erstellen

Im folgenden Beispiel wird gezeigt, wie die Funktion ai.forecast mit einer Quelltabelle aufgerufen wird, um Vorhersagen zu generieren:

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 generieren

Im folgenden Beispiel wird gezeigt, wie Sie Prognosen generieren, 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 den model_id angeben.

Nächste Schritte