本页面介绍了如何在 AlloyDB 数据库中直接执行时序预测。您可以使用各种预测模型(包括 TimesFM 模型)来应对不确定性并做出明智的战略决策。如需详细了解该模型,请参阅 TimesFM 研究博客。
AlloyDB 的 ai.forecast 函数旨在与注册为 ts_forecasting 模型类型的任何模型搭配使用,让您可以灵活地使用最适合自己需求的模型。本文档详细介绍了如何使用 TimesFM,但您也可以将相关原则应用于其他模型。
如需使用此功能,请使用抢先体验新一代 AlloyDB AI 表单进行注册。
准备工作
您必须先在 AlloyDB 中启用预测功能并注册模型,然后才能执行时序预测。
注册预测模型
您可以将各种预测模型与 AlloyDB 搭配使用。
本部分介绍了如何注册 TimesFM 模型。如需了解如何注册其他模型,请参阅使用模型端点管理注册模型端点。
使用 TimesFM 模型
TimesFM 模型有两个版本:
- TimesFM 1.0:TimesFM 模型的初始版本。
- TimesFM 2.0:建议使用此版本,因为与 1.0 版相比,它的准确率最多可提高 25%。
这两个模型均可在 Model Garden 中快速部署。
如需使用 TimesFM 模型,您必须先将 TimesFM 模型部署到 Vertex AI 端点,然后在 AlloyDB 中注册该模型。
将 TimesFM 模型部署到 Vertex AI 端点
您可以使用 Google Cloud 控制台中的一键式部署功能来部署模型,也可以使用 Colaboratory 笔记本手动部署模型。
一键式部署
如需使用一键式部署来部署 TimesFM 模型,请按照以下步骤操作:
在 Google Cloud 控制台中,前往 Model Garden 页面。
转到 Model Garden- 在搜索字段中,输入
TimesFM。 - 在搜索结果中,点击
TimesFM。 -
在 TimesFM 页面中,完成以下步骤:
- 点击部署模型。
- 选择 Vertex AI。
在在 Vertex AI 上部署窗格中,配置并部署模型:
- 如需使用最新版本的 TimesFM 模型,请在资源 ID 下拉菜单中选择
google/timesfm-2.0。 - 为了便于日后识别部署,请输入以下内容:
- 在模型名称中,输入唯一的
MODEL_NAME。 - 在端点名称中,输入唯一的
ENDPOINT_NAME。
- 在模型名称中,输入唯一的
- 如需展开配置选项,请在部署设置中点击高级。
- 为了确保延迟时间尽可能短,请在区域下拉菜单中选择 AlloyDB 实例所在的区域。
- 为获得最佳性能,请在机器规格下拉菜单中选择合适的机器规格。请注意,GPU 或 TPU 可能会提供更低的延迟。
在可用性政策的端点访问权限下拉菜单中,选择公开(共享端点)。
这会在
aiplatform网域中创建一个可与 AlloyDB 搭配使用的端点。- 如需将模型部署到托管式端点,请点击部署。部署可能需要大约 10-15 分钟。
- 如需使用最新版本的 TimesFM 模型,请在资源 ID 下拉菜单中选择
- 部署 TimesFM 模型后,端点中会显示类似于
google_timesfm-VERSION-one-click-deploy的链接。 - 如需获取模型请求网址,请在端点中点击部署链接。
- 在端点详情页面上,点击示例请求。
在示例请求窗格中,找到并记下模型请求网址。您可以在在 AlloyDB 中注册 TimesFM 模型中使用此信息,例如
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict。请确保请求网址中包含
aiplatform.googleapis.com。
手动部署
如需使用 Colaboratory 笔记本手动部署 TimesFM 模型,请按照以下步骤操作:
-
前往 Google Cloud 控制台中的 Model Garden 页面:
转到 Model Garden - 在搜索字段中,输入
TimesFM。 - 在搜索结果中,点击
TimesFM打开模型卡片。 - 在 TimesFM 页面中,点击 CO Open Notebook。
- 在打开笔记本窗口中,点击 TimesFM 2.0 的 Collab Enterprise 链接。
-
在 Colab Enterprise 页面中,完成以下步骤:
- 如需与运行时环境建立连接,请点击连接。
-
可选:如有需要,请完成以下步骤:
-
在设置 Google Cloud 项目的前提条件部分中,设置 BUCKET_URI 和 REGION,例如,将 BUCKET_URI 设置为
gs://your-unique-bucket-name,并将 REGION 设置为us-central1。 - 在将 TimesFM 部署到 Vertex AI 端点的 accelerator_type 下拉菜单中,根据需要选择不同的加速器类型。
- 在第 3 步:设置最大预测范围中,填写 horizon 和 max_context 字段,例如,将 horizon 设置为
128,并将 max_context 设置为512。
-
- 取消选中
use_dedicated_endpoint复选框。 - 执行笔记本中的所有单元。
笔记本的输出以以下格式提供端点详细信息:
projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID。 -
如需为 SQL 模型创建调用构建
model_request_url,请将项目和端点标识符替换为上一步中的端点详细信息,如下所示: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');
在 AlloyDB 中注册 TimesFM 模型时,您需要在
the google_ml.create_model调用中使用此model_request_url,如下一部分所述。 如需确认
ai.forecast函数是否按预期运行,请运行以下示例查询: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 );
在 AlloyDB 中注册 TimesFM 模型
如需在 AlloyDB 中注册 TimesFM 模型,请按照以下步骤操作:
验证包含您要用于运行预测的数据的 AlloyDB 数据库中是否已安装
google_ml_integration扩展程序。确认您已安装
google_ml_integration扩展程序 1.4.5 版或更高版本。SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';以下是示例输出:
extversion ------------ 1.4.5 (1 row)使用您在注册预测模型中记下的模型请求网址调用
google_ml.create_model。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 );替换以下内容:
MODEL_ID:您要用于预测的已注册模型的唯一标识符,例如vertex_timesfm。MODEL_QUALIFIED_NAME:模型的用户定义名称,例如timesfm_v2。PROJECT_ID:在其中部署模型的项目的名称,例如forecast_project。ENDPOINT_ID:模型部署的名称,例如my-timesfm-endpoint。model_request_url是在您部署模型后由 Vertex AI 提供的。从 Vertex AI 控制台的示例请求窗格中复制整个网址。它已包含正确的项目和端点信息。
生成预测
注册 TimesFM 模型并启用必要的标志后,您可以通过传递包含时序数据的源表或查询来生成预测。
ai.forecast 函数的文档单独提供。如需查看完整的参数列表(包括说明和示例),请参阅模型端点管理参考文档。
根据源表生成预测
以下示例展示了如何使用源表调用 ai.forecast 函数来生成预测:
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
);
根据查询生成预测
以下示例展示了如何通过调用 ai.forecast 函数并使用子查询作为数据源来生成预测:
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
);
使用其他预测模型
您可以将 ai.forecast 函数与您在 AlloyDB 中注册的任何其他时序预测模型搭配使用。关键在于确保您的模型已注册为 ts_forecasting 模型类型。
如需详细了解如何注册不同类型的模型,请参阅使用模型端点管理注册和调用远程 AI 模型。注册模型后,您可以通过指定 model_id 将该模型与 ai.forecast 函数搭配使用。