大型时间序列模型项目教程
1. 项目介绍
本项目是基于开源代码库 Large-Time-Series-Model 编写的使用教程。该代码库是“Timer: Generative Pre-trained Transformers Are Large Time Series Models”论文的官方实现,旨在提供一种用于时间序列分析的大型生成预训练模型。
Timer 是一个基于变换器架构的时间序列分析模型,通过预训练能够对各种时间序列数据进行有效建模。它支持零样本预测、少样本适应等多种任务,并在多种时间序列分析任务中取得了最先进的表现。
2. 项目快速启动
环境准备
首先,确保您的环境中安装有 Python 3.10 或更高版本,并安装必要的依赖项。可以通过以下命令安装:
pip install -r requirements.txt
数据集下载
您需要从 HuggingFace 或 Tsinghua Cloud 下载相应的时间序列数据集,并放置在项目目录下的 dataset/
文件夹中。
# 示例数据集下载命令,实际使用时请替换为正确的数据集下载命令
huggingface-cli login
export HF_ENDPOINT=https://hf-mirror.com
python ./scripts/UTSD/download_dataset.py
模型加载
接下来,从 Google Drive 或 Baidu Drive 下载预训练的模型权重,并将其放置在项目目录下的 checkpoints/
文件夹中。
运行示例
以下是一个使用 Timer 模型进行预测的 Python 代码示例:
import torch
from transformers import AutoModelForCausalLM
# 加载预训练模型
model = AutoModelForCausalLM.from_pretrained('thuml/timer-base-84m', trust_remote_code=True)
# 准备输入数据
batch_size, lookback_length = 1, 2880
seqs = torch.randn(batch_size, lookback_length)
# 进行预测
prediction_length = 96
normed_output = model.generate(normed_seqs, max_new_tokens=prediction_length)
print(output.shape)
3. 应用案例和最佳实践
预测任务
为了进行预测任务,可以使用以下命令:
bash ./scripts/forecast/ECL.sh
插值任务
对于时间序列的插值任务,可以运行以下命令:
bash ./scripts/imputation/ECL.sh
异常检测任务
异常检测任务可以通过以下命令执行:
bash ./scripts/anomaly_detection/UCR.sh
4. 典型生态项目
Timer 模型不仅在时间序列预测、插值和异常检测方面有着广泛应用,其研究思想和实现方法也为时间序列分析领域贡献了新的视角。以下是一些与 Timer 相关的生态项目:
- OpenLTM: 一个用于探索大型时间序列模型设计哲学的开源代码库。
- Timer-XL: 针对统一预测的 Timer 扩展版本,支持任意长度和任意变量的时间序列。
在使用这些模型时,请遵循相应的项目文档和最佳实践,以获得最佳效果。