Back to Blog

Announcing Masterful v0.4

Image of Yaoshiang Ho
Yaoshiang Ho

Version 0.4 of Masterful

We’re excited to announce the v0.4 release of Masterful, the training platform for computer vision models. This latest release introduces a number of new product capabilities and enhancements, including a streamlined API, fewer steps to get from pip install to training models, and a new way to take advantage of the power of semi-supervised learning (SSL) to learn from your unlabeled data. 

Get started without a sign-up

You can now run pip install masterful and immediately use all of the functionality of the Masterful platform. No sign up required to get going. After 30 days, just visit www.masterfulai.com/get-it-now to continue usage. 

As always, Masterful is free to use for personal projects, including academic projects. 

For commercial customers, Masterful is free to use for evaluation purposes, but once you want to deploy a model trained by Masterful into production, you’ll need to contact us at learn@masterfulai.com to get a commercial license. For more details, see www.masterfulai.com/personal-and-evaluation-agreement.

Streamlined API

We worked closely with users to develop a series of refinements to our API. The result is an API that provides more control, is easier to understand, and still very easy to use. 

We have organized our API around five basic ingredients of a trained model:

  • Data. Includes both labeled and unlabeled data. Data is an input to Masterful. 
  • Architecture. The structure of your model such as Resnet-50, but not the trained weights. Architecture is the other input to Masterful. 
  • Optimization. Training your model using in the minimum gpu-hours and minimum wall-clock time. 
  • Regularization. Making sure your model is accurate on production data, not just training data. Our platform matches state-of-the-art performance (RandAug, AutoAugment) in orders of magnitudes less search time, and beats Google Vertex on every dataset we’ve thrown at it so far.
  • Semi-Supervised Learning (SSL). Learning from unlabeled data. This is a unique ingredient that you might not have come across before because Masterful is the first platform to let you train computer vision models with unlabeled data. 

There are five param objects corresponding to each of the ingredients above. For example, OptimizationParams describes the optimizer, learning rate, and batch size parameters to control training. 

Placing all the optimization hyperparameters in a single object like OptimizationParams allows you to look at all your optimization decisions holistically. This is conceptually clearer than the Keras approach of spreading these parameters around. For example, in Keras, you might find some of these hyperparameters as a callback, some as an attribute of the optimizer, and some in a map call on the tf.data.Dataset. Our custom training process is built on top of Keras, so those Keras APIs are still accessed by Masterful, but you don’t need to work with them directly - you can control all your optimization parameters from the OptimizationParams object. 

The real magic is how you discover these params. Each set of params has an associated learner that takes care of learning the params. For example, the masterful.regularization.learn_regularization_params() learner will figure out the optimal data augmentation, label regularization, and weight decay technique for your model. 

Finally, although our autofit function was compact, it was also becoming monolithic. In its place, we have introduced multiple discrete functions to provide developers with more control of the platform. The basic steps for training with Masterful are now:

  • Build your model architecture and setup your data
  • Setup the data, architecture, optimization, regularization, and ssl params. Either build them up yourself or use a Masterful learner function. 
  • Train with masterful.training.train(), which takes your data, model architecture, and all the params. 
  • Get a trained model. 

Check out the quickstart tutorial for more details on how to use these APIs. 

A simple SSL recipe

We’ve introduced a new way to get started with semi-supervised learning (SSL). There are no changes to your existing regularization and training loop. Just add one step to integrate your unlabeled data using a pair of utilities: masterful.ssl.analyze_data_then_save_to() and masterful.ssl.load_from().

These utilities handles some of the trickier parts of implementing SSL:

  • Managing multiple model instances in a single instance of Tensorflow.
  • Building well shuffled instances of tf.data.Dataset.
  • Weighting labeled and unlabeled examples. 

There are tradeoffs of using the simple SSL recipe instead of the SSL capabilities of the full Masterful platform of course. In general, the full Masterful platform will run faster and deliver a more accurate model than the simple SSL recipe. But the simple SSL recipe will still outperform training without any unlabeled data at all.

For example, we trained a convnet with 5,000 labeled examples from the CIFAR10 dataset as the baseline. After using the simple SSL recipe to also learn from an additional 25,000 unlabeled examples, we were able to reduce the error rate by 8%! Once you’ve collected your unlabeled data, get started with the guide to the Simple SSL Recipe. 

 

Figure 1: Error rate with 5,000 labeled examples of CIFAR10 and 25,000 unlabeled examples over 10 runs. Average error rate dropped from 0.53 to 0.49, or around 8%. Not shown in graph: every single run showed an improvement. 

Conclusion

We'd love to hear your thoughts about our 0.4 release! Join our community at https://www.masterfulai.com/community and let us know what you think.


Related Posts

It's time to use Semi-Supervised Learning for your CV models

Image of Yaoshiang Ho
Yaoshiang Ho
Read more

Getting the most out of Transfer Learning

Image of Travis Harper
Travis Harper

It’s no secret that just about any deep learning computer vision task can be improved with transfer...

Read more