Yug

Yug is a 271.8M-parameter time series foundation model developed by Birla AI Labs for zero-shot probabilistic forecasting. A single checkpoint forecasts a previously unseen series without task-specific training or per-series tuning: given a historical context and a forecast horizon, it returns a predictive distribution summarised by quantile levels. It supports univariate and covariate-informed forecasting within a single architecture.

Links

Overview

Capability Yug
Univariate forecasting βœ…
Covariates βœ…
Probabilistic (quantile) output βœ…
Max context length 2048
Quantile levels 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9

Model architecture

Parameters 271,845,260
Model dimension 960
Decoder layers 12
Attention heads 8
MLP expansion 1.25
Patch length 16
Block size (points per forward pass) 64
Precision float32
Format safetensors

Running the model locally

Install the package:

pip install yug

Optional extras:

pip install 'yug[pandas]'      # needed for forecast.to_dataframe()
pip install 'yug[gluonts]'     # GluonTS predictor for benchmark harnesses

Check the machine can run it before downloading weights:

yug-check

Make zero-shot predictions:

import numpy as np
from yug import YugPipeline

pipeline = YugPipeline.from_pretrained(
    "birlaailabs/yug", device_map="cuda"
)

# Synthetic signal: trend + 64-step season + 12-step season + noise
CONTEXT, HORIZON, PERIOD = 2000, 256, 64
rng = np.random.default_rng([20240902, 315595964, 0])
t = np.arange(CONTEXT + HORIZON)
trend = np.linspace(0.0, rng.uniform(50, 150), len(t))
phase1, amp1 = rng.uniform(0, 6), rng.uniform(10, 30)
phase2, amp2 = rng.uniform(0, 6), rng.uniform(2, 8)
signal = (
    trend                                                 # trend
    + amp1 * np.sin(2 * np.pi * t / PERIOD + phase1)      # 64-step season
    + amp2 * np.sin(2 * np.pi * t / 12 + phase2)          # 12-step season
    + rng.normal(0, 1.0, len(t))                          # noise
).astype(np.float32)

context, truth = signal[:CONTEXT], signal[CONTEXT:]

forecast = pipeline.predict(
    context,
    prediction_length=HORIZON,
    freq="D",            # a model input, not metadata: pandas offset alias
    seed=0,              # makes the call reproducible
)

print(forecast.median)                # (256,)     point forecast
print(forecast.quantile(0.9))         # (256,)
print(forecast.interval())            # {"lower": (256,), "upper": (256,)}
print(forecast.to_dataframe().head())

Several series at once (lengths and frequencies may differ):

forecast = pipeline.predict(
    [series_a, series_b, series_c],
    prediction_length=48,
    freq=["D", "D", "H"],
    item_ids=["a", "b", "c"],
)
forecast.values          # (3, n_quantiles, 48)

With covariates β€” stack channels into a 2-D array, target first:

multivariate = np.stack([target, covariate_1, covariate_2])
forecast = pipeline.predict([multivariate], prediction_length=48)

Covariate forecasts degrade faster with horizon than univariate ones. For long horizons the univariate path is often the better answer β€” measure both.

In a GluonTS benchmark:

from yug.gluonts_adapter import YugPredictor

predictor = YugPredictor.from_pretrained(
    "birlaailabs/yug", freq="H", prediction_length=48
)
forecasts = list(predictor.predict(dataset))

Training data

Citation

If you find Yug useful for your research, please consider citing it:

@software{yug_2026,
  title  = {Yug: a foundation model for zero-shot probabilistic time-series forecasting},
  author = {Aaditya Jain* and Debdeep Sanyal* and Aaryan Nagpal and Dhruv Kumar and Murari Mandal and Saurabh Deshpande},
  year   = {2026},
  organization = {Birla AI Labs},
  url    = {https://github.com/birla-ai-labs/yug}
}

*Equal contribution.

Acknowledgements

We thank Karthik Sridhar, Deepak Lenka, Akash Kokare, Manya Pandey, and Varya Srivastava, as well as the extended Birla AI Labs team for their support.

License

Model weights : CC-BY-NC 4.0

Code : licensed separately β€” see GitHub repository for its license.

Downloads last month
57
Safetensors
Model size
0.3B params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Datasets used to train birlaailabs/yug

Space using birlaailabs/yug 1