TimeGPT 首个时间序列基础模型介绍与实践
TimeGPT 是首个用于时间序列的基础模型,能够为训练期间未见过的多样化数据集生成准确的预测。
TimeGPT 是首个用于时间序列的基础模型,能够利用预训练知识对未见过的多样化数据集生成准确预测。文章介绍了 TimeGPT 的背景、架构及迁移学习原理,展示了其在零样本学习和微调场景下的实践方法。通过对比统计、机器学习和深度学习方法,实验证明 TimeGPT 在性能、效率和简单性方面表现出色,尤其在零样本推理速度和准确率上领先。此外,文章还讨论了不确定度量化及未来研究方向。

TimeGPT 是首个用于时间序列的基础模型,能够为训练期间未见过的多样化数据集生成准确的预测。
大规模时间序列模型通过利用当代深度学习进步的能力,使精确预测和减少不确定性成为可能。通过对预训练模型进行评估,并与既定的统计、机器学习和深度学习方法进行比较,证明了 TimeGPT 在性能、效率和简单性方面表现出色。
时间序列数据在金融、医疗保健、气象学、社会科学等领域是不可或缺的。识别时间模式、趋势和周期性变化对于预测未来价值和为决策过程提供信息至关重要。然而,目前对时间序列的理论和实践理解尚未在从业者中达成共识,预测科学领域的努力未能实现真正通用的预训练模型的承诺。
深度学习方法在时间序列分析中具有显著优势,如全局性、可扩展性、灵活性和潜在准确性,能有效学习复杂数据依赖关系,避免复杂特征工程。然而,其有用性、准确性和复杂性受到质疑。学术研究人员和从业者对深度学习模型的优越性能看法不一,有人质疑其基本假设,而一些行业领导者报告其增强了成果,简化了分析流程。时间序列分析领域对神经预测方法的性能持怀疑态度,源于评估设置未对齐或定义不清晰、次优模型、缺乏符合要求的大规模标准化数据集。更大和更多样化的数据集能使更复杂的模型在各种任务中表现得更好。

图 1 单系列预测和多系列预测示意图
深度学习预测模型在研究和产业中广泛应用,其成功源于对已建立的架构(RNN 和 CNN)的改进。这些模型最初是为自然语言处理和计算机视觉设计的,但现已广泛应用于时间序列预测。RNNs 如 DeepAR 用于概率预测,而 CNN 在多项任务中表现优于 RNN。前馈网络由于计算成本低、效率高,也经常被使用,N-BEATS 和 NHITS 是著名的例子。近年来,基于 Transformer 的模型越来越受欢迎,因为它们在大规模设置和复杂任务中表现出卓越的性能。TFT 和 MQTransformer 是早期的例子,通过 Prob-sparse 自注意力机制,Informer 为长序列预测引入了 Transformers。此后,该概念在 Autoformer、FEDformer 和 PatchTST 等模型中得到了进一步改进。基础模型在时间序列预测任务中的潜力仍然未被充分探索,但有迹象表明可以在不降低性能的情况下将预训练模型转移到不同任务上,且在时间序列预测任务中存在数据和模型规模的扩展律。
迁移学习是指将一项任务中学到的知识应用于解决新任务的能力。在时间序列预测中,预测模型提供一个函数 fθ,将特征空间 X 映射到因变量空间 Y。设定中,X 包括目标时间序列 y 和外生协变量 x,Y 为目标时间序列的未来部分。预测任务的目标是估计条件分布:

