🚀 Moirai-1.0-R-Base
Moirai是基于掩码编码器的通用时间序列预测Transformer,是一个在LOTSA数据上预训练的大型时间序列模型。如需了解Moirai架构、训练和结果的更多详细信息,请参考论文。
图1:Moirai的整体架构。可视化展示的是一个三元时间序列,其中变量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}
}
伦理考量
本次发布仅用于支持学术论文的研究目的。我们的模型、数据集和代码并非专门为所有下游用途而设计或评估。我们强烈建议用户在部署此模型之前,评估并解决与准确性、安全性和公平性相关的潜在问题。我们鼓励用户考虑人工智能的常见局限性,遵守适用法律,并在选择用例时采用最佳实践,特别是在错误或滥用可能对人们的生活、权利或安全产生重大影响的高风险场景中。有关用例的更多指导,请参考我们的AUP和AI AUP。
📄 许可证
本项目采用CC BY-NC 4.0许可证。