🚀 Moirai-1.0-R-Small
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を参照してください。
📄 ライセンス
このプロジェクトはCC BY-NC 4.0ライセンスの下で提供されています。