使用大模型进行时间序列预测

今天想聊聊这周一篇关于使用语言模型进行时间序列预测的工作,这个工作的主要亮点有四个:

首先提出的Chronos框架将时间序列通过缩放和量化转换为token序列,从而可以直接使用语言模型架构(如T5, GPT-2等)来建模时间序列,不需要对模型架构做任何修改。这种将回归问题转化为分类问题的思路在之前的工作中很少见。

​ 其次作者使用了一个大规模的异构时间序列数据集进行预训练。除了公开数据集还引入了数据增强技术TSMix和基于高斯过程的合成数据生成方法KernelSynth。提高了模型的泛化能力。

第三是在42个数据集上进行了全面的实验评估。结果表明Chronos模型在零样本预测(zero-shot forecasting)上表现优异,甚至可以与针对特定数据集训练的深度学习模型相媲美。这说明语言模型可以从多个领域的时间序列中学习到通用表示,进而应用于新的预测任务。

最后一点是尽管Chronos模型采用了最简单的均值缩放和等距量化方案,但实验证明这种简约的设计已经足以取得不错的效果,而且有利于模型的可扩展性。同时文中也指出了目前方法的局限性如预测范围受限等。

图片 接下来让我们详细讨论一下Chronos框架中的时间序列标记化(tokenization)过程,它有两个步骤:缩放(scaling)和量化(quantization)。缩放的目的是将不同尺度的时间序列映射到一个合适的范围,以便于后续的量化操作。文中采用了最简单的均值缩放(mean scaling),具体做法是用每个值除以整个序列绝对值的平均值。量化是将连续的实数值映射到离散的token ID,相当于把实数轴划分成若干个区间(bin)。文中使用了均匀量化(uniform quantization),即在某个区间内等距划分。

我会举个具体的例子来帮助理解。

假设我们有一个长度为6的时间序列: [2.1, -3.0, 0.8, 1.5, -0.2, 1.8],首先进行缩放,

均值是1.57 = (|2.1| + |-3.0| + |0.8| + |1.5| + |-0.2| + |1.8|) / 6 = 1.57
缩放后的序列是[1.34, -1.91, 0.51, 0.96, -0.13, 1.15] = [2.1/1.57, -3.0/1.57, 0.8/1.57, 1.5/1.57, -0.2/1.57, 1.8/1.57]

然后进行量化

图片

假设我们将[-2, 2]区间划分为4个bin,分别对应数字1到4。

对于 1.34,它落在区间 [1, 2),因此映射到 4。
对于 -1.91,它落在区间 [-2, -1),因此映射到 1。
对于 0.51,它落在区间 [0, 1),因此映射到 3。
对于 0.96,它也落在区间 [0, 1),因此同样映射到 3。
对于 -0.13,它落在区间 [-1, 0),因此映射到 2。
对于 1.15,它落在区间 [1, 2),因此映射到 4。
原始序列: [1.34, -1.91, 0.51, 0.96, -0.13, 1.15]
量化结果: [4, 1, 3, 3, 2, 4]

最后我们在序列末尾添加一个特殊的EOS token表示序列的结束:

[2.1, -3.0, 0.8, 1.5, -0.2, 1.8] -> [4, 1, 3, 3, 2, 4, EOS]

这样原始的连续时间序列就转换为一个离散的token序列,可以直接输入到语言模型中进行训练。反之语言模型的输出(一个关于token ID的概率分布)也可以通过反量化函数d(x)映射回实数值域,得到最终的预测结果。

这种巧妙的时间序列标记化机制使得Chronos可以将传统的回归问题转化为分类问题,并利用现有的语言模型架构来建模时间序列。尽管这个idea看似简单,但在以往的研究中并不多见。Chronos的成功证明了sometimes less is more,简约而不失优雅的设计反而能带来出色的效果。

图片

接着我们来详细讨论一下Chronos中的预训练数据集构建和数据增强技术。首先是异构时间序列数据集:为了训练一个通用的时间序列预测模型需要涵盖不同领域、不同特征的时间序列数据。文中收集了大量公开数据集,包括M3、M4、UCI等,覆盖了金融、交通、气象、销售等多个领域。这些数据集的采样频率、序列长度、数值范围都有所不同,构成了一个异构的时间序列语料库。然而现有的公开数据集在数量和质量上仍然有限。为了进一步扩充语料库,增强模型的泛化能力,文中还引入了两种数据增强技术:TSMix和KernelSynth。

图片

TSMix是一种时间序列混合(time series mixing)的数据增强方法。其基本思想是从不同的时间序列中随机采样若干段,然后将它们按照一定的比例混合在一起生成一条新的时间序列。这个过程可以形式化地表示为:

图片

其中x1到xk是从原始数据集中采样的k条时间序列片段,λ1到λk是对应的混合系数,满足非负性和归一化条件(相加等于1)。通过调节k和λ可以生成多样性和复杂性不同的时间序列。

