ChatGPT能预测时间序列?基于大模型的时间序列预测中的迭代事件推理_chatgpt能预测时间序列

引言

时间序列预测(Time Series Forecasting)是支撑经济、基础设施和社会各领域决策的关键技术。然而,传统的预测方法在面对由外部随机事件引起的突发性变化或异常时,往往表现出局限性。这些方法通常依赖于历史数据的模式识别,假设时间序列的分布在时间上保持一致,难以系统地将复杂的社会事件与时间序列波动联系起来。

新闻文章提供了对意外事件、政策变化、技术发展和公众情绪转变等关键因素的洞察,这些因素可能无法通过纯粹的数值数据捕捉。将新闻整合到预测中,为模型提供了与人类行为和社会变化复杂性密切相关的上下文信息。

本文提出了一种新颖的方法,利用大语言模型(LLMs)生成式代理(Generative Agents),通过跨文本和时间序列数据的推理来增强时间序列预测。我们利用LLM代理迭代地筛选出不相关的新闻,采用类人类的推理来评估预测结果。通过将选定的新闻事件与时间序列数据相结合,我们微调了预训练的LLM,以预测时间序列中的数字序列。实验结果表明,该方法在预测准确性上有显著的提升,表明通过有效利用非结构化的新闻数据,时间序列预测有可能实现范式转变。

时间序列预测

主要内容

  • 提出了一种新颖的时间序列预测框架,将非结构化的新闻数据与数值时间序列输入相结合,提供更深层次的上下文理解,提升模型对社会事件和现实世界动态的响应能力。

  • 强调了LLM代理在动态新闻选择和分析中的应用。我们利用LLM的推理能力,自动化地理解和筛选新闻内容。代理通过比较预测误差与所有相关事件,不断地完善其选择逻辑,提升模型的准确性和可靠性。

  • 提出了一种将时间序列数据与新闻信息相结合的数据构建方法,并构建了跨多个领域的数据集来支持我们的研究。该数据集包括特定任务的时间序列数据和经过验证的公共新闻报道,便于进一步在时间序列研究中探索。

  • 实验结果展示了新闻数据的有效整合,在金融、能源、交通和比特币等多样化领域实现了卓越的预测准确性。我们的研究发现,整合新闻特别擅长处理复杂性,尤其是在能源需求模式中。

方法

重新思考时间序列预测问题及其要素

时间序列预测可以被视为序列的条件生成问题,这与大语言模型(LLMs)所代表的自然语言处理的通用范式相一致。以LLaMa语言模型为例,假设一个数字序列 {123, 456},LLaMa的分词器会将这个数字视为一系列数字标记,即 {“1”, “2”, “3”, “,”, “4”, “5”, “6”}。给定输入序列 “123”,预测 “456” 的概率可以表示为一种自回归的概率预测过程:

一般地,设时间 的时间序列标记为 ,LLM使用条件概率分布 来预测下一个标记 。在预训练期间,LLM优化其内部参数,以最大化整个广泛自然语言语料库上的这个条件概率。

然而,仅依赖历史时间序列进行预测,可能无法捕捉到突发事件对未来的影响。假设存在一个事件 ,它对未来序列的影响可以表示为条件概率 。当未提供事件 的信息时,我们只能通过历史时间序列进行预测。

在语言模型中,新闻事件也可以表示为文本标记。考虑一组新闻文本标记 ,它们代表事件 。LLM将这些新闻信息视为条件输入,执行条件概率预测 。包括 提供了影响未来值预测的重要上下文信息。

微调LLM进行时间序列预测

将上述信息整合后,我们可以构建LLM的输入,以执行时间序列预测。尽管预训练的LLM在某种程度上已经具备生成时间序列预测的能力,但在如此丰富的上下文环境中,仅依赖这些预训练模型进行少样本预测仍然面临挑战。

