Realiza la previsión de series temporales

En esta página, se describe cómo realizar predicciones de series temporales directamente en tu base de datos de AlloyDB. Puedes usar varios modelos de previsión, incluidos los modelos TimesFM, para ayudarte a navegar por la incertidumbre y tomar decisiones estratégicas fundamentadas. Para obtener más detalles sobre el modelo, consulta el blog de investigación de TimesFM.

La función ai.forecast de AlloyDB 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 una previsión de series temporales, debes habilitar la función de previsión en AlloyDB y registrar un modelo.

Registra 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 Registra un extremo del modelo con la administración de extremos del modelo.

Usa el modelo TimesFM

Los modelos de TimesFM vienen en dos versiones:

  • TimesFM 1.0: Es la versión inicial del modelo TimesFM.
  • TimesFM 2.0: Se recomienda esta versión, ya que ofrece una precisión hasta un 25% mayor en comparación con la versión 1.0.

Ambos 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.

Implementa el modelo TimesFM en un extremo de Vertex AI

Puedes implementar el modelo con un solo clic desde la consola de Google Cloud o de forma manual con un notebook de Colaboratory.

Implementación con un solo clic

Para implementar el modelo TimesFM con la implementación con un clic, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Model Garden:

    Ir a Model Garden
  2. En el campo Buscar, ingresa TimesFM.
  3. En los resultados de la búsqueda, haz clic en TimesFM.
  4. En la página TimesFM, completa los siguientes pasos:

  5. Haz clic en Implementar modelo.
  6. Selecciona Vertex AI.
  7. En el panel Implementar en Vertex AI, configura y, luego, implementa tu modelo:

    1. Para usar la versión más reciente del modelo TimesFM, en el menú desplegable ID de recurso, selecciona google/timesfm-2.0.
    2. Para que sea más fácil identificar la implementación más adelante, ingresa lo siguiente:
      1. En Nombre del modelo, un MODEL_NAME único.
      2. En Nombre del extremo, un ENDPOINT_NAME único
    3. Para expandir las opciones de configuración, en Configuración de la implementación, haz clic en Avanzada.
      1. 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.
      2. 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 puede ofrecer una latencia más baja.
    4. En el menú desplegable Acceso al extremo de Políticas de disponibilidad, selecciona Público (extremo compartido).

      Esto crea un extremo en el dominio aiplatform que funciona con AlloyDB.

    5. Para implementar el modelo en un extremo administrado, haz clic en Implementar. La implementación puede tardar entre 10 y 15 minutos.
  8. Después de implementar el modelo de TimesFM, aparecerá un vínculo similar a google_timesfm-VERSION-one-click-deploy en Endpoints.
  9. Para obtener la URL de la solicitud del modelo, en Extremos, haz clic en el vínculo de implementación.
  10. En la página de detalles del extremo, haz clic en Solicitud de muestra.
  11. En el panel Solicitud de muestra, busca la URL de la solicitud del modelo y anótala. Usarás esta información en Registra el modelo de 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 contenga aiplatform.googleapis.com.

Implementación manual

Para implementar manualmente el modelo de TimesFM con un notebook de Colaboratory, sigue estos pasos:

  1. Navega a la página Model Garden en la consola de Google Cloud :

    Ir a Model Garden
  2. En el campo Buscar, ingresa TimesFM.
  3. En los resultados de la búsqueda, haz clic en TimesFM para abrir la tarjeta del modelo.
  4. En la página TimesFM, haz clic en CO Open Notebook.
  5. En la ventana Abrir notebook, haz clic en el vínculo Colab Enterprise para TimesFM 2.0.
  6. En la página Colab Enterprise, completa los siguientes pasos:

    1. Para establecer una conexión con el entorno de ejecución, haz clic en Conectar.
    2. Opcional: Si es necesario, completa los siguientes pasos:

      • En la sección Requisitos previos de Configura el proyecto de Google Cloud, establece BUCKET_URI y REGION. Por ejemplo, establece BUCKET_URI en gs://your-unique-bucket-name y REGION en us-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 Paso 3: Establece el horizonte de previsión máximo, completa los campos horizon y max_context. Por ejemplo, establece horizon en 128 y max_context en 512.
    3. Anula la selección de la casilla de verificación use_dedicated_endpoint.
    4. 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.

  7. Para construir el model_request_url para la llamada de creación del modelo SQL, reemplaza los identificadores del proyecto y del 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');

    Necesitarás este model_request_url en la llamada a the google_ml.create_model cuando registres el modelo de TimesFM en AlloyDB, como se describe en la siguiente sección.

  8. Para confirmar que la función ai.forecast funciona según lo previsto, 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 TimesFM en AlloyDB

Para registrar el modelo TimesFM en AlloyDB, sigue estos pasos:

  1. Verifica que la extensión google_ml_integration esté instalada en la base de datos de AlloyDB que contiene los datos sobre los que deseas ejecutar predicciones.

  2. 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';
    

    A continuación, se muestra el resultado de ejemplo:

    extversion
    ------------
    1.4.5
    (1 row)
    
  3. Llama a google_ml.create_model con la URL de solicitud del modelo que anotaste en Cómo 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
      );
    

    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.
    • 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 el model_request_url después de que implementas tu modelo. Copia toda la URL del panel Sample request en la consola de Vertex AI. Ya contiene la información correcta del proyecto y del extremo.

Generar previsiones

Después de registrar el modelo TimesFM y habilitar la marca necesaria, puedes generar previsiones pasando una tabla o una 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 búsqueda

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. La clave es asegurarse de que tu modelo esté registrado con el tipo de modelo ts_forecasting.

Si quieres obtener instrucciones detalladas para 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?