En esta página se describe cómo hacer predicciones de series temporales directamente en tu base de datos de AlloyDB. Puedes usar varios modelos de previsión, incluidos los modelos TimesFM, para gestionar la incertidumbre y tomar decisiones estratégicas fundamentadas. Para obtener más información sobre el modelo, consulta el blog de investigación de TimesFM.
La función ai.forecast de AlloyDB se ha diseñado para funcionar con cualquier modelo registrado con el tipo de modelo ts_forecasting, lo que te ofrece la flexibilidad de usar el modelo que mejor se adapte a tus necesidades. En este documento se ofrece una guía detallada sobre el uso de TimesFM, pero también puedes aplicar los principios a otros modelos.
Antes de empezar
Para poder realizar previsiones de series temporales, debe habilitar la función de previsión en AlloyDB y registrar un modelo.
Registrar un modelo de previsión
Puedes usar varios modelos de previsión con AlloyDB.
En esta sección se proporcionan instrucciones para registrar el modelo TimesFM. Para obtener instrucciones sobre cómo registrar otros modelos, consulta Registrar un endpoint de modelo con la gestión de endpoints de modelos.
Usar el modelo TimesFM
Los modelos TimesFM se ofrecen en dos versiones:
- TimesFM 1.0: la versión inicial del modelo TimesFM.
- TimesFM 2.0: esta versión es la recomendada, ya que ofrece una precisión hasta un 25% mayor que la versión 1.0.
Ambos modelos están disponibles en Model Garden para que puedas implementarlos rápidamente.
Para usar los modelos de TimesFM, primero debes desplegar el modelo de TimesFM en un endpoint de Vertex AI y, a continuación, registrarlo en AlloyDB.
Desplegar el modelo TimesFM en un endpoint de Vertex AI
Puedes desplegar el modelo con un solo clic desde la Google Cloud consola o manualmente con un cuaderno de Colaboratory.
Despliegue con un solo clic
Para implementar el modelo TimesFM con una implementación de un solo clic, sigue estos pasos:
En la Google Cloud consola, ve a la página Model Garden:
Ir a Model Garden- En el campo Buscar, introduce
TimesFM. - En los resultados de búsqueda, haz clic en
TimesFM. -
En la página TimesFM, sigue estos pasos:
- Haz clic en Desplegar modelo.
- Selecciona Vertex AI.
En el panel Desplegar en Vertex AI, configura y despliega tu modelo:
- Para usar la versión más reciente del modelo TimesFM, en el menú desplegable ID de recurso, selecciona
google/timesfm-2.0. - Para identificar la implementación más adelante, introduce lo siguiente:
- En Nombre del modelo, un
MODEL_NAMEúnico. - En Nombre de endpoint, un
ENDPOINT_NAMEúnico.
- En Nombre del modelo, un
- Para desplegar las opciones de configuración, en Ajustes de implementación, haga clic en Avanzado.
- Para asegurarte de que la latencia sea lo más baja posible, en el desplegable Región, selecciona la misma región en la que se encuentra tu instancia de AlloyDB.
- Para obtener el mejor rendimiento, en el desplegable Especificación de la máquina, seleccione una especificación de máquina adecuada. Ten en cuenta que una GPU o una TPU pueden ofrecer una latencia menor.
En el menú desplegable Acceso al endpoint de Políticas de disponibilidad, selecciona Público (endpoint compartido).
De esta forma, se crea un endpoint en el dominio
aiplatformque funciona con AlloyDB.- Para desplegar el modelo en un endpoint gestionado, haga clic en Desplegar. El despliegue puede tardar entre 10 y 15 minutos.
- Para usar la versión más reciente del modelo TimesFM, en el menú desplegable ID de recurso, selecciona
- Una vez que se haya desplegado el modelo TimesFM, aparecerá un enlace similar a
google_timesfm-VERSION-one-click-deployen Endpoints (Endpoints). - Para obtener la URL de solicitud del modelo, en Endpoints (Endpoints), haga clic en el enlace de la implementación.
- En la página de detalles del endpoint, haz clic en Solicitud de ejemplo.
En el panel Solicitud de ejemplo, busque la URL de la solicitud del modelo y anótela. Esta información se usa en Registrar el modelo TimesFM en AlloyDB, por ejemplo,
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict.Asegúrate de que la URL de la solicitud incluya
aiplatform.googleapis.com.
Despliegue manual
Para implementar manualmente el modelo TimesFM con un cuaderno de Colaboratory, sigue estos pasos:
-
Ve a la página Model Garden de la consola de Google Cloud :
Ir a Model Garden - En el campo Buscar, introduce
TimesFM. - En los resultados de búsqueda, haga clic en
TimesFMpara abrir la tarjeta de modelo. - En la página TimesFM, haz clic en CO Open Notebook.
- En la ventana Abrir cuaderno, haz clic en el enlace Collab Enterprise de TimesFM 2.0.
-
En la página Collab Enterprise, sigue estos pasos:
- Para establecer una conexión con el entorno de ejecución, haz clic en Conectar.
-
Opcional: Sigue estos pasos si es necesario:
-
En la sección Requisitos previos de Configurar un proyecto de Google Cloud, define los valores de BUCKET_URI y REGION. Por ejemplo, asigna el valor
gs://your-unique-bucket-namea BUCKET_URI y el valorus-central1a REGION. - En el menú desplegable accelerator_type de Deploy TimesFM to a Vertex AI Endpoint (Desplegar TimesFM en un endpoint de Vertex AI), selecciona otro tipo de acelerador si es necesario.
- En el paso 3: Define el horizonte de previsión máximo, rellena los campos horizon y max_context. Por ejemplo, asigna el valor horizon a
128y el valor max_context a512.
-
- Desmarca la casilla
use_dedicated_endpoint. - Ejecuta todas las celdas del cuaderno.
La salida del cuaderno proporciona los detalles del endpoint en el siguiente formato:
projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID. -
Para crear el
model_request_urlde la llamada de creación del modelo SQL, sustituye los identificadores de proyecto y de endpoint por los detalles del endpoint del paso anterior, tal como se indica a continuación: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');
Necesitarás este
model_request_urlen la llamadathe google_ml.create_modelcuando registres el modelo TimesFM en AlloyDB, tal como se describe en la siguiente sección. Para confirmar que la función
ai.forecastfunciona correctamente, ejecuta la siguiente consulta de ejemplo: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 );
Registrar el modelo TimesFM en AlloyDB
Para registrar el modelo TimesFM en AlloyDB, sigue estos pasos:
Verifica que la extensión
google_ml_integrationesté instalada en la base de datos de AlloyDB que contiene los datos con los que quieres generar predicciones.Comprueba que tengas instalada la versión 1.4.5 o una posterior de la extensión
google_ml_integration.SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';A continuación, se muestra un ejemplo de resultado:
extversion ------------ 1.4.5 (1 row)Llama a
google_ml.create_modelcon la URL de solicitud del modelo que has anotado en Registrar un modelo de previsión.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 );Haz los cambios siguientes:
MODEL_ID: identificador único del modelo registrado que quieras usar para las previsiones. Por ejemplo,vertex_timesfm.MODEL_QUALIFIED_NAME: un nombre definido por el usuario para el modelo, comotimesfm_v2.PROJECT_ID: el nombre del proyecto en el que se ha implementado el modelo (por ejemplo,forecast_project).ENDPOINT_ID: el nombre de la implementación del modelo (por ejemplo,my-timesfm-endpoint).El
model_request_urllo proporciona Vertex AI después de desplegar el modelo. Copia toda la URL del panel Solicitud de ejemplo de la consola de Vertex AI. Ya contiene la información correcta del proyecto y del endpoint.
Generar previsiones
Después de registrar el modelo TimesFM y habilitar la marca necesaria, puede generar previsiones transfiriendo una tabla de origen o una consulta con sus datos de serie temporal.
La función ai.forecast se documenta por separado. Para ver una lista completa de parámetros, incluidas sus descripciones y ejemplos, consulta la referencia de gestión de endpoints de modelos.
Generar previsiones a partir de una tabla de origen
En el siguiente ejemplo se muestra cómo llamar a la función ai.forecast mediante una tabla de origen para generar predicciones:
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
);
Generar previsiones a partir de una consulta
En el siguiente ejemplo se muestra cómo generar previsiones llamando a la función ai.forecast con una subconsulta como fuente de datos:
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
);
Usar otros modelos de previsión
Puedes usar la función ai.forecast con cualquier otro modelo de previsión de series temporales que registres en AlloyDB. La clave es asegurarse de que el modelo esté registrado con el tipo de modelo ts_forecasting.
Para obtener instrucciones detalladas sobre cómo registrar diferentes tipos de modelos, consulta Registrar y llamar a modelos de IA remotos mediante la gestión de endpoints de modelos. Una vez que hayas registrado tu modelo, podrás usarlo con la función ai.forecast especificando su model_id.