论文阅读 - 《Large Language Models Are Zero-Shot Time Series Forecasters》

Abstract

通过将时间序列编码为数字组成的字符串,我们可以将时间序列预测当做文本中下一个 token预测的框架。通过开发这种方法,我们发现像GPT-3和LLaMA-2这样的大语言模型在下游任务上可以有零样本时间序列外推能力上持平或者超过专门设计的时间序列训练模型。为了促进这种性能表现,我们提出了一种有效token化时间序列并将token上的离散分布转换为在连续数值上高度灵活的密度的方法。我们认为大语言模型在时间序列上的成功源于它们可以自然的表达多模态分布的能力,以及为了简单而出现的偏差和重复,这与许多时间序列中的显著特征类似,例如重复的季节趋势。我们同样展示了大预言模型如何做到在不通过非数字文本进行插补的情况下自然的处理缺失的数据,适应文本的便捷信息,并且回答问题以帮助解释预测。同时我们发现日益增大的模型体积有助于改进其在时间序列上的性能表现,我们也展示了GPT4由于其不同对数字的token化方式以及较差的不确定性校准而表现要比GPT3要差,这可能是类似于RLHF这样的对齐机制干预的结果。

提出的方法

Tokenization

将每个数字用空格分开,并在每个时间节点之间用,分隔,小数点在给定固定精度情况是多余的,可以使用特定的编码方式去掉小数点以节省上下文长度。例如:
0.123 , 1.23 , 12.3 , 123.0 → 12 , 123 , 1230 , 12300 0.123, 1.23, 12.3, 123.0 \rightarrow 1 2 , 1 2 3 , 1 2 3 0 , 1 2 3 0 0 0.123,1.23,12.3,123.012,123,1230,12300

Rescaling

因为数值有可能非常大,要覆盖那么多数值需要很多的token。因此,在输入之前,会用MinMaxScaler将数值进行缩放,限制数值的范围。

Sampling/Forecasting

在每次预测时,都会多次实验采样多组预测值,将多组预测值的中位数或均值作为点预测结果,使得结果更加鲁棒,而且还可以直接作为概率预测的结果(分位数)。

Continuous likelihoods

虽然LLM的概率分布是离散的(即token是离散的),但是可以将其转换为连续概率密度。
如下图所示的例子,假如保留三位小数,则每0.001范围形成一个bin,bin内的所有数值服从均匀分布。如0.537和0.538之间的这个bin内,赋一个均匀分布。这样,LLM的概率分布就成了连续的。
Continuous likelihoods
首先,假设我们有一个语言模型,它可以生成数字序列,比如小数点后的一串数字。这些数字的概率分布是离散的,因为每个数字都有一个特定的概率。
为了将这个离散的概率分布变成连续的,作者采用了一种巧妙的方法。他们把可能的数字值按照一定的规则划分成许多小区间,每个区间都是一个连续的范围。然后,在每个区间内,假设数字的分布是均匀的,也就是说,每个具体的数字在这个区间内出现的概率是一样的。
通过这样的构建,整个数字空间被分割成许多这样的区间,每个区间都有一个概率分布。这种方法允许我们将原本离散的数字概率分布转换成一个连续的概率分布。
最后,为了在原始输入空间中得到这个连续的概率分布,作者引入了一个变量变换的操作。这个操作确保了我们在处理数据时,可以从离散的数字空间映射到连续的数字空间。
总的来说,通过这种方法,尽管我们的模型输出的是离散的数字,但我们可以用一种更灵活、更高分辨率的方式来表示和处理连续的概率分布。

Language models as flexible distributions

Wasserstein距离,也称为地面距离或水流距离,是一种用于衡量两个概率分布之间差异的数学指标。在这个上下文中,作者使用Wasserstein距离来评估通过训练模型生成的连续概率分布与真实分布之间的相似程度。
Language models as flexible distributions
具体来说,作者首先在上图所示的各种一维分布上训练了一个小型自回归模型。这些分布包括指数随机变量、均匀分布、学生t分布的混合分布,以及月度牛奶数据集上ARIMA模型的时间序列预测残差的重尾分布。接着,作者计算了生成的概率分布与真实分布之间的Wasserstein距离。
Wasserstein距离的计算涉及到将一种分布转换为另一种分布的最佳办法,使得转换的成本最小。在这个上下文中,它衡量了通过模型生成的分布与真实分布之间的“距离”或差异,这个距离值越小,两个分布之间的相似性就越高。
通过比较不同模型的Wasserstein距离,作者可以评估模型在处理不同类型的分布(非对称、多模态和重尾分布)时的性能。在这里,十进制自回归语言模型(“十进制 AR”)表现出色,表明它在生成与时间序列数据特征相匹配的概率分布时效果良好。这种评估方法提供了一种量化模型性能的手段,特别是在处理复杂概率分布时。

