moment

moment

时间序列分析基础模型 多任务多领域应用

MOMENT是一个开源的时间序列分析基础模型家族,为多任务、多数据集和多领域应用而设计。该模型在大规模时间序列数据上预训练,可处理预测、分类、异常检测和插补等任务。MOMENT能捕捉时间序列的内在特征,学习有意义的数据表示,在少量标记数据的情况下也表现出色。项目提供预训练模型、教程和研究代码,为时间序列分析提供了实用工具。

MOMENT时间序列基础模型预训练多任务Github开源项目
<div align="center"> <img width="60%" alt="MOMENT" src="https://yellow-cdn.veclightyear.com/0a4dffa0/83ece182-99c0-4827-8135-3b10c4faa73b.png"> <h1>MOMENT: 开放时间序列基础模型系列</h1>

预印本 huggingface huggingface 许可证: MIT Python: 3.11

</div>

🔥 新闻

  • 🔥🔥🔥 我们发布了 MOMENT研究 代码,您可以使用自己的数据预训练时间序列基础模型,并重现我们论文中的实验!
  • 我们修复了分类问题中MOMENT无法处理多通道输入的问题。
  • MOMENT被ICML 2024接收!
  • 对多模态时间序列和文本基础模型感兴趣吗?请查看我们关于JoLT(时间序列和文本的联合学习表示)的初步工作 [AAAI 2024学生摘要, NeurIPS 2023 DGM4H研讨会]。JoLT在AAAI获得了最佳学生摘要展示奖!敬请期待多模态时间序列和文本基础模型!

📖 简介

我们推出MOMENT,一系列用于通用时间序列分析的开源基础模型。预训练大型时间序列模型面临挑战,原因包括:(1)缺乏大规模且连贯的公开时间序列库,(2)时间序列特性多样,导致多数据集训练困难。此外,(3)评估这些模型在资源、时间和监督有限情况下的实验基准仍处于初期阶段。为应对这些挑战,我们汇编了大规模且多样化的公开时间序列集合,称为时间序列堆(Time-series Pile),并系统地解决时间序列特有的挑战,以实现大规模多数据集预训练。最后,我们在最新研究基础上设计了一个基准,用于在有限监督环境下评估时间序列基础模型在各种任务和数据集上的表现。基准实验证明了我们预训练模型在最少数据和特定任务微调下的有效性。我们还提出了关于大型预训练时间序列模型的一些有趣的实证观察。

MOMENT:一个模型,多种任务、数据集和领域

<div align="center"> <img width="60%" alt="MOMENT:一个模型,多种任务、数据集和领域" src="https://github.com/moment-timeseries-foundation-model/moment/assets/26150479/90c7d055-36d2-42aa-92b1-c5cfade22b3e"> </div>

MOMENT在不同数据集和任务上的表现,无需参数更新:

  • 插值: 优于统计插值基准
  • 异常检测: $F_1$值仅次于最佳基准
  • 分类: 在16种对比方法中准确率超过11种
  • 短期预测: 在某些数据集上优于ARIMA

通过线性探测(微调最后一层线性层):

  • 插值: 在6个数据集中的4个上优于基准
  • 异常检测: 最佳$F_1$值
  • 长期预测: 在某些情况下具有竞争力

MOMENT捕捉时间序列的语言

合成生成的正弦波嵌入的主成分分析表明,MOMENT能够捕捉微妙的趋势、尺度、频率和相位信息。在每个实验中,$c$控制感兴趣的因素,例如趋势多项式的幂$c \in [\frac{1}{8}, 8)$(Oreshkin等,2020)。我们通过改变$c$生成多个正弦波,使用MOMENT获取它们的序列级表示,并使用PCA在二维空间中可视化。

<div align="center"> <img width="60%" alt="MOMENT捕捉时间序列的语言" src="https://github.com/moment-timeseries-foundation-model/moment/assets/26150479/fce67d3e-84ff-4219-bef2-9079162c4c9b"> </div>

MOMENT学习数据的有意义表示

MOMENT在UCR分类档案中的ECG5000数据集上学习的表示的PCA可视化。不同颜色代表不同类别。即使没有针对特定数据集进行微调,MOMENT也能为不同类别学习独特的表示。

<div align="center"> <img width="60%" alt="MOMENT学习数据的有意义表示" src="https://github.com/moment-timeseries-foundation-model/moment/assets/26150479/cb7b5233-a215-4287-8576-9625f002c1ff"> </div>

架构概述

时间序列被分解为固定长度的不相交子序列,称为patches,每个patch被映射到D维的patch嵌入。在预训练过程中,我们通过使用特殊的掩码嵌入[MASK]随机均匀地掩盖patches。预训练的目标是学习patch嵌入,这些嵌入可以用轻量级重建头重构输入时间序列。

