Skip to main content

Overview

MOMENT is a versatile foundation model designed for multiple time series tasks including forecasting, imputation, anomaly detection, and classification. Paper: MOMENT: A Family of Open Time-series Foundation Models

Configuration Parameters

config = {
    "task_name": "forecasting",     # Options: "forecasting", "imputation", "detection", "classification"
    "forecast_horizon": 192,         # Number of timesteps to forecast
    "head_dropout": 0.1,             # Dropout rate for the task head
    "weight_decay": 0,               # Weight decay for optimization
    "freeze_encoder": True,          # Freeze the patch embedding layer
    "freeze_embedder": True,         # Freeze the transformer encoder
    "freeze_head": False,            # The linear forecasting head must be trained
}

Loading the Model

from samay.model import MomentModel

repo = "AutonLab/MOMENT-1-large"
model = MomentModel(config=config, repo=repo)
MOMENT is available in different sizes: MOMENT-1-small, MOMENT-1-base, and MOMENT-1-large.

Loading Dataset

from samay.dataset import MomentDataset

train_dataset = MomentDataset(
    name="ett",
    datetime_col="date",
    path="./data/ETTh1.csv",
    mode="train",
    horizon_len=192
)

val_dataset = MomentDataset(
    name="ett",
    datetime_col="date",
    path="./data/ETTh1.csv",
    mode="test",
    horizon_len=192
)

Zero-Shot Forecasting

metrics = model.evaluate(
    val_dataset,
    task_name="forecasting",
    metric_only=True
)

Fine-tuning

finetuned_model = model.finetune(
    train_dataset,
    task_name="forecasting"
)

# Evaluate after fine-tuning
metrics = model.evaluate(val_dataset, task_name="forecasting")

Visualization

model.plot(val_dataset, task_name="forecasting")

Available Tasks

MOMENT supports four different tasks:
  1. Forecasting: Predict future time series values
  2. Imputation: Fill in missing values in time series
  3. Detection: Detect anomalies in time series
  4. Classification: Classify time series into categories
See the example notebooks for task-specific examples:
  • moment_forecasting.ipynb
  • moment_imputation.ipynb
  • moment_anomaly_detection.ipynb
  • moment_classification.ipynb

Build docs developers (and LLMs) love