时间序列对于LLM来说并没有什么不同

基础模型推动了计算语言学和计算机视觉领域的最新进展,并在人工智能领域取得了巨大成功。成功的基础模型的关键思想包括:

  1. 海量数据:庞大而多样的训练数据涵盖了广泛的分布,使模型能够近似任何潜在的测试分布。

  2. 可转移性:记忆和回忆所学信息的机制,例如提示和自我监督的预训练,使模型能够有效地适应新任务。

LTSM

LTSM 是 Large Time Series Foundation Model(大型时间序列基础模型)的缩写。

随着基础模型在计算语言学领域的成功,越来越多的研究工作旨在在另一种序列数据:时间序列中复制这种成功。

与大型语言模型 (LLM) 类似,大型时间序列基础模型 (LTSM) 旨在从大量不同的时间序列数据中学习以进行预测。然后可以针对各种任务(例如异常值检测或时间序列分类)对经过训练的基础模型进行微调。

虽然时间序列基础模型的概念已经存在了一段时间,并且已经探索了各种神经架构(MLP、RNN、CNN),但由于数据数量和质量问题,没有一个能够实现零样本预测。在 LLM 取得成功后,人们开始了更广泛的努力,旨在利用从自然语言数据中学习到的序列信息进行时间序列建模。

为什么 LLM 可以用于时间序列数据?

语言模型和时间序列模型之间的主要联系在于输入数据都是顺序数据,而主要区别在于模型对数据进行编码的方式,以适应它们想要捕获的模式和结构类型。

对于大型语言模型,输入句子中的单词通过标记化编码为整数序列:

然后通过嵌入查找过程转换为数值向量:

类似地,时间序列数据也可以被标记为一系列符号表示。下图说明了将具有 100 个时间戳的时间序列转换为长度为 5 的序列的示例,其中序列中的每个步骤都由 4 维特征向量表示。可以使用滑动窗口对时间序列进行分段,并进行离散化以提取统计值(例如平均值、标准差、最小值、最大值)来表示每个窗口。

简单符号表示示例:

利用 LLM 进行时间序列建模的图示:

这样,在综合语料库上训练的大型语言模型可以看作是从现实世界数据中发现的大量数值模式中学习的大型时间序列模型 (LTSM)。因此,时间序列预测问题可以定义为下一个单词预测问题。实现最佳性能和零次/少次预测的关键挑战在于协调时间序列标记和自然语言标记之间的语义信息。

如何重新编程 LLM 进行时间序列建模?

为了应对这一挑战,研究人员正在研究从训练大型语言模型的各个角度来协调时间序列和自然语言之间信息差距的方法。下表显示了两种数据类型的组件比较以及每个组件的代表性作品。

一般来说,重新编程 LLM 进行时间序列建模类似于针对特定领域对其进行微调。该过程涉及几个关键步骤:标记化、基础模型选择、提示工程和定义训练范式。

可以通过符号表示对 LLM 的时间序列数据进行标记化。无需依赖手动离散化和启发式特征提取,可以使用简单的线性层或预先训练的标记器将时间序列数据的片段映射到潜在嵌入空间内的标记中,从而使标记化的时间序列更好地适应 LLM。

可以通过对不同架构的目标进行类比来选择基础模型。例如,句子分类可以对应于时间序列分类或异常值检测,而下一个单词预测可以对应于时间序列预测。

提示时间序列数据可以依赖于有关数据的文本信息(例如数据集或任务描述),也可以依赖于从每个时间序列中提取全局统计特征以突出不同数据集之间的整体差异。

时间序列数据的训练范式通常遵循自然语言处理中使用的类似方法。这些包括使用相同的模型架构从头开始训练而不使用预训练权重、对预训练权重进行微调或训练并行适配器(例如 LoRA)以使 LLM 适应时间序列数据。每种方法都有不同的计算成本,这些成本不一定与性能结果呈正相关。

那么,考虑到每一步都有不同的选择,我们如何确定最佳选项以创建具有最佳性能的更通用的模型?

训练 LTSM 时的不同设计选择

为了了解每一步选择的利弊,我们最近的论文 LTSM-bundle 研究了开源基准数据集上不同选择的组合,并提供了一个开源基准框架,使公众能够在自己的时间序列数据上重新编程和对不同选择的 LLM 进行基准测试。