为使语言模型更有效地在考虑新闻和补充信息条件下进行时间序列预测,我们提出微调语言模型以预测条件概率。我们使用监督指令微调的方法,在包括时间序列、新闻和补充信息的历史数据上训练LLM,这些数据被格式化为文本输入输出对。相同的损失函数在预训练期间也被应用。

为微调LLM,我们采用了低秩适应(Low-Rank Adaptation,LoRA)方法,只更新一小部分参数,降低了计算需求,同时保留了大部分的预训练知识。

用于上下文新闻信息聚合和推理的分析代理

在数据构建过程中,匹配适当的新闻和补充信息并非易事。互联网充斥着新闻,其中大部分与我们要预测的时间序列无关。引入不相关的新闻可能会干扰预测。因此,分析时间序列预测任务与所选新闻之间的相关性和因果关系至关重要。

我们利用基于LLM的推理代理来筛选和推理新闻内容。这个代理通过详细的提示设计,定义角色、指令、权限和上下文,使其能够解释人类命令并执行复杂任务。这种方法将庞大的新闻数据集浓缩为精炼的相关文章。它利用其推理能力,有效地筛选、分类和解释新闻文本。

新闻初步配对

在数据准备的初始阶段,我们根据匹配的时间频率、预测范围和地理区域检索新闻,以与时间序列数据对齐。这种同步确保了文本信息的见解在时间和地域上都是相关的。例如,为了理解2019年至2021年澳大利亚各州的电力需求,我们收集了来自不同澳大利亚州的本地新闻和可能直接或间接影响需求的同期国际新闻。

用于新闻选择的推理代理

我们采用了具备复杂任务处理能力的LLM推理代理,如对话、推理和半自主行动。这个代理通过提示设计,能够有效地筛选、分类和解释新闻文本。我们使用少样本提示和思维链(Chain of Thought,CoT)方法,开发了一个能够理解新闻在预测中上下文的代理。

我们的三阶段提示方法包括:

  1. 理解影响时间序列的因素:指导代理了解并总结可能影响特定领域时间序列的各种因素,按影响(正面/负面)和持续时间(短期/长期)进行分类,考虑经济、政策、季节和技术等因素。

  2. 筛选和分类新闻:指导代理基于自动生成的逻辑或给定的推理逻辑,筛选和分类新闻,关注与时间序列的相关性,并分类其影响类型(如长期和短期)以及推理。

  3. 组织输出格式:指定代理的输出格式,将选定的新闻组织成JSON格式,详细说明摘要、影响区域、报道时间和推理等方面。

用于推理更新的评估代理

我们还设计了一个评估代理,来评估和改进上述新闻筛选的有效性。仅依赖推理代理进行新闻选择并非最佳,因为新闻与时间序列之间的交互是复杂的。推理代理只能从新闻内容的角度分析不同新闻的潜在影响,无法知道基于它们训练的时间序列预测模型是否能做出准确的预测。

评估代理部署在时间序列预测模型训练之后,超越了简单的预测准确性数值评估,通过整合类人类的逻辑推理来完善新闻选择的逻辑链。我们重点评估由于遗漏新闻(如异常事件或不合逻辑的报告)可能导致的不准确性。它观察模型的预测结果,确定是否有关键新闻被忽略,并根据这些结果调整训练数据的新闻筛选策略。

整体流程

我们将新闻推理和评估代理与LLM预测模型的微调相结合,以提高训练数据的质量。下图展示了整个流程的各个步骤。在第一轮迭代中,我们使用LLM代理根据时间序列任务的领域和时间,建立新闻选择逻辑。这个逻辑指导推理代理筛选相关新闻,将其与时间序列数据对齐,并将其输入模型进行初始微调。

在使用验证集验证模型的预测后,评估代理检查可能影响预测的遗漏新闻。这种反馈有助于推理代理在后续迭代中完善筛选逻辑。这个循环持续进行,直到最终迭代,推理代理整合所有更新,创建最终的新闻筛选器,用于训练最终的模型。

