5步构建智能工作流:给开发者的系统监控工具实战指南

核心内容摘要

移植numworks图形计算器:2.下载 NumWorks 代码并分析目录结构
LITESTAR 4D问答(六):您是否需要在几秒内生成光度报告?

香橙派一键部署Klipper:2023最新避坑指南

原文towardsdatascience.com/moment-a-foundation-model-for-time-series-forecasting-classification-anomaly-detection-1e35f5b6ca76基础模型点燃了 LLM 在时间序列中的应用。

在过去几个月里我们看到了新型预测模型的发布如TimesFMTimeGPT当然还有 Salesforce 的MOIRAI。

基础时间序列模型将对实际应用产生重大影响。

时间序列无处不在被用于许多领域如零售、能源需求、经济学、医疗保健等。

一个基础时间序列模型可以轻松应用于任何时间序列案例具有很高的准确性就像 GPT-4 对文本一样。

本文探讨了MOMENT[1]最新的基础时间序列模型。

与上述模型不同的是MOMENT的通用性——它可以处理预测、分类、异常检测和插补任务。

此外它是开源的本文将描述MOMENT的工作原理、其架构以及与其他 SOTA 时间序列模型相比的表现。

让我们开始吧。

我已经推出了AI Horizon Forecast这是一份专注于时间序列和创新的 AI 研究的通讯。

在这里订阅以拓宽你的视野什么是 MOMENTMOMENT 是一个基于 T5 的 385M 参数基础模型经过预训练和重新用于预测、分类、异常检测和插补任务。

MOMENT的关键特性**开源**模型包括其预训练数据集作者命名为Time-Series Pile将开源。

**基于 LLM 的模型**作者使用 _T_5 作为基础模型——通过将其用于 5 个时间序列分析任务。

**轻量级执行**MOMENT被设计成在有限的资源和时间内工作——使其适合快速执行。

**零样本预测**MOMENT专注于零样本场景但可以选择微调以增强性能。

本节将深入探讨MOMENT的架构并分析其基准测试结果。

首先我们将讨论预训练然后是微调。

***注 1**模型代码已在匿名 GitHub 上发布——*作者还将发布模型权重和训练数据集。

注意 2T5Text-to-TextTransferTransformer是 Google 在 BERT 之后的模型它探讨了如何通过单个模型学习不同的序列到序列任务。

MOMENT 架构MOMENT面临一个挑战——模型需要特别出色地处理 5 个不同的时间序列任务。

为了做到这一点作者采用了模块化架构。

此外作者利用了分块技术这是一种其他时间序列模型所采用的技巧——特别是TimesFM和MOIRAI。

通过分块一个时间点序列块被处理为一个标记——而不是将每个时间点作为一个标记。

这项技术显著提高了推理速度并避免了将模型约束在特定的预测长度上。

图 1展示了MOMENT的架构https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/38504e038333d34b7dd9bc243ce

png图 1MOMENT 预训练期间的高级架构 **** (来源标注)简而言之预训练过程类似于BERT的训练方式掩码语言建模。

输入时间序列的部分被随机掩码模型被训练以最优地重建它们。

步骤如下该模型接收长度为T的单变量时间序列和一个相同长度的掩码向量。

时间点被归一化然后被分割成N个长度为P的不相交块。

掩码向量以0和1随机初始化——0表示哪些块被处理为掩码/未观察到的而1表示那些被认为是观察到的。

观察到的块通过一个线性投影层映射到大小为D的块嵌入。

未观察到的块被替换为一个特殊的嵌入。

因此我们总共有N个大小为D的块嵌入。

每个块嵌入被输入到Transformer 编码器中并产生相同大小的转换块嵌入。

转换后的块嵌入随后被输入到重建头中——以重建原始的时间点块。

预训练的目标是最小化掩码重建误差——预测和真实标签块之间的均方误差MSE。

一些额外的说明Transformer 层由 T5 编码器块组成接收大小为D的块嵌入作为输入并产生大小为D的转换块嵌入图 1。

重建头不是一个完整的解码器——只是一个轻量级的线性层。

它接收大小为D的转换块嵌入作为输入并产生P个时间点的块。

Transformer 层接受掩码和非掩码嵌入——但均方误差仅在掩码上计算。

有趣的是掩码嵌入is learnable。

那就是全部了作者们基于T5-Small、T5-Base和T5-Large创建了 3 个预训练的MOMENT模型参数分别为 40M、125M 和 385M。

注意欢迎查看 AI 项目文件夹 中关于时间序列预测的新教程预训练和微调策略我们可以将MOMENT用作零样本预测器或进一步微调以实现更好的性能。

作者们编制了一个公共数据集时间序列堆栈它包括以下数据集Monash 存储库Informer 基准UCR 分类存档TSB-UAD 异常基准首先作者们将每个数据集的时间序列分为训练集、验证集和测试集。

