Model Type Specification

Supported Spice ML Model Types

Spice ML supports various models and open source frameworks. The model type specified in the manifest (see Models YAML Specification) dictates the framework. If a model or framework requires additional parameters, they can be provided within the model YAML, specifically the model key in metadata.

AutoGluon

Autogluon is an open source framework that provides automated ML automates machine learning tasks and enables users to easily achieve strong predictive performance. For time series models, Autogluon produces multi-step ahead probabilistic forecasts via a range of models: simple forecasting tools, tree-based methods, deep learning models, and ensembles. AutoGluon will train several models, rank their performance on internal validation data and metrics, and produce the best model (possibly a weighted ensemble) for use in inference, entirely under-the-hood.

To use the AutoGluon framework on SpiceAI, use an autogluon type in the Models YAML Specification and, optionally, provide hyperparameters for underlying prediction models. For example, in the abbreviated Manifest below, we define our time series predictor to use two models: a basic trend-normalised neural network model (DLinear) using default parameters and, a theta forecasting model with additive decomposition and a seasonality of twelve periods (relative to the input time increment). If not specified, a set of baseline models are used.

// Rest of fields defined above.
type: autogluon
metadata:
  model:
    hyperparameters:
      DLinear: {}
      Theta:
        decomposition_type: additive
        seasonal_period: 12

Darts

Darts is a popular, easy to use, open-source framework for time-series forecasting. It provides a large suite of time series models. To use Darts on SpiceAI, use a darts type in the Models YAML Specification and, optionally, specify a model architecture (from Darts), and, optionally, parameters to use with the model architecture. For example, in the abbreviated Manifest below, we define a random forest model, and specify both a (possible parameters are those passed to __init__ method, e.g. for Random Forest).

// Rest of fields defined above.
type: darts
metadata:
  model:
    // From class name in Darts, `darts.models.forecasting.random_forest.RandomForest`
    model_type: RandomForest
    
    // From __init__ method for RandomForest in Darts
    parameters:
      max_depth: 3
      n_estimators: 50

Last updated