MomentFMForecaster
MomentFMForecaster
- class MomentFMForecaster(pretrained_model_name_or_path='AutonLab/MOMENT-1-large', freeze_encoder=True, freeze_embedder=True, freeze_head=False, dropout=0.1, head_dropout=0.1, seq_len=512, batch_size=32, eval_batch_size=32, epochs=1, max_lr=0.0001, device='auto', pct_start=0.3, max_norm=5.0, train_val_split=0.2, transformer_backbone='google/flan-t5-large', criterion=None, config=None, return_model_to_cpu=False)[source]
Interface for forecasting with the deep learning time series model momentfm.
MomentFM is a collection of open source foundation models for the general purpose of time series analysis. The Moment Foundation Model is a pre-trained model that is capable of accomplishing various time series tasks, such as:
Long Term Forecasting
Short Term Forecasting
This interface with MomentFM focuses on the forecasting task, in which the foundation model uses a user fine tuned ‘forecasting head’ to predict h steps ahead. This model does NOT have zero shot capabilities and requires fine-tuning to achieve performance on user inputted data.
For more information: see https://github.com/moment-timeseries-foundation-model/moment
For information regarding licensing and use of the momentfm model please visit: https://huggingface.co/AutonLab/MOMENT-1-large
- pretrained_model_name_or_pathstr
Path to the pretrained Momentfm model. Default is AutonLab/MOMENT-1-large
- freeze_encoderbool
Selection of whether or not to freeze the weights of the encoder Default = True
- freeze_embedderbool
Selection whether or not to freeze the patch embedding layer Default = True
- freeze_headbool
Selection whether or not to freeze the forecasting head. Recommendation is that the linear forecasting head must be trained Default = False
- dropoutfloat
Dropout value of the model. Values range between [0.0, 1.0] Default = 0.1
- head_dropoutfloat
Dropout value of the forecasting head. Values range between [0.0, 1.0] Default = 0.1
- seq_lenint
length of sequences or length of historical values that are passed to the model for training at each time point. the momentfm model requires sequence lengths to be 512 exactly, so if less, padding will be used. If the sequence length is > 512, it will be reduced to 512. default = 512
- batch_sizeint
size of batches to train the model on default = 32
- eval_batch_sizeint or “all”
size of batches to evaluate the model on. If the string “all” is specified, then we process the entire validation set as a single batch default = 32
- epochsint
Number of epochs to fit tune the model on default = 1
- max_lrfloat
Maximum learning rate that the learning rate scheduler will use default = 1e-4
- devicestr
torch device to use default = “auto” If set to auto, it will automatically use whatever device that accelerate detects.
- pct_startfloat
percentage of total iterations where the learning rate rises during one epoch default = 0.3
- max_normfloat
Float value used to clip gradients during training default = 5.0
- train_val_splitfloat
float value between 0 and 1 to determine portions of training and validation splits default = 0.2
- transformer_backbonestr
d_model of a pre-trained transformer model to use. See SUPPORTED_HUGGINGFACE_MODELS to specify valid models to use. Default is ‘google/flan-t5-large’.
- configdict, default = {}
If desired, user can pass in a config detailing all momentfm parameters that they wish to set in dictionary form, so that parameters do not need to be individually set. If a parameter inside a config is a duplicate of one already passed in individually, it will be overwritten.
- criterioncriterion, default = torch.nn.MSELoss
Criterion to use during training.
- return_model_to_cpubool, default = False
After fitting and training, will return the momentfm model to the cpu.
- Attributes:
cutoffCut-off = “present time” state of forecaster.
fhForecasting horizon that was passed.
is_fittedWhether
fithas been called.stateState of the estimator.
References
Paper: https://arxiv.org/abs/2402.03885 Github: https://github.com/moment-timeseries-foundation-model/moment/tree/main
Examples
>>> from sktime.forecasting.momentfm import MomentFMForecaster >>> from sktime.datasets import load_airline >>> y = load_airline() >>> forecaster = MomentFMForecaster(seq_len = 2) >>> forecaster.fit(y, fh=[1, 2, 3]) >>> y_pred = forecaster.predict()
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.

