LLM用于时序预测真的不行,连推理能力都没用到

news2024/9/22 17:26:22

语言模型真的能用于时序预测吗?根据贝特里奇头条定律(任何以问号结尾的新闻标题,都能够用「不」来回答),答案应该是否定的。事实似乎也果然如此:强大如斯的 LLM 并不能很好地处理时序数据。

图片

时序,即时间序列,顾名思义,是指一组按照时间发生先后顺序进行排列的数据点序列。

在很多领域,时序分析都很关键,包括疾病传播预测、零售分析、医疗和金融。在时序分析领域,近期不少研究者都在研究如何使用大型语言模型(LLM)来分类、预测和检测时间序列中的异常。这些论文假设擅长处理文本中顺序依赖关系的语言模型也能泛化用于时间序列数据中的顺序依赖关系。这个假设并不令人意外,毕竟语言模型是现在机器学习领域的香饽饽。

那么,语言模型究竟能给传统时序任务带去多大助益?

近日,弗吉尼亚大学和华盛顿大学一个团队尝试解答了这一问题,并最终给出了一个简单却又重要的主张:对于时序预测任务,使用语言模型的常用方法的表现都接近或劣于基本的消融方法,但前者所需的计算量比后者多几个数量级。

图片

  • 论文标题:Are Language Models Actually Useful for Time Series Forecasting?
  • 论文地址:https://arxiv.org/pdf/2406.16964

这些发现是该团队通过大量消融研究得到的,其中揭示出当前时序预测研究中存在一个「令人担忧的趋势」。

但该团队也表示:「我们的目标并不是暗示语言模型永远无法用于时间序列。」事实上,近期一些研究表明语言和时间序列之间具有很好的互动潜力,可以处理时间序列推理和社交理解等任务。

相反,他们的目标是强调这一惊人发现:对于已有的时间序列任务,现有方法几乎没有用到预训练语言模型那与生俱来的推理能力。

实验设置

该团队使用了三种最先进的时间序列预测方法,并为 LLM 提出了三种消融方法:w/o LLM、LLM2Attn、LLM2Trsf。

为了评估 LLM 在时间序列预测任务上的有效性,他们在 8 个标准数据集上对这些方法进行了测试。

用于语言模型和时间序列的参考方法

他们实验了三种近期的使用 LLM 进行时间序列预测的方法。见表 2,这些方法使用的基础模型为 GPT-2 或 LLaMA,同时使用了不同的对齐和微调策略。

在这里插入图片描述

OneFitsAll:OneFitsAll(有时也被称为 GPT4TS)方法会先对输入时间序列使用实例归一化和 patching 技术,然后将其馈送给一个线性层,以获得用于语言模型的输入表征。在训练期间,语言模型的多头注意力和前馈层会被冻结,而位置嵌入和层归一化会得到优化。最终层的作用是将语言模型的最终隐藏状态转换成预测结果。

Time-LLM:使用 Time-LLM 时,输入时间序列会被 patching 技术 token 化,并且多头注意力会将其与词嵌入的低维表征对齐。之后,将这个对齐过程的输出与描述性统计特征的嵌入一起输送给一个冻结的预训练语言模型。然后,将该语言模型的输出表征展平,并使其通过一个线性层,从而得到预测结果。

LLaTA:LLaTA 嵌入输入时间序列的方式是将每个通道都视为一个 token。该架构的一半是「文本分支」,其使用交叉注意力来将时间序列表征与语言模型的词嵌入的低维表征对齐。然后将该表征传递给一个冻结的预训练语言模型,得到一个「文本式预测」。同时,该架构的「时间」分支会基于输入时间序列为预训练语言模型学习一个低秩适应器,从而得到一个用于推理的「时间预测」。该模型包含考虑这些表征之间的相似度的额外损失项。

该团队提出的消融方法

对于基于 LLM 的预测器,为了将 LLM 的影响隔离开,该团队提出了三种消融方法:移除 LLM 组件或将其替换成一个简单模块。

图片

具体来说,对于上述三种方法中的每一种,他们都进行了以下三项修改:

w/o LLM,见图 1b。完全移除语言模型,直接将输入 token 传递给参考方法的最终层。

LLM2Attn,见图 1c。将语言模型替换成单个随机初始化的多头注意力层。

LLM2Trsf,见图 1d。将语言模型替换成单个随机初始化的 Transformer 模块。

在上述消融研究中,预测器的其余部分都保持不变(可训练)。比如,如图 1b 所示,在移除了 LLM 之后,输入编码会被直接传递给输出映射。而如图 1c 和 1d 所示,在将 LLM 替换成注意力或 Transformer 后,它们会与原始方法的剩余结构一起获得训练。

