# TS-LLM：面向大语言模型的时序数据构建与多维度评测系统

> 一个完整的时序数据到大语言模型推理的pipeline系统，包含多源时序数据集收集、描述生成、时序编码器训练，以及基于BLEU、ROUGE、BERTScore和LLM-as-judge的三维度评测框架。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-29T04:38:49.000Z
- 最近活动: 2026-04-29T04:59:12.695Z
- 热度: 159.7
- 关键词: 时间序列, 大语言模型, 多模态学习, 时序编码器, PatchTST, Qwen, 数据描述生成, 评测框架
- 页面链接: https://www.zingnex.cn/forum/thread/ts-llm
- Canonical: https://www.zingnex.cn/forum/thread/ts-llm
- Markdown 来源: ingested_event

---

# TS-LLM：面向大语言模型的时序数据构建与多维度评测系统\n\n## 项目概述与研究背景\n\n时间序列数据在金融、能源、交通、气象等领域无处不在，但传统的时序分析方法往往局限于数值预测和统计建模，难以捕捉数据背后的深层语义和上下文信息。近年来，大语言模型(LLM)展现出强大的文本理解和推理能力，为时序数据的智能分析开辟了新的可能性。\n\nTS-LLM项目正是这一方向的探索性实践，它构建了一个完整的"时序数据→文本描述→大语言模型推理"pipeline。该项目不仅实现了多源时序数据的自动化描述生成，还训练了专门的时序编码器将数值序列映射到语言模型的嵌入空间，并建立了一套三维度互补的评测体系来评估生成描述的质量。\n\n## 系统架构与核心组件\n\nTS-LLM采用模块化设计，整个pipeline分为数据层、模型层和评测层三大组件。\n\n### 数据层：多源时序数据集与描述生成\n\n项目收集了7个来自不同领域的公开时序数据集，涵盖电力、汇率、交通、气象等多个应用场景：\n\n| 数据集 | 领域 | 特点 |\n|--------|------|------|\n| ETT-small | 电力变压器温度 | 多变量电力系统监测数据 |\n| ElectricityECL | 电力消耗 | UCI机器学习库经典数据集 |\n| Exchange_Rate | 汇率 | 多国货币汇率时间序列 |\n| Monash Time Series | 多领域预测 | Monash预测库归档数据 |\n| NAB | 异常检测 | Numenta异常检测基准 |\n| Traffic | 交通流量 | 道路传感器流量数据 |\n| Weather | 气象数据 | 马克斯·普朗克研究所气象记录 |\n\n每个数据集目录下都配有专门的描述生成脚本(`generate_descriptions_*.py`)和可视化脚本(`viz_*_samples.py`)。描述生成脚本会自动分析时序数据的统计特征（均值、方差、趋势、季节性、异常点等），并生成结构化的自然语言描述。\n\n数据筛选流程采用多轮迭代策略，通过`run_analysis.py`主脚本自动从原始数据集中筛选合格样本。筛选标准包括数据完整性、序列长度、变化幅度等维度，确保进入训练集的样本具有足够的信息量。\n\n### 模型层：时序编码器与多模态融合\n\nTS-LLM的核心创新在于将时序数据编码为语言模型可理解的嵌入表示。项目实现了三种时序编码器架构：\n\n#### CNN 1D编码器\n\n采用一维卷积神经网络提取时序数据的局部模式。卷积核在时间维度上滑动，捕捉不同尺度的局部特征（如短期波动、周期性模式）。这种架构计算高效，适合捕捉时序的局部相关性。\n\n#### MLP编码器\n\n使用多层感知机将时序数据映射到固定维度的嵌入空间。通过全连接层学习时序的全局统计特征表示。虽然结构简单，但在某些数据集上表现出 surprisingly 的竞争力。\n\n#### PatchTST编码器\n\n基于Vision Transformer的时序适配版本，将时序分割为patches后输入Transformer编码器。这种架构能够捕捉长距离依赖关系，适合具有复杂长期模式的时序数据。PatchTST是近年来时序预测领域的重要进展，项目将其适配到描述生成任务。\n\n#### 多模态Qwen模型封装\n\n编码后的时序嵌入与文本提示词一起输入到Qwen系列大语言模型进行推理。项目支持多个Qwen版本：\n\n- **Qwen2.5-3B-Instruct**：轻量级指令模型，适合快速实验\n- **Qwen3-0.6B-Instruct-2512**：超轻量版本，适合资源受限场景\n- **Qwen3-4B-Instruct-2507**：平衡性能与效率的中等规模模型\n\n训练采用分阶段策略，支持`frozen`（冻结LLM，仅训练编码器）和`full`（端到端微调）两种模式。项目还实现了多卡并行训练脚本，可同时训练三种编码器架构进行对比。\n\n### 评测层：三维度互补评测框架\n\nTS-LLM建立了一套全面的评测体系，从三个互补维度评估生成描述的质量：\n\n#### 维度一：Reference-based评测\n\n使用传统NLP指标衡量生成描述与参考描述（由强LLM生成）的文本相似度：\n\n- **BLEU-4**：n-gram精确度，衡量词汇重叠程度\n- **ROUGE-L**：最长公共子序列，衡量内容覆盖度\n- **BERTScore-F1**：基于BERT嵌入的语义相似度，捕捉深层语义匹配\n\n这种评测方式的优势是计算简单、可解释性强，但局限在于依赖参考描述的质量，且可能惩罚合理的多样化表达。\n\n#### 维度二：LLM-as-judge评测\n\n利用大语言模型作为评判者，从两个维度人工式地评估描述质量：\n\n- **Faithfulness（忠实度）**：描述是否准确反映原始时序数据的特征，是否存在幻觉或错误陈述\n- **Completeness（完整性）**：描述是否涵盖了时序数据的关键信息点，是否有重要遗漏\n\n评分采用1-5的Likert量表，由LLM根据预定义的评判标准进行打分。这种方法能够捕捉语义层面的质量，弥补传统指标的不足。\n\n#### 维度三：Downstream QA评测\n\n评估描述对下游任务的实用性，设计多选题问答任务：\n\n- **meta_only**：仅使用时序元数据（如数据集名称、时间范围）回答问题\n- **caption**：使用生成的描述回答问题\n- **wrong_caption**：使用错误的描述作为对照组\n\n通过比较三种条件下的准确率，可以量化描述对下游推理任务的信息增益。如果caption条件下的准确率显著高于meta_only，说明生成的描述确实携带了有价值的信息。\n\n## 技术实现细节\n\n### 自适应提示词构建\n\n`prompting.py`模块实现了自适应提示词构建功能，根据时序数据的特征动态调整提示词模板。例如，对于具有明显趋势的数据，提示词会强调趋势描述；对于异常检测数据集，提示词会引导模型关注异常点。\n\n### 多路API并发评测\n\n在LLM-as-judge评测阶段，项目支持同时调用多个API服务（智谱GLM、硅基流动、豆包等）进行并发评测，通过多路结果聚合提高评判的鲁棒性。`API_Test/`目录包含多路API探测和评估日志。\n\n### 样本筛选与迭代优化\n\n项目采用多轮迭代策略优化训练样本质量。每一轮训练后，通过评测结果识别低质量样本，在下一轮迭代中过滤或修正。`Sample/iteration_1~4/`目录保存了各轮迭代的筛选结果，最终使用`run_300k_20260413`目录下的30万样本进行最终训练。\n\n### 可视化辅助分析\n\n每个样本都配有对应的时序可视化图片，帮助人工验证描述质量。可视化脚本支持多种图表类型：折线图、趋势分解图、异常点标注图等。\n\n## 评测框架集成\n\nTS-LLM fork并适配了ts-caption-eval评测框架，支持以下功能：\n\n```bash\n# Reference-based + LLM-as-judge评测\npython -m tscapeval --config configs/thesis.yaml\n\n# Downstream QA评测\npython -m tscapeval --config configs/thesis_qa.yaml\n```\n\n评测结果输出至`ts-caption-eval/results/`目录，包含：\n\n- `main_table.json/csv/md`：汇总指标表\n- `per_sample/`：逐样本评测结果\n- `per_dataset/`：分数据集统计\n\n这种细粒度的结果组织方式便于进行错误分析和模型诊断。\n\n## 实验流程与使用方法\n\n### 环境准备\n\n```bash\n# 激活虚拟环境\nsource python/myenv_bs/bin/activate\n\n# 安装依赖\npip install torch transformers accelerate openai pyyaml sacrebleu rouge_score bert_score\n```\n\n### 完整实验流程\n\n#### 1. 生成时序描述\n\n```bash\ncd Dataset/ETT-small/\npython generate_descriptions_ETT.py\npython viz_ETT_samples_v2.py\n```\n\n#### 2. 生成筛选样本\n\n```bash\npython Train/generate_filtered_samples.py \\\n  --target_qualified 10000 \\\n  --output_base_dir Sample \\\n  --seed 42\n```\n\n#### 3. 训练模型\n\n单卡训练示例（CNN编码器）：\n\n```bash\nCUDA_VISIBLE_DEVICES=0 python -u Train/train.py \\\n  --training_stage frozen \\\n  --model_path Models/Qwen3-4B-Instruct-2507 \\\n  --batch_size 1 \\\n  --num_workers 4 \\\n  --precision bf16 \\\n  --encoder_type cnn \\\n  --train_jsonl Sample/run_300k_20260413/combined_jsonl.jsonl\n```\n\n三卡并行训练（同时训练三种编码器）：\n\n```bash\nIDLE_GPUS=$(nvidia-smi --query-gpu=index,memory.used,utilization.gpu \\\n  --format=csv,noheader,nounits | awk -F', *' '$2<1000 && $3<10 {print $1}' | head -n 3 | xargs)\nset -- $IDLE_GPUS\nCUDA_VISIBLE_DEVICES=$1 python -u Train/train.py --encoder_type cnn ... > cnn.log 2>&1 &\nCUDA_VISIBLE_DEVICES=$2 python -u Train/train.py --encoder_type mlp ... > mlp.log 2>&1 &\nCUDA_VISIBLE_DEVICES=$3 python -u Train/train.py --encoder_type patchtst ... > patchtst.log 2>&1 &\n```\n\n#### 4. 生成推理文件\n\n```bash\n# ts-caption-eval格式\npython Train/infer_for_tscapeval.py\n\n# QA任务格式\npython Train/infer_for_qa.py\n```\n\n#### 5. 运行评测\n\n```bash\ncd ts-caption-eval\npython -m tscapeval --config configs/thesis.yaml\npython -m tscapeval --config configs/thesis_qa.yaml\n```\n\n## 技术创新点\n\n### 多维度评测互补设计\n\nTS-LLM的评测体系设计体现了对时序描述任务复杂性的深刻理解。传统指标(BLEU/ROUGE/BERTScore)提供快速、可复现的自动化评估；LLM-as-judge引入语义层面的质量判断；Downstream QA则从实用性角度验证描述的价值。三个维度相互补充，共同构成完整的质量评估图景。\n\n### 时序编码器多样性\n\n项目同时探索CNN、MLP、PatchTST三种截然不同的编码架构，而非盲目追求单一"最佳"方案。这种设计反映了时序数据本身的多样性——不同领域、不同特征的时序可能适合不同的编码策略。\n\n### 迭代式样本优化\n\n通过多轮迭代筛选训练样本，项目实践了一种数据-centric的模型优化思路。在固定模型架构的情况下，通过提升数据质量来改进最终效果，这与当前AI领域"数据质量胜过数据数量"的趋势一致。\n\n## 应用场景与潜在价值\n\n### 时序数据智能报告生成\n\nTS-LLM可用于自动生成时序数据的自然语言报告，帮助非技术用户理解复杂的数据特征。例如，电力公司可以用它自动生成变压器运行状态报告，金融分析师可以用它生成汇率走势解读。\n\n### 多模态时序问答系统\n\n结合时序编码器和LLM的推理能力，可以构建能够"看懂"时序图表并回答相关问题的智能系统。这在金融分析、设备监控、医疗诊断等场景具有应用价值。\n\n### 时序数据增强与合成\n\n通过理解时序的语义特征，TS-LLM有潜力用于指导时序数据的增强和合成，生成具有特定特征（如特定趋势、季节性模式）的合成时序数据。\n\n## 局限与未来方向\n\n### 当前局限\n\n- **描述粒度**：当前生成的描述主要关注高层统计特征，对细粒度局部模式的描述能力有限\n- **跨领域泛化**：评测主要在训练集涉及的数据集上进行，跨领域泛化能力待验证\n- **长时序处理**：对于超长时序（如数年级的数据），如何有效编码和描述仍是挑战\n- **因果推理**：当前系统主要关注相关性描述，缺乏对时序因果关系的建模\n\n### 未来方向\n\n- **引入更多编码器架构**：如TimesNet、N-BEATS等最新时序模型\n- **多尺度描述生成**：同时生成高层概览和细粒度局部分析\n- **交互式探索**：支持用户通过自然语言提问来探索时序数据\n- **因果发现集成**：结合因果发现算法，生成包含因果解释的描述\n\n## 总结\n\nTS-LLM是一个系统性的时序数据与大语言模型结合的研究项目，它构建了从数据收集、描述生成、模型训练到多维度评测的完整pipeline。项目的核心价值在于：\n\n1. **多源数据集整合**：覆盖电力、汇率、交通、气象等多个领域，为跨领域研究提供基础\n2. **编码器架构对比**：同时实现CNN、MLP、PatchTST三种编码器，支持架构选型研究\n3. **三维度评测体系**：Reference-based、LLM-as-judge、Downstream QA互补，全面评估描述质量\n4. **开源可复现**：完整的代码、数据和评测流程，便于社区复现和扩展\n\n对于从事时序数据分析、多模态大模型、或自然语言生成应用的研究者和工程师而言，TS-LLM提供了一个有价值的参考实现和实验平台。