为了防止数据泄露MOMENT 仅在每个数据集的训练分割上进行了仔细的预训练。

类似地后来仅使用训练和验证部分进行微调。

评估是在测试分割上进行的——在预训练或微调期间MOMENT 都没有看到这些测试分割。

您可以在本文末尾查看时间序列堆栈的完整细节。

附录 A在下游任务上的微调根据任务的不同我们可以对MOMENT应用以下修改预测任务在这种情况下我们将重建头与一个预测头交换该预测头将 N 维 D 维的补丁嵌入展平为 NxD 维的向量然后通过一个投影层其中 H 是预测长度投影到一个 H 维的时间序列。

所有其他任务在这里模型保留了其重建头。

MOMENT有 2 种推理模式零样本MOMENT-0对于每个任务**我们****直接使用模型并开始进行预测。

线性探测MOMENT-LP预测任务我们冻结除了预测头之外的所有层该层训练了几个周期。

所有其他任务再次我们冻结除了重建头之外的所有层该层训练了几个周期。

注意:我们也可以在特定数据集上端到端微调 MOMENT但这超出了本文的范围。

表 1以下展示了在微调MOMENT时使用的微调方法、数据集和指标https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/7fc84b6360f7135396ec1184c43b

png表 1MOMENT 在其上进行了基准测试的每个任务的评估方法、数据集和指标来源对于分类任务作者进行了一些调整以确保与先前的工作兼容模型为每个时间序列生成一个潜在向量然后使用该潜在向量训练一个机器学习分类器——使用潜在向量作为输入特征将分类标签作为目标变量。

此外注意一些数据集中的术语‘子集’——如前所述作者在防止数据泄露的某些数据集的测试分割上评估了模型。

在下一节中我们将分析MOMENT在基准测试中与其他模型的性能比较。

评估基准作者在 5 个时间序列任务中评估了 MOMENT短期预测长期预测分类补充异常检测让我们从预测评估开始。

长期预测基准在这里作者将MOMENT-LP与流行的基础模型(Time-LLM, GPT4TS)、深度学习模型TimesNet、N-BEATS、DLinear和 Transformer 模型PatchTST、FedFormer进行了基准测试。

MAE和MSE被用作指标https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/96d065690077abfd2a1a416afbd5f47e.png表 2长期预测基准中各种时间序列模型的均方误差MSE和平均绝对误差MAE来源*我们注意到以下情况在这里MOMENT的最后一层进行了微调MOMENT-LP而其他模型则进行了完全微调。

MOMENT显示出有希望的结果并优于Time-LLM和TimesNet。

然而PatchTST取得了第一名。

有趣的是GPT4TS在一些数据集上优于MOMENT-LP。

Time-LLM由于作者对硬件要求的限制Time-LLM无法适应单个 GPU在一些数据集中没有进行基准测试。

在基准中包含MOMENT的零样本版本和几个额外的统计模型将很有趣。

短期预测基准在这里作者在源数据集上微调模型然后在目标数据集上评估它。

具体来说他们进行了以下评估在 M4 上进行微调 → 在 M3 上进行评估在 FRED 上进行微调 → 在 M3 上进行评估在 FRED 上进行微调 → 在 M4 上进行评估统计模型分别在每个数据集上进行拟合。

结果显示在表 3https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a1a6c42ab3db251c5ae4c0b7025bfa

png表 3:使用 sMAPE 比较不同模型。

统计和基线模型在每个数据集上进行了拟合而其他模型在“迁移学习”场景中进行了评估 (来源)关于结果的说明MOMENT-LP和GPT4TS取得了最佳分数其次是N-BEATS。

有趣的是在某些情况下统计模型超过了深度学习模型。

这是因为作者们仅在 M3 和 M4 数据集的 40% 上报告了他们的结果——这意味着没有足够的数据供深度学习模型利用规模并展示其性能。

作者们不得不做出这个选择因为其余的数据集在预训练期间已被MOMENT看过。

此外如 [Makridakis 等人] 所示当深度学习模型在短期预测场景中“集成”或数据足够时它们的表现更好。

分类基准接下来作者们将MOMENT评估为时间序列分类器——在零样本场景中。

他们报告了 91 个数据集的 UCR 分类存档 的平均和中位数准确率。

结果显示在表 4中https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d74dbe79d8d7c503351c65a4116de

png表 4:分类基准报告了多个数据集的平均和中位数准确率 (来源)MOMENT-0超越了其他基础模型。

然而一些专业模型表现更好。

MOMENT是一个可行的零样本模型选择——可以无需训练即可直接使用。

填充和异常检测基准最后作者们评估了MOMENT在填充和异常检测任务中的表现。

对于这两个任务作者们评估了MOMENT-0和MOMENT-LP。