实验

数据准备
时间序列数据

我们选择了受人类活动和社会事件影响的领域的时间序列数据,以测试我们的方法在捕捉复杂人类驱动动态方面的能力。这些领域包括交通(Traffic)、汇率(Exchange)、比特币(Bitcoin)和电力(Electricity)。为了避免预训练语言模型的偏差,我们将Exchange和Electricity数据集更新到了2022年。我们使用了来自澳大利亚能源市场运营商(AEMO)的半小时电力需求数据和来自Exchange Rates API的每日汇率数据。这些数据集在频率上有所不同,包括每日、每小时和每半小时更新,使我们能够评估算法在不同时间分辨率下的有效性。

新闻收集

由于没有公开的数据集将时间序列数据与新闻事件配对,我们专门为上述时间序列收集了新闻,以促进我们的研究。一些新闻内容来自GDELT数据集,这是一个跟踪近乎所有国家的新闻的数据库,涵盖100多种语言。GDELT提供了对社会、政治和经济事件的实时洞察,支持对全球趋势及其影响的详细分析。

对于需要最新信息的领域,我们从News Corp Australia和Yahoo Finance等来源收集了实时新闻,重点关注特定地区和任务的活动。

补充信息

我们使用开源工具获取额外数据,以增强我们的预测模型,获得更好的准确性和上下文。来自OpenWeatherMap的天气信息提供了每日温度、大气压力、风速和湿度,对于负荷预测至关重要。使用Python的datetime和holidays包获取的日历日期,考虑了季节性和周期性影响。经济指标则通过pandas_datareader库整合,访问来自美联储、世界银行和国际金融市场的数据,如GDP、通货膨胀率和就业统计数据。

结果
新闻整合的有效性

我们首先评估了整合新闻和补充信息是否能增强时间序列预测。我们进行了实验,验证了整合新闻数据到预测模型中的必要性和有效性。我们比较了四种不同的情境:

  1. 纯数字标记:仅使用数字标记,包括所有变量,不包含新闻。除了区域名称或日期信息外,不包含其他文本标记,作为对比的基线。

  2. 文本描述句子标记:评估使用句子形式的描述而非仅有的数字,是否能提高准确性,不包含新闻整合。

  3. 未筛选的新闻和文本描述句子标记:评估将时间序列的描述性句子与未筛选的新闻数据整合对模型性能的影响。

  4. 经过筛选的新闻和文本描述句子标记:展示将描述性句子与经过代理筛选的相关新闻整合的效果。

不同提示设计的性能如下表所示(在实际文章中加入具体的表格和数据)。

结果显示,引入适当的新闻和其他补充信息,显著提高了所有四个领域的预测性能。然而,如果引入的新闻信息未经仔细选择,可能会严重损害结果。这主要是因为大量不相关的新闻会引入过多的标记,增加了LLM的处理负担,且可能引入噪声和错误的因果信息,导致误导性的预测。

评估代理的有效性

为了使我们的新闻筛选和推理过程更有效、更全面,我们引入了评估代理,根据预测结果反思和改进新闻选择。通过迭代的过程,评估代理完善了新闻筛选,这体现在时间序列预测结果的逐步改进中。我们的研究发现,在大多数情况下,两次迭代就足以实现显著的改进,多次迭代由于反思机制,一致地产生更好的结果。

与其他预测方法的比较

我们还将我们的方法与现有的时间序列预测技术进行了比较,详细信息可在附录中找到。我们的方法在依赖新闻所体现的事件对预测有重大影响的领域(如电力需求、汇率和比特币市场)中,显著优于仅依赖历史时间序列数据的传统方法。这证明了我们方法的潜力。

然而,在交通领域,整合新闻的改进相对有限。这主要是由于交通数据主要反映特定道路的交通流量,而我们的新闻来源大多是区域或全球性的,未能充分捕捉局部的交通状况。

如何学习大模型 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%免费点击下方蓝色字 即可免费领取↓↓↓