具体来说,我们深入研究了如何通过研究各种因素来训练 LTSM 模型,例如提示模型的不同方式、如何分解数据、训练方法、选择正确的基础模型、我们拥有的数据量以及数据集的多样性。除了研究当前的方法之外,我们还提出了一个名为“时间序列提示”的新想法。这种新方法通过从训练数据中提取关键特征来创建提示,从而为每个数据集提供可靠的统计概览。

我们根据预测误差(均方/绝对误差)评估不同的选择,数字越低,模型越好。研究的一些关键要点包括:

  1. 简单的统计提示(TS Prompt)在增强 LTSM 模型的训练方面优于文本提示,并且与不使用提示的情况相比,使用统计提示可获得更出色的性能。

  2. 与其他标记化方法相比,使用可学习线性层对时间序列进行标记更适合训练 LTSM 模型,尤其是在同时处理来自不同领域的数据时。

  3. 从头开始训练最初可能表现良好,但由于参数数量过多,存在过拟合的风险。完全微调通常可实现最佳性能,并且收敛速度是从头开始训练的两倍,从而确保高效有效的预测。

  4. 较小的模型在长期预测(336 和 720 步)中表现出高达 2% 的性能提升,而中型模型在短期预测(96 和 192 步)中的表现优于大型模型,这是由于大型模型中可能存在过度拟合问题。

  5. 增加数据量并不与模型性能的提高呈正相关,因为每个数据集的数据越多,训练时间序列的粒度就越大,这可能会降低模型的泛化能力。但增加数据集的多样性通常会提高性能。

  6. 将所有这些要点捆绑在一起创建一个 LSTM 模型(LSTM-Bundle),其性能优于所有现有的为时间序列和基于变压器的时间序列预测模型重新编程 LLM 的方法。

自己试试重新编程 LTSM

想要尝试重新编程自己的 LTSM 吗?以下是 LTSM 捆绑包的教程:

https://github.com/daochenzha/ltsm/blob/main/tutorial/README.md

步骤 1:创建虚拟环境。克隆仓库并安装依赖:

步骤 2:准备数据集。确保你的本地数据文件夹如下所示:

步骤 3:从训练、验证和测试数据集生成时间序列提示:

步骤 4:在 ‘./prompt_data_split’ 文件夹中找到生成的时间序列提示。然后运行以下命令来完成提示:

最后一步:在 gpt2-medium 上使用时间序列提示和线性标记化训练你自己的 LTSM:

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

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

相关文章

Ubuntu网络连接图标消失了,没网!!!

文章目录 前言Step1:停止网络管理服务Step2:删除网络管理状态文件Step3:打开网络管理 前言 本次记录的事,有一天心血来潮想烧录一下开发板,却发现自己的Ubuntu系统的网络连接图标消失了,也没网了&#xff…

HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号5

基础认证题库请移步:HarmonyOS应用开发者基础认证题库 注:有读者反馈,题库的代码块比较多,打开文章时会卡死。所以笔者将题库拆分,以20道题为一组,题库目录如下,读者可以按需跳转。如果对您的阅…

数据结构——单链表OJ题(上)

目录 一、移除链表元素 1.思路 2.注意 3.解题 二、反转链表 思路1:三指针翻转法 (1)注意 (2)解题 思路2:头插法 (1)注意 (2)解题 三、链表的中间结…

AWS 中国区同账号0etl integration配置步骤

中国区的AWS支持0etl integration已经一段时间了,目前北京区和宁夏区均支持。中文翻译为零ETL集成。 当前支持的引擎是Aurora MySQL数据托管式导出到Redshift. Global区域支持Aurora PostgreSQL. 中国区后续也会陆续出现此功能的。 功能介绍文档: 【1…

try-catch-finally 捕获异常不在catch里抛出;循环遍历对象生成任务,捕获异常对象不抛出,不影响其他正常对象生成任务

场景:一个模板绑定多个对象,要对每个对象生成任务。捕获生成任务过程中的异常,但是不抛出,只是用日志记录。这样做目的:循环遍历对象生成任务时,异常对象数据生成任务时发生异常只是导致自己生成任务失败&a…

