Boosting AutoAI with Snap ML

Lukasz Cmielowski, PhD
3 min readJun 18, 2021

Written by: Lukasz Cmielowski, PhD, Thomas Parnell & Daniel Ryszka

Snap machine learning

A library that provides high-speed training and inference of popular machine learning models on modern CPU/GPU computing systems. Snap ML has been designed to address some of the biggest challenges that companies and practitioners face when applying machine learning to real use cases. These challenges are illustrated in the graphics below.

Snap ML is:

  • Fast. Multi-threaded CPU solvers as well as GPU and multi-GPU solvers that offer significant acceleration over established libraries.
  • Scalable. Distributed solvers that scale gracefully to train datasets in mere seconds.
  • Accurate. A novel gradient boosting machine that achieves state-of-the-art generalization accuracy over a majority of datasets.
  • Resource-efficient. Ability to complete large training jobs in less resources, with high resource utilization.
  • Consumable. Familiar Python scikit-learn APIs for single-server solvers and Apache Spark API for distributed solvers.

Watson AutoAI

The Snap ML is here — the Snap ML estimators are integrated into AutoAI. The model selection phase uses estimators from Snap ML, Scikit-learn, XGBoost and LightGBM now.

AutoAI supports the following SnapML estimators:

SnapDecisionTreeRegressor
SnapRandomForestRegressor
SnapBoostingMachineRegressor
SnapDecisionTreeClassifier
SnapRandomForestClassifier
SnapLogisticRegression
SnapSVMClassifier

The best estimator selection is based on both score (accuracy) and runtime (speed).

Combining new set of available estimators and new optimised algorithm selection based also on runtime, we can achieve more than 3.9x training speed up.

The sample experiment run returns Snap Random Forest Classifier as one of the best estimators to use in next stages.

AutoAI integrating Snap ML is available on Watson Studio public cloud. Check it out!

--

--

Lukasz Cmielowski, PhD

Senior Technical Staff Member at IBM, responsible for AutoAI (AutoML).