La función ai.forecast de AlloyDB Omni está diseñada para funcionar con cualquier modelo registrado con el tipo de modelo ts_forecasting, lo que te brinda la flexibilidad de usar el mejor modelo para tus necesidades. En este documento, se proporciona una
guía detallada para usar TimesFM, pero también puedes aplicar los principios a otros
modelos.
Antes de comenzar
Antes de realizar la previsión de series temporales, debes habilitar la marca de base de datos de previsión en AlloyDB Omni y registrar un modelo de previsión.
Registra un modelo de previsión
Puedes usar varios modelos de previsión con AlloyDB Omni.
En esta sección, se proporcionan instrucciones para registrar el modelo de TimesFM. Para obtener instrucciones sobre cómo registrar otros modelos, consulta Registra un extremo de modelo con la administración de extremos de modelos.
Usa el modelo de TimesFM
TimesFM TimesFM vienen en dos versiones:
- TimesFM 1.0: Es la versión inicial del modelo de TimesFM.
- TimesFM 2.0: Esta versión contiene un punto de control de parámetros de 500 M con su código de inferencia. Ofrece un mejor rendimiento del modelo en comparación con el modelo 1.0.
- TimesFM 2.5: Esta versión contiene un punto de control de parámetros de 200 M con su código de inferencia. Ofrece un mejor rendimiento del modelo en comparación con el modelo 2.0.
Todos los modelos están disponibles en Model Garden para una implementación rápida.
Para usar los modelos de TimesFM, primero debes implementarlos en un extremo de Vertex AI y, luego, registrarlos en AlloyDB Omni.
Implementa el modelo de TimesFM en un extremo de Vertex AI
Puedes implementar el modelo con una implementación con un solo clic desde la Google Cloud consola, o de forma manual con un notebook de Colaboratory.
Implementación con un solo clic
Para implementar el modelo de TimesFM con una implementación con 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, ingresa
TimesFM. - En los resultados de la búsqueda, haz clic en
TimesFM. -
En la página TimesFM, completa los siguientes pasos:
- Haz clic en Implementar modelo.
- Selecciona Vertex AI.
En el panel Implementar en Vertex AI , configura y, luego, implementa tu modelo:
- Para usar la versión más reciente del modelo de TimesFM, en el menú desplegable ID de recurso, selecciona
google/timesfm-2.0. - Para que sea más fácil identificar la implementación más adelante, ingresa lo siguiente:
- En Nombre del modelo, un
MODEL_NAMEúnico. - En Nombre del extremo, un
ENDPOINT_NAMEúnico.
- En Nombre del modelo, un
- Para expandir las opciones de configuración, en Configuración de implementación, haz clic en Avanzado.
- Para garantizar la latencia más baja posible, en el menú desplegable Región, selecciona la misma región en la que se encuentra tu instancia de AlloyDB Omni.
- Para obtener el mejor rendimiento, en el menú desplegable Especificación de la máquina, selecciona una especificación de máquina adecuada. Ten en cuenta que una GPU o TPU podría ofrecer una latencia más baja.
En el menú desplegable Acceso al extremo de Políticas de disponibilidad, selecciona Público (extremo compartido).
Esto crea un extremo en el dominio
aiplatformque funciona con AlloyDB Omni.- Para implementar el modelo en un extremo administrado, haz clic en Implementar. La implementación puede tardar entre 10 y 15 minutos.
- Para usar la versión más reciente del modelo de TimesFM, en el menú desplegable ID de recurso, selecciona
- Después de implementar el modelo de TimesFM, aparecerá un vínculo similar a
google_timesfm-VERSION-one-click-deployen Extremos. - Para obtener la URL de solicitud del modelo, en Extremos, haz clic en el vínculo de implementación.
- En la página de detalles del extremo, haz clic en Solicitud de muestra.
En el panel Solicitud de muestra, busca la URL de solicitud del modelo y anótala. Usarás esta información para registrar el modelo de TimesFM en AlloyDB Omni, 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 contenga
aiplatform.googleapis.com.
Implementación manual
Para implementar de forma manual el modelo de TimesFM con un notebook de Colaboratory, sigue estos pasos:
-
Navega a la página Model Garden en la Google Cloud consola:
Ir a Model Garden - En el campo Buscar, ingresa
TimesFM. - En los resultados de la búsqueda, haz clic en
TimesFMpara abrir la ficha del modelo. - En la página TimesFM, haz clic en CO Open Notebook.
- En la ventana Open Notebook, haz clic en el vínculo Collab Enterprise para TimesFM 2.0.
-
En la página Collab Enterprise, completa los siguientes pasos:
- Para establecer una conexión con el entorno de ejecución, haz clic en Connect.
-
Opcional: Completa los siguientes pasos si es necesario:
-
En la sección Prerequisites de Setup Google Cloud project, establece BUCKET_URI y REGION. Por ejemplo, establece BUCKET_URI en
gs://your-unique-bucket-namey REGION enus-central1. - En el menú desplegable accelerator_type de Deploy TimesFM to a Vertex AI Endpoint, selecciona un tipo de acelerador diferente si es necesario.
- En Step 3: Set the maximum forecast horizon, completa los campos horizon y max_context. Por ejemplo, establece horizon en
128y max_context en512.
-
- Anula la selección de la casilla de verificación
use_dedicated_endpoint. - Ejecuta todas las celdas del notebook.
El resultado del notebook proporciona los detalles del extremo en el siguiente formato:
projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID. -
Para construir la
model_request_urlpara la llamada de creación del modelo de SQL, reemplaza los identificadores de proyecto y extremo por los detalles del extremo del paso anterior de la siguiente manera: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');
Necesitas esta
model_request_urlen la llamadagoogle_ml.create_modelcuando registres el modelo de TimesFM en AlloyDB Omni, como se describe en la siguiente sección. Para confirmar que la función
ai.forecastfunciona como se espera, ejecuta la siguiente consulta de muestra: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 );
Registra el modelo de TimesFM en AlloyDB Omni
Para registrar el modelo de TimesFM en AlloyDB Omni, sigue estos pasos:
Verifica que la extensión
google_ml_integrationesté instalada en la base de datos de AlloyDB Omni que contiene los datos sobre los que deseas ejecutar predicciones.Confirma que tienes instalada la versión 1.4.5 o posterior de la extensión
google_ml_integration.SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';El siguiente es el resultado de muestra:
extversion ------------ 1.4.5 (1 row)Llama a
google_ml.create_modelcon la URL de solicitud del modelo que anotaste en Registra 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 );Reemplaza lo siguiente:
MODEL_ID: Es un identificador único para el modelo registrado que deseas usar para la previsión, por ejemplo,vertex_timesfm.MODEL_QUALIFIED_NAME: Es un nombre definido por el usuario para el modelo, por ejemplo,timesfm_v2.REGION: Es la región en la que se coloca la instancia, por ejemplo,us-central1.PROJECT_ID: Es el nombre del proyecto en el que se implementa el modelo, por ejemplo,forecast_project.ENDPOINT_ID: Es el nombre de la implementación del modelo, por ejemplo,my-timesfm-endpoint.Vertex AI proporciona la
model_request_urldespués de implementar el modelo. Copia toda la URL del panel Solicitud de muestra en la consola de Vertex AI. Ya contiene la información correcta del proyecto y del extremo.
Habilita la marca de base de datos de previsión
Antes de generar previsiones con el modelo registrado, debes establecer la marca de base de datos google_ml_integration.enable_forecasting en on.
Puedes habilitar esta marca para tu sesión actual o configurarla para que persista para una base de datos o un usuario específicos en todas las sesiones. Para establecer la marca de base de datos, selecciona una de las siguientes opciones:
Habilita la marca para la sesión actual:
SET google_ml_integration.enable_forecasting = on;Habilita la marca para una base de datos específica:
ALTER DATABASE DATABASE_NAME SET google_ml_integration.enable_forecasting = 'on';Reemplaza
DATABASE_NAMEpor el nombre de tu base de datos.Habilita la marca para un usuario de base de datos específico:
ALTER ROLE postgres SET google_ml_integration.enable_forecasting = 'on';
Genera previsiones
Después de registrar el modelo de TimesFM y habilitar la marca necesaria, puedes generar previsiones pasando una tabla o consulta de origen con tus datos de series temporales.
La función ai.forecast se documenta por separado. Para obtener una lista completa de
los parámetros, incluidas sus descripciones y ejemplos, consulta la
referencia de administración de extremos de modelos.
Genera previsiones a partir de una tabla de origen
En el siguiente ejemplo, se muestra cómo llamar a la función ai.forecast con 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
);
Genera 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
);
Usa 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 Omni. La clave es asegurarte de que tu modelo esté registrado con el tipo de modelo ts_forecasting.
Para obtener instrucciones detalladas sobre cómo registrar diferentes tipos de modelos, consulta
Registra y llama a modelos de IA remotos con la administración de extremos de modelos.
Una vez que se registre tu modelo, puedes usarlo con la función ai.forecast especificando su model_id.
¿Qué sigue?
- Registra un extremo de modelo con la administración de extremos de modelos.
- Consulta con operadores de SQL potenciados por IA.