La fonction ai.forecast d'AlloyDB pour PostgreSQL vous permet d'exécuter des prévisions de séries temporelles directement sur les données de votre base de données à l'aide de SQL. Vous pouvez enregistrer et appeler des modèles de prévision tels que TimesFM ou tout modèle enregistré avec le type de modèle ts_forecasting pour prédire les tendances futures à partir de données historiques. Pour en savoir plus sur l'architecture TimesFM, consultez le blog de recherche TimesFM.
Avant de commencer
Avant de pouvoir effectuer des prévisions de séries temporelles, vous devez activer la fonctionnalité de prévision dans AlloyDB et enregistrer un modèle.
Enregistrer un modèle de prévision
Vous pouvez utiliser différents modèles de prévision avec AlloyDB.
Cette section explique comment 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
Les modèles TimesFM sont disponibles dans les versions suivantes :
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. Il 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. Il 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 Gemini Enterprise Agent Platform, puis l'enregistrer dans AlloyDB.
Déployer le modèle TimesFM sur un point de terminaison Agent Platform
Vous pouvez déployer le modèle en un clic depuis la console Google Cloud 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 console Google Cloud , accédez à la page Model Garden :
Accéder à Model Garden- Dans le champ Rechercher, saisissez
TimesFM. - Dans les résultats de recherche, cliquez sur
TimesFM. -
Sur la page TimesFM, procédez comme suit :
- Cliquez sur Déployer le modèle.
- Sélectionnez Agent Platform.
Dans le volet Déployer sur Agent Platform, 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 ID de ressource. - Pour faciliter l'identification du déploiement ultérieurement, saisissez les informations suivantes :
- Dans le champ Nom du modèle, saisissez un nom unique :
MODEL_NAME. - Dans le champ Nom du point de terminaison, saisissez un nom unique :
ENDPOINT_NAME.
- Dans le champ Nom du modèle, saisissez un nom unique :
- Pour développer les options de configuration, dans Paramètres de déploiement, cliquez sur Avancé.
- Pour garantir la latence la plus faible possible, dans la liste déroulante Région, sélectionnez la région dans laquelle se trouve votre instance AlloyDB.
- Pour des performances optimales, sélectionnez une spécification de machine appropriée dans le menu déroulant Spécification de la machine. Notez qu'un GPU ou un TPU peut offrir une latence plus faible.
Dans le menu déroulant Accès au point de terminaison de Règles de disponibilité, sélectionnez Public (point de terminaison partagé).
Cela crée un point de terminaison dans le domaine
aiplatformqui fonctionne avec AlloyDB.- Pour déployer le modèle sur un point de terminaison géré, cliquez sur 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 Points de terminaison. - Pour obtenir l'URL de la requête du modèle, cliquez sur le lien de déploiement dans Points de terminaison.
- Sur la page d'informations du point de terminaison, cliquez sur Exemple de requête.
Dans le volet 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 (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 dans la console Google Cloud :
Accéder à Model Garden - Dans le champ Rechercher, saisissez
TimesFM. - Dans les résultats de recherche, cliquez sur
TimesFMpour ouvrir la fiche de modèle. - Sur la page TimesFM, cliquez sur Ouvrir le notebook CO.
- Dans la fenêtre Ouvrir le notebook, cliquez sur le lien Colab Enterprise pour TimesFM 2.0.
-
Sur la page Colab Enterprise, procédez comme suit :
- Pour établir une connexion à l'environnement d'exécution, cliquez sur Connecter.
-
Facultatif : procédez comme suit si nécessaire :
-
Dans la section Prérequis de Configurer un projet Google Cloud, définissez
BUCKET_URIetREGION. Par exemple, définissezBUCKET_URIsurgs://your-unique-bucket-nameetREGIONsurus-central1. - Dans le menu déroulant accelerator_type de Déployer TimesFM sur un point de terminaison Vertex AI, sélectionnez un autre type d'accélérateur si nécessaire.
- À l'étape 3 : Définir l'horizon de prévision maximal, renseignez les champs horizon et max_context. Par exemple, définissez
horizonsur128etmax_contextsur512.
-
- Décochez la case
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 construire le
model_request_urlde l'appel de création du modèle SQL, remplacez les identifiants du projet et du 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, 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
Pour enregistrer le modèle TimesFM dans AlloyDB, procédez comme suit :
Vérifiez que l'extension
google_ml_integrationest installée dans la base de données AlloyDB contenant les données sur lesquelles vous souhaitez effectuer des prédictions.Vérifiez que la version 1.4.5 ou ultérieure de l'extension
google_ml_integrationest installée.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 requête de 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 exemplevertex_timesfm.MODEL_QUALIFIED_NAME: nom défini par l'utilisateur pour le modèle, par exempletimesfm_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 exempleforecast_project.ENDPOINT_ID: nom du déploiement du modèle, par exemplemy-timesfm-endpoint.model_request_urlest fourni par Agent Platform après le déploiement de votre modèle. Copiez l'URL complète du volet Exemple de requête dans la console Agent Platform. Il contient déjà les informations correctes sur le projet et le point de terminaison.
Générer des prévisions
Après avoir enregistré le modèle TimesFM et activé l'option 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 10',
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. L'essentiel est de vous assurer que votre modèle est enregistré avec le type de modèle ts_forecasting.
Pour savoir comment enregistrer 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.