迁移学习是在大型源数据集上预训练模型,以提高其在新预测任务上的性能。本文探讨了两种情况:零样本学习和微调。在零样本学习中,直接转移预训练的模型解决新任务,无需在新数据集上重新训练参数。在微调中,进一步在新数据集上训练模型(从预先训练的参数开始)。基础模型的核心思想是利用这些原则,通过最大的公开可用时间序列数据集进行训练,利用数据集和模型规模的比例关系。多种多样的数据集允许 TimeGPT 从未有过的大量时间模式中获得洞见,这些模式跨越多个领域。
TimeGPT 是一种由 Nixtla 开发的专门用于预测任务的生成式预训练 Transformer 模型,具有自我关注机制,采用历史值窗口生成预测,添加局部位置编码,由多层编码器 - 解码器结构组成,每个结构都具有残差连接和层归一化。最后,线性层将解码器的输出映射到预测窗口维度。TimeGPT 旨在处理不同频率和特征的时间序列,同时适应不同的输入大小和预测范围。这种适应性在很大程度上归因于 TimeGPT 所基于的基于 transformer 的底层架构。
TimeGPT 可以仅使用历史值作为输入,无需训练即可对新时间序列进行准确预测。TimeGPT 在历史上最大的数据集上进行了训练,该数据集包含超过 1000 亿行的金融、天气、能源和网络数据,并使时间序列分析的力量大众化。该工具能够在几秒钟内辨别模式并预测未来的数据点。
TimeGPT 模型'读取'时间序列数据的方式与人类读取句子的方式非常相似——从左到右。它查看过去数据的窗口,我们可以将其视为'标记',并预测接下来会发生什么。该预测基于模型在过去数据中识别并推断未来的模式。
API 为 TimeGPT 提供了一个接口,允许用户利用其预测功能来预测未来的事件。TimeGPT 还可以用于其他与时间序列相关的任务,如假设场景、异常检测、财务预测等。

pip install nixtlats
只需导入库,然后用两行代码就可以开始预测!
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/Nixtla/transfer-learning-time-series/main/datasets/electricity-short.csv')
from nixtlats import TimeGPT
timegpt = TimeGPT(
# defaults to os.environ.get("TIMEGPT_TOKEN")
token='my_token_provided_by_nixtla'
)
fcst_df = timegpt.forecast(df, h=24, level=[80,90])
INFO:nixtlats.timegpt:Validating inputs...
INFO:nixtlats.timegpt:Preprocessing dataframes...
INFO:nixtlats.timegpt:Inferred freq: H
INFO:nixtlats.timegpt:Restricting input...
INFO:nixtlats.timegpt:Calling Forecast Endpoint...
timegpt.plot(df, fcst_df, level=[80,90], max_insample_length=24*5)

TimeGPT 接受了最大的公开时间序列集合的训练,包含 1000 亿个数据点,涵盖金融、经济等广泛领域。数据集具有多种时间模式、季节性、周期和趋势,以及噪声和异常值。大多数序列以原始形式包含,处理仅限于格式标准化和填补缺失值。这种多样性使 TimeGPT 能够处理各种场景,增强其鲁棒性和泛化能力,从而准确地预测未知的时间序列。
TimeGPT 在 NVIDIA A10G GPU 集群上训练,进行了超参数探索,旨在优化学习率和批大小等关键参数。实验结果表明,较大的批大小和较小的学习率对模型性能具有积极的影响。该模型在 PyTorch 框架中实现,并采用 Adam 优化器进行训练。我们还实施了学习率衰减策略,将其降低到初始值的 12%。
概率预测评估模型在风险评估和决策中具有重要作用,其预测的不确定性能够为决策提供重要的参考依据。保形预测作为一种非参数方法,能够生成具有指定覆盖率精度的预测区间,且无需严格的分布假设。这一特性使其在模型和时间序列的未知领域中具有广泛应用。在处理新时间序列推理问题时,我们采用滚动预测的方法来估计模型预测特定目标时间序列的误差,以确保预测的准确性。