在填充任务中他们评估了重建性能。

在异常检测任务中他们使用 UCR 异常存档中 44 个时间序列的调整后的 F1和VUS-ROC来衡量性能。

结果显示在表 5中https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c42c7f2c73317543605295709dc5b

pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/348167a35bb618dc97d3e0a4cd

png表 5:填充和异常检测基准。

在这里作者们评估了零样本 MOMENT 和线性探测 MOMENT (来源)关于结果的说明在这两个任务中MOMENT看起来很有希望。

MOMENT-0具有竞争力而MOMENT-LP在某些数据集上取得了第一名。

有趣的是在异常检测基准中K-NN打败了所有模型有时更简单的方法更好一些关于 MOMENT 的见解此外作者还希望探索语言模型作为预测器的功能以及它们如何随着更多数据而扩展。

总的来说MOMENT 的核心架构是 T5——一个语言模型。

让我们分析从 MOMENT 中提取的见解以及这些见解如何应用于未来的模型A) MOMENT 可以解决跨其他模态的序列任务llmtime 的创新工作已经表明预训练的 LLM 可以作为零样本预测器轻松使用。

[Lu 等人] 证明了预训练 Transformer 作为通用计算引擎的作用。

具体来说他们展示了语言和视觉 Transformer 可以解决跨不同模态的通用任务——超越视觉和文本这是它们最初的训练领域。

在这里作者探讨了是否预训练的时间序列 Transformer 可以解决图像、文本和二进制数据上的序列分类任务。

为了评估这一假设他们在图像和文本数据集上以Flan-T5和GPT-2为基准测试了MOMENT。

结果

总结在表 6中https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/43011993558d30ba7da8bff71b48dc

png表 6测试 MOMENT 与其他模型在不同模态上的迁移学习能力。

评估指标是准确率 (来源)很明显MOMENT一个预训练的时间序列 Transformer在跨不同任务和模态方面展现出强大的泛化能力与其他预训练模型相当。

B) MOMENT 随着更多数据的增加而扩展Transformer 模型的一个关键优势是扩展能力——它们利用更大数据集并实现改进性能的能力。

作者探讨了MOMENT是否展现出类似的扩展能力。

具体来说他们测量了不同模型尺寸的训练损失。

结果如图图 2所示https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3a1031e2f9844a051a9d3065d39c21ab.png图 2测试 MOMENT 在预训练期间使用更多参数时的扩展情况来源最大的模型385M取得了最佳结果。

所有模型随着数据的增加而持续改进——MOMENT 很可能通过额外的数据或训练时间能够取得更好的结果。

C) 初始化权重对性能的影响假设我们正在构建一个使用知名语言模型如MOMENT在这里使用T5预训练的时间序列模型有两种方法直接使用T5并继续在时间序列数据上进行预训练。

随机初始化模型权重并从头开始训练T5。

作者探讨了这一困境并发现第二种方法更好https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/39ff701970cd51adcb93da421f4d212e.png图 3使用原始权重和随机权重训练的 Flan-T5 模型来源)换句话说从头开始预训练一个语言模型使用时间序列数据的结果是训练损失低于使用类似大小且以原始语言建模权重初始化的模型。

有趣的是亚马逊最新的基础模型 Chronos 得出了相同的结论——可能是因为两个模型几乎同时发布它们彼此之间可能没有意识到对方的存在。

结束语MOMENT是一个有趣的通用基础时间序列模型它建立在类似成功模型TimesNet和GPT4TS的工作之上。

与其他基础模型如 TimesFM、MOIRAI 和 Chronos 相比该模型看起来不那么引人注目。

例如MOMENT的训练数据比上述模型少得多。

它也没有使用合成数据或数据增强——这通常是训练数据的廉价且有效来源。

从图 2可以明显看出模型训练不足如果数据更多可能会表现更好。

此外如果基准测试包括了所有MOMENT模型大小将更有信息量——以全面了解规模如何影响性能。

无论如何虽然预测不是MOMENT的最强项但它仍然是其他任务的可行方法——特别是在时间和计算资源有限的情况下。

MOMENT的一个理想用例是在多目标场景中你既要进行预测又要进行异常检测或插补。

除了这些MOMENT 的轻量级特性使其成为与其他模型结合使用以增强整体性能的集成方法的优秀候选者感谢您的阅读关注我的 领英订阅我的 通讯AI Horizon ForecastAutoGluon-TimeSeries : 创建强大的集成预测 – 完整教程附录表 7展示了构建时间序列堆所使用的数据库。

更多详细信息请参阅原文。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/da4acbe7b75f305abb489d51844fef

png表 7时间序列堆的数据库来源)参考文献[1] Goswami 等人MOMENT一组开放时间序列基础模型(2024 年 2 月)

91成品人片a天堂观看-91成品人片a天堂观看应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123