数据集和评估指标

基准数据集。评估使用了以下真实世界数据集:ETT(其包含 4 个子集:ETTm1、ETTm2、ETTh1、ETTh2)、Illness、Weather、Traffic、Electricity。表 1 给出了这些数据集的统计情况。另外还有 Exchange Rate、Covid Deaths、Taxi (30 min)、NN5 (Daily) 和 FRED-MD。

图片

评估指标。该研究报告的评估指标是预测时序值和真实时序值之间的平均绝对误差(MAE)和均方误差(MSE)。

结果

具体来说,该团队探究了以下研究问题(RQ):

  • (RQ1)预训练语言模型是否有助于提升预测性能?
  • (RQ2)基于 LLM 的方法是否值得其消耗的计算成本?
  • (RQ3)语言模型预训练是否有助于执行预测任务的性能?
  • (RQ4)LLM 能否表征时间序列中的顺序依赖关系?
  • (RQ5)LLM 是否有助于少样本学习?
  • (RQ6)性能从何而来?

预训练语言模型是否有助于提升预测性能?(RQ1)

实验结果表明,预训练 LLM 对时间序列预测任务来说还不是很有用。

图片

图片

总体而言,如表 3 所示,在 8 个数据集和 2 个指标上,消融方法在 26/26 案例中优于 Time-LLM 方法,在 22/26 案例中优于 LLaTA,在 19/26 案例中优于 OneFitsAll。

总之,很难说 LLM 可以有效地用于时间序列预测。

基于 LLM 的方法是否值得其消耗的计算成本?(RQ2)

这里,根据这些方法的名义性能来评估它们的计算强度。参考方法中的语言模型使用了数亿乃至数十亿参数来执行时间序列预测。即使当这些语言模型的参数冻结时,它们在训练和推理时依然会有很大的计算开销。

举个例子,Time-LLM 有 6642 M 参数,在 Weather 数据集上耗时 3003 分钟才完成训练,而消融方法仅有 0.245 M 参数,平均训练时间仅有 2.17 分钟。表 4 给出了在 ETTh1 和 Weather 数据集上训练其它方法的相关信息。

图片

至于推理时间,这里的做法是除以最大批量大小,以估计每个示例的推理时间。平均而言,相比于修改后的模型,Time-LLM、OneFitsAl、LLaTA 所用的推理时间多 28.2、2.3、1.2 倍。

图片

图 3 给出了一些示例,其中绿色标记(消融方法)通常低于红色标记(LLM),并且集中于左侧,这说明它们计算成本更低但预测性能更好。

总之,在时间序列预测任务上,LLM 的计算强度无法为性能带来相应的提升。

语言模型预训练是否有助于执行预测任务的性能?(RQ3)

评估结果表明,对于时间序列预测任务而言,使用大型数据集进行预训练实在没有必要。为了检验预训练期间学到的知识能否给预测性能带来有意义的提升,该团队实验了在时间序列数据上,对 LLaTA 进行不同组合的预训练和微调的效果。

  • 预训练 + 微调(Pre+FT):这是原始方法,即在时间序列数据上微调预训练语言模型。对于这里的 LLaTA,做法是冻结基础语言模型,学习一个低秩适应器(LoRA)。
  • 随机初始化 + 微调(woPre+FT):预训练得到的文本知识是否有助于时间序列预测?这里,随机初始化语言模型的权重(由此清除了预训练的效果),再在微调数据集上从头开始训练 LLM。
  • 预训练 + 不使用微调(Pre+woFT):在时间序列数据上进行微调又能给预测性能带来多大提升呢?这里是冻结语言模型,同时放弃学习 LoRA。这能反映语言模型自身处理时间序列的性能。
  • 随机初始化 + 无微调(woPre+woFT):很明显,这就是将输入时间序列随机投射到一个预测结果。该结果被用作与其它方法进行比较的基准。

图片

整体结果见表 5。在 8 个数据集上,依照 MAE 和 MSE 指标,「预训练 + 微调」有三次表现最佳,而「随机初始化 + 微调」获得了 8 次最佳。这说明语言知识对时间序列预测的帮助有限。但是,「预训练 + 无微调」与基准「随机初始化 + 无微调」各自有 5 和 0 次最佳,这说明语言知识对微调过程的帮助也不大。

总之,预训练得到的文本知识对时间序列预测的帮助有限。

LLM 能否表征时间序列中的顺序依赖关系?(RQ4)

