A função ai.forecast do AlloyDB Omni foi projetada para funcionar com qualquer modelo registrado com o tipo de modelo ts_forecasting, oferecendo a flexibilidade de usar o melhor modelo para suas necessidades. Este documento fornece um
guia detalhado sobre o uso do TimesFM, mas você também pode aplicar os princípios a outros
modelos.
Antes de começar
Antes de realizar a previsão de séries temporais, é necessário ativar a flag do banco de dados de previsão no AlloyDB Omni e registrar um modelo de previsão.
Registrar um modelo de previsão
É possível usar vários modelos de previsão com o AlloyDB Omni.
Esta seção fornece instruções para registrar o modelo TimesFM. Para instruções sobre como registrar outros modelos, consulte Registrar um endpoint de modelo no gerenciamento de endpoints de modelo.
Usar o modelo TimesFM
TimesFM TimesFM vêm em duas versões:
- TimesFM 1.0: a versão inicial do modelo TimesFM.
- TimesFM 2.0: essa versão contém um checkpoint de parâmetro de 500 milhões com o código de inferência. Ela oferece melhor desempenho do modelo em comparação com o modelo 1.0.
- TimesFM 2.5: essa versão contém um checkpoint de parâmetro de 200 milhões com o código de inferência. Ela oferece melhor desempenho do modelo 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 TimesFM, primeiro implante o modelo TimesFM em um endpoint da Vertex AI e registre-o no AlloyDB Omni.
Implantar o modelo TimesFM em um endpoint da Vertex AI
É possível implantar o modelo usando uma implantação com um clique no Google Cloud console, ou manualmente usando um notebook do Colaboratory.
Implantação com um clique
Para implantar o modelo TimesFM usando uma implantação com um clique, siga estas etapas:
No Google Cloud console, 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, conclua as seguintes etapas:
- Clique em Implantar modelo.
- Selecione Vertex AI.
No painel Implantar na Vertex AI, configure e implante o modelo:
- Para usar a versão mais recente do modelo TimesFM, na lista suspensa 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, na lista suspensa Região, selecione a mesma região em que a instância do AlloyDB Omni está localizada.
- Para melhor desempenho, na lista suspensa Especificação da máquina, selecione uma especificação de máquina adequada. Um GPU ou TPU pode oferecer menor latência.
Na lista suspensa 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 Omni.- 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, na lista suspensa ID do recurso, selecione
- Depois que o modelo TimesFM for implantado, um link semelhante a
google_timesfm-VERSION-one-click-deployserá exibido em Endpoints. - Para receber o URL da solicitação do modelo, em Endpoints, clique no link de implantação.
- Na página de detalhes do endpoint, clique em Solicitação de amostra.
No painel Solicitação de amostra, encontre e anote o URL da solicitação do modelo. Use essas informações em Registrar o modelo TimesFM no AlloyDB Omni. 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:
-
Navegue até a página Model Garden no Google Cloud console:
Acessar o Model Garden - No campo Pesquisar, insira
TimesFM. - Nos resultados da pesquisa, clique em
TimesFMpara abrir o card de modelo. - Na página TimesFM, clique em CO Open Notebook.
- Na janela Abrir notebook, clique no link Collab Enterprise do TimesFM 2.0.
-
Na página Collab Enterprise, conclua as seguintes etapas:
- Para estabelecer uma conexão com o ambiente de execução, clique em Conectar.
-
Opcional: conclua as etapas a seguir, se necessário:
-
Na seção Pré-requisitos de Configurar o projeto do Google Cloud, defina o BUCKET_URI e a REGION. Por exemplo, defina o BUCKET_URI como
gs://your-unique-bucket-namee a REGION comous-central1. - Na lista suspensa 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 horizon como
128e max_context como512.
-
- 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 construir 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ê precisa desse
model_request_urlna chamadagoogle_ml.create_modelao registrar o modelo TimesFM no AlloyDB Omni, conforme descrito na seção a seguir. Para confirmar se a função
ai.forecastfunciona conforme o esperado, execute a seguinte consulta de amostra: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 Omni
Para registrar o modelo TimesFM no AlloyDB Omni, siga estas etapas:
Verifique se a extensão
google_ml_integrationestá instalada no banco de dados do AlloyDB Omni que contém os dados em que você quer executar 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 a seguir um exemplo de saída:
extversion ------------ 1.4.5 (1 row)Chame
google_ml.create_modelusando o URL da 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 Vertex AI depois que você implanta o modelo. Copie o URL inteiro do painel Solicitação de amostra no console da Vertex AI. Ele já contém as informações corretas do projeto e do endpoint.
Ativar a flag do banco de dados de previsão
Antes de gerar previsões usando o modelo registrado, defina a flag de banco de dados google_ml_integration.enable_forecasting como on.
É possível ativar essa flag para a sessão atual ou defini-la para persistir em um banco de dados ou usuário específico em todas as sessões. Para definir a flag de banco de dados, selecione uma das seguintes opções:
Ativar a flag para a sessão atual:
SET google_ml_integration.enable_forecasting = on;Ativar a flag para um banco de dados específico:
ALTER DATABASE DATABASE_NAME SET google_ml_integration.enable_forecasting = 'on';Substitua
DATABASE_NAMEpelo nome do seu banco de dados.Ativar a flag para um usuário de banco de dados específico:
ALTER ROLE postgres SET google_ml_integration.enable_forecasting = 'on';
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 está 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 de 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 de 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 1) AS time_series_data',
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éries temporais registrado no AlloyDB Omni. A chave é 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, será possível usá-lo com a função ai.forecast especificando o model_id.
A seguir
- Registrar um endpoint de modelo no gerenciamento de endpoints de modelo.
- Consultar usando operadores SQL com tecnologia de IA.