La fonction ai.forecast d'AlloyDB Omni est conçue pour fonctionner avec n'importe quel modèle enregistré avec le type de modèle ts_forecasting, ce qui vous permet d'utiliser le modèle le plus adapté à vos besoins. Ce document fournit un
guide détaillé sur l'utilisation de TimesFM, mais vous pouvez également appliquer les principes à d'autres
modèles.
Avant de commencer
Avant de pouvoir effectuer des prévisions de séries temporelles, vous devez activer le flag de base de données de prévision dans AlloyDB Omni et enregistrer un modèle de prévision.
Enregistrer un modèle de prévision
Vous pouvez utiliser différents modèles de prévision avec AlloyDB Omni.
Cette section fournit des instructions pour enregistrer le modèle TimesFM. Pour savoir comment enregistrer d'autres modèles, consultez Enregistrer un point de terminaison de modèle avec la gestion des points de terminaison de modèle.
Utiliser le modèle TimesFM
TimesFM TimesFM sont disponibles en deux versions :
- TimesFM 1.0 : version initiale du modèle TimesFM.
- TimesFM 2.0 : cette version contient un point de contrôle de 500 millions de paramètres avec son code d'inférence. Elle offre de meilleures performances que le modèle 1.0.
- TimesFM 2.5 : cette version contient un point de contrôle de 200 millions de paramètres avec son code d'inférence. Elle offre de meilleures performances que le modèle 2.0.
Tous les modèles sont disponibles dans Model Garden pour un déploiement rapide.
Pour utiliser les modèles TimesFM, vous devez d'abord déployer le modèle TimesFM sur un point de terminaison Vertex AI, puis l'enregistrer dans AlloyDB Omni.
Déployer le modèle TimesFM sur un point de terminaison Vertex AI
Vous pouvez déployer le modèle en un clic à partir de la Google Cloud console, ou manuellement à l'aide d'un notebook Colaboratory.
Déploiement en un clic
Pour déployer le modèle TimesFM en un clic, procédez comme suit :
Dans la Google Cloud console, accédez à la page Model Garden :
Accéder à Model Garden- Dans le champ Search (Rechercher), saisissez
TimesFM. - Dans les résultats de recherche, cliquez sur
TimesFM. -
Sur la page TimesFM, procédez comme suit :
- Cliquez sur Deploy model (Déployer le modèle).
- Sélectionnez Vertex AI.
Dans le volet Deploy on Vertex AI (Déployer sur Vertex AI), configurez et déployez votre modèle :
- Pour utiliser la dernière version du modèle TimesFM, sélectionnez
google/timesfm-2.0dans le menu déroulant Resource ID (ID de ressource). - Pour faciliter l'identification du déploiement ultérieurement, saisissez les éléments suivants :
- Dans Model name (Nom du modèle), un
MODEL_NAMEunique. - Dans Endpoint name (Nom du point de terminaison), un
ENDPOINT_NAMEunique.
- Dans Model name (Nom du modèle), un
- Pour développer les options de configuration, cliquez sur Advanced dans Deployment settings.
- Pour garantir la latence la plus faible possible, sélectionnez la même région que celle où se trouve votre instance AlloyDB Omni dans le menu déroulant Region (Région).
- Pour obtenir les meilleures performances, sélectionnez une spécification de machine appropriée dans le menu déroulant Machine spec (Spécifications de la machine). Notez qu'un GPU ou un TPU peut offrir une latence plus faible.
Dans le menu déroulant Endpoint access (Accès au point de terminaison) de Availability policies (Règles de disponibilité), sélectionnez Public (Shared endpoint) (Public (point de terminaison partagé)).
Cela crée un point de terminaison dans le domaine
aiplatformqui fonctionne avec AlloyDB Omni.- Pour déployer le modèle sur un point de terminaison géré, cliquez sur Deploy (Déployer). Le déploiement peut prendre entre 10 et 15 minutes.
- Pour utiliser la dernière version du modèle TimesFM, sélectionnez
- Une fois le modèle TimesFM déployé, un lien semblable à
google_timesfm-VERSION-one-click-deploys'affiche dans Endpoints (Points de terminaison). - Pour obtenir l'URL de la requête du modèle, cliquez sur le lien de déploiement dans Endpoints (Points de terminaison).
- Sur la page d'informations du point de terminaison, cliquez sur Sample request (Exemple de requête).
Dans le volet Sample request (Exemple de requête), recherchez et notez l'URL de la requête du modèle. Vous utiliserez ces informations dans Enregistrer le modèle TimesFM dans AlloyDB Omni. Par exemple,
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict.Assurez-vous que l'URL de la requête contient
aiplatform.googleapis.com.
Déploiement manuel
Pour déployer manuellement le modèle TimesFM à l'aide d'un notebook Colaboratory, procédez comme suit :
-
Accédez à la page Model Garden (Model Garden) dans la Google Cloud console :
Accéder à Model Garden - Dans le champ Search (Rechercher), saisissez
TimesFM. - Dans les résultats de recherche, cliquez sur
TimesFMpour ouvrir la fiche du modèle. - Sur la page TimesFM, cliquez sur CO Open Notebook (CO Ouvrir le notebook).
- Dans la fenêtre Open Notebook (Ouvrir le notebook), cliquez sur le lien Collab Enterprise pour TimesFM 2.0.
-
Sur la page Collab Enterprise, procédez comme suit :
- Pour établir une connexion à l'environnement d'exécution, cliquez sur Connect (Connecter).
-
Facultatif : procédez comme suit si nécessaire :
-
Dans la section Prerequisites (Prérequis) de Setup Google Cloud project (Configurer le projet Google Cloud), définissez BUCKET_URI et REGION. Par exemple, définissez BUCKET_URI sur
gs://your-unique-bucket-nameet REGION surus-central1. - Dans le menu déroulant accelerator_type de Deploy TimesFM to a Vertex AI Endpoint (Déployer TimesFM sur un point de terminaison Vertex AI), sélectionnez un autre type d'accélérateur si nécessaire.
- Dans Step 3: Set the maximum forecast horizon (Étape 3 : Définir l'horizon de prévision maximal), remplissez les champs horizon et max_context. Par exemple, définissez horizon sur
128et max_context sur512.
-
- Désélectionnez la case à cocher
use_dedicated_endpoint. - Exécutez toutes les cellules du notebook.
La sortie du notebook fournit les détails du point de terminaison au format suivant :
projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID. -
Pour créer le
model_request_urlpour l'appel de création de modèle SQL, remplacez les identifiants de projet et de point de terminaison par les détails du point de terminaison de l'étape précédente comme suit :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');
Vous aurez besoin de ce
model_request_urldans l'appelgoogle_ml.create_modellorsque vous enregistrerez le modèle TimesFM dans AlloyDB Omni, comme décrit dans la section suivante. Pour vérifier que la fonction
ai.forecastfonctionne comme prévu, exécutez l'exemple de requête suivant :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 );
Enregistrer le modèle TimesFM dans AlloyDB Omni
Pour enregistrer le modèle TimesFM dans AlloyDB Omni, procédez comme suit :
Vérifiez que l'extension
google_ml_integrationest installée dans la base de données AlloyDB Omni qui contient les données sur lesquelles vous souhaitez exécuter des prédictions.Vérifiez que vous avez installé la version 1.4.5 ou ultérieure de l'extension
google_ml_integration.SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';Voici un exemple de résultat :
extversion ------------ 1.4.5 (1 row)Appelez
google_ml.create_modelà l'aide de l'URL de la requête du modèle que vous avez notée dans Enregistrer un modèle de prévision.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 );Remplacez les éléments suivants :
MODEL_ID: identifiant unique du modèle enregistré que vous souhaitez utiliser pour les prévisions. Par exemple,vertex_timesfm.MODEL_QUALIFIED_NAME: nom défini par l'utilisateur pour le modèle. Par exemple,timesfm_v2.REGION: région où l'instance est placée. Par exemple,us-central1.PROJECT_ID: nom du projet dans lequel le modèle est déployé. Par exemple,forecast_project.ENDPOINT_ID: nom du déploiement du modèle. Par exemple,my-timesfm-endpoint.Le
model_request_urlest fourni par Vertex AI une fois que vous avez déployé votre modèle. Copiez l'intégralité de l'URL à partir du volet Sample request (Exemple de requête) dans la console Vertex AI. Il contient déjà les informations correctes sur le projet et le point de terminaison.
Activer le flag de base de données de prévision
Avant de pouvoir générer des prévisions à l'aide du modèle enregistré, vous devez définir le flag de base de données google_ml_integration.enable_forecasting sur on.
Vous pouvez activer ce flag pour votre session actuelle ou le définir pour qu'il persiste pour une base de données ou un utilisateur spécifique entre les sessions. Pour définir le flag de base de données, sélectionnez l'une des options suivantes :
Activer le flag pour la session actuelle :
SET google_ml_integration.enable_forecasting = on;Activer le flag pour une base de données spécifique :
ALTER DATABASE DATABASE_NAME SET google_ml_integration.enable_forecasting = 'on';Remplacez
DATABASE_NAMEpar le nom de votre base de données.Activer le flag pour un utilisateur de base de données spécifique :
ALTER ROLE postgres SET google_ml_integration.enable_forecasting = 'on';
Générer des prévisions
Après avoir enregistré le modèle TimesFM et activé le flag nécessaire, vous pouvez générer des prévisions en transmettant une table source ou une requête avec vos données de séries temporelles.
La fonction ai.forecast est documentée séparément. Pour obtenir la liste complète des
paramètres, y compris leurs descriptions et des exemples, consultez la
documentation de référence sur la gestion des points de terminaison de modèle.
Générer des prévisions à partir d'une table source
L'exemple suivant montre comment appeler la fonction ai.forecast à l'aide d'une table source pour générer des prédictions :
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
);
Générer des prévisions à partir d'une requête
L'exemple suivant montre comment générer des prévisions en appelant la fonction ai.forecast à l'aide d'une sous-requête comme source de données :
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
);
Utiliser d'autres modèles de prévision
Vous pouvez utiliser la fonction ai.forecast avec n'importe quel autre modèle de prévision de séries temporelles que vous enregistrez dans AlloyDB Omni. L'essentiel est de vous assurer que votre modèle est enregistré avec le type de modèle ts_forecasting.
Pour obtenir des instructions détaillées sur l'enregistrement de différents types de modèles, consultez
Enregistrer et appeler des modèles d'IA distants à l'aide de la gestion des points de terminaison de modèle.
Une fois votre modèle enregistré, vous pouvez l'utiliser avec la fonction ai.forecast en spécifiant son model_id.
Étape suivante
- Enregistrez un point de terminaison de modèle avec la gestion des points de terminaison de modèle.
- Interrogez à l'aide d'opérateurs SQL basés sur l'IA.