<div align="center"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/2730dd8c-8fe5-41bf-8466-7e117b7fc32b.png" width="60%"> </div>

🧑‍💻 使用方法

推荐Python版本: Python 3.11(预计不久将支持其他版本)。 你可以使用pip安装momentfm包:

pip install momentfm

或者,直接从GitHub仓库安装最新版本:

pip install git+https://github.com/moment-timeseries-foundation-model/moment.git

要为其中一个任务加载预训练模型,请使用以下代码片段之一:

预测

from momentfm import MOMENTPipeline model = MOMENTPipeline.from_pretrained( "AutonLab/MOMENT-1-large", model_kwargs={ "task_name": "forecasting", "forecast_horizon": 96 }, ) model.init()

分类

from momentfm import MOMENTPipeline model = MOMENTPipeline.from_pretrained( "AutonLab/MOMENT-1-large", model_kwargs={ "task_name": "classification", "n_channels": 1, "num_class": 2 }, ) model.init()

异常检测、插值和预训练

from momentfm import MOMENTPipeline model = MOMENTPipeline.from_pretrained( "AutonLab/MOMENT-1-large", model_kwargs={"task_name": "reconstruction"}, ) model.init()

表示学习

from momentfm import MOMENTPipeline model = MOMENTPipeline.from_pretrained( "AutonLab/MOMENT-1-large", model_kwargs={"task_name": "embedding"}, ) model.init()

🧑‍🏫 教程

以下是帮助您开始使用MOMENT进行各种任务的教程和可复现实验列表:

特别感谢Yifu CaiArjun Choudhry提供的教程!

所有这些实验都可以在一个配备48 GiB RAM的NVIDIA A6000 GPU上复现。

[!提示] 对使用MOMENT还有更多问题?查看常见问题解答,也许能找到您的答案!

BibTeX

@inproceedings{goswami2024moment, title={MOMENT: A Family of Open Time-series Foundation Models}, author={Mononito Goswami and Konrad Szafer and Arjun Choudhry and Yifu Cai and Shuo Li and Artur Dubrawski}, booktitle={International Conference on Machine Learning}, year={2024} }

⛑️ 研究代码

我们设计这个代码库时力求轻量化,在此过程中删除了大量代码!我们在这里发布了完整但较为凌乱的研究代码。其中包括处理不同数据集的代码,以及预训练、微调和评估MOMENT及其他基线的脚本。该代码的早期版本曾在Anonymous Github上提供。

➕ 贡献

我们鼓励研究人员向MOMENT贡献他们的方法和数据集。我们正在积极制定贡献指南。敬请关注更新!

📰 媒体报道

🤟 当代研究

在构建时间序列预测基础模型方面有许多出色的工作!以下是一个不完整的列表。请查看我们论文中的表9,了解与这些研究的定性比较:

  • TimeGPT-1,由Nixtla开发,[论文API]
  • Lag-Llama:面向概率时间序列预测的基础模型,由摩根士丹利和ServiceNow研究院开发,[论文代码Hugging Face]
  • 小型时间混合器(TTMs):用于增强多变量时间序列零/少样本预测的快速预训练模型,由IBM开发,[论文Hugging Face]
  • Moirai:用于通用预测的时间序列基础模型 [论文代码Hugging Face]
  • 仅解码器的时间序列预测基础模型,由谷歌开发,[论文代码Hugging Face]
  • Chronos:学习时间序列语言,由亚马逊开发,[论文代码Hugging Face]
  • Timer:生成式预训练变换器是大型时间序列模型,由清华大学THUML开发,[论文代码]

还有一些最近的工作致力于解决除预测之外的多个时间序列建模任务:

  • TOTEM:用于通用时间序列分析的标记化时间序列嵌入 [论文代码]

🪪 许可证

MIT许可证

版权所有 (c) 2024 卡内基梅隆大学Auton实验室

特此免费授予任何获得本软件及相关文档文件("软件")副本的人无限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、出版、分发、再许可和/或销售软件副本的权利,以及允许获得软件的人这样做,但须符合以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按"原样"提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为还是其他方面,均由软件或软件的使用或其他交易引起、由软件引起或与之相关。

详情请参阅MIT许可证

<img align="right" height ="120px" src="https://yellow-cdn.veclightyear.com/0a4dffa0/249cfc80-3c70-47cf-a5b7-f69000b1fb89.png"> <img align="right" height ="110px" src="https://yellow-cdn.veclightyear.com/0a4dffa0/0ee2e21f-8d4f-4b62-9d61-8eeefd44e1b1.png">

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多