
随着工业物联网、智能制造的深度推进,企业对数据驱动决策的需求迎来爆发式增长,时序预测已成为生产运维、能耗管理、供应链优化等核心场景的关键能力,企业用户将 “平台能否提供开箱即用的行业智能算法与模型” 作为时序数据平台选型的核心指标。 但在工业场景落地中,传统时序预测方案正面临多重难以突破的瓶颈:
但在工业场景落地中,传统时序预测方案正面临多重难以突破的瓶颈:
基于此,时序数据库 + 预训练时序大模型的组合方案,成为破解上述痛点的最优解之一。本文将详细介绍 Google Research 开源的 TimesFM 2.5 时序基础模型,与 Datalayers 时序数据库的深度融合方案,提供可直接复现的端到端落地实践,帮助企业快速搭建低成本、高可用、泛化能力强的时序预测体系。
TimesFM2.5 是 Google 于2025年9月发布的 TimesFM(Time Series Foundation Model)系列模型最新版本 。这是一种表现优秀的时序预测模型,且经过了预训练,部署与使用十分简单。在工业领域也有良好的发挥。
本文通过 Datalayers + TimesFM2.5 的结合,实现时序数据预测。
以下是基于 Electricity Load Forecasting 数据集,使用 TimesFM2.5,模型 context 长度 10240,预测 horizon 48 的结果:

具体安装步骤可以参考TimesFM ,本文给出 conda 虚拟环境,python=3.10的模型安装过程。
git clone https://github.com/google-research/timesfm.git
conda create -n tsforecast python=3.10 pip -y
conda activate tsforecast
pip install -e .[torch] # 本文以torch版本为例
TimesFM2.5 支持 covariate forecasting,使用前需要安装 xreg 相关的依赖。
以下是官方提供的一个直线和正弦曲线预测简单示例:
import torch
import numpy as np
import timesfm
torch.set_float32_matmul_precision("high")
model = timesfm.TimesFM_2p5_200M_torch.from_pretrained("google/timesfm-2.5-200m-pytorch")
model.compile(
timesfm.ForecastConfig(
max_context=1024,
max_horizon=256,
normalize_inputs=True,
use_continuous_quantile_head=True,
force_flip_invariance=True,
infer_is_positive=True,
fix_quantile_crossing=True,
)
)
point_forecast, quantile_forecast = model.forecast(
horizon=12,
inputs=[
np.linspace(0, 1, 100),
np.sin(np.linspace(0, 20, 67)),
], # Two dummy inputs
)
point_forecast.shape # (2, 12)
quantile_forecast.shape # (2, 12, 10): mean, then 10th to 90th quantiles.
forecast 是最常用的单变量预测入口,接收 horizon(预测窗口)和 inputs(预测的 batches 列表),返回形状(batch_size, horizon)的点预测 ndarray 和形状(batch_size, horizon, 10)的分位数预测 ndarray。具体 API Reference 可参考TimesFM
模型可以从 huggingface 下载或者使用本地模型权重,若使用本地模型权重,则需要将 from_pretrained 方法的模型id参数替换为本地模型权重所在目录,格式需要是 Unix 完全展开的路径格式(”~”和$开头的环境变量均无法解析)。
此处使用 Docker 做为安装方式,更多安装方式见 Datalayers 文档。
docker run --name datalayers -d \
-p 8360:8360 -p 8361:8361 \
datalayers/datalayers:latest
通过 dlsql 命令行工具在 Datalayers 中创建对应的 database 与 table, 如下:
> create database test
Query OK, 0 rows affected. (0.001 sec)
> use test
Database changed to `test`
test > -- 在 dlsql cli 中执行
CREATE TABLE test.electricity (
`datetime` TIMESTAMP(9) NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Holiday_ID` INT32 NOT NULL,
`nat_demand` FLOAT32,
`T2M_toc` FLOAT32,
`QV2M_toc` FLOAT32,
`TQL_toc` FLOAT32,
`W2M_toc` FLOAT32,
`T2M_san` FLOAT32,
`QV2M_san` FLOAT32,
`TQL_san` FLOAT32,
`W2M_san` FLOAT32,
`T2M_dav` FLOAT32,
`QV2M_dav` FLOAT32,
`TQL_dav` FLOAT32,
`W2M_dav` FLOAT32,
`holiday` INT32,
`school` INT32,
TIMESTAMP KEY(`datetime`)
)
PARTITION BY HASH (`holiday`) PARTITIONS 1
ENGINE=TimeSeries
Query OK, 0 rows affected. (0.009 sec)
上述示例在 Datalayers 中创建了一个名为 test 的数据库,并创建了名为 electricity 的表,其中包含 nat_demand 的预测目标列。数据来源:Electricity Load Forecasting 。
然后通过导入脚本 tsforecast-demo ,将数据导入到 Datalayers 中。
详细代码见tsforecast-demo。
根据上述代码仓库说明,即可实现相关时序数据预测的验证。
效果如下:

以上模型使用和连接 Datalayers 示例已经足够完成 Datalayers + TimesFM2.5 的最小结合。生产环境可结合已有的 Datalayers 部署,将工程化的预测服务无侵入地与 Datalayers 结合,以进行原型验证。
本文所有代码位于 GitHub。
高性能、云原生的时序数据存储引擎,轻松应对海量数据的写入与查询