KernelSynth利用高斯过程(Gaussian Process)来生成合成时间序列。高斯过程可以看作是一个随机函数,它的任意有限维度的边缘分布都服从多元高斯分布。高斯过程由均值函数m(t)和协方差函数k(t,t’)完全确定。协方差函数也称为核函数(kernel function)。常见的核函数包括RBF核、周期核、Matérn核等,它们可以刻画时间序列的不同特征如趋势、周期、平稳性等。

KernelSynth的做法是随机组合多个核函数,然后从相应的高斯过程中采样,得到一条合成的时间序列。例如我们可以将RBF核(捕捉局部相关性)、周期核(捕捉周期性)、线性核(捕捉趋势)组合在一起,这样构造出的高斯过程可以生成具有趋势、周期、局部相关等复杂模式的时间序列。通过随机采样核函数的参数(如RBF核的长度尺度、周期核的频率)可以得到多样化的合成数据。

图片

TSMix和KernelSynth生成的时间序列虽然是人工合成的,但能够模拟真实世界中的各种时间序列模式。将它们加入到预训练语料库中可以提高模型的泛化能力和鲁棒性。这种数据驱动(data-driven)的方法与以往基于先验知识(如趋势、季节性)生成合成数据的做法形成了互补。

通过海量异构数据的预训练,基于T5家族的Chronos模型(参数规模从20M到710M)得以学习到一个general purpose的时间序列表示,进而在包含42个数据集的全面基准下游的预测任务上取得了优异的zero-shot表现。这启示我们当手头的任务数据有限时,利用大规模无标注数据进行自监督预训练(self-supervised pre-training)是一种行之有效的范式。通过自回归采样模型,Chronos在推理期间能够生成预测分布,提供概率预测而非单一点预测。Chronos作为一个固定词汇表上的语言模型,可以无缝集成未来的LLMs进展。

图片

由于时间原因,现在已过凌晨一点,再聊聊这个工作下一步可以搞的几个点,匆匆忙忙结束这次的论文分享:

  1. 改进tokenization过程,可以研究不同类型的缩放和量化技术,以更精确地表示时间序列数据,并提高模型的预测准确性。
  2. 模型架构创新,虽然使用现有的transformer架构取得了成功,但研究特定于时间序列的模型架构可能进一步提升性能,或者可使用mamba等架构。
  3. 多变量时间序列预测,扩展Chronos以处理多变量时间序列预测问题,这在实际应用中非常重要,也是后期能不能用在各种预测上的一个重要的评判标准。
  4. 减少对计算资源的需求,优化模型以减少其对计算资源的依赖,使其更适合于资源受限的环境。
  5. 可解释性的提升,改进模型的可解释性,帮助用户理解模型的预测、决策过程,这对于实际应用尤为重要。
  6. 测试和优化Chronos在更多领域的应用,如金融(股票量化交易)、气候科学等,以确保其实用性和有效性。
  7. 最后可以改进模型以提高其在长期预测任务上的性能,这是时间序列预测中的一个常见挑战。

如何学习大模型 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 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/706514.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Word菜谱制作教程

原始文本: 打开标尺 选中文字右键-段落, 制表位,选好字符和引导符 在文字和价格之间按下Tab 效果 参考资料好看视频-轻松有收获 Phrase:我觉等还是有点麻烦,可以插入表格,再把表格调整为无表框即可

60行代码加速20倍: NEON实现深度学习OD任务后处理绘框

【前言】 本文版权属于GiantPandaCV,未经允许,请勿转载! 最近在学neon汇编加速,由于此前OD任务发现在检测后处理部分使用OpenCV较为占用资源且耗时,遂尝试使用NEON做后处理绘框,以达到加速并降低CPU资源消耗…

PHP简约轻型聊天室留言源码

无名轻聊是一款phptxt的轻型聊天室。 无名轻聊特点: 自适应电脑/手机 数据使用txt存放,默认显示近50条聊天记录 采用jqueryajax轮询方式,适合小型聊天环境。 访问地址加?zhi进入管理模式,发送 clear 清空聊天记录。 修改在…

品质卓越为你打造App UI 风格

品质卓越为你打造App UI 风格

【ElasticSearch】ElasticSearch基本概念

ES 是一个开源的高扩展的分布式全文检索引擎,它是对开源库 Luence 的封装,提供 REST API 接口 MySQL 更适合数据的存储和关系管理,即 CRUD;而 ES 更适合做海量数据的检索和分析,它可以秒级地从数据库中检索出我们感兴…

【论文复现|智能算法改进】基于改进鲸鱼优化算法的移动机器人多目标点路径规划

