当前位置: 首页 > news >正文

Time-MoE : 时间序列领域的亿级规模混合专家基础模型

Time-MoE : 时间序列领域的亿级规模混合专家基础模型

图片

时间序列预测一直是量化研究和工业应用中的重要课题。随着深度学习技术的发展,大规模预训练模型在自然语言处理和计算机视觉领域取得了显著进展,但在时间序列预测领域,这些模型的规模和运算成本仍然限制了其在实际应用中的效能。为此,本文介绍了TIME-MOE,这是一种可扩展的统一架构,旨在通过减少推理成本来预训练更大、更强的时间序列预测基础模型。TIME-MOE利用稀疏混合专家(MoE)设计,通过为每个预测激活网络的子集来提高计算效率,从而在不增加推理成本的情况下实现模型规模的有效扩展。TIME-MOE由一系列仅解码器的Transformer模型组成,以自回归方式运行,支持灵活的预测范围和变化的输入上下文长度。研究者们首次将时间序列基础模型扩展到24亿参数,并在新引入的大规模数据集Time-300B上进行了预训练,该数据集涵盖了9个领域,包含超过3000亿个时间点。实验结果表明,TIME-MOE在预测精度上取得了显著提升,并在多个真实世界的基准测试中优于同等计算预算的密集模型。

1. 引言

时间序列数据是现实世界动态系统中的主要模态,在诸如能源、气候、教育、量化金融和城市计算等各个领域的应用中至关重要。尽管传统的预测方法在特定任务中表现出了竞争力,但直到最近,随着一些通用预测基础模型的出现,该领域才开始走向统一。尽管这些模型前景广阔,但与特定领域的模型相比,它们的规模通常较小,任务解决能力有限,这限制了它们在实际应用中的预测精度与计算预算之间的平衡。

图片

2. 相关工作

在过去的十年中,深度学习模型已经成为时间序列预测的强大工具。这些模型可以分为单变量模型和多变量模型,其中多变量模型包括基于Transformer的方法和非Transformer模型。尽管这些模型在各自的领域内取得了有竞争力的性能,但它们通常是任务特定的,并且在跨领域数据的少样本或零样本场景中泛化能力不足。

图片

3. 方法论

TIME-MOE模型的核心在于其创新的架构设计,该设计基于混合专家(Mixture-of-Experts, MoE)的解码器-only Transformer架构,旨在实现大规模预训练的同时降低推理成本。本章详细介绍了TIME-MOE的三个关键组成部分:输入令牌嵌入、MoE Transformer块和多分辨率预测。

3.1 TIME-MOE概览

TIME-MOE模型的设计理念是为了解决时间序列预测中的两个主要挑战:模型规模的扩展和计算效率的提升。以下是TIME-MOE模型的三个主要组成部分:

3.1.1 输入令牌嵌入

输入令牌嵌入是模型的第一层,它将原始时间序列数据转换为模型可以处理的形式。TIME-MOE采用逐点标记化策略,确保时间信息的完整性。每个时间序列数据点通过SwiGLU函数进行嵌入,得到相应的隐藏状态。

3.1.2 MoE Transformer块

MoE Transformer块是TIME-MOE的核心组件,它基于标准的Transformer解码器,并引入了混合专家层来提高计算效率。这些混合专家层由多个专家网络组成,每个网络只对一部分输入数据进行计算,从而实现模型的稀疏激活。这种设计不仅提升了模型处理大规模数据的能力,还减少了推理时的计算负担。

3.1.3 多分辨率预测

多分辨率预测是TIME-MOE的另一个创新点。它通过多个输出层来支持不同预测范围的预测任务,使得模型能够灵活地处理不同长度的预测问题。这种设计提高了模型在多样化预测任务中的适用性和准确性。

3.2 模型训练

TIME-MOE的训练过程包括了数据集的构建、损失函数的选择和模型配置的确定。

3.2.1 TIME-300B数据集