Origins of Zero-Shot Performance

Origins of Zero-Shot Performance
假如有一个人工生成的序列,用不同复杂度的模型来拟合它(比如不同次数的多项式函数),然后外推,我们希望找到较小复杂度的模型,既能拟合很好,又不会过拟合,如下图中的复杂度13。这叫奥卡姆剃刀原理。可以发现,LLM的NLL最小的时候,正好对应的是这个复杂度13的模型。也就是说,LLM可以找到数据的低复杂性解释,使他们能够zero-shot外推数值序列。

  • Rpetition bias and periodicity:LLM对于重复序列的偏差恰好对应于识别和推断输入中周期结构的能力。
  • Arithmetic and trend components:LLM有对于加法和乘法的执行能力

将多个模式组合在一起是一个更困难的挑战,因为它需要识别复合模式并能够在相同的令牌预算内执行多个操作。假设一个模型可以在一次正向过程中执行复制,在一次反向过程中执行加法,这并不一定意味着它可以同时执行这两项操作。我们发现,尽管GPT-4的执行更一致,GPT-3却能执行这些合成(而这是GPT-4所不能的),如附录E所示。对计算和令牌的限制可能会使这种合成变得不必要地困难,而额外的递归结构,例如来自草稿簿、思想链(CoT)提示或自适应计算,会使这项任务更容易。

LLM其它特性分析

Base models and forecasting performance

如图所示,本文使用OpenAI模型、LLaMA及LLaMA-2模型测量大规模多任务语言理解基准和概率预测误差准确性的研究,展现了当推理性能提高时,预测能力也会提高。

Chat Models

尽管方便的缩放关系似乎适用于基本模型,但当我们考虑已经为聊天机器人应用程序进行后处理的模型时,这种关系开始破裂。例如,GPT-4在自然语言任务中表现出比GPT-3和LLaMA模型高得多的智能,但将其有效应用于时间序列却变得更加困难。在上图(中间部分)中,展示了GPT-4的预测误差(CRPS)明显大于Darts数据集上的GPT-3。性能下降是GPT-4方法中几个小细节的结果。由于标记化的改变,GPT-4不能轻易地被迫将单个数字标记成一个完整的数字流。由于API的限制,可能性评估也是不允许的,这就是为什么我们只提供CRPS的结果。虽然GPT-4可以在第5节(如附录E所示)中讨论的合成示例中表现良好,但我们发现,在随机数据中,GPT-4的校准比GPT-3的差得多,这可能是由于上述预处理细节以及使用RLHF处理模型的事实,众所周知,RLHF会降低问答任务的校准。GPT-4并不是为聊天功能设计的模型中性能下降的唯一例子。我们在LLaMA-2模型中观察到了同样的现象,它们对每个模型大小都有相应的聊天版本。图7(右)显示,聊天版本的预测误差往往比非聊天版本明显更差,尽管在规模和推理能力方面仍保持趋势。

Missing data

在实际的时序预测场景中,经常会有缺失值NaNs出现。传统方法是直接插值补齐这些缺失值,但是直接插值显然可能和真实值有些差距。而LLM则无需补齐,直接把NaN这个单词给放到序列句子中就好,比如:

上面式子中逗号之间没有值的都是缺失值,无需插值,直接插入NaN即可。
下图是预测效果,发现对于缺失数据非常多的情况,LLM仍然能够有着很低的负对数似然值,而插值+预测模型这种方式的负对数似然都飘到天上去了。在CRPS这个预测指标上看,LLM的预测效果也是不错的。

Connecting time series and textual understanding


由于 LLM 是为自然语言和代码而设计的,因此我们可以用有用的文本来增强数值时间序列。我们可以通过提供文本侧信息作为输入,或者通过给定的时间序列产生文本输出来实现这一点。一个有趣的问题是,GPT-4 能否用文本解释其对给定时间序列的理解。我们为 GPT-4 提供了生成合成时间序列的代码,提供了其中一个时间序列的值,然后要求它推断出是哪个函数以零点方式生成了数据,以此来探究 GPT-4 的这一能力。预测准确率如上图所示,其余三行均为 0。在 CoT的提示下,模型的表现比随机概率要好得多;不过,在直接推断数字数据时,它识别模式的能力更强,这表明它对数字的理解与其对文本的理解并不完全相关。在进行预测时,模型经常会解释时间序列的属性,以便从列表中选出正确的候选结果,我们在附录 F 中展示了其中几个解释示例。我们还展示了如何在 Jupyter 笔记本单元格上的一个简单(无提示)的下一个标记预测问题中封装这一任务,说明了为什么我们期望这种能力会随着一个足够强大的语言模型的出现而出现。