大多数使用 LLM 来微调位置编码的时间序列预测方法都有助于理解序列中时间步骤的位置。该团队预计,对于一个有优良位置表征的时间序列模型,如果将输入的位置打乱,那么其预测性能将会大幅下降。他们实验了三种打乱时间序列数据的方法:随机混洗整个序列(sf-all)、仅随机混洗前一半序列(sf-half)、交换序列的前半和后半部分(ex-half)。结果见表 6。

图片

输入混洗对基于 LLM 的方法与其消融方法的影响差不太多。这说明 LLM 在表征时间序列中的顺序依赖关系方面并没有什么突出能力。

LLM 是否有助于少样本学习?(RQ5)

评估结果表明,LLM 对少样本学习场景而言意义不大。

他们的评估实验是取用每个数据集的 10%,再训练模型及其消融方法。具体来说,这里评估的是 LLaMA(Time-LLM)。结果见表 7。

图片

图片

可以看到,有无 LLM 的表现差不多 —— 各自都有 8 个案例表现更好。该团队也使用基于 GPT-2 的方法 LLaTA 进行了类似的实验。结果见表 8,这里消融方法在少样本场景中的表现还优于 LLM。

性能从何而来?(RQ6)

这一节评估的是 LLM 时间序列模型中常用的编码技术。结果发现,将 patching 和单层注意力组合起来是一种简单却有效的选择。

前面发现对基于 LLM 的方法进行简单的消融并不会降低其性能。为了理解这一现象的原因,该团队研究了 LLM 时间序列任务中常用的一些编码技术,比如 patching 和分解。一种基本的 Transformer 模块也可用于辅助编码。

结果发现,一种组合了 patching 和注意力的结构在小数据集(时间戳少于 100 万)上的表现优于其它大部分编码方法,甚至能与 LLM 方法媲美。

图片

其详细结构如图 4 所示,其中涉及将「实例归一化」用于时间序列,然后进行 patching 和投射。然后,在 patch 之间使用一层注意力进行特征学习。对于 Traffic(约 1500 万)和 Electricity(约 800 万)等更大的数据集,则使用了基本 Transformer 的单层线性模型的编码表现更优。在这些方法中,最后还要使用单层线性层来投射时间序列嵌入,从而得到预测结果。

总之,patching 对编码而言非常重要。此外,基本的注意力和 Transformer 模块也能为编码带来有效助益。

如何学习大模型 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/1927313.html

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

相关文章

Prometheus监控主机进程

前言 客户端安装及配置 Premetheus服务端配置 模板导入 grafana效果图 前言 此场景主要是利用process-export监控主机的进程存活、资源占用率,防止进程挂掉导致服务崩溃 gitlab地址:GitHub - ncabatoff/process-exporter: Prometheus exporter that…

开发体育直播平台:高并发问题解决手段及架构设计思路

在追求极致观赛体验的体育直播领域,高并发处理能力成为了衡量系统性能与稳定性的关键标尺。东莞梦幻网络科技技术团队,凭借其在互联网领域的深厚积累与前瞻视野,成功打造了一套高效、稳定的体育赛事直播系统,有效解决了高并发带来…

【Python】sklearn教程

1. sklearn库介绍 sklearn是 Python 中一个非常重要的机器学习库,全称为scikit-learn。它是基于Python语言的机器学习工具,提供了一系列简单高效的机器学习算法。sklearn库通常与NumPy和SciPy库一起使用,用于数据预处理、特征选择、模型训练…

Centos 使用nfs配置共享目录使docker集群所有容器日志统一主机访问

Centos 使用nfs配置共享目录,使docker集群所有容器日志统一存放在主机一个共享目录下,供开发人员访问查看 准备两台或以上Centos服务器 192.168.0.1 nfs服务器 192.168.0.2 nfs客户端 以root用户登录192.168.0.1服务器,执行以下操作 注意先…

【JavaScript】解决 JavaScript 语言报错:Uncaught SyntaxError: Unexpected identifier

文章目录 一、背景介绍常见场景 二、报错信息解析三、常见原因分析1. 缺少必要的标点符号2. 使用了不正确的标识符3. 关键词拼写错误4. 变量名与保留字冲突 四、解决方案与预防措施1. 检查和添加必要的标点符号2. 使用正确的标识符3. 检查关键词拼写4. 避免使用保留字作为变量名…

ReentrantLock的源码实现和原理介绍

目录 一、概述 二、ReentrantLock的整体结构 三、ReentrantLock 和Synchronized相比 四、ReentrantLock 公平锁和非公平锁实现 4.1 ReentrantLock 源码解读 4.1.1 ReentrantLock 类源码解读 4.1.1.1 Lock接口 4.1.1.2 Sync抽象类 4.1.1.3 NonfairSync()和FairSync() 4…

《0基础》学习Python——第十讲