为了训练TIME-MOE模型,研究者们构建了一个名为Time-300B的大规模时间序列数据集。这个数据集涵盖了9个不同的领域,包含了超过3000亿个时间点。为了确保数据质量,研究者们开发了一个数据清洗流程,以处理缺失值和无效观测等问题。

3.2.2 损失函数

TIME-MOE模型采用了Huber损失函数来提高训练的稳定性。Huber损失函数对异常值具有更好的鲁棒性,有助于模型在面对噪声数据时保持稳定的性能。

3.2.3 模型配置和训练细节

TIME-MOE模型有三种不同的规模:基础版(50M激活参数)、大型版(200M激活参数)和超大型版(2.4B参数)。每种模型都经过了精心设计,以适应不同的计算环境和应用需求。模型训练使用了AdamW优化器,并采用了线性预热余弦退火的学习率调度策略。

图片

4. 主要结果

研究者们通过一系列详尽的实验,验证了TIME-MOE模型在不同规模和设置下的有效性。本章详细介绍了零样本预测、领域内预测、消融研究、可扩展性分析和训练精度分析等方面的结果。

4.1 零样本预测

在零样本预测设置中,TIME-MOE模型接受了未包含在其预训练数据中的六个长期预测基准数据集的测试。这些数据集覆盖了不同的领域,包括温度、电力消耗和天气等。实验结果表明,TIME-MOE在所有测试基准上都实现了显著的性能提升。

4.1.1 实验设置
  • 数据集:包括ETTh1、ETTh2、ETTm1、ETTm2、天气和电力消耗等六个数据集。

  • 预测范围:选择了96、192、336和720时间步长作为预测范围。

  • 评估指标:使用均方误差(MSE)和平均绝对误差(MAE)作为评估指标。

4.1.2 结果

TIME-MOE在所有基准测试中均取得了最低的MSE和MAE值,与现有的最先进模型相比,平均MSE降低了23%以上。这一结果证明了TIME-MOE模型在零样本学习环境下的强大预测能力。

图片

4.2 领域内预测

领域内预测(也称为全样本预测)测试了TIME-MOE模型在经过特定领域数据微调后的性能。这种设置模拟了实际应用中常见的情况,即模型在特定任务上进行优化。

4.2.1 实验设置
  • 数据集:使用与零样本预测相同的六个基准数据集。

  • 训练周期:每个模型仅进行一次训练周期的微调。

4.2.2 结果

TIME-MOE在所有测试基准上均实现了显著的性能提升,平均MSE降低了25%。这一结果展示了TIME-MOE模型在经过少量微调后,能够快速适应特定领域数据的强大能力。

图片

4.3 消融研究

消融研究旨在评估TIME-MOE模型中关键组件的贡献,包括混合专家(MoE)层、多分辨率预测层和Huber损失函数。

图片

4.3.1 实验设置
  • 组件移除:分别移除MoE层、多分辨率预测层和Huber损失函数,以评估它们对模型性能的影响。

4.3.2 结果
  • MoE层:移除MoE层后,模型性能显著下降,证明了稀疏激活设计对提高模型性能的重要性。

  • 多分辨率预测层:移除多分辨率预测层后,模型在处理不同预测范围时的性能略有下降,表明多分辨率预测层在捕捉不同时间依赖性方面的重要性。

  • Huber损失函数:使用Huber损失函数的模型在处理异常值时表现更稳定,提高了训练的鲁棒性。

图片

4.4 可扩展性分析

可扩展性分析探讨了TIME-MOE模型在不同数据规模和模型规模下的性能和效率。

4.4.1 实验设置
  • 模型规模:比较了不同规模的TIME-MOE模型(基础版、大型版和超大型版)。

  • 数据规模:在不同规模的数据集上训练模型,以评估数据规模对模型性能的影响。

4.4.2 结果
  • 模型规模:随着模型规模的增加,TIME-MOE模型的性能持续提升,证明了模型规模扩展的有效性。

  • 数据规模:在更大数据集上训练的模型表现出更好的泛化能力,强调了大规模数据在提升模型性能中的作用。

图片

4.5 训练精度分析

