Skip to main content

Yug

Yug is a pretrained 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.

Latest version: Yug 0.1.1


Update: October 2026

First public release of Yug.

Key highlights:

  • Zero-shot forecasting. One pretrained checkpoint forecasts any evenly spaced numeric series, across domains and frequencies, without fitting.
  • Probabilistic by default. Every forecast comes back as quantile levels, not a single line, so intervals are available at no extra cost.
  • Fast direct multi-step decoding. A patch-based decoder emits a whole block of future points per forward pass; there is no per-step generation loop.
  • Covariate support. Optional additional channels alongside the target.
  • Drop-in benchmarking. A GluonTS predictor for existing evaluation harnesses.

Available models

Model Parameters Quantile levels Context length
birlaailabs/yug 271.8M 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9 2048

Install

From PyPI:

pip install yug

Optional extras:

pip install 'yug[pandas]'     # used in the example below
pip install 'yug[gluonts]'    # GluonTS predictor for benchmark harnesses

Check the machine can run it before downloading weights:

yug-check

Weights are cached locally on first use (~/.cache/huggingface/hub by default, or HF_HOME if set).


Code examples

1. Forecast one series

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=context,
    prediction_length=HORIZON,
    freq="D",            # a model input, not metadata: pandas offset alias
    num_samples=30,      # trajectories drawn to estimate the quantiles
    seed=0,              # makes the call reproducible
)

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

Note

  • num_samples: trajectories drawn to estimate the quantile band. More samples give smoother, more accurate quantiles but run slower; the default is 100. On CPU, a lower value (e.g. 30) is usually a good trade-off.

2. 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)

3. With covariates

Stack channels into a 2-D array, target first, and pass it as a single series:

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

4. 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))

Examples


Citation

@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},
  license = {Apache-2.0}
}

Note: Aaditya Jain and Debdeep Sanyal contributed equally.

License

Code in this repository is licensed under the Apache License 2.0. Model weights on Hugging Face are licensed separately under a noncommercial license, see the model card for terms.

License Python CI

Metadata

Release files for yug 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yug 0.1.1
File Size Uploaded
yug-0.1.1.tar.gz 58.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for yug 0.1.1
File Interpreter ABI Platform
yug-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 111.4 kB

Release files / yug-0.1.1.tar.gz

Download URL yug-0.1.1.tar.gz
Size 58.2 kB
Tags Source
SHA-256 checksum
How to use checksums
1695cfbb901a7d5b09daf0ff37a69637e213b7c0292047882cf7949ec3e044de
BLAKE2b-256 checksum
How to use checksums
24df848967bb18f02af7c4ed305877275ea91414fc34ddd04d23c2bd247018ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / yug-0.1.1-py3-none-any.whl

Download URL yug-0.1.1-py3-none-any.whl
Size 53.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
958bd96abe0a4f06764715f32ddb6552a2231966b53bfe6d4b88d5049eedb0b4
BLAKE2b-256 checksum
How to use checksums
8117d240cb5f5498e68c0088f522de6410a0c151fccb128eef3741436e1296da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page