**读者福利 |** 👉2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享 **(安全链接,放心点击)**

在这里插入图片描述

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

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

相关文章

计算机网络-传输层提供的服务

传输层在协议栈中的位置 我们可以给应用层的这些应用程序提供我们想要传输的数据,比如说我们想用微信传一张图片,或者想用QQ发一串字符。那这些数据是由我们用户直接提供的,那么我们的数据交给了应用层的某一个进程之后。这个进程可能会在我们…

将Notepad++添加到右键菜单【一招实现】

一键添加注册表 复制以下代码保存为 Notepad.reg,将红框内路径修改为自己电脑的“Notepad.exe路径”后,再双击运行即可。 Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\NotePad] "Notepad" "Icon""D:\\N…

vue3二次封装UI组件

直接上代码 <template><el-uploadclass"lth_upload":action"${baseUrl}/file/upload":headers"uploadHeader"v-bind"$attr"><template v-for"(_, key) in $slots" #[key]"valueData"><slot…

存储引擎技术进化

B-tree 目前支撑着数据库产业的半壁江山。 50 年来不变而且人们还没有改变它的意向 鉴定一个算法的优劣&#xff0c;有一个学派叫 IO复杂度分析 &#xff0c;简单推演真假便知。 下面就用此法分析下 B-tree(traditional b-tree) 的 IO 复杂度&#xff0c;对读、写 IO 一目了…

vscode | 开发神器vscode快捷键删除和恢复

目录 快捷键不好使了删除快捷键恢复删除的快捷键 在vscode使用的过程中&#xff0c;随着我们自身需求的不断变化&#xff0c;安装的插件将会持续增长&#xff0c;那么随之而来的就会带来一个问题&#xff1a;插件的快捷键重复。快捷键重复导致的问题就是快捷键不好使了&#xf…

mysql如何发现慢查询sql

mysql如何发现慢查询sql tail -n 10 /data/mysql/mysql-slow.log

vm.max_map_count 表示啥意思啊?通俗易懂点,有单位么?262144表示啥意思?

背景&#xff1a;ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines-CSDN博客 vm.max_map_count 是一个 Linux 内核参数&#xff0c;用于限制一个进程可以拥有的最大内存映射区域数量。内存映射&#xff08;Memory Mapp…

00后整顿职场!一个人的底层逻辑,就是他的命运——早读(逆天打工人爬取热门微信文章解读)

00后整顿职场 引言Python 代码第一篇 洞见 一个人的底层逻辑&#xff0c;就是他的命运第二篇 百股跌停结尾 想看爽文情节的后续 引言 昨天晚上基本悟了 空空如也 之前听过一句话 非有之有为秒有 非空之空为真空 大致意思是 事物虽然没有独立不变的自性&#xff08;非有&#…

NR cell配置SUL时,RA要在哪个carrier进行?

当一个NR小区配置了 SUL 后&#xff0c;其接入所需参数&#xff0c;包括 SUL 的频段、PointA、SCS 子载波间隔&#xff0c;带宽等&#xff0c;会通过 SIB1 下发给UE。 如上图所述&#xff0c;配置有SUL的小区进行RA时&#xff0c;网络可以明确告知UE使用SUL还是UL。例如通过PDC…

安全成为大模型的核心;大模型安全的途径:大模型对齐

目录 安全成为大模型的核心 大模型安全的途径:大模型对齐 人类反馈强化学习(RLHF) 直接偏好优化(DPO) 安全成为大模型的核心 大模型安全的途径:大模型对齐 大模型对齐技术(Alignment Techniques for Large Language Models)是确保大规模语言模型(例如GPT-4)的输…

视频一键转换3D:Autodesk 发布 Video to 3D Scene

