Feedback on 'one class' code structure

Hello, I was hoping to get some feedback about the structure of some fastai v2 code I wrote!

I’m implementing a segmentation task, and currently, I’ve got ONE class called MySegmentationLearner that has methods for loading dataset, creating datablocks and dataloaders, training the model as well as carrying out predictions.

For end-to-end training, I just need to initialise an instance of MySegmentationLearner and run the training method.
For inference, I just need to initialise an instance of MySegmentationLearner, load the model, and run the inference methods.
While it all works just fine as is, I’m also looking to move the code to production (for commercial purposes).

What would be the pros and cons for this structure in a production (even dev) environment? Any suggestions for a better approach?