Summary

我们已经证明,通过将数值编码为文本,大型语言模型可以用作预训练时间序列预测器。与其他 "基础 "模型一样,预训练会使模型具有有用的通用模式偏差,而这些偏差会通过架构设计,并随着基础预训练模型的改进而实现性能的自然扩展。由于 LLM 预测器是在语言基础上进行训练的,因此还具有非常规能力,如问题解答。从更广泛的意义上讲,将时间序列预测视为自然语言生成,可以说是将更多能力统一到一个大型、功能强大的模型中的又一举措,在这个模型中,许多任务和模式之间可以共享理解能力。此外,零点预测不需要大量的计算资源、领域专业知识或许多下游训练数据点,就能实现令人信服的广泛性能。
虽然 LLM 预测器得益于预训练转换器的优势,但也继承了它们的弱点,其中包括有限的上下文窗口。虽然许多单变量时间序列问题可以在越来越大的上下文窗口内轻松解决,但多变量问题却带来了更大的挑战。最近有几项进展将 LLM 的上下文窗口扩展到了 10-100K 字节。将这些进展与时间序列预测相结合是未来研究的一个特别令人兴奋的方向。使用当前 LLMs 架构的另一个潜在挑战可能是它们在算术和执行递归与组合操作方面的弱点,这可能会限制特别具有挑战性的时间序列。另一方面,许多时间序列并不需要精确的运算。了解这种情况在多大程度上存在,并放宽这种限制,也是未来研究的一个很有前景的方向。除了任何限制之外,研究微调时间序列 LLM 的有效程序也很有前途。我们希望将 LLM 研究与时间序列预测结合起来,为两个领域都带来益处。

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

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

相关文章

Llama系列关键知识总结

系列文章目录 第一章:LoRA微调系列笔记 第二章:Llama系列关键知识总结 文章目录 系列文章目录Llama: Open and Efficient Foundation Language Models关键要点LLaMa模型架构:Llama2分组查询注意力 (GQA) Llama3关键信息 引用: Ll…

项目实践-贪吃蛇小游戏

目录 声明 1、前言 2、实现目标 3、技术要点 4、Win32API介绍 4.1、Win32API 4.2、控制台程序 4.3、控制台屏幕上的坐标COORD 4.4、GetStdHandle 4.5、GetConsoleCursorInfo 4.6、SetConsoleCursorInfo 4.7、SetConsoleCursorPosition 4.8、GetAsyncKeyState 5、…

Java编程题_面向对象和常用API01_B级

Java编程题_面向对象和常用API01_B级 第1题 面向对象、异常、集合、IO 题干: 请编写程序,完成键盘录入学生信息,并计算总分将学生信息与总分一同写入文本文件 需求:键盘录入3个学生信息(姓名,语文成绩,数学成绩) 求出每个学生的总分 ,并…

Jmeter自学【8】- 使用JMeter模拟设备通过MQTT发送数据

今天使用jmeter推送数据到MQTT,给大家分享一下操作流程。 一、安装JMeter 参考文档:Jmeter自学【1】- Jmeter安装、配置 二、安装MQTT插件 1、下载插件 我的Jmeter版本是5.6.3,用到的插件是:mqtt-xmeter-2.0.2-jar-with-depe…

Uniapp跨域请求

1.什么是跨域 是指当一个请求的URL的协议、域名或端口与当前页面的URL不同时,该请求被视为跨域请求。跨域是一种安全策略,用于限制一个域的网页如何与另一个域的资源进行交互。就比如我们进行前端向后端进行发送请求的时候,如果是开发前后端…

基于Resnet、LSTM、Shufflenet及CNN网络的Daily_and_Sports_Activities数据集仿真