Video 3D Scene 最近 Autodesk 旗下公司 Wonder Dynamics 推出了 Wonder Animation 的测试版&#xff0c;它使用突破性的视频到 3D 场景技术&#xff0c;通过将任何视频序列转换为 3D 动画场景来加速动画电影的制作。 Video 3D Scene Video 3D Scene 生成效果 作为 Wonder Stud…

《数字图像处理基础》学习03-图像的采样

在之前的学习中我已经知道了图像的分类&#xff1a;物理图像和虚拟图像。《数字图像处理基础》学习01-数字图像处理的相关基础知识_图像处理 数字-CSDN博客 目录 一&#xff0c;连续图像和离散图像的概念 二&#xff0c;图像的采样 1&#xff0c; 不同采样频率采样同一张图…

【MongoDB】Windows/Docker 下载安装,MongoDB Compass的基本使用、NoSQL、MongoDB的基础概念及基础用法(超详细)

文章目录 Windows下载MongoDB Compass使用NoSQL的基本概念MongoDB常用术语MongoDB与RDBMS区别MongoDB的CRUD 更多相关内容可查看 Docker安装MongoDB可查看&#xff1a;Docker-安装MongoDB Windows下载 官网下载地址&#xff1a;https://www.mongodb.com/try/download/communi…

二 MyBatis入门程序

二、MyBatis入门程序 2.1 MyBatis入门程序开发步骤 写代码前准备&#xff1a; 准备数据库表&#xff1a;汽车表t_car&#xff0c;字段包括&#xff1a; id&#xff1a;主键&#xff08;自增&#xff09;【bigint】car_num&#xff1a;汽车编号【varchar】brand&#xff1a;品牌…

网络自动化02:基于xlsx传入设备信息与所需执行备份配置命令,使用netmiko自动化登录分发

这是这个系列第二篇 本文将仅简单介绍使用xlsx导入设备信息&#xff0c;并使用netmiko配置 目录 环境设备信息表格式单线程代码解释代码逻辑分析函数解析 逻辑调用图逻辑说明 遇到的问题写在最后 环境 所有设备均能与我执行Python脚本的环境互通&#xff0c;同时均拥有独立的ip…

自动化测试类型与持续集成频率的关系

持续集成是敏捷开发的一个重要实践&#xff0c;可是究竟多频繁的集成才算“持续”集成&#xff1f; 一般来说&#xff0c;持续集成有3种常见的集成频率&#xff0c;分别是每分钟集成、每天集成和每迭代集成。项目组应当以怎样的频率进行集成&#xff0c;这取决于测试策略&…

C语言——八股文(笔试面试题)

1、 什么是数组指针&#xff0c;什么是指针数组&#xff1f; 数组指针&#xff1a;指向数组的指针 指针数组&#xff1a;数组中的元素都是指针 2、 什么是位段&#xff0c;什么是联合体 位段&#xff08;Bit Field&#xff09;&#xff1a;在C语言中&#xff0c;允许在一个整数…

制作一个简易恒流电子负载教程,实战教程,单片机程序,电路图,方案

师从&#xff1a;https://www.bilibili.com/read/cv4088568/ 题目是这样的&#xff1a; 设计和制作一台恒流&#xff08;CC&#xff09;工作模式的简易直流电子负载。其原理示意图如图1所示。 图1简易直流电子负载原理示意图 二、要求 1.基本要求 &#xff08;1&#xff09;…

日期类数据和控件管理

目录 QTime API QDate API QDateTime QDateTimeEdit API QCalendarWidget API 测试样例&#xff08;参考了《Qt6开发指南》&#xff09; (严肃提示&#xff1a;笔者认为这里的控件没有难点&#xff0c;本篇文章实际上是GPT辅助的代码整理和表格使用&#xff0c;笔者建…

scala中json转换问题

问题&#xff1a; scala中对象转json字符串报错 提示&#xff1a;scala中get和set方法实现与java中的不一样。 Error:(26, 10) ambiguous reference to overloaded definition, both method toJSONString in class JSON of type (x$1: Any, x$2: com.alibaba.fastjson.serial…