训练精度分析比较了使用不同数值精度(bfloat16和float32)进行训练的TIME-MOE模型的性能和效率。

4.5.1 实验设置
  • 精度比较:训练了两个版本的TIME-MOE模型,一个使用bfloat16精度,另一个使用float32精度。

4.5.2 结果
  • 性能:两种精度的模型在预测性能上相当,表明使用bfloat16精度不会牺牲模型的预测能力。

  • 效率:bfloat16精度的模型在训练速度和内存使用上均优于float32精度的模型,展示了在保持性能的同时提高效率的潜力。

图片

5. 结论

本文介绍的TIME-MOE模型,通过利用专家混合的稀疏设计,提高了计算效率,同时在多个基准测试中实现了显著的预测精度提升。TIME-MOE证明了在时间序列预测中扩展模型规模的可行性,并确立了自己作为解决现实世界预测挑战的最新解决方案的地位。

相关文章:

Time-MoE : 时间序列领域的亿级规模混合专家基础模型

Time-MoE : 时间序列领域的亿级规模混合专家基础模型 时间序列预测一直是量化研究和工业应用中的重要课题。随着深度学习技术的发展,大规模预训练模型在自然语言处理和计算机视觉领域取得了显著进展,但在时间序列预测领域,这些模型的规模和运…...

Spring Boot入门指南

前言 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。本文将详细介绍 Spring Boot 的基本概念、环境搭建、第一…...

MYSQL(学习笔记)

<div>深分页怎么优化&#xff1f;</div> <div>还是以上面的SQL为空&#xff1a;select * from xxx order by id limit 500000, 10;</div> <div>方法一&#xff1a;</div> <div>从上面的分析可以看出&#xff0c;当offset非常大时&am…...

学校周赛(1)

A - Short Sort 题目&#xff1a; 思路&#xff1a; 本条题目只允许改一处地方&#xff0c;只有三个字母&#xff0c;我们可以直接枚举所有移动过的结果&#xff0c;同时使用哈希去记录其值&#xff0c;对于每一个输入我们都寻找是否有这个值记录&#xff0c;有则输出YES否则…...

人生苦短,我用Python✌

面向代码的解释型语言 数据开发和AI 编程语言:让计算机了解我们干什么&#xff0c;翻译官 1.下载软件 解释器安装 点击第二个 改路径 D:\python 安装 测试 winr打开 输入代码 输出 退出环境 exit&#xff08;&#xff09; 新建文本文档后缀改成py 编写 运行 安装编写代码…...

uniapp js判断key是否在json中?

推荐学习文档 golang应用级os框架&#xff0c;欢迎stargolang应用级os框架使用案例&#xff0c;欢迎star案例&#xff1a;基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识&#xff0c;这里有免费的golang学习笔…...

Codeforces Round 975 (Div. 2) C. Cards Partition

题目链接&#xff1a;题目 大意&#xff1a; 给出若干种卡片&#xff0c;每种卡片有一定数量&#xff0c;你可以加入不超过 k k k张任意已给出种类的卡片&#xff0c;使得它们可以被分成若干组&#xff0c;每组容量一定&#xff0c;且同组内不存在相同种类的卡片&#xff0c;…...

Qt 首次配置 Qt Creator 14.01 for Python

前言&#xff1a; 如何用QT实现Python的配置的交互界面。本文从0开始&#xff0c;进行实践的介绍。 在上一节里面&#xff0c;我们做了社区版本的配置&#xff1a; https://blog.csdn.net/yellow_hill/article/details/142597007?spm1001.2014.3001.5501 这一节&#xff0…...

【python】代码发布前检查- vulture:查找死代码

分析Python项目中未被使用的.py文件 Vulture&#xff1a; Vulture是一个专门用于查找Python代码中的死代码的工具。它可以识别未使用的代码&#xff0c;包括未导入的模块。 安装&#xff1a; pip install vulture使用&#xff1a; vulture your_project_directory...

Yolov10环境配置

