<论文>(字节跳动)使用大语言模型进行时间序列理解和推理

一、摘要

        本文介绍2024年12月字节跳动牵头发表的大模型论文《ChatTS: Aligning Time Series with LLMs via Synthetic Data for Enhanced Understanding and Reasoning》。论文提出了 ChatTS 模型,用合成数据提升对时间序列的理解和推理能力。作者在纽约出租车乘客数量、广告 CPC 数据、交通占用率等真实数据上进行案例研究,ChatTS 能准确分析形状、统计特征和识别异常波动。在数据库操作和 Twitter 话题讨论强度分析等实际应用中,ChatTS 也展现了强大的分析和推理能力。

译文:

        理解时间序列对于其在现实场景中的应用至关重要。最近,大语言模型(LLMs)越来越多地应用于时间序列任务,利用其强大的语言能力来增强各种应用。然而,针对时间序列理解与推理的多模态大语言模型(MLLMs)的研究仍然有限,这主要是由于缺乏能将时间序列与文本信息对齐的高质量数据集。本文介绍了ChatTS,这是一种专为时间序列分析设计的新型多模态大语言模型。ChatTS将时间序列视为一种模态,类似于视觉多模态大语言模型处理图像的方式,使其能够对时间序列进行理解和推理。为了解决训练数据稀缺的问题,我们提出了一种基于属性的方法,用于生成带有详细属性描述的合成时间序列。我们进一步引入了时间序列进化指令(Time Series Evol-Instruct),这是一种生成多样化时间序列问答的新方法,可增强模型的推理能力。据我们所知,ChatTS是首个将多变量时间序列作为输入进行理解和推理的时间序列多模态大语言模型,并且它仅在合成数据集上进行了微调。我们使用包含真实世界数据的基准数据集评估其性能,包括六项对齐任务和四项推理任务。结果表明,ChatTS显著优于现有的基于视觉的多模态大语言模型(如GPT - 4o)以及基于文本/智能体的大语言模型,在对齐任务中提升了46.0%,在推理任务中提升了25.8%。

二、核心创新点

1、总览

        由于高质量的将时间序列与文本信息对齐的数据集稀缺,作者选择了生成合成的文本-时间序列对来进行模型的训练。然而,用于时间序列-多模态大模型的数据需要有足够的准确率,且能够全面涵盖时间序列属性以及具有足够的任务多样性。为了实现这一目标,作者提出了一种基于属性的方法来生成时间序列+文本数据:

  • 属性选择器:为了生成具有精确属性且高度可控的时间序列数据,作者使用详细的特征集来描述时间序列。通过大模型选择,这些属性与现实世界的设置保持一致。
  • 基于属性的时间序列生成器:使用基于规则的方法构建与属性池完全对应的时间序列。
  • 时间序列进化指令:一种新颖的时间序列锦华化指令模块,用于创建大规模、多样化且准确的时间序列与文本问答对数据集,以支持复杂推理。
  • 模型设计:为处理多时间序列,作者设计了一种针对多时间序列输入的上下文感知多模态大模型编码,以及一种保值时间序列编码方法。
  • 模型训练:进行大规模训练和监督微调,以实现语言对齐并提高与时间序列相关的推理能力。

2、基于属性的时间序列生成器(attribute-based time series generator)

        多样的时间序列以及精确、详细的文本属性描述对于实现准确的时间序列-语言对齐至关重要。作者将时间序列属性分为四大类:趋势、周期性、噪声和局部波动,以构建相应的时间序列属性集。

        基于此,作者提出了一种属性选择器和基于属性的时间序列生成器,用于生成合成的时间序列数据。首先,作者定义一个“全属性集”,它包括不同属性类别下的许多特定属性。全属性集包括4种趋势类型、7种季节性类型、3种噪声类型和19种局部波动类型。同一类别中的不同属性可以组合。通过组合相同类型的属性,一个时间序列可以包括多个趋势段和几个局部波动。此外,通过组合正弦波,可以生成各种各样的周期性波动模式。因此,所提出的时间序列生成器理论上可以生成无限数量的不同时间序列,确保了属性的丰富性。

        作者还引入了一个GPT选择器。具体来说,在为时间序列生成属性集时,从一个包含567个来自实际场景的预定义指标名称的大型“指标集”中随机采样一个指标,并根据该指标的实际物理意义和预定义场景,使用GPT从全属性集中选择一个属性子集。这有助于使时间序列与实际物理意义保持一致。

        然后,属性采样器从属性子集中随机采样属性组合。它还根据GPT选择器的规则和约束分配特定的数值,如位置和幅度。这些细节存储在“属性池”中,该池记录了关于时间序列的所有详细信息。时间序列生成器最终以基于规则的方式创建与属性池中的属性完全匹配的时间序列数组。这个过程使我们能够生成具有精确属性描述的多样化合成时间序列。

