时间序列新范式:通过合成数据将时间序列与大语言模型对齐,以增强理解和推理
1. ChatTS概述 ChatTS: Aligning Time Series with LLMs via Synthetic Data for Enhanced Understanding and Reasoning 这篇文章是清华大学、字节跳动与必示科技三方共同创作而成。 在实际的工作中,时间序列在运维领域中占据着非常重要的地位,尤其是近些年大语言模型(LLM)的发展,极大地推动了时间序列这一领域的发展。这篇论文介绍了一个叫做ChatTS的模型,它是专为时间序列分析设计的新型多模态大语言模型(MLLMs)。为缓解训练数据稀缺问题,作者们提出基于属性的合成时间序列生成方法,可自动生成具有详细属性描述的时序数据。同时,作者们创新性地提出时间序列演化式指令生成方法(Time Series Evol-Instruct),通过生成多样化时序问答对来增强模型的推理能力。ChatTS是首个以多元时间序列作为输入,并进行理解和推理的时间序列多模态大语言模型,且完全基于合成的数据集微调。作者们在包含真实数据的基准数据集上开展评估,涵盖6项对齐任务和4项推理任务。 实验结果表明,ChatTS在对齐任务中提升46.0%,在推理任务中提升25.8%,其代码的官方链接是: https://github.com/NetManAIOps/ChatTS,HuggingFace的官方链接是:https://huggingface.co/bytedance-research/ChatTS-14B/tree/main ,模型的权重都可以在HuggingFace上面直接下载并使用。 用一个实际的例子来说明这个情况,那就是用户可以针对某个KPI曲线进行提问,并咨询是否有其他曲线存在了波动,然后并提问根因,大语言模型(LLM)进行了回答。 从图2的描述来看,如果要将多条时间序列进行输入,其实可以至少有四种方法可以执行: ChatTS的亮点是将多维时间序列直接作为输入,然后进行推理和分析。目前是一个14B的模型,它是在QWen2.5-14B-Instruct的基础上进行微调的,其开源代码使用也很简单,可以参考下面的代码: 如果是使用vLLM推理的话,可以参考这份代码: 2 ChatTS方法论 2.1 模块划分 从论文的介绍来看,ChatTS的数据模块大概可以分成以下几个情况: 整体的流程可以参考下图的方法:通过选择不同的属性,生成不同的样本数据,以及相应的问题和答案。 同样的,时间序列的相应指令可以参考下图: 2.2 模型微调 而在模型微调的时候,需要将时间序列和文本进行分别输入,按照一定的格式进行编码,其中包括对时间序列的解释,以及相应的问题和答案。 而ChatTS的样本训练大约是万这个量级,在现有模型的基础上即可微调出不错的结果。 ChatTS的训练可以在QWen2.5-14B-Instruct的基础上进行两阶段的微调,包括大尺度的微调训练(large-scale alignment training)和监督微调(SFT)。具体的问答案例可以参考图8的内容。 模态对齐训练阶段 在第一阶段,我们使用基于属性的合成时间序列数据进行大规模对齐训练,以建立大语言模型中文本与时序模态的初步对齐。此阶段使ChatTS能够有效实现文本描述与时序属性的语义映射。在模态对齐阶段,通过手工设计模板和LLM精炼构建了三个训练数据集: 鉴于多元时序(MTS)具有更复杂的特征组合,我们将MTS与UTS的训练数据规模设定为约2:1的比例(具体训练数据规模对模型性能的影响详见第4.5节的数据集扩展研究)。 监督微调阶段 在第二阶段,通过监督微调(SFT)开发模型执行复杂问答与推理任务的能力。该阶段主要使用两类训练数据: 对于TSEvol方法,我们使用对齐训练阶段的数据集配合LLM生成的问答对作为种子数据。通过联合训练,使多模态大语言模型能够精准响应时序领域查询,并强化其处理上下文驱动的复杂推理任务的能力。在模态对齐和监督微调阶段,我们通过系列数值任务系统提升ChatTS的数值分析能力,包括:极值识别、分段均值计算、局部特征提取(如尖峰位置/幅度)、季节性与趋势振幅分析、以及单点原始数值解析。实验结果中的数值评估指标验证了ChatTS在时序数值分析方面的卓越性能。 训练配置 3 ChatTS评估方法 3.1 数据的评估 本节通过回答以下研究问题(research questions)全面评估ChatTS的性能: 参照多模态大语言模型通用评估范式,我们将评估任务分为两类: … Continue reading 时间序列新范式:通过合成数据将时间序列与大语言模型对齐,以增强理解和推理
Copy and paste this URL into your WordPress site to embed
Copy and paste this code into your site to embed