A função ai.forecast no AlloyDB para PostgreSQL permite executar previsões de séries temporais diretamente nos dados do banco de dados usando SQL. É possível registrar e
chamar modelos de previsão, como
TimesFM, ou qualquer modelo registrado
com o tipo de modelo ts_forecasting para prever tendências futuras com base em dados
históricos. Para mais informações sobre a arquitetura do TimesFM, consulte o
blog de pesquisa do TimesFM.
Antes de começar
Antes de realizar a previsão de séries temporais, é necessário ativar o recurso de previsão no AlloyDB e registrar um modelo.
Registrar um modelo de previsão
É possível usar vários modelos de previsão com o AlloyDB.
Nesta seção, mostramos como registrar o modelo TimesFM. Para instruções sobre como registrar outros modelos, consulte Registrar um endpoint de modelo com o gerenciamento de endpoints de modelo.
Usar o modelo TimesFM
Os modelos do TimesFM vêm nas seguintes versões:
TimesFM 1.0: a versão inicial do modelo TimesFM.
TimesFM 2.0: esta versão contém um checkpoint de 500 milhões de parâmetros com o código de inferência. Ele oferece um desempenho melhor em comparação com o modelo 1.0.
TimesFM 2.5: esta versão contém um checkpoint de 200 milhões de parâmetros com o código de inferência. Ele oferece um desempenho de modelo melhor em comparação com o modelo 2.0.
Todos os modelos estão disponíveis no Model Garden para implantação rápida.
Para usar os modelos do TimesFM, primeiro implante o modelo do TimesFM em um endpoint da Gemini Enterprise Agent Platform e, em seguida, registre-o no AlloyDB.
Implantar o modelo TimesFM em um endpoint da plataforma de agentes
É possível implantar o modelo com um clique no console do Google Cloud ou manualmente usando um notebook do Colaboratory.
Implantação com um clique
Para implantar o modelo TimesFM com um clique, siga estas etapas:
No console do Google Cloud , acesse a página Model Garden:
Acessar o Model Garden- No campo Pesquisar, insira
TimesFM. - Nos resultados da pesquisa, clique em
TimesFM. -
Na página TimesFM, siga estas etapas:
- Clique em Implantar modelo.
- Selecione Agent Platform.
No painel Implantar na Agent Platform, configure e implante o modelo:
- Para usar a versão mais recente do modelo TimesFM, no menu suspenso ID do recurso, selecione
google/timesfm-2.0. - Para facilitar a identificação da implantação mais tarde, insira o seguinte:
- Em Nome do modelo, um
MODEL_NAMEexclusivo. - Em Nome do endpoint, um
ENDPOINT_NAMEexclusivo.
- Em Nome do modelo, um
- Para expandir as opções de configuração, em Configurações de implantação, clique em Avançado.
- Para garantir a menor latência possível, no menu suspenso Região, selecione a mesma região em que a instância do AlloyDB está localizada.
- Para ter o melhor desempenho, no menu suspenso Especificação da máquina, selecione uma especificação de máquina adequada. Uma GPU ou TPU pode oferecer menor latência.
No menu suspenso Acesso ao endpoint de Políticas de disponibilidade, selecione Público (endpoint compartilhado).
Isso cria um endpoint no domínio
aiplatformque funciona com o AlloyDB.- Para implantar o modelo em um endpoint gerenciado, clique em Implantar. A implantação pode levar de 10 a 15 minutos.
- Para usar a versão mais recente do modelo TimesFM, no menu suspenso ID do recurso, selecione
- Depois que o modelo TimesFM for implantado, um link semelhante a
google_timesfm-VERSION-one-click-deployvai aparecer em Endpoints. - Para acessar o URL de solicitação do modelo, em Endpoints, clique no link de implantação.
- Na página de detalhes do endpoint, clique em Exemplo de solicitação.
No painel Solicitação de amostra, encontre e anote o URL de solicitação do modelo. Você vai usar essas informações em Registrar o modelo TimesFM no AlloyDB, por exemplo,
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict.Verifique se o URL da solicitação tem
aiplatform.googleapis.com.
Implantação manual
Para implantar manualmente o modelo TimesFM usando um notebook do Colaboratory, siga estas etapas:
-
Acesse a página Model Garden no console do Google Cloud :
Acessar o Model Garden - No campo Pesquisar, insira
TimesFM. - Nos resultados da pesquisa, clique em
TimesFMpara abrir o card do modelo. - Na página TimesFM, clique em Abrir notebook do CO.
- Na janela Abrir notebook, clique no link Collab Enterprise do TimesFM 2.0.
-
Na página Collab Enterprise, siga estas etapas:
- Para estabelecer uma conexão com o ambiente de execução, clique em Conectar.
-
Opcional: siga estas etapas, se necessário:
-
Na seção Pré-requisitos de Configurar projeto do Google Cloud, defina
BUCKET_URIeREGION. Por exemplo, definaBUCKET_URIcomogs://your-unique-bucket-nameeREGIONcomous-central1. - No menu suspenso accelerator_type de Implantar o TimesFM em um endpoint da Vertex AI, selecione um tipo de acelerador diferente, se necessário.
- Na Etapa 3: definir o horizonte máximo de previsão, preencha os campos horizon e max_context. Por exemplo, defina
horizoncomo128emax_contextcomo512.
-
- Desmarque a caixa de seleção
use_dedicated_endpoint. - Execute todas as células no notebook.
A saída do notebook fornece os detalhes do endpoint no seguinte formato:
projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID. -
Para criar o
model_request_urlpara a chamada de criação do modelo SQL, substitua os identificadores de projeto e endpoint pelos detalhes do endpoint da etapa anterior, da seguinte maneira: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');
Você vai precisar desse
model_request_urlna chamadagoogle_ml.create_modelao registrar o modelo TimesFM no AlloyDB, conforme descrito na seção a seguir. Para confirmar se a função
ai.forecastfunciona conforme o esperado, execute o seguinte exemplo de consulta: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 o modelo TimesFM no AlloyDB
Para registrar o modelo TimesFM no AlloyDB, siga estas etapas:
Verifique se a extensão
google_ml_integrationestá instalada no banco de dados do AlloyDB que contém os dados em que você quer executar as previsões.Confirme se você tem a versão 1.4.5 ou mais recente da extensão
google_ml_integrationinstalada.SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';Confira um exemplo de saída:
extversion ------------ 1.4.5 (1 row)Chame
google_ml.create_modelusando o URL de solicitação do modelo que você anotou em Registrar 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:
MODEL_ID: um identificador exclusivo para o modelo registrado que você quer usar para previsão, por exemplo,vertex_timesfm.MODEL_QUALIFIED_NAME: um nome definido pelo usuário para o modelo, por exemplo,timesfm_v2.REGION: a região em que a instância está localizada, por exemplo,us-central1.PROJECT_ID: o nome do projeto em que o modelo está implantado, por exemplo,forecast_project.ENDPOINT_ID: o nome da implantação do modelo, por exemplo,my-timesfm-endpoint.O
model_request_urlé fornecido pela Agent Platform depois que você implanta o modelo. Copie todo o URL do painel Exemplo de solicitação no console da Plataforma de Agentes. Ele já contém as informações corretas do projeto e do endpoint.
Gerar previsões
Depois de registrar o modelo TimesFM e ativar a flag necessária, é possível gerar previsões transmitindo uma tabela de origem ou uma consulta com os dados de série temporal.
A função ai.forecast é documentada separadamente. Para uma lista completa de parâmetros, incluindo descrições e exemplos, consulte a referência de gerenciamento de endpoints de modelo.
Gerar previsões com base em uma tabela de origem
O exemplo a seguir 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
);
Gerar previsões com base em uma consulta
O exemplo a seguir mostra como gerar previsões chamando a função ai.forecast usando uma subconsulta como fonte de dados:
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
);
Usar outros modelos de previsão
É possível usar a função ai.forecast com qualquer outro modelo de previsão de série temporal registrado no AlloyDB. O segredo é garantir que o modelo esteja registrado com o tipo de modelo ts_forecasting.
Para instruções detalhadas sobre como registrar diferentes tipos de modelos, consulte Registrar e chamar modelos de IA remotos usando o gerenciamento de endpoints de modelo. Depois que o modelo for registrado, use-o com a função ai.forecast especificando o model_id.