许可协议: cc-by-nc-4.0
任务标签: 时间序列预测
标签:
- 时间序列
- 预测
- 预训练模型
- 基础模型
- 时间序列基础模型
- 时序数据
Moirai-1.0-R-大型模型
Moirai是基于掩码编码器的通用时间序列预测Transformer,是在LOTSA数据集上预训练的大型时序模型。关于Moirai架构、训练和结果的更多细节,请参阅论文。
图1:Moirai整体架构示意图。展示的是一个3变量时间序列,其中变量0和1是目标变量(需要预测),变量2是动态协变量(预测区间内的值已知)。基于64的补丁大小,每个变量被分割为3个标记。补丁嵌入与序列和变量ID一起输入Transformer。阴影补丁代表需要预测的时间区间,其对应的输出表示被映射为混合分布参数。
使用指南
要使用Moirai进行推理,请从我们的GitHub仓库安装uni2ts库。
- 克隆仓库:
git clone https://github.com/SalesforceAIResearch/uni2ts.git
cd uni2ts
- 创建虚拟环境:
virtualenv venv
. venv/bin/activate
- 从源码构建:
pip install -e '.[notebook]'
- 创建.env文件:
touch .env
快速入门示例:
import torch
import matplotlib.pyplot as plt
import pandas as pd
from gluonts.dataset.pandas import PandasDataset
from gluonts.dataset.split import split
from uni2ts.eval_util.plot import plot_single
from uni2ts.model.moirai import MoiraiForecast, MoiraiModule
SIZE = "small"
PDT = 20
CTX = 200
PSZ = "auto"
BSZ = 32
TEST = 100
url = (
"https://gist.githubusercontent.com/rsnirwan/c8c8654a98350fadd229b00167174ec4"
"/raw/a42101c7786d4bc7695228a0f2c8cea41340e18f/ts_wide.csv"
)
df = pd.read_csv(url, index_col=0, parse_dates=True)
ds = PandasDataset(dict(df))
train, test_template = split(
ds, offset=-TEST
)
test_data = test_template.generate_instances(
prediction_length=PDT,
windows=TEST // PDT,
distance=PDT,
)
model = MoiraiForecast(
module=MoiraiModule.from_pretrained(f"Salesforce/moirai-1.0-R-{SIZE}"),
prediction_length=PDT,
context_length=CTX,
patch_size=PSZ,
num_samples=100,
target_dim=1,
feat_dynamic_real_dim=ds.num_feat_dynamic_real,
past_feat_dynamic_real_dim=ds.num_past_feat_dynamic_real,
)
predictor = model.create_predictor(batch_size=BSZ)
forecasts = predictor.predict(test_data.input)
input_it = iter(test_data.input)
label_it = iter(test_data.label)
forecast_it = iter(forecasts)
inp = next(input_it)
label = next(label_it)
forecast = next(forecast_it)
plot_single(
inp,
label,
forecast,
context_length=200,
name="pred",
show_label=True,
)
plt.show()
Moirai模型家族
引用
如果您在研究中使用了Uni2TS,请使用以下BibTeX引用:
@article{woo2024unified,
title={Unified Training of Universal Time Series Forecasting Transformers},
author={Woo, Gerald and Liu, Chenghao and Kumar, Akshat and Xiong, Caiming and Savarese, Silvio and Sahoo, Doyen},
journal={arXiv preprint arXiv:2402.02592},
year={2024}
}
伦理考量
本版本仅用于支持学术论文的研究目的。我们的模型、数据集和代码并非为所有下游用途专门设计或评估。我们强烈建议用户在部署前评估并解决与准确性、安全性和公平性相关的潜在问题。我们鼓励用户考虑AI的常见局限性,遵守适用法律,在选择用例时采用最佳实践,特别是对于错误或滥用可能严重影响人们生活、权利或安全的高风险场景。有关用例的更多指导,请参阅我们的AUP和AI AUP。