Train Models
To train a new model through the UI, first click + New Model Repository
. You'll be prompted to specify a name of the model repository and optionally provide a description. We recommend using descriptive names that describe the ML use-case you're trying to solve, i.e. Twitter Bots Repo.
Once you've entered this information, you'll be taken directly to the Model Builder to train your first model.
Model Builder Page 1
Explore Suggested vs Custom Models
There are two ways to initiate model training in Predibase:
Explore Suggested: Recommended for your first experiment. Automatically kick off model training for a series of recommended models that are customized to your dataset and task. By trying a variety of model configurations, you can quickly hone in on model architectures and parameters that work best and, if looking for additional improvements, apply those learnings towards your next experiment.
Build Custom Model: Train a single model version. You can start with our defaults to establish a baseline, or customize any parameter in the model pipeline, from preprocessing to training parameters.
Next you'll be asked to provide a model version description, connection (system you want to pull data in from), dataset, and target (output feature or column you want to predict). Note you can select multiple columns to be targets for your model.
Model Types
If you choose to build your own custom model, there are three model types in Predibase:
- Neural Network: Neural networks offer flexibility and support all data types. They tend to perform well for medium - large datasets.
- Gradient Boosted Trees: Gradient-boosted models (GBMs) are great for quick baselines and tabular datasets. They also tend to work well for smaller datasets.
- Large Language Models: Fine-tune an open source large language model or evaluate LLM performance using a zero/few shot prompt.
Feature Selection
Choose features that you want to use for your model.
Data Type: Data types for each column are inferred automatically from the dataset profile, but can be modified by selecting from the dropdown menu.
When should you override the default inferred type?Sometimes the inferred type may not be the best fit for a certain application or model architecture. There may be alternatively viable types, for example overriding a high cardinality category feature to be a plain text feature. When overriding, we recommend checking the Data Preview tab to confirm values fit the chosen data type.
Active: Turn on/off features to be used in your model.
When should a feature be turned off?We recommend turning off features that might bias your model in a way that you don't intend. By default, some features may be automatically turned off for you, such as ID fields or fields with many missing values. You can choose to override these defaults if you'd like.
Dataset Profile: The dataset profile and dataset samples can be viewed on the
Dataset Preview
tab.
Once you've completed the necessary steps on this page, you can click Train, if you've chosen "Explore suggested models" or Next, if you've chosen "Build a custom model" to start model training.
For custom models, you can kick off model training right away by clicking "Train" or, if you would like more granular control over data preprocessing, model architecture, training process, or hyperparameter search, you can modify these options on Page 2.
Model Builder Page 2
Now we'll cover the configuration options available after you click Next
and land on the second page of the Model Builder.
Model Graph
Also known as the butterfly diagram, the model graph shows a visual diagram of the Encoder-Combiner-Decoder (ECD) model. Each individual component is viewable and modifiable, providing a truly "glass-box" approach to ML development.
Parameters
This section contains parameters that users may consider modifying while tweaking models.
Dataset Preprocessing
In dataset preprocessing, you can configure parameters such as sample ratio, over or undersampling, as well as how you want to do dataset splitting.
You can see more information about the different preprocessing choices in Ludwig Preprocessing.
Feature Type Defaults
In feature type defaults, you can choose the default options you'd like to specify for a particular feature type. Notably, for each data type, you can specify:
- Preprocessing
- Encoders
- Decoders
- Loss
In feature type defaults, you can specify default parameter values to be applied for all input or output features of that data type. For example, setting Feature Type Default > text > Preprocessing Options For Input Features > "Tokenizer" to characters
will override the default tokenizer (space_punct
) for all text input features in your model.
You can further override an individual input/output feature's default by going to the Input Feature section and finding the specific input feature and parameter you'd like to override.
You can see more information about defaults in Ludwig Defaults.
Input Features
In input features, you can specify the preprocessing and encoder options you'd like to use for any particular input feature.
You can see more information about Input Features in Ludwig Input Features.
Output Features
In output features, you can specify the preprocessing, decoder, and loss options you'd like to use for any particular output feature.
You can see more information about Output Features in Ludwig Output Features.
Combiner
Combiners take the outputs of all input features encoders and combine them before providing the combined representation to the output feature decoders. In Combiner, you can choose the specific combiner you'd like to use and change any associated parameters you'd like to use in your architecture.
You can see more information about the Combiner in Ludwig Combiner.
Trainer
In trainer, you can set the parameters for your model training process, including epochs, regularization, batch size and learning rate. Batch size and learning rate can be set to "auto", which means they will be adjusted automatically during training. You can also select from a variety of optimizers.
You can see more information about training parameters in Ludwig Trainer.
Hyperopt
Hyperparameter Optimization (Hyperopt) allows you to run multiple models with varying parameters at the same time.
You may specify the following:
- Output Feature: Output feature to optimize with Hyperopt.
combined
is a special output feature that allows for optimizing the aggregated metrics of all output features. - Goal & Metric: Performance metric to optimize over. After Hyperopt is complete, the models will be compared using this metric and the best trial will be automatically highlighted.
- Parameters: Where you can choose the individual parameters and how you'd like to search over them (i.e. search space).
You can learn more about the different hyperopt choices for hyperparameter search in Ludwig Hyperopt.
Config
Every model in Predibase can be represented as a Ludwig model configuration: a blueprint of the model pipeline in YAML.
While you can use both the Model Graph and Parameters section to modify parameters, they will sync with the Config which acts as the source of truth that will be ultimately used for model training. In other words, any changes made to the Model Graph / Parameters section will be reflected in the Config and vice versa. If a parameter is not specified, it will automatically use the parameter default. (Parameters not shown in the config YAML use default values.)
You can learn more about Ludwig configurations in the Ludwig Docs.
Dataset Inspection
This section shows the dataset profile and a sample preview of the dataset. You can shuffle the dataset to display additional rows.
Compute
This section shows you the right-sized compute that will be used for model training. You can change the training engine or the number of workers depending on your training requirements.