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

news2024/11/25 10:30:44

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

首先提出的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%免费

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

早知 121私人导航升级新版本, 第一次使用原生dialog标签。

早知121项目介绍说明 早知121 - 一个快速创建私人导航网站。 用途: 创建个人的工作导航,收集常用网址,可贡献给同事。创建个人垂直领域导航 优点: - 不需懂技术,不用维护服务器,维护私人导航收藏站。 网…

全域推广和标准推广哪个更好。谁更容易获客?

随着全域概念的兴起,全域推广逐渐走进人们视野,并成为新的互联网热词。在此背景下,与全域推广相关的话题,如全域推广是什么及全域推广和标准推广的区别等成为了许多创业者讨论和搜索的对象。 所谓的全域推广,简单来说…

redis 一些笔记1

redis 一、redis事务二、管道2.1 事务与管道的区别 三、主从复制3.13.2 权限细节3.3 基本操作命令3.4 常用3.4.1 一主几从3.4.2 薪火相传3.4.3 反客为主 3.5 步骤3.6 缺点 一、redis事务 放在一个队列里,依次执行,并不保证一致性。与mysql事务不同。 命…

酒店安全管理新趋势:远程可燃气体报警器的应用与校准维护

随着酒店行业的快速发展和人们对安全问题的日益关注,酒店安全管理已成为业界的重要议题。 近年来,远程可燃气体报警器作为一种先进的安全技术,逐渐在酒店行业中得到广泛应用,为酒店的安全管理提供了强有力的保障。 一、酒店安全新…

element 树组件 tree 横向纵向滚动条

Html <el-cardshadow"hover"class"solo flex-2"style"height: calc(100vh - 1.6rem); border: 1px solid #ebeef5"><div slot"header" class"clearfix"><span>问题分类</span></div><div …

千万级流量冲击下,如何保证极致性能

1 简要介绍 随着互联网的快速发展&#xff0c;网络应用的流量规模不断攀升&#xff0c;特别是在电商大促、明星直播、重大赛事、头条热搜等热点事件中&#xff0c;秒级100w请求成为了常态。在这样的流量冲击下&#xff0c;如何确保系统稳定、高效地处理每一个请求&#xff0c;为…

ip地址公和内有什么区别

在数字化世界中&#xff0c;IP地址扮演着至关重要的角色。它不仅是网络设备的身份标识&#xff0c;更是信息传输的桥梁。然而&#xff0c;并非所有IP地址都拥有相同的属性和功能。公有IP地址和私有IP地址&#xff0c;作为IP地址的两大类别&#xff0c;它们存在着显著的差异。虎…

【网络编程】基于TCP的服务器端/客户端

TCP是Transmission Control Protocol(传输控制协议)简写。因为TCP套接字是面向连接的&#xff0c;因此又称为基于流的套接字。 把协议分为多个层次&#xff0c;设计更容易&#xff0c;通过标准化操作设计开放式系统 网络层介绍 链路层 链路层是物理连接领域标准化的结果&…

车牌号识别(低级版)

import cv2 from matplotlib import pyplot as plt import os import numpy as np from paddleocr import PaddleOCR, draw_ocr from PIL import Image, ImageDraw, ImageFont# 利用paddelOCR进行文字扫描&#xff0c;并输出结果 def text_scan(img_path):ocr PaddleOCR(use_a…

自养号测评避坑指南

朋友们&#xff0c;今天来聊一聊关于自养号测评的一些重要知识点——自养号测评避坑指南。 在跨境电商领域中&#xff0c;自养号测评是每个卖家必需要会的技术。它能帮助商家提升店铺的权重和产品排名&#xff0c;从而带来曝光率和销售量。 但这个过程里也有不少坑&#xff0…

失眠焦虑的解脱之道:找回内心的平静

&#x1f343; 在这个快节奏的时代&#xff0c;失眠与焦虑似乎成了许多人的隐形敌人。每当夜幕降临&#xff0c;它们便悄悄潜入心底&#xff0c;扰乱我们的思绪&#xff0c;让宁静的夜晚变得无比漫长。然而&#xff0c;生活总有办法让我们找回内心的平静&#xff0c;只需稍作调…

OLED柔性屏的显示效果如何

OLED柔性屏的显示效果非常出色&#xff0c;具有多方面的优势。以下是关于OLED柔性屏显示效果的详细分析&#xff1a; 色彩表现&#xff1a;OLED柔性屏的每个像素都可以独立发光&#xff0c;因此色彩准确性极高。黑色呈现得非常深邃&#xff0c;而亮部则展现出鲜明而生动的细节。…

2024网络安全学习路线 非常详细 推荐学习

关键词&#xff1a;网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 首先咱们聊聊&#xff0c;学习网络安全方向通常会有哪些问题 1、打基础时间太长 学基础花费很长时间&#xff0c;光语言都有几门&#xff0c;有些人会倒在学习 linux 系统及命令的路上&#…

【云原生】Kubernetes----Rancher助力Kubernetes监控

目录 引言 一、为什么需要监控K8s集群&#xff1f; 二、Rancher监控K8s集群的优势 三、Rancher和k8s的区别 四、Rancher 安装及配置 &#xff08;一&#xff09;安装rancher 1.下载镜像 2.运行容器 3.登录Rancher平台 4.添加集群 5.查看集群 6.Rancher 部署监控系统…

私域引流宝PHP源码 以及搭建教程

私域引流宝PHP源码 以及搭建教程

uni-date-picker 禁用日期功能

在uni-datetime-picker组件中 calendar.vue <template><view class"uni-calendar" mouseleave"leaveCale"><view v-if"!insert && show" class"uni-calendar__mask" :class"{uni-calendar--mask-show:an…

Linux服务器快速下载GoogleDriver小技巧——利用gdown工具

Linux服务器快速下载GoogleDriver小技巧——利用gdown工具 1. 安装gdown pip install gdown安装好后如果在终端输入gdown显示如下错误&#xff1a;gdown: command not found&#xff0c;则说明gdown默认安装的位置需要软链接一下&#xff0c;执行以下命令&#xff1a; sudo …

坑记(MySQL之delete操作)

背景知识 我们知道MySQL有两种删除操作&#xff1a;delete和truncate。 二者之间是否一样&#xff0c;且看以下内容&#xff1a; 操作名称操作简介deleteDML中的一种&#xff0c;操作对象是记录&#xff0c;即table中的一行&#xff0c;可恢复&#xff0c;速度慢truncateDDL中…

怎么防止源代码泄露?9种方法教会你!

怎么防止源代码泄露&#xff1f;首先要了解员工可以通过哪些方式将源代码传输出去&#xff01; 物理方法&#xff1a; — 网线直连&#xff0c;即把网线从墙上插头拔下来&#xff0c;然后和一个非受控电脑直连; — winPE启动&#xff0c;通过光盘或U盘的winPE启动&#xff0c;甚…

execl拷贝图片

1&#xff1a;拷贝图片 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h>int main(int argc, const char *argv[]) {//在子进程拥有和父进程一样的拷贝文件(确保拷贝文件为空)int fp_…