1 摘要
本文从简约主义的视角探讨了时间序列通用预训练大模型的开发问题,并提出了Chronos模型。这是一个用于时间序列的语言建模框架,对时间变化不敏感,并且与任何语言模型架构兼容,只需进行微小的调整。它通过缩放和量化将时间序列分词为固定词汇表,并使用交叉熵损失训练现有的变换器语言模型架构。
在广泛的基准测试中,Chronos模型在训练语料库中的数据集上显著优于其他方法。与专门针对新数据集进行训练的方法相比,它具有相当的甚至更好的零样本性能。这些结果表明,Chronos模型可以利用来自不同领域的时间序列数据来提高未知预测任务的零样本精度。
图1 Chronos的高层次描述。(左)输入时间序列被缩放和量化以获得一系列令牌。(中)令牌被馈送到语言模型中,该模型可以是编码器-解码器模型或解码器模型。使用交叉熵损失训练模型。(右)在推理期间,我们从模型自动采样的令牌并将其映射回数值值。从模型中采样多个轨迹以获得预测分布。
2 背景
时间序列预测可以使用经典预测方法和深度学习方法。经典预测方法如ETS、ARIMA等为每个时间序列独立地拟合模型,而深度学习方法在给定的数据集中学习时间序列。大**型语言模型(LLM)**在自然语言处理任务中表现出色,基于transformer架构,通常在文本语料库上进行训练。基于预训练LLM的预测模型包括将数值时间序列数据视为原始文本,利用预训练的LLM进行微调,或将数值数据编码为数字字符串,在预训练的LLM上进行零样本设置来获取预报。**零样本学习。**Chronos模型是一种概率性的时间序列预测方法,它使用分类模型对观测值进行分类分布建模,执行回归分类。该模型不需要针对时间序列进行特定设计或特征,而是将时间序列值标记化到固定词汇表上,并在这些标记上训练现有的语言模型架构。
3 Chronos:用于时间序列的语言建模框架
Chronos是一个框架,用于调整现有的语言模型架构和训练过程以进行概率时间序列预测。由于自然语言和时间序列在表示方面的差异,需要对现有的语言建模框架进行特定的修改,特别是与分词有关的修改,以便它们适用于时间序列数据。我们的设计理念包括对模型架构和训练过程进行最小化的修改,以利用现有的变换器模型在语言任务上的出色表现。
3.1 时间序列标记
本节介绍了如何将时间序列数据应用于语言模型的方法,包括缩放和量化。首先对时间序列进行标准化,然后使用量化将其转换为离散令牌。建议使用一致的binning方法,并使用PAD和EOS标记填充和结束时间序列。最后,介绍了如何使用编码器-解码器T5模型和GPT-2模型进行实验,证明了该方法可以简单扩展到仅解码器模型。
3.2 目标函数
Chronos模型通过最小化真实标签和预测标签之间的分类交叉熵来训练,它使用Vts中元素的分类分布作为输出分布,并具有两个关键优势:不需要修改语言模型架构或训练目标,以及允许模型学习任意分布,包括多模态分布。这种灵活性对于预训练模型特别有价值。
3.3 预测
时序模型通过自回归采样从预测分布中获得未来多个实现,并将预测的令牌映射到实际值,再通过反标化变换进行反标化,在均值标定的情况下,涉及将值乘以尺度s。
4 数据增强
4.1 TSMix:时间序列混合器
Mixup是一种数据增强方案,用于缓解深度学习模型中的过度拟合和过拟合问题。现有工作已将Mixup扩展到时间序列领域,提出了TSMix。TSMix从训练数据集中随机采样k个特定长度的时间序列,对其进行缩放,并取其凸组合。组合权重从对称的Dirichlet分布中采样。TSMix通过混合来自不同时间序列的模式来增强数据的多样性。
图2 k={1,2,3}时的TSmix增强示例。TSmix通过从不同数据集随机抽样的时间序列中取加权的组合来提高模式多样性
4.2 KernelSynth:使用高斯过程生成合成数据
KernelSynth是一种用于生成合成时间序列的方法,它利用高斯过程生成合成时间序列,以增加模式多样性并弥补实际数据有限的情况下的不足。该方法通过随机组合高斯过程的核函数来生成新时间序列,并从GP先验中抽取样本生成合成时间序列。图3展示了KernelSynth中的生成过程,用简单基核函数组合生成复杂时序模式。
图3 (a)KernelSynth的示意图,KernelSynth是一种基于高斯过程(GP)的合成时间序列生成方法。从核库中采样核函数,然后使用二进制操作(×或+)随机组合。生成的合成时间序列在高斯过程的前置中使用了组合后的核函数。图中展示了每个步骤中来自不同核函数的随机样本,颜色分别为红色和蓝色。(b)KernelSynth生成的合成时间序列示例
5 实验
本节介绍了常用基准数据集的实验结果,包括数据集、训练策略、基准和评估指标的概述,以及Chronos模型在领域内和零样本设置下的性能评估、设计选择对性能的影响、定性性能分析和局限性等关键发现。实验细节已归入附录。
表1 我们实验所使用的数据集和基线的概要
5.1 数据集
为了训练和评估Chronos模型,我们收集了来自多个应用领域的大量公开可用数据集,并对数据集进行了分类。我们使用28个数据集来训练模型,包括约89万个一维时间序列,总共有约84亿个观察值。我们使用每个时间序列的最后H观察值作为留出测试集,并使用任务特定的预测长度H。两个基准的任务在数据集大小、频率、历史长度和预测长度方面表现出不同的属性,使其成为丰富的基准,反映了现实世界的场景。我们使用Chronos模型对基准数据进行评估,以获得准确的预测结果。
5.2 训练策略
在实验中,我们选择了T5模型作为Chronos的主要架构,并进行了只用解码器的GPT-2模型实验。我们使用了由28个训练数据集生成的增强数据和合成数据,并使用分布式数据并行和梯度积累进行训练。我们使用了AdamW优化器,并使用权重衰减为0.01的Adam优化器进行为期200K步的训练。不同尺寸的Chronos模型训练时间和成本也进行了报告。
5.3 基准
我们对Chronos模型进行了性能评估,并与各种时间序列预测基准进行了比较。评估了本地模型、针对每个任务单独训练或微调的任务特定模型以及预训练模型。详细信息请参阅附录C。
5.4 评价指标
我们评估了模型的概率和点预报性能,使用了加权分位数损失(WQL)评估概率预报的质量,并使用平均绝对比例误差(MASE)评估点预报性能。我们采用几何平均值聚合所有数据集的相对分数,以避免算术平均值可能产生的误导性结论。我们使用季节性朴素模型作为基准模型。对于无法完成或未能在分配时间内完成评估的模型,我们赋予其相对分数为1。我们给所有任务赋予了相同的权重,以反映实际情况中数据集可能具有不同数量的时间序列、频率、历史和预测长度的情况。
5.5 主要结果
Chronos模型在两个数据集上均表现出色,包括内部域数据集和零样本数据集。在内部域数据集上超过了经典统计基线和特定任务的深度学习模型,在零样本数据集上轻松地超过了统计基线,同时与在这些任务上训练的最佳深度学习模型表现相当。通过简单的微调方案,Chronos-T5(Small)模型在Benchmark II上取得了最佳成绩,显著超过了所有基线。
5.5.1 基准I:域内结果
Chronos-T5模型在基准评估中表现出色,优于其他基准模型,包括针对每个数据集训练或微调的任务特定模型和深度学习模型。模型通过跨多个数据集进行一次训练,简化生产预测系统中的预报工作流程。季节性朴素模型与其他本地模型竞争,表明数据集具有强烈的季节性模式。
图4 在基准I上的不同模型性能,包括15个数据集,这些数据集也包含在Chronos模型的训练数据中。基准展示了Chronos模型相对于本地统计模型在域内性能,这些模型为每个时间序列单独拟合参数,以及针对每个任务专门训练的模型。使用季节性朴素贝叶斯基线的分数对概率(WQL)和点(MASE)预报指标进行归一化,并通过几何平均值聚合以获得聚合相对WQL和MASE。Chronos和任务特定模型(除GPT4TS外)的平均结果涵盖了3个随机种子。仅根据MASE对产生点预报的模型(GPT4TS)进行比较。
5.5.2 基准II:零样本结果
基准II由27个数据集组成,这些数据集在Chronos模型训练过程中未被使用过。Chronos模型在零样本性能方面显著优于本地统计模型,在概率预报方面表现良好,优于许多特定任务模型。通过微调Chronos-T5(小型)模型,其在基准II上的总体性能得到了显著提高,超过了更大的Chronos模型和最佳特定任务模型。
图5 在基准II上的不同模型性能,包含在训练过程中没有看到Chronos模型的27个数据集。基准提供了对Chronos模型与本地统计模型、针对每个时间序列单独拟合参数的任务特定模型以及预训练ForecastPFN模型的零样本性能的见解。概率性(WQL)和点(MASE)预报度量值使用季节性朴素贝叶斯基线的分数进行归一化,并通过几何平均值聚合以获得聚合相对WQL和MASE,分别进行比较。Chronos和任务特定模型(除GPT4TS)的性能结果平均了3个随机种子。仅基于MASE对产生点预报的模型(GPT4TS和ForecastPFN)进行比较。
图6 在来自基准II的各个数据集上进行微调时,Chronos-T5(小型)相对于零样本性能显著提升,并且平均而言成为表现最佳的模型(见图5)。
5.6 超参数分析
我们研究了不同设计选择,如模型大小、初始化、训练步骤、合成数据比例、上下文长度和词汇表大小,对下游模型性能的影响。在每次实验中,我们只调整一个参数,保持其他因素不变,以评估其对Chronos-T5(小型)性能的单独影响。
我们试验了不同模型大小,发现更大的模型可能提高性能,但受推理时间限制,未进一步探索。随机初始化模型收敛到较低训练损失的趋势更明显,语言模型权重初始化的模型在初始阶段训练损失下降较快,但最终收敛到较高的损失。TSMix增强的模型在零样本性能上有所提升,使用合成数据可以提高域内和零样本指标的性能,但比例过高会降低性能。更长的训练可能有助于提高性能,随着上下文长度的增加,性能有所改善,但需要评估更长上下文长度的效果。词汇量增加,点预测指标(MASE)持续提高,但WQL在较大词汇量时开始改善后恶化。
图7 模型大小。(a)不同大小的Chronos模型训练损失曲线。(b)Chronos模型随模型大小变化的域内和零样本性能。
图8 不同模型大小下,使用语言模型权重初始化(标记为星号)的模型和三个随机初始化的模型(标记为圆圈)的域内和零样本性能的比较。
图9 初始化。不同大小的随机初始化的Chronos模型与使用语言模型权重的初始化的Chronos模型之间的训练损失的比较。
图10 (a)使用TSMix增强训练的Chronos-T5(Small)模型在域内和零样本性能之间的比较,以及没有TSMix增强的模型。(b)Chronos-T5(Small)模型在训练语料库中KernelSynth数据不同比例下的域内和零样本性能。
图11 Chronos-T5(小型)模型在训练步数、训练上下文长度和词汇量上的内域和零样本性能随时间的变化情况。
5.7 定性分析和局限性
本节对Chronos模型生成的预测进行了定性分析,并指出了标记化技术的局限性。我们主要关注合成时间序列的生成,以进行不同类型时序模式的受控分析。具体来说,我们没有提供实际数据集的预测,但建议读者参考附录E中的图22至图24以获取更多信息。
Chronos-T5(基础版)模型可以准确预测时间序列中的趋势和季节性,但在处理指数趋势时存在保守性。该模型在自回归过程中表现出色,适用于复杂过程。Chronos模型使用分类分布提供灵活的预测分布,能够产生不同形状的预测分布,包括多模态分布。尽管存在溢出和精度损失的限制,但其在现实世界数据上的表现良好。未来工作方向是改进分词方法以克服边缘情况。
图12 Chronos-T5(基础版)对合成模式生成的预测。(a) 噪声:Chronos对于高斯噪声生成了合理的预测,80%的预测区间与底层分布区间匹配(由水平虚线蓝色线表示)。(b) 趋势:Chronos正确地预测了线性趋势(顶部),但对于指数趋势(底部)则难以应对。© 季节性:Chronos能够准确建模不同复杂程度的季节性模式(顶部为单季节性,底部为三季节性)。(d) 组合模式:Chronos对通过添加(顶部)或乘法(底部)组合趋势和季节性模式生成的时间序列进行准确预测。
图13 当上下文不够长时,Chronos-T5(基础版)往往会低估趋势,如经典航空旅客数据(月度)和24个月预测时间跨度下的例子所示。上图:只有120个观测值作为上下文时,预测中位数与前一趋势相比趋于平缓。下图:有完整的上下文,即144个观测值时,预测更紧密地跟随趋势。
图14 Chronos-T5(基础版)针对AR(1)和AR(4)过程生成的时序的预测结果,与真实世界AR模型、正确阶数的拟合AR模型和AutoARIMA模型生成的预测结果进行比较。Chronos-T5(基础版)在这两种情况下都能生成可信的预测和预测区间。所有AR模型都能正确拟合更简单的AR(1)过程,并且相对于Chronos-T5(基础版),具有更好的MSE;然而,在AR(4)过程中,其复杂性增加,Chronos-T5(基础版)在真实世界AR模型之后排名第二。
图15 来自Chronos模型对NN5(每日)、交通和医院数据集的序列的预测分布分布图。每个图都显示了五个预测步骤(h=1,…,5)的预测分布:密度是通过核密度估计从样本预测中获得的。尽管交叉熵不关心距离,但模型学会了估计邻近标记的分布,以及各种形状的分布,包括多模态分布。
图16 由于缩放和量化导致的精度损失。在(a)中,数据由每隔n=10、20、50个观察值(从上到下)的单位尖峰组成:这里的尺度是1/n,因此最大可表示值为15/n。当1>15/n时,模型不可能恰当地捕捉到尖峰(除了最高情况),因为它们的值没有被标记准确地代表。在(b)中,数据是一个正弦波,它向上移动了μ=1、10、50:这里的尺度是μ,随着信号的方差相对于μ变得越来越小,标记的精度就会下降。
6 讨论
Chronos是时间序列预测的实用预训练模型,在综合测试数据集上表现出显著的零样本性能。通过微调,可以提高内域和零步结果,同时考虑其他信息,如协变量,可以训练针对任务的适配器,将协变量注入预训练的预测模型中。Chronos模型可以部署在不同历史长度、频率、预测时间和上下文长度的数据集上,简化了预测管道。为了提高推理速度,可以采用各种技术,如针对现代Ampere GPU优化的CUDA内核、量化、更快解码技术等。大规模时序数据集上的大型模型训练可以获得出色的领域内和零样本性能,但高质量的公开时序数据有限。解决数据有限问题的另一方向是开发更好的合成时序生成方法。
图17 不同模型对单个时间序列预测的推理时间,对每个数据集进行了平均,同时突出了模型所需的计算要求。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。