目录 1.算法原理2.数学模型3.改进点4.结果展示5.参考文献6.代码获取 1.算法原理 SCI二区|鲸鱼优化算法(WOA)原理及实现【附完整Matlab代码】 2.数学模型 使用 A* 算法生成所有目标点之间的距离矩阵U: U [ d 1 − 1 d 1 − 2 d 1 − 3 ⋯ d 1 − i d…

关于python下安装selenium以及使用

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 目录 1、win10安装python环境 2、…

深入理解指针(二)

目录 1. 数组名的理解 2. 使用指针访问数组 3. ⼀维数组传参的本质 4. 冒泡排序 5. 二级指针 6. 指针数组 7. 指针数组模拟二维数组 1. 数组名的理解 有下面一段代码: #include <stdio.h> int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int* p &arr[…

本地无法连接linux上的MariaDB数据库

使用mysql -u root -p 输入密码&#xff1a; 进去之后没有user表&#xff0c;无法改user、host等信息。

Blender帧动画

时间线窗口Timeline用于定义帧动画 -视图&#xff1a;方法&#xff0c;平移&#xff0c;框显全部 -帧范围&#xff1a;可以调整动画共多少帧 -当前帧&#xff1a;可以拖动或手工指定 默认每秒24帧 定义一个帧动画类似unity的Timeline&#xff0c;只需定义关键帧&#xff0c…

【太原理工大学】软件安全技术—书本重点梳理、带背

收回我上一篇的话&#xff0c;这科挂人还是挺狠的&#xff0c;去年好像挂了四十号人 ( 老师没有划重点&#xff0c;这篇是我自己根据之前的博主的和课本总结的一些重点&#xff0c;本篇为理解性带背。(&#xff61; _ &#xff61;) ### 第一章&#xff1a;软件安全基础 - **零…

Flask快速入门(路由、CBV、请求和响应、session)

Flask快速入门&#xff08;路由、CBV、请求和响应、session&#xff09; 目录 Flask快速入门&#xff08;路由、CBV、请求和响应、session&#xff09;安装创建页面Debug模式快速使用Werkzeug介绍watchdog介绍快速体验 路由系统源码分析手动配置路由动态路由-转换器 Flask的CBV…

青书学堂 看视频 耍课时

1. 获取课程节点id ( /nynzy/Student/Course/GetStudyRecordAndScore ) 接口地址 2. 把所有的nodeId 保存下来 保存到 old.txt 格式 课程id 与 nodeId 用 | 隔开 3. 然后创建 test.php 注意把 cookie 换成自己的 <?php$oldFilename ./old.txt; $newFilename ./new.…

使用MySQL全文索引实现高效搜索功能

MySQL全文索引是MySQL提供的一种高效的搜索功能&#xff0c;可以快速地搜索文本内容。全文索引可以用于搜索大量文本数据&#xff0c;通常应用在文章、博客、论坛等需要搜索的场景中。 什么是MySQL全文索引 MySQL全文索引是一种用于快速搜索文本内容的索引技术。它可以在存储和…

vue+elementplus模拟“山野愚人居”简单实现个人博客

目录 一、项目介绍 二、项目截图 1.项目结构图 2.项目首页 3.文章详情 4.留言 5.读者 三、源码实现 1.项目依赖package.json 2.项目启动 3.读者页面源码 四、总结 一、项目介绍 模仿原博客&#xff1a;山野愚人居 - 记录我的生活、所见、所闻、所想…… 本项目参考以…

联邦学习权重聚合,联邦学习权重更新

目录 联邦学习权重聚合 model.state_dict() 保存模型参数 加载模型参数 注意事项 联邦学习权重更新 联邦学习权重聚合 model.state_dict() 在PyTorch框架中,model.state_dict() 是一个非常重要的方法,它用于获取模型的参数(即权重和偏置)作为一个有序字典(Order…

最流行的后端框架:如何选择适合自己的框架

最流行的后端框架&#xff1a;如何选择适合自己的框架 在当今快节奏的数字环境中&#xff0c;软件开发需要高效、可扩展且可靠的解决方案。最流行的后端框架&#xff0c;这就是后端框架的用武之地。这些软件框架提供了构建 Web 应用程序的骨干&#xff0c;处理了从数据库交互到…

Spring系统学习 - Bean的作用域

bean作用域介绍 Spring框架提供了不同的作用域来管理Bean的生命周期和可见性&#xff0c;这对于控制不同类型的组件和处理并发请求尤其重要。 singleton&#xff08;默认&#xff09;&#xff1a; 每个Spring IoC容器只有一个bean实例。当容器创建bean后&#xff0c;它会被缓存…

CP AUTOSAR标准中文文档链接索引(更新中)

AUTOSAR标准的核心组件包括通信、诊断、安全等&#xff0c;这些组件通过模块化结构进行组织。系统被划分为多个模块&#xff0c;每个模块负责特定的功能。模块之间通过接口进行通信&#xff0c;接口定义了模块之间的交互规则。AUTOSAR标准支持模块的配置&#xff0c;可以根据不…

Vue25-内置指令02:v-text指令

一、v-html对比v-text v-html支持结构的解析&#xff0c;v-text不支持结构的解析。 二、v-html的安全性问题 2-1、cookie的原理&#xff08;node.js&#xff09; 7天免登录&#xff0c;cookie实现。 cookie的本质就是类似于json的字符串&#xff0c;格式是&#xff1a;key-va…