Comparison of Machine Learning as a Service Providers

Machine Learning as a Service (MLaaS) is a relatively new type of platform offered in the cloud. These are cloud services designed to help build, train, and then run predictive models incorporating machine learning (ML). ML can be handy for any organisation, whether it’s in accurately predicting sales data for the next month in a small business, through to a large enterprise building a custom chatbot for customer service.

The main players in the MLaaS game are Amazon, Microsoft, and Google. Here we will outline their respective platforms and compare the differences between the three.

Amazon AWS

The major AWS platform in the machine learning sphere is Amazon Sagemaker .

Sagemaker is an AWS product that allows you to build, train, and deploy machine learning models. Each of these can be an isolated activity, too: you can bring in your own ML algorithm and train it with Sagemaker, then deploy on your own server if you like. Sagemaker is an entire platform, whereas if you want to you can run frameworks like TensorFlow on Amazon.

Sagemaker comes with a set of useful ML algorithms developed by Amazon that can be useful for common use cases, pre-built framework containers (or the ability to use Docker to DIY), and automatic model tuning.

The easiest way to build with Sagemaker is through hosted Jupyter Notebook Instances, although you can also use Apache Spark if you are more familiar with it as a workflow. For training, Sagemaker does the hard work for you and spins up new instances for your datasets, running algorithms on the data with distributed compute services.

Once complete, you can deploy locally, to Sagemaker, or to Greengrass or DeepLens devices. As a deployed real-time hosted endpoint, predictions are available with simple HTTP POST requests.

Highlights:

Sagemaker Studio, a complete IDE for Sagemaker ML development.

Sagemaker Autopilot, which runs a range of models and shows results, so you to find the best one for your use case without deep model knowledge prior.

Supports all the major machine learning frameworks: TensorFlow, PyTorch, Apache MXNet, Chainer, Keras, Gluon, Horovod, Scikit-learn, and Deep Graph Library.

Microsoft Azure

Microsoft’s ML platform is dubbed Azure Machine Learning, no snappy name here.

The platform itself allows you to build and train machine learning models (as well as choose models from automated machine learning processes), then deploy and manage.

Again, we can build with Jupyter Notebooks, or RStudio if we are more comfortable developing here, or use the drag and drop Azure Machine Learning studio.

With Azure, we can develop Machine Learning Pipelines, designed to Prepare Data, Train the Model, Package the Model, Validate the Model, Deploy the Model, and Monitor the Model. By separating these into component parts, it allows different people to work on different parts of the pipeline at once, and lends itself to being able to do DevOps across the process.

Highlights:

Focus on MLOps to help integrate with existing DevOps configuration and services.

Automated machine learning that traverses different feature normalisation/standardisation methods, models, and hyperparameter settings to arrive at a best-fit model ( view tutorial for more details).

Supports major machine learning frameworks: PyTorch, TensorFlow, and scikit-learn, MXNet, Chainer, Keras, XGBoost, and ONNX.

Google

Google Cloud Platform’s ML platform is called AI Platform . Alternatively, their on-premise platform, Kubeflow Pipelines, is specifically for building, training, and deploying ML models. This encompasses a range of services including data preparation services (Dataprep, Dataflow), preprocessing (Dataproc, BigQuery), training (AI Platform Training), deployment (AI Platform Prediction), and more.

There is also the AI Hub, which contains all ML and AI components that are for plug-and-play use, sort of a jump-off point for projects if you will.

Google offers a similar range of services as both AWS and Azure, but without the degree of orchestration afforded by the other platforms.

Highlights:

Brings together Google’s expertise in ML, such as TensorFlow.

Very plug-and-play, meaning you can swap out components easily for saving on costs.

MLaaS comparison

As with many cloud service decisions, it often falls back on which platform you are already using and used to, whether that be AWS, Azure, or Google Cloud. But there’s no reason you can’t mix cloud technologies here if you wish.

Amazon Sagemaker offers the most user-friendly platform for development, making ML a less difficult task for developers, with plenty of automation.

Azure Machine Learning offers a wider range of algorithms available, and the ML Studio will feel familiar to users of Visual Studio.

Google’s AI Platform requires more hands-on attention than its competitors, and definitely requires a solid understanding and practice in ML, whereas you can get away with less knowledge using Azure and AWS. However, you might find larger cost savings using Google Cloud.

These three MLaaS products are themselves evolving at speed. It’s recommended that you take each for a test-drive first to see the workflow for each as in the end it’s really down to preference.

Ready to build your ML application?

If you need help in determining which ML platform to use for your application, or are ready to get started on development and need a hand, then reach out! CodeFirst has a team of experienced consultants and developers ready to get you going on your new project.