Faça previsões de séries cronológicas

Esta página descreve como fazer previsões de séries cronológicas diretamente na sua base de dados do AlloyDB. Pode usar vários modelos de previsão, incluindo os modelos TimesFM, para ajudar a lidar com a incerteza e tomar decisões estratégicas informadas. Para mais detalhes sobre o modelo, consulte o blogue de investigação TimesFM.

A função ai.forecast do AlloyDB foi concebida para funcionar com qualquer modelo registado com o tipo de modelo ts_forecasting, o que lhe dá a flexibilidade de usar o melhor modelo para as suas necessidades. Este documento fornece um guia detalhado sobre a utilização do TimesFM, mas também pode aplicar os princípios a outros modelos.

Antes de começar

Antes de poder fazer previsões de séries cronológicas, tem de ativar a funcionalidade de previsão no AlloyDB e registar um modelo.

Registe um modelo de previsão

Pode usar vários modelos de previsão com o AlloyDB.

Esta secção fornece instruções para registar o modelo TimesFM. Para obter instruções sobre o registo de outros modelos, consulte o artigo Registe um ponto final de modelo com a gestão de pontos finais de modelos.

Use o modelo TimesFM

Os modelos TimesFM estão disponíveis em duas versões:

  • TimesFM 1.0: a versão inicial do modelo TimesFM.
  • TimesFM 2.0: esta versão é recomendada, uma vez que oferece uma precisão até 25% superior em comparação com a versão 1.0.

Ambos os modelos estão disponíveis no Model Garden para uma implementação rápida.

Para usar os modelos TimesFM, primeiro tem de implementar o modelo TimesFM num ponto final do Vertex AI e, em seguida, registá-lo no AlloyDB.

Implemente o modelo TimesFM num ponto final do Vertex AI

Pode implementar o modelo com uma implementação de um clique a partir da Google Cloud consola ou manualmente através de um bloco de notas do Colaboratory.

Implementação com um clique

Para implementar o modelo TimesFM através de uma implementação com um clique, siga estes passos:

  1. Na Google Cloud consola, aceda à página Model Garden:

    Aceda ao Model Garden
  2. No campo Pesquisar, introduza TimesFM.
  3. Nos resultados da pesquisa, clique em TimesFM.
  4. Na página TimesFM, conclua os seguintes passos:

  5. Clique em Implementar modelo.
  6. Selecione Vertex AI.
  7. No painel Implementar no Vertex AI, configure e implemente o seu modelo:

    1. Para usar a versão mais recente do modelo TimesFM, no menu pendente ID do recurso, selecione google/timesfm-2.0.
    2. Para facilitar a identificação da implementação mais tarde, introduza o seguinte:
      1. No Nome do modelo, um MODEL_NAME exclusivo.
      2. No Nome do ponto final, um ENDPOINT_NAME exclusivo.
    3. Para expandir as opções de configuração, em Definições de implementação, clique em Avançadas.
      1. Para garantir a latência mais baixa possível, no menu pendente Região, selecione a mesma região onde a sua instância do AlloyDB está localizada.
      2. Para o melhor desempenho, no menu pendente Especificações da máquina, selecione uma especificação da máquina adequada. Tenha em atenção que uma GPU ou uma TPU podem oferecer uma latência mais baixa.
    4. No menu pendente Acesso ao ponto final de Políticas de disponibilidade, selecione Público (ponto final partilhado).

      Esta ação cria um ponto final no domínio aiplatform que funciona com o AlloyDB.

    5. Para implementar o modelo num ponto final gerido, clique em Implementar. A implementação pode demorar cerca de 10 a 15 minutos.
  8. Após a implementação do modelo TimesFM, é apresentado um link semelhante a google_timesfm-VERSION-one-click-deploy em Endpoints.
  9. Para obter o URL do pedido do modelo, em Pontos finais, clique no link de implementação.
  10. Na página de detalhes do ponto final, clique em Pedido de amostra.
  11. No painel Pedido de exemplo, encontre e tome nota do URL do pedido do modelo. Use estas informações em Registe o modelo TimesFM no AlloyDB, por exemplo, https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict.

    Certifique-se de que o URL do pedido contém aiplatform.googleapis.com.

Implementação manual