在深度学习领域,不同的网络结构设计用于解决特定的问题。本文将详细分析四种主流网络结构:卷积神经网络(CNN)、残差网络(ResNet)、长短期记忆网络(LSTM)和洗牌网络(Shuff…

算法进阶:贪心算法

贪心算法是一种简单而直观的算法思想,它在每一步选择中都采取在当前状态下最优的选择,以期望最终得到全局最优解。贪心算法通常适用于一些具有最优子结构的问题,即问题的最优解可以通过一系列局部最优解的选择得到。 贪心算法的基本思路是&a…

139.《python中的正则详解》

文章目录 什么是正则正则表达式语法正则demo1.匹配模式2.finditer3.正则分组4.非捕获组5.分组的引用6. 正则替换7.正则切割7.正则「或」7.枚举取反 面试题 前言: 拉开差距的不是上班的8小时,而是下班后的16小时,同志们,加油,卷起!!! 什么是正则 1.正则表达式是一种高级文本处理…

从安全角度看 SEH 和 VEH

从安全角度看 SEH 和 VEH 异常处理程序是处理程序中不可预见的错误的基本方法之一 https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/exceptions/ SEH——结构化异常处理程序 就其工作方式而言,异常处理程序与其他处理程序相比相当基础&#xff0…

ESP-IDF学习记录(3)ESP-IDF组件管理

既然官方把这个组件管理按钮放置的这么明显,就一定有他的用心良苦,今天学习一下这个组件管理。 Componments manager 1.给当前项目安装组件 IDF Component Manager and ESP Component Registry Documentation — IDF Component Management documenta…

华为麦芒5(安卓6)termux记录 使用ddns-go,alist

下载0.119bate1 安卓5和6版本,不能换源,其他源似乎都用不了,如果root可以直接用面具模块 https://github.com/termux/termux-app/releases/download/v0.119.0-beta.1/termux-app_v0.119.0-beta.1apt-android-5-github-debug_arm64-v8a.apk 安装ssh(非必要) pkg install open…

园区网综合拓扑实验

一、实验要求 实验拓扑图如上图所示 1、按照图示的VLAN及IP地址需求,完成相关配置 2、要求SW1为VLAN 2/3的主根及主网关 SW2为vlan 20/30的主根及主网关 SW1和SW2互为备份 3、可以使用super vlan(本实验未使用) 4、上层…

JSON 系列之4:JSON_VALUE

JSON_VALUE的作用,简单来说,就是从JSON到SQL: SQL/JSON function JSON_VALUE selects JSON data and returns a SQL scalar or an instance of a user-defined SQL object type or SQL collection type (varray, nested table) 所以&#xff…

设置首选网络类型以及调用Android框架层的隐藏API

在Android SDK中提供的framework.jar是阉割版本的,比如有些类标记为hide,这些类不会被打包到这个jar中,而有些只是类中的某个方法或或属性被标记为hide,则这些类或属性会被打包到framework.jar,但是我们无法调用&#…

Mac 12.1安装tiger-vnc问题-routines:CRYPTO_internal:bad key length

背景:因为某些原因需要从本地mac连接远程linxu桌面查看一些内容,必须使用桌面查看,所以ssh无法满足,所以决定安装vnc客户端。 问题: 在mac上通过 brew install tiger-vnc命令安装, 但是报错如下: > D…

【Java-tesseract】OCR图片文本识别

文章目录 一、需求二、概述三、部署安装四、技术细节五、总结 一、需求 场景需求:是对识别常见的PNG,JPEG,TIFF,GIF图片识别,环境为离线内网。组件要求开源免费,并且可以集成Java生成接口服务。 二、概述 我不做选型对比了,我筛选测试了下Tesseract(v…

PCIe和DMA:数据传输的“双子星“

简单来说,PCIe是一种硬件总线标准,就像高速公路;DMA是一种数据传输机制,就像在高速公路上行驶的卡车。所以这两个是两种不同的概念。 理解PCIe传输 PCIe(PCI Express)是一种硬件接口规范,定义…

VS Code中怎样查看某分支的提交历史记录

VsCode中无法直接查看某分支的提交记录,需借助插件才行,常见的插件如果git history只能查看某页面的改动记录,无法查看某分支的整体提交记录,我们可以安装GIT Graph插件来解决这个问题 1.在 VSCode的插件库中搜索 GIT Graph安装&a…

第三方接口设计注意要点

实际工作中,我们会遇到与三方系统对接的情形,比如对接短信服务、支付服务、地图服务、以及一些外部业务系统的调用和回调等等,不论是我们调用第三方接口还是我们为其他系统提供接口服务,调用过程中会遇到一些大大小小的问题和吐槽…

使用 pushy 热更新后 sentry 不能正常显示源码

问题 使用 Android Studio 打包后,上传使用 sentry 官网命令打包的 sourcemap 文件,sentry能正常显示异常位置源码。 使用 pushy 热更新之后,sentry 不能正常显示异常位置的源代码。 如下图: 问题原因: 使用 pushy …