小知识点补充 一、json大字符串 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以易于阅读和编写的方式为基础,同时也易于解析和生成。因为其简洁性和可读性,JSON已成为数据交换的首选格式。 大字符…

超大模型加载转换Trick

在深度学习领域,大模型的训练和推理通常需要消耗大量的计算和内存。如何高效地加载和使用大模型是一个相当关键的问题。在这篇博客中,我将分享一些关于更快加载大模型和减少内存的技巧。 1.问题分析 假设现在我们有一个236B 超大模型的原始权重的 check…

jmeter-beanshell学习9-放弃beanshell

写这篇时候道心不稳了,前面写了好几篇benashell元件,突然发现应该放弃。想回去改前面的文章,看了看无从下手,反正已经这样了,我淋了雨,那就希望别人也没有伞吧,哈哈哈哈,放在第九篇送…

DHCP原理及配置

目录 一、DHCP原理 DHCP介绍 DHCP工作原理 DHCP分配方式 工作原理 DHCP重新登录 DHCP优点 二、DHCP配置 一、DHCP原理 1 DHCP介绍 大家都知道,现在出门很多地方基本上都有WIFI,那么有没有想过这样一个问题,平时在家里都是“固定”的…

互联网十万个为什么之什么是专有网络VPC?

专有网络VPC有什么优势? 专有网络VPC具有安全可靠、灵活可控、简单易用的特性和较强的可扩展性。 安全可靠 每个VPC都有一个独立的隧道号,一个隧道号对应着一个虚拟化网络。VPC之间通过隧道号进行隔离: 由于VPC内部存在交换机和路由器&#…

PyTorch人脸识别

新书速览|PyTorch深度学习与企业级项目实战-CSDN博客 一套基本的人脸识别系统主要包含三部分:检测器、识别器和分类器,流程架构如图11-3所示: 图11-5 检测器负责检测图片中的人脸,再将检测出来的人脸感兴趣区域(Reg…

如何在单片机外部Flash存储器上部署高效文件系统:从原理到实现

目录 1.Littlefs文件系统 1.1文件系统简介 2 Littlefs文件系统移植到单片机上 2.1 添加源代码 2.2 编辑接口函数 2.3 测试代码 1.Littlefs文件系统 1.1文件系统简介 littlefs文件系统源码下载地址:littlefs-project/littlefs: A little fail-safe filesystem…

Unity Shader学习笔记

Shader类型 类型详情Standard Surface Shader标准表面着色器,基于物理的着色系统,用于模拟各种材质效果,如石头、木材、玻璃、塑料和金属等。Unlit Shader最简单的着色器,不包含光照但包含雾效,只由最基础的Vertex Sh…

Pytorch使用Dataset加载数据

1、前言: 在阅读之前,需要配置好对应pytorch版本。 对于一般学习,使用cpu版本的即可。参考教程点我 导入pytorch包,使用如下命令即可。 import torch # 注意虽然叫pytorch,但是在引用时是引用torch2、神经网络获取…

【C++】—— 初识C++

【C】—— 初识C 一、什么是 C二、C 的发展历史三、C 版本更新四、C 的重要性五、C 在工作领域中的运用六、C 书籍推荐: 一、什么是 C C语言 是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要…

六、STM32F4+标准库+LWIP2.1.2移植+无操作系统

最快最简单的移植LWIP协议栈,可改可不改的东西统一不修改。后期学会了有能力了再回过头来修改,操作复杂理论复杂,同时讲解对新手不是很友好,故此此文档只讲操作无任何理论讲解。 零、所需文件及环境 1、第四章建立好的串…

51单片机11(蜂鸣器硬件设计和软件设计)

一、蜂鸣器硬件设计 1、 2、上面两张图,是针对不同产品的电路图。像左边这一块,是我们的A2,A3,A4的一个产品对应的一个封闭器的硬件电路。而右边的这一块是对应的A5到A7的一个硬件电路。因为A5到A7的一个产品,它的各…

排序算法3_冒泡排序、快速排序

一、冒泡排序 1.1 冒泡排序定义和思路 冒泡排序的基本思想是:通过相邻两个元素之间的比较和交换,使较大的元素逐渐从前面移向后面(升序),就像水底下的气泡一样逐渐向上冒泡,所以被称为“冒泡”排序。  在…

【YOLOv8】 用YOLOv8实现数字式工业仪表智能读数(二)

上一篇圆形表盘指针式仪表的项目受到很多人的关注,咱们一鼓作气,把数字式工业仪表的智能读数也研究一下。本篇主要讲如何用YOLOV8实现数字式工业仪表的自动读数,并将读数结果进行输出,若需要完整数据集和源代码可以私信。 目录 &…