图 2 TimeGPT 在最大的公开时间序列集合中进行了训练,并且可以预测未见过的时间序列,而无需重新训练其参数
传统的预测性能评估方法,如划分训练集和测试集,已经无法满足基础模型的评估需求。这是因为这些模型的主要功能是预测全新序列。因此,我们特别关注 TimeGPT 的预测基础模型能力。为了对其进行测试,我们选择了大量未见过的时间序列,包括 30 万个以上的不同领域数据。测试中,我们关注每个时间序列最后一个预测窗口的评估,其长度会根据采样频率的变化而变化。TimeGPT 在预测时,仅使用历史数据作为输入,如图 3,并未对模型权重进行再训练(零样本学习)。并且,根据实际需求的不同频率,我们设定了不同的预测范围:12 表示每月,1 表示每周,7 表示每天,24 表示每小时的数据。这样的设置更能体现出 TimeGPT 在实际应用中的价值。

图 3 新时间序列的推断。TimeGPT 以目标值的历史值和额外的外生变量作为输入,生成预测。我们依靠基于历史误差的保形预测来估计预测区间。

图 4 TimeGPT 和各组模型在月频率上的相对平均绝对误差(rMAE)。图中每个豆子代表一组模型的 rMAE 分布,中心线显示平均值。TimeGPT 的性能领先,其次是深度学习方法、统计方法、机器学习和基线模型。其他频率的结果类似。
TimeGPT 在基准测试中对比了广泛的基线、统计、机器学习和神经预测模型,提供了全面的性能分析。基线和统计模型基于最后一个预测窗口之前的历史值进行训练。我们选择全局模型方法用于机器学习,并利用所有时间序列为每个频率选择深度学习方法。由于计算要求高和训练时间长,排除了 Prophet 和 ARIMA 等模型。评价指标包括相对平均绝对误差(rMAE)和相对均方根误差(rRMSE),均以季节性朴素模型为基准进行归一化处理。这些相对误差指标能提供额外洞见,展示相对于已知基准的性能提升,提高结果可解释性。它们还具有尺度独立性,有助于比较每种频率的结果。为确保数值稳定性和评估一致性,对指标进行全局归一化处理。具体计算方式见方程 2。

表 1 使用零样本推断和使用 rMAE 和 rRMSE 测量的基准模型的 TimeGPT 的主要性能结果,得分越低越好。每个频率和度量的最佳模型以粗体突出显示,第二个最佳模型以下划线突出显示,而第三个最佳模型则以虚线突出显示。
我们在零样本推理上测试了 TimeGPT 的功能,即未在测试集上执行额外微调。表 1 显示了其零样本结果。TimeGPT 的性能优于经过战斗测试的综合统计模型和 SoTA 深度学习方法,在各个频率中排名前三。
评估预测模型的有效性需比较其与竞争替代方案的表现。虽然准确性是关键指标,但计算成本和实现复杂性在实际应用中也至关重要。TimeGPT 通过简单、快速地调用预训练模型进行预测,相比其他模型所需的完整训练和预测管道更为优越。
微调是利用基础模型和基于 transformer 架构的关键步骤,通过在特定任务数据集上调整模型参数,使模型根据新任务要求调整其广泛知识。此过程保持模型广泛理解,并擅长特定任务。基于 transformer 的架构受益于微调,提高在特定领域应用的性能。微调是连接基础模型广泛能力和目标任务特性的重要桥梁。如图 5 所示,TimeGPT 在测试集上针对时间序列子集的微调步骤数提高准确度。

图 5 对测试集的时间序列子集进行微调后的 TimeGPT 性能
在零样本推断方面,TimeGPT 的 GPU 推断速度为每系列 0.6 毫秒,与简单季节性朴素推断相当,远快于并行计算优化的统计方法(每系列 600 毫秒)和全局模型(如 LGBM、LSTM 和 NHITS,每系列 57 毫秒)。由于其零样本推断能力,TimeGPT 的总速度比传统统计方法和全局模型快几个数量级。
TimeGPT 通过简化预测过程,显著减少了复杂性和时间投入,同时实现了最先进的性能。在时间序列中引入基础模型是一个重要里程碑,但还有许多未解决的问题。未来的研究方向包括有见地的预测和时间序列嵌入,以及多模态和多时态基础模型的整合。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online