3、时间序列进化指令设计(time series evol-instruct)

        为了提升模型的问答和推理能力,拥有格式和任务多样的高质量监督微调训练数据至关重要。然而,由于缺乏时间序列+文本数据,直接获取足够多样的与时间序列相关的训练数据具有较大挑战。为了生成具有丰富问答格式的准确时间序列+文本监督微调数据,作者提出了时间序列的Evol-Instruct。

        该方法通过逐步evolve指令prompt及其输出,来提高大模型训练数据的多样性和复杂度。为了增强模型分析相关性的能力,作者引入了一个相关性池,记录具有相关属性的时间序列。在evolve的每一步中,从属性池中随机选择一个属性子集,并将其作为额外的上下文添加,引导大模型根据演化类型生成关于更广泛的时间序列属性的问答。

4、时间序列多模态LLM

        为了处理多模态输入,ChatTS首先将输入的时间序列数组与文本分离。输入的时间序列数组被划分为固定大小的块,这使得模型能够更有效地处理和编码时间模式。由于时间序列本质上具有顺序模式,作者采用一个简单的5层MLP对时间序列的每个块进行编码。对于文本输入,先对其进行标记化处理,然后通过文本嵌入层进行编码。通过这种方式,时间序列的每个块和每个文本标记都被映射到同一空间。

        为了充分保留多元时间序列的上下文信息,作者基于时间序列在原始输入中的位置进行了词元级别的拼接。具体来说,将每个时间序列对应的编码片段插入到周围文本词元之间。然后,这个序列会被输入到LLM中。传统的时间序列数据归一化会导致原始数值信息的丢失。为了解决这个问题,作者提出了一种保值时间序列归一化框架。首先,对每个时间序列使用标准的最大-最小值归一化,然后对每个时间序列引入一个“Value Scaling”和“Value Offset”参数,作为prompt的一部分。这样可以利用大模型的数值理解能力,使得能够在保留原始数值信息的同时对时间序列特征进行归一化。

5、模型训练

        第一阶段是大规模对齐训练。作者使用基于属性的合成序列数据进行大规模对齐,以在大模型内建立文本与时间序列模态之间的初始对齐。在对齐阶段,作者基于一系列人工设计的模板和大语言模型优化创建了三个数据集用于大规模训练。单变量时间序列(UTS)数据集包含单变量时间序列基本属性描述的任务(包括全局和局部属性任务)。多变量时间序列 - 形状(MTS-Shape)数据集由具有全局趋势相关性的多变量数据组成,旨在增强模型分析多变量相关性的能力。多变量时间序列 - 局部(MTS-Local)数据集包含具有相关局部波动的多变量数据,旨在提高模型分析多变量数据局部特征的能力。

        第二阶段,作者使用监督微调(SFT)来提升大语言模型(LLM)执行复杂问答和推理任务的能力。此阶段利用两种主要类型的训练数据:一种是使用TSEvol生成的数据集,旨在增强模型对时间序列的问答和推理能力;另一种是指令跟随(IF)数据集,它基于一系列预定义模板构建,旨在增强模型遵循特定响应格式的能力。对于TSEvol,作者使用对齐训练中的数据集以及大语言模型生成的问答作为种子数据。这些数据集共同训练多模态大语言模型,使其能够准确回答特定于时间序列的查询并遵循任务指令,从而强化其执行复杂的、上下文驱动的问答和推理任务的能力。在对齐和监督微调两个阶段,作者通过一系列数值任务来增强ChatTS的数值处理能力。具体来说,作者明确训练模型学习各个方面的知识,例如最大值/最小值、分段平均值、局部特征(如峰值位置和幅度)、季节性和趋势幅度,以及各个时间点的原始数值。

 

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

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