Para implementar manualmente o modelo TimesFM através de um bloco de notas do Colaboratory, siga estes passos:

  1. Navegue para a página Model Garden na Google Cloud consola:

    Aceda ao Model Garden
  2. No campo Pesquisar, introduza TimesFM.
  3. Nos resultados da pesquisa, clique em TimesFM para abrir o cartão do modelo.
  4. Na página TimesFM, clique em CO Open Notebook.
  5. Na janela Abrir notebook, clique no link Collab Enterprise para o TimesFM 2.0.
  6. Na página Collab Enterprise, conclua os seguintes passos:

    1. Para estabelecer uma ligação ao ambiente de tempo de execução, clique em Associar.
    2. Opcional: conclua os seguintes passos, se necessário:

      • Na secção Pré-requisitos de Configurar projeto do Google Cloud, defina BUCKET_URI e REGION. Por exemplo, defina BUCKET_URI como gs://your-unique-bucket-name e REGION como us-central1.

      • No menu pendente accelerator_type de Implemente o TimesFM num ponto final da Vertex AI, selecione um tipo de acelerador diferente, se necessário.
      • No Passo 3: defina o horizonte de previsão máximo, preencha os campos horizon e max_context. Por exemplo, defina horizon como 128 e max_context como 512.
    3. Desmarque a caixa de verificação use_dedicated_endpoint.
    4. Executar todas as células no bloco de notas.

    O resultado do bloco de notas fornece os detalhes do ponto final no seguinte formato: projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID.

  7. Para criar o model_request_url para a chamada de criação do modelo SQL, substitua os identificadores do projeto e do ponto final pelos detalhes do ponto final do passo anterior da seguinte forma:

    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');

    Precisa deste model_request_url na chamada the google_ml.create_model quando registar o modelo TimesFM no AlloyDB, conforme descrito na secção seguinte.

  8. Para confirmar que a função ai.forecast funciona como esperado, execute a seguinte consulta de exemplo:

    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
    );
Registe o modelo TimesFM no AlloyDB

Para registar o modelo TimesFM no AlloyDB, siga estes passos:

  1. Verifique se a extensão google_ml_integration está instalada na base de dados do AlloyDB que contém os dados sobre os quais quer executar previsões.

  2. Confirme que tem a versão 1.4.5 ou posterior da extensão google_ml_integration instalada.

    SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';
    

    Segue-se o resultado de exemplo:

    extversion
    ------------
    1.4.5
    (1 row)
    
  3. Chame google_ml.create_model usando o URL do pedido do modelo que anotou em Registe um modelo de previsão.

    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
      );
    

    Substitua o seguinte:

    • MODEL_ID: um identificador exclusivo do modelo registado que quer usar para a previsão, por exemplo, vertex_timesfm.
    • MODEL_QUALIFIED_NAME: um nome definido pelo utilizador para o modelo, por exemplo, timesfm_v2.
    • PROJECT_ID: o nome do projeto onde o modelo está implementado, por exemplo, forecast_project.
    • ENDPOINT_ID: o nome da implementação do modelo, por exemplo, my-timesfm-endpoint.

      O model_request_url é fornecido pelo Vertex AI depois de implementar o modelo. Copie o URL completo do painel Pedido de amostra na consola do Vertex AI. Já contém as informações corretas do projeto e do ponto final.

Gere previsões

Depois de registar o modelo TimesFM e ativar a flag necessária, pode gerar previsões transmitindo uma tabela de origem ou uma consulta com os seus dados de séries cronológicas.

A função ai.forecast está documentada separadamente. Para ver uma lista completa de parâmetros, incluindo as respetivas descrições e exemplos, consulte a referência de gestão do ponto final do modelo.

Gere previsões a partir de uma tabela de origem

O exemplo seguinte mostra como chamar a função ai.forecast usando uma tabela de origem para gerar previsões:

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
);

Gere previsões a partir de uma consulta

O exemplo seguinte mostra como gerar previsões chamando a função ai.forecast através de uma subconsulta como origem de dados:

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
);

Use outros modelos de previsão

Pode usar a função ai.forecast com qualquer outro modelo de previsão de séries cronológicas que registe no AlloyDB. A chave é garantir que o seu modelo está registado com o tipo de modelo ts_forecasting.

Para ver instruções detalhadas sobre como registar diferentes tipos de modelos, consulte o artigo Registe e chame modelos de IA remotos através da gestão de pontos finais de modelos. Depois de registar o modelo, pode usá-lo com a função ai.forecast especificando o respetivo model_id.

O que se segue?