Start training

The nimble-cli and NimbleSDK are always available in this training environment. They are designed to work together streamline the training process, ensuring a unified flow and providing essential resources like GPU connection and reporting tools. Carefully read the doc and use nimble-cli to manage those critical steps in the training flow. Below, we detail how to use this cli effectively.


Define a trainer file. Assume we name it

Before you start training your model, preparation is crucial.

from NimbleSDK import NimbleTrainer

class MyTrainer(NimbleTrainer):
    def pre_process(self, **kwargs):

Functionality: In the pre_process method, you should handle tasks such as downloading training dataset and eval dataset, defining model hyper parameters, setting up tokenization and creating pipes. This method serves as the entry point of your program.


The actual training of the model is managed through the train method.

class MyTrainer(NimbleTrainer):
    def train(self, **kwargs):

Functionality: Define your model architecture within this method, load pre-trained models, specify the output format and path, and initiate the training process. This stage is typically the most time-consuming.


After training, assessing your model’s performance is critical.

class MyTrainer(NimbleTrainer):
    def evaluate(self, **kwargs):

Functionality: In the evaluate method, set the success criteria for your model. While accuracy and precision are popular metrics, consider using those specific metrics for transformers or diffusers. Typically, you will compare your model's performance against pre-trained models using the same dataset to see if yours can outperform them. Or you can compare with other foundational models if you train from scratch. Pre-trained models and foundational models are available in the NimbleSDK.

Show Example

Finally, demonstrate the practical application of your model.

class MyTrainer(NimbleTrainer):
    def predict_and_show(self, **kwargs):

Functionality: This method should be used to generate a few human-readable outputs such as texts, images, videos, or audios from respective inputs. Remember, the purpose here is illustrative, so limit the number of outputs to avoid excessive use of resources.

Kick off the training

nimble-cli train 

Last updated