相关文章

大数据应用开发和项目实战-电商双11美妆数据分析

数据初步了解 (head出现,意味着只出现前5行,如果只出现后面几行就是tail) info shape describe 数据清洗 重复值处理 这个重复值是否去掉要看实际情况,比如说:昨天卖了5瓶七喜,今天卖了5瓶七…

Vi/Vim 编辑器详细指南

Vi/Vim 编辑器详细指南 简介一、模式详解1. 命令模式(Normal Mode)2. 插入模式(Insert Mode)3. 可视模式(Visual Mode)4. 命令行模式(Ex Mode)二、核心操作1. 保存与退出2. 导航与移动3. 编辑与文本操作4. 搜索与替换三、高级技巧1. 多文件与窗口操作2. 宏录制3. 寄存器…

kotlin 01flow-StateFlow 完整教程

一 Android StateFlow 完整教程:从入门到实战 StateFlow 是 Kotlin 协程库中用于状态管理的响应式流,特别适合在 Android 应用开发中管理 UI 状态。本教程将带全面了解 StateFlow 的使用方法。 1. StateFlow 基础概念 1.1 什么是 StateFlow? StateF…

开发搭载OneNet平台的物联网数据收发APP的设计与实现

一、开发环境与工具准备 工具安装 下载HBuilderX开发版(推荐使用开发版以避免插件兼容性问题)安装Node.js和npm(用于依赖管理及打包)配置Android Studio(本地打包需集成离线SDK)项目初始化 创建uni-app项目,选择“默认模板”或“空白模板”安装必要的UI库(如uView或Van…

HHsuite3 的 HHblits 和 HHsearch比较

HHblits 与 HHsearch 的核心区别及远源同源检测能力对比 一、核心功能与定位差异 特征HHblitsHHsearch核心目标快速迭代搜索,构建高质量多序列比对(MSA)和 Profile HMM,用于大规模序列聚类与初步同源筛选。高精度 Profile HMM-HMM 比对,用于深度同源检测与结构 / 功能预测…

【从零开始学习RabbitMQ | 第二篇】生成交换机到MQ的可靠性保障

目录 ​编辑前言 交换机 Direct交换机与Fanout交换机的差异 Topic交换机 Topic交换机相比Direct交换机的差异 生成我们的交换机,队列,以及绑定关系 基于代码去生成交换机和队列 基于注解去声明队列和交换机 消息转换器 消息队列的高可靠性 发送…

LeetCode 热题 100 22. 括号生成

LeetCode 热题 100 | 22. 括号生成 大家好,今天我们来解决一道经典的算法题——括号生成。这道题在 LeetCode 上被标记为中等难度,要求生成所有可能的并且有效的括号组合。这是一道非常经典的回溯法题目,非常适合用来练习递归和回溯的技巧。…

TestStand API 简介

TestStand API 简介 在自动化测试领域,TestStand 凭借其灵活的架构和强大的功能,成为众多开发者的首选工具。而 TestStand API(Application Programming Interface,应用程序编程接口)则是打开 TestStand 强大功能的 “…

如何修改 JAR 包中的源码

如何修改 JAR 包中的源码 前言一、准备工作二、将 JAR 当作 ZIP 打开并提取三、重写 Java 类方法 A:直接替换已编译的 .class方法 B:运行时类路径优先加载 四、修改 MyBatis(或其他)XML 资源五、重新打包 JAR(命令行&a…

存算一体架构下的新型AI加速范式:从Samsung HBM-PIM看近内存计算趋势

引言:突破"内存墙"的物理革命 冯诺依曼架构的"存储-计算分离"设计正面临根本性挑战——在GPT-4等万亿参数模型中,数据搬运能耗已达计算本身的200倍。存算一体(Processing-In-Memory, PIM)技术通过‌在存储介…

蓝桥杯15届国赛 合法密码

问题描述 小蓝正在开发自己的 OJ 网站。他要求网站用户的密码必须符合以下条件&#xff1a; 长度大于等于 8 个字符&#xff0c;小于等于 16 个字符。必须包含至少 1 个数字字符和至少 1 个符号字符。 例如 **lanqiao2024!、-*/0601、8((>w<))8** 都是合法的密码。 而…

Jenkins忘记admin密码后的恢复步骤

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 时间较长没有使用…

C++ - 仿 RabbitMQ 实现消息队列(1)(环境搭建)

C - 仿 RabbitMQ 实现消息队列&#xff08;1&#xff09;&#xff08;环境搭建&#xff09; 什么是消息队列核心特点核心组件工作原理常见消息队列实现应用场景优缺点 项目配置开发环境技术选型 更换软件源安装一些工具安装epel 软件源安装 lrzsz 传输工具安装git安装 cmake安装…

简单面试提问

Nosql非关系型数据库&#xff1a; Mongodb&#xff1a;开源、json形式储存、c编写 Redis&#xff1a;key-value形式储存&#xff0c;储存在内存&#xff0c;c编写 关系型数据库&#xff1a; sqlite;&#xff1a;轻量型、0配置、磁盘存储、支持多种语言 mysql&#xff1a;开源…

油气地震资料信号处理中的NMO(正常时差校正)

油气地震资料信号处理中的NMO&#xff08;正常时差校正&#xff09;介绍与应用 NMO基本概念 **正常时差校正&#xff08;Normal Moveout Correction&#xff0c;NMO&#xff09;**是地震资料处理中的一项关键技术&#xff0c;主要用于消除由于炮检距&#xff08;source-recei…

深度解析:从 GPT-4o“谄媚”到 Deepseek“物理腔”,透视大模型行为模式的底层逻辑与挑战

深度解析&#xff1a;从 GPT-4o“谄媚”到 AI“物理腔”&#xff0c;透视大模型行为模式的底层逻辑与挑战 标签&#xff1a;人工智能, GPT-4o, 大语言模型, AI伦理, 人机交互, 技术思考 大家好&#xff01;最近AI圈最火的“瓜”之一&#xff0c;莫过于OpenAI的GPT-4o模型在一…

Java引用RabbitMQ快速入门

这里写目录 Java发送消息给MQ消费者接收消息实现一个队列绑定多个消费者消息推送限制 Fanout交换机路由的作用Direct交换机使用案例 Java发送消息给MQ public void testSendMessage() throws IOException, TimeoutException {// 1.建立连接ConnectionFactory factory new Conn…

从读写分离到分布式服务:系统架构演进十阶段深度解析

第一阶段到第四阶段&#xff1a;架构进化四阶段&#xff1a;探索单体到集群的高可用性能优化之道-CSDN博客https://blog.csdn.net/pinbodeshaonian/article/details/147464084?spm1001.2014.3001.5502 以下是对从第五阶段到第十阶段详细的解释&#xff1a; 第五阶段&#xf…

Webug4.0靶场通关笔记07- 第9关反射XSS和第10关存储XSS

目录 第09关 反射型XSS 1.打开靶场 2.源码分析 3.渗透实战 第10关 存储型XSS 1.打开靶场 2.源码分析 3.渗透实战 本系列为通过《Webug4.0靶场通关笔记》的渗透集合&#xff0c;本文为反射型和存储型XSS漏洞关卡的渗透部分&#xff0c;通过对XSS关卡源码的代码审计找到漏…

Prometheus的安装部署

目录 一、概述 二、Prometheus的安装 1、二进制方式 1.1、下载系统安装包​编辑 1.2、解压 1.3、创建数据目录&#xff0c;服务运行用户 1.4、设置为系统服务&#xff08;创建服务运行脚本&#xff09; 1.5、启动服务&#xff0c;并通过浏览器访问验证 2、容器方式 2…