Time Series Transformer¶
Time Series Transformer is a vanilla encoder-decoder Transformer model designed for probabilistic time series forecasting. It takes past time series values as input and predicts future values by learning a distribution, making it suitable for datasets like M4, NN5, or the tourism-monthly dataset. RBLN NPUs can accelerate Time Series Transformer model inference using RBLN Optimum.
API Reference¶
RBLNTimeSeriesTransformerForPrediction ¶
Bases: RBLNModel
The Time Series Transformer Model with a distribution head on top for time-series forecasting. e.g., for datasets like M4, NN5, or other time series forecasting benchmarks. This model inherits from [RBLNModel]. Check the superclass documentation for the generic methods the library implements for all its models.
A class to convert and run pre-trained transformer-based TimeSeriesTransformerForPrediction models on RBLN devices. It implements the methods to convert a pre-trained transformers TimeSeriesTransformerForPrediction model into a RBLN transformer model by:
- transferring the checkpoint weights of the original into an optimized RBLN graph,
- compiling the resulting graph using the RBLN Compiler.
generate(past_values, past_time_features, future_time_features, past_observed_mask=None, static_categorical_features=None, static_real_features=None, **kwargs) ¶
Generate pass for the RBLN-optimized Time Series Transformer model for time series forecasting.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
past_values | torch.FloatTensor of shape (batch_size, sequence_length) or (batch_size, sequence_length, input_size) | Past values of the time series, that serve as context in order to predict the future. | required |
past_time_features | torch.FloatTensor of shape (batch_size, sequence_length, num_features) | Required time features, which the model internally will add to past_values. | required |
future_time_features | torch.FloatTensor of shape (batch_size, prediction_length, num_features) | Required time features for the prediction window, which the model internally will add to future_values. | required |
past_observed_mask | torch.BoolTensor of shape (batch_size, sequence_length) or (batch_size, sequence_length, input_size) | Boolean mask to indicate which past_values were observed and which were missing. | None |
static_categorical_features | torch.LongTensor of shape (batch_size, number of static categorical features) | Optional static categorical features for which the model will learn an embedding, which it will add to the values of the time series. | None |
static_real_features | torch.FloatTensor of shape (batch_size, number of static real features) | Optional static real features which the model will add to the values of the time series. | None |
Returns:
| Type | Description |
|---|---|
SampleTSPredictionOutput | The model outputs. If return_dict=False is passed, returns a tuple of tensors. Otherwise, returns a SampleTSPredictionOutput object. |
from_pretrained(model_id, export=None, rbln_config=None, **kwargs) classmethod ¶
The from_pretrained() function is utilized in its standard form as in the HuggingFace transformers library. User can use this function to load a pre-trained model from the HuggingFace library and convert it to a RBLN model to be run on RBLN NPUs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model_id | str | Path | The model id of the pre-trained model to be loaded. It can be downloaded from the HuggingFace model hub or a local path, or a model id of a compiled model using the RBLN Compiler. | required |
export | bool | None | A boolean flag to indicate whether the model should be compiled. If None, it will be determined based on the existence of the compiled model files in the model_id. | None |
rbln_config | dict | RBLNModelConfig | None | Configuration for RBLN model compilation and runtime. This can be provided as a dictionary or an instance of the model's configuration class (e.g., | None |
kwargs | Any | Additional keyword arguments. Arguments with the prefix | {} |
Returns:
| Type | Description |
|---|---|
RBLNModel | A RBLN model instance ready for inference on RBLN NPU devices. |
get_hf_class() classmethod ¶
Lazily load and cache the HuggingFace class this model wraps.
The class is looked up in hf_library_name under the name without the RBLN prefix (e.g. RBLNLlamaForCausalLM -> LlamaForCausalLM).
save_pretrained(save_directory, push_to_hub=False, **kwargs) ¶
Saves a model and its configuration file to a directory, so that it can be re-loaded using the [~optimum.rbln.modeling_base.RBLNBaseModel.from_pretrained] class method.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
save_directory | str | Path | Directory where to save the model file. | required |
push_to_hub | bool | Whether or not to push your model to the HuggingFace model hub after saving it. | False |
from_model(model, config=None, rbln_config=None, model_save_dir=None, subfolder='', **kwargs) classmethod ¶
Converts and compiles a pre-trained HuggingFace library model into a RBLN model. This method performs the actual model conversion and compilation process.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model | PreTrainedModel | ModelMixin | The PyTorch model to be compiled. The object must be a HuggingFace transformers | required |
config | PretrainedConfig | None | The configuration object associated with the model. | None |
rbln_config | RBLNModelConfig | dict | None | Configuration for RBLN model compilation and runtime. This can be provided as a dictionary or an instance of the model's configuration class (e.g., | None |
kwargs | Any | Additional keyword arguments. Arguments with the prefix | {} |
The method performs the following steps:
- Compiles the PyTorch model into an optimized RBLN graph
- Configures the model for the specified NPU device
- Creates the necessary runtime objects if requested
- Saves the compiled model and configurations
Returns:
| Type | Description |
|---|---|
RBLNModel | A RBLN model instance ready for inference on RBLN NPU devices. |
RBLNTimeSeriesTransformerForPredictionConfig ¶
Bases: RBLNModelConfig
Configuration class for RBLNTimeSeriesTransformerForPrediction.
This configuration class stores the configuration parameters specific to RBLN-optimized Time Series Transformer models for time series forecasting tasks.
__init__(batch_size=None, enc_max_seq_len=None, dec_max_seq_len=None, num_parallel_samples=None, **kwargs) ¶
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
batch_size | int | None | The batch size for inference. Defaults to 1. | None |
enc_max_seq_len | int | None | Maximum sequence length for the encoder. | None |
dec_max_seq_len | int | None | Maximum sequence length for the decoder. | None |
num_parallel_samples | int | None | Number of samples to generate in parallel during prediction. | None |
kwargs | Any | Additional arguments passed to the parent RBLNModelConfig. | {} |
Raises:
| Type | Description |
|---|---|
ValueError | If batch_size is not a positive integer. |
from_pretrained(path, rbln_config=None, return_unused_kwargs=False, **kwargs) classmethod ¶
Load a RBLNModelConfig from a path.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path | str | Path to the RBLNModelConfig file or directory containing the config file. | required |
rbln_config | dict[str, Any] | None | Additional configuration to override. | None |
return_unused_kwargs | bool | Whether to return unused kwargs. | False |
kwargs | Any | Additional keyword arguments to override configuration values. Keys starting with 'rbln_' will have the prefix removed and be used to update the configuration. | {} |
Returns:
| Name | Type | Description |
|---|---|---|
RBLNModelConfig | Self | tuple[Self, dict[str, Any]] | The loaded configuration instance. |
Note
This method loads the configuration from the specified path and applies any provided overrides. If the loaded configuration class doesn't match the expected class, a warning will be logged.
Examples:
initialize_submodule_config(submodule_config=None, force_kwargs=False, **kwargs) ¶
Build the config of a submodule from the parent's runtime options and kwargs.
Returns the submodule config instance when its class is known (an instance was passed, or cls_name was given), otherwise the merged kwargs dict for the model class to resolve later.
get_load_overrides() ¶
Extract the options that must cross the load boundary, for passing to from_pretrained.
Returns the explicitly-set runtime options (device, device_map, create_runtimes, activate_profiler, timeout) and the subclass-specific non-save attributes (load-behavior flags such as _load_visual_runtime, which are never serialized so they can only travel with the caller), recursively including submodules. Compile-time attributes are not included: when loading a compiled model they come from the artifact's rbln_config.json, and this dict is merged on top of it.
Returns:
| Type | Description |
|---|---|
dict[str, Any] | Dictionary of load overrides, keyed like the |