参考文章&#xff1a;1.YOLOv10超详细环境搭建以及模型训练&#xff08;GPU版本&#xff09;-CSDN博客 2.Windows下安装pytorch教程(下载.whl的方式)_pytorch whl-CSDN博客 安装步骤和文件夹顺序一样 1.安装CUDA和cuDNN 1.1安装CUDA 1.1.1查看当前你的电脑显卡支持的最高CUD…...

iOS 提取图片的主题色,并支持灵活提取

遇到一个需求&#xff0c;要提取图片中的色调&#xff0c;但还有一点特殊的需求&#xff0c;就是不是提取颜色最多的色调&#xff0c;也不是平均的色调&#xff0c;是图片中偏暗的色调 这就需要我们动态的调整我们提取的算法&#xff0c; 下面就看代码 dispatch_async(dispatch…...

语雀笔记使用记录

初识语雀 语雀官网 语雀帮助 教你如何使用语雀提高效率 语雀极简使用指南 | 10个常用技巧&#xff0c;带你快速入门 语雀安装 语雀下载地址 根据自己的pc平台下载对应的版本&#xff0c;然后傻瓜式安装即可 初试语雀 语雀为云笔记&#xff0c;并且其特性比较符合我个人的需求…...

安全教育培训小程序系统开发制作方案

安全教育培训小程序系统是为了提高公众的安全意识&#xff0c;普及安全知识&#xff0c;通过微信小程序的方式提供安全教育培训服务&#xff0c;帮助用户了解并掌握必要的安全防范措施。 一、目标用户 企业员工&#xff1a;各岗位员工&#xff0c;特别是IT部门、财务、行政等对…...

【面试题】软件测试实习(含答案)

软件测试实习常见面试题&#xff0c;主要是功能测试相关的基础问题 目录 一、软件测试基础 1、介绍一下你最近的项目&#xff0c;以及工作职责 2、软件项目的测试流程? 3、黑盒测试与白盒测试的区别? 4、黑盒测试常见的设计方法?怎么理解等价类方法和边界值方法 1&…...

后端回写前端日期格式化

问题 不进行格式化处理&#xff0c;就会导致传递的字符串很奇怪 解决方案 注解&#xff08;字段&#xff09; <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.2</…...

微信小程序开发系列之-在微信小程序中使用云开发

微信小程序开发系列之-在微信小程序中使用云开发 随着微信小程序的快速发展&#xff0c;云开发成为了一个强大的工具&#xff0c;它提供了无需搭建和维护服务器的便捷环境。云开发允许开发者直接使用云数据库、存储和云函数等服务&#xff0c;大大简化了小程序的开发流程。在本…...

《论文阅读》 用于产生移情反应的迭代联想记忆模型 ACL2024

《论文阅读》 用于产生移情反应的迭代联想记忆模型 ACL2024 前言简介任务定义模型架构Encoding Dialogue InformationCapturing Associated InformationPredicting Emotion and Generating Response损失函数问题前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦…...

零基础教你如何开发webman应用插件

0X03 应用目录机构 plugin/ └── dingdingtalk │ ├── api │ │ └── Install.php │ ├── app │ │ ├── controller │ │ │ └── IndexController.php │ │ ├── functions.php │ │ ├── middleware │ │ ├── mo…...

AVL树(平衡二叉树)的介绍以及相关构建

欢迎光临 &#xff1a; 羑悻的小杀马特-CSDN博客 目录 一AVL树的介绍&#xff1a; 二AVL树的实现&#xff1a; 1结构框架&#xff1a; 2节点的插入&#xff1a; 旋转&#xff1a; 21左单旋&#xff1a; 2.1.1左单旋介绍及步骤&#xff1a; 2.1.2左单旋代码实…...

SAP员工士气因重组受到打击

SAP在2024年经历了员工士气显著下降的局面&#xff0c;特别是在国内员工中。这一变化与公司在1月宣布的重组计划紧密相关。根据彭博社的报道&#xff0c;6月进行的一项调查显示&#xff0c;SAP约16,500名员工中&#xff0c;有51%愿意接受竞争对手的类似职位&#xff0c;而对公司…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...