Skip to content

TotoForecaster

TotoForecaster

class TotoForecaster(seed=None, num_samples: int = 1, samples_per_batch: int = 1, prediction_type: str = 'median', scale_factor_exponent: int = 10, stabilize_with_global: bool = True, use_memory_efficient_attention: bool = False, model_path: str = 'Datadog/Toto-Open-Base-1.0', device=None)[source]

Toto foundation model forecaster for zero-shot forecasting.

Direct interface to forecaster from DataDog/toto [1].

Toto is a foundation model for multivariate time series forecasting with a focus on observability metrics. This model leverages innovative architectural designs to efficiently handle the high-dimensional, complex time series that are characteristic of observability data. Generate both point forecasts and uncertainty estimates using a Student-T mixture model. Support for variable prediction horizons and context lengths.

Known-future exogenous variables X are supported via Toto’s native exogenous mechanism: the columns of X are appended after the target channels as exogenous variates. When X is used, it must be supplied for every step of the forecast horizon, i.e. for all steps 1 .. max(fh) ahead of the cutoff (no gaps), since Toto consumes the known future values at each autoregressive step.

Parameters:
num_samplesint

Number of samples for probabilistic forecasting

samples_per_batchint, optional (default=1)

Control memory usage during inference

prediction_typestring, optional (default=’median’)

Type of prediction to generate (‘mean’ or ‘median’).

scale_factor_exponentint, optional (default=10)

Exponent for the scale factor used in the model.

stabilize_with_globalboolean, optional (default=True)

Whether to stabilize the model with global context.

use_memory_efficient_attentionboolean, optional (default=True)

Whether to use memory-efficient attention mechanisms using Xformers.

model_pathstring, optional (default=’Datadog/Toto-Open-Base-1.0’)

Path to the Toto huggingface model.

devicestring, optional (default=None)

Specifies the device on which to run the model on (‘cpu’ or ‘cuda’).

Attributes:
cutoff

Cut-off = “present time” state of forecaster.

fh

Forecasting horizon that was passed.

is_fitted

Whether fit has been called.

state

State of the estimator.

References

Examples

>>> from sktime.datasets import load_longley
>>> from sktime.forecasting.toto import TotoForecaster
>>> _, y = load_longley()
>>> model = TotoForecaster()
>>> model.fit(y)
TotoForecaster()
>>> forecast = model.predict(fh=[1,2,5])

With known-future exogenous variables:

>>> from sktime.forecasting.model_selection import temporal_train_test_split
>>> X, y = load_longley()
>>> y_train, _, X_train, X_test = temporal_train_test_split(y, X, test_size=3)
>>> model = TotoForecaster()
>>> model.fit(y_train, X=X_train)
TotoForecaster()
>>> forecast = model.predict(fh=[1, 2, 3], X=X_test)

Methods

check_is_fitted([method_name])

Check if the estimator has been fitted.

clone()

Obtain a clone of the object with same hyper-parameters and config.

clone_tags(estimator[, tag_names])

Clone tags from another object as dynamic override.

create_test_instance([parameter_set])

Construct an instance of the class, using first test parameter set.

create_test_instances_and_names([parameter_set])

Create list of all test instances and a list of names for them.

fit(y[, X, fh])

Fit forecaster to training data.

fit_predict(y[, X, fh, X_pred])

Fit and forecast time series at future horizon.

get_class_tag(tag_name[, tag_value_default])

Get class tag value from class, with tag level inheritance from parents.

get_class_tags()

Get class tags from class, with tag level inheritance from parent classes.

get_config()

Get config flags for self.

get_fitted_params([deep])

Get fitted parameters.

get_param_defaults()

Get object's parameter defaults.

get_param_names([sort])

Get object's parameter names.

get_params([deep])

Get a dict of parameters values for this object.

get_pretrained_params([deep])

Get pretrained parameters of this estimator.

get_tag(tag_name[, tag_value_default, ...])

Get tag value from instance, with tag level inheritance and overrides.

get_tags()

Get tags from instance, with tag level inheritance and overrides.

get_test_params([parameter_set])

Return testing parameter settings for the estimator.

is_composite()

Check if the object is composed of other BaseObjects.

load_from_path(serial)

Load object from file location.

load_from_serial(serial)

Load object from serialized memory container.

predict([fh, X])

Forecast time series at future horizon.

predict_interval([fh, X, coverage])

Compute/return prediction interval forecasts.

predict_proba([fh, X, marginal])

Compute/return fully probabilistic forecasts.

predict_quantiles([fh, X, alpha])

Compute/return quantile forecasts.

predict_residuals([y, X])

Return residuals of time series forecasts.

predict_var([fh, X, cov])

Compute/return variance forecasts.

pretrain(y[, X, fh])

Pre-train forecaster on panel (global) data.

reset()

Reset the object to a clean post-init state.

save([path, serialization_format])

Save serialized self to bytes-like object or to (.zip) file.

score(y[, X, fh])

Scores forecast against ground truth, using MAPE (non-symmetric).

set_config(**config_dict)

Set config flags to given values.

set_params(**params)

Set the parameters of this object.

set_random_state([random_state, deep, ...])

Set random_state pseudo-random seed parameters for self.

set_tags(**tag_dict)

Set instance level tag overrides to given values.

update(y[, X, update_params])

Update cutoff value and, optionally, fitted parameters.

update_predict(y[, cv, X, update_params, ...])

Make predictions and update model iteratively over the test set.

update_predict_single([y, fh, X, update_params])

Update model with new data and make forecasts.