What Does “Machine Learning in the Cloud Mean” Really Mean?

Yesterday, a colleague of mine asked me, “What does machine learning in the cloud mean?” After thinking about it for a few minutes I realized that the phrase has multiple meanings. Here are the first four that came to mind. But I’m reasonably sure I’m missing at least one or two key scenarios.

1.) You create a virtual machine in the
 Cloud and do ML tasks on that VM.
2.) You use a Web interface to access a custom
 ML system that lives in the Cloud.
3.) You use a job submission tool to submit ML
 tasks to GPU/CPU resources in the Cloud.
4.) You send an HTTP-based request to a ML Web
 service in the Cloud.

An example of Scenario #1 is when I go to Microsoft Azure, and create a virtual machine. Then I connect to the virtual machine using a Remote Desktop tool, and voila, it’s exactly like I’m doing ML on a desktop machine, except I can have as powerful a machine as I want, supported by massive storage. I like this approach because there’s no “friction” — I work just as I do normally — except I’m paying an hourly service fee. Google and Amazon have similar capabilities for creating VMs but I haven’t used them before.

Installing Python on a virtual machine

Managing a virtual machine using the Azure Web interface

Scenario #2 is fairly specific and what I have in mind is Azure Machine Learning Studio. It’s a Web-based GUI drag-and-drop program that allows you to perform ML tasks without any coding at all. AML Studio is good for rapid prototyping but is usually not flexible enough for the kind of ML work I usually do.

Azure ML Studio

For Scenario #3 I’m thinking of “Google Cloud ML Engine”. You write a small script that packages up information about a TensorFlow program and some training data. Then you submit that package using the gcloud command-line tool/program and training happens in the Cloud on Google’s custom TPU (tensor processing unit) machines. After training you can deploy the trained model (but the details aren’t clear to me). I haven’t used this scenario, but it has the feel that it was designed by researchers for use by other researchers (which would be right up my alley).

Google Cloud Platform

An example of Scenario #4 is the Microsoft Cognitive Services. These are pre-built ML models that live in the Cloud. For example, there’s a Vision Service where you upload an image to the service, along with instructions on what to analyze, and the service returns JSON data such as, “three people in a park with a red balloon”. I don’t use this scenario very often, but it’d be valuable to an application developer.

Program to submit a request to Azure Cognitive Services

For me, the real question now is, “What am I missing?” in this description of machine learning in the Cloud. Conceptually at least, the Cloud just means machines that are “somewhere else” so it’s possible for ML in the Cloud scenarios to be any ML scenarios.

This entry was posted in Machine Learning. Bookmark the permalink.

One Response to What Does “Machine Learning in the Cloud Mean” Really Mean?

  1. PGT-ART says:

    not sure but i think you did this once yourself her widht the flower set.
    5.) use the cloud to train a NN, then download the model to run it locally. The cloud basically does the heavy computing, while a local device is powerfull enough to work width a trained network (as that does require less computing power).

Comments are closed.