Mac应用快速启动器:Alfred 5 for Mac 激活版

Alfred 5 是一款专为 macOS 系统设计的效率提升工具。这款软件以其快速启动和高效操作功能著称,通过使用快捷键来呼出输入界面,用户可以快速完成各种任务。 最新版本 Alfred 5.5 引入了一些新功能。其中包括整合了 ChatGPT 和 DALL-E,这意味…

YOLOv8不同位置引入RepVGG重参数化

一、原理解析: 复杂的卷积网络大都具有如下缺点: 复杂的多分支设计(如ResNet中的残差相加和Inception中的分支连接)使模型难以实现和自定义,降低了推理速度和降低了内存利用率。一些组件(例如Xception和Mo…

RedisTemplate、StringRedisTemplate、序列化器配置

Lettuce和Jedis RedisTemplate是SpringDataRedis中对JedisApi的高度封装,提供了Redis各种操作、 异常处理及序列化,支持发布订阅。 首先我们要知道SpringData是Spring中数据操作的模块,包括对各种数据库的集成,比如我们之前学过…

Flutter——全网最精致木鱼APP可上架应用市场

研发背景 工作之余,闲来无事,想着研发一款用户可能会经常用到的一款APP,并且能够顺便掌握一下Flutter Material Design 3 UI,所以就有了这款比较精致的木鱼APP的诞生。 开源代码 https://github.com/z244370114/woodenfish

语义分割介绍

1. 定义 语义指具有人们可用语言探讨的意义,分割指图像分割。 语义分割(semantic segmentation)能够将整张图的每个部分分割开,使每个部分都有一定类别意义(语义),让计算机可以理解图像。 语义分割是以描边的形式&…

【初阶数据结构篇】顺序表和链表算法题

文章目录 顺序表算法题移除元素删除有序数组中的重复项合并两个有序数组 链表算法题移除链表元素反转链表链表的中间结点合并两个有序链表链表分割链表的回文结构 顺序表算法题 不熟悉顺序表的可以先了解一下 顺序表实现方法 移除元素 给你一个数组 nums 和一个值 val&#x…

基于Xejen框架实现的C# winform鼠标点击器、电脑按键自动点击器的软件开发及介绍

功能演示 文章开始之前,仍然是先来个视频,以便用户知道鼠标连点器的基本功能 软件主界面 多功能鼠标连点器 快速点击: 痕即鼠标点击器可以设定每秒点击次数,让您轻松应对高频点击需求。 切换时长,即每次动作之间的间…

【安卓】Android Studio简易计算器(实现加减乘除,整数小数运算,正数负数运算)

目录 前言 运算效果 一、创建一个新的项目 二、编写xml文件(计算器显示页面) 三、实现Java运算逻辑 ​编辑 完整代码 xml文件代码: Java文件代码: 注: 前言 随着移动互联网的普及,手机应用程序已…

Linux_基础

文件结构 Linux的文件结构是一个倒的树状图,具体结构如下: bin:存放二进制文件 boot:存放系统启动文件 dev:存放设备文件 etc:存放系统管理时要用到的各种配置文件和子目录 lib:存放系统动…

【Vue2】3-使用Vue脚手架

目录 初始化脚手架 说明 具体步骤 模板项目的结构 关于不同版本的Vue vue.config.js配置文件 ref属性 配置项props mixin(混入) 插件 scoped样式 总结TodoList案例 webStorage(浏览器本地存储) TodoList本地存储 组…

【初阶数据结构篇】栈的实现(赋源码)

文章目录 栈1 代码位置2 概念与结构1.1概念1.2结构 2 栈的实现2.1 栈的初始化和销毁2.1.1 初始化2.1.2 销毁 2.2 栈顶插入和删除数据2.2.1 栈顶插入数据(压栈)2.2.2 栈顶删除数据(出栈) 2.3 返回栈顶数据2.4 返回栈的有效数据个数…

嵌入式人工智能(31-基于树莓派4B的气压传感器-BMP280)

1、气压传感器 气压传感器(Pressure Sensor)是一种用于测量气体压力的装置。它可以将气体压力转换为电信号输出,进而实现对气体压力的监测和控制。气压传感器广泛应用于工业自动化、气象观测、建筑监测、航空航天等领域。 气压传感器的工作…