Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google Cloud - Compute Engine VS Machine Learning

Does anyone know what is the difference between using Google Cloud Machine Learning compare to a Virtual Machine instance in the Google Cloud Engine ?

I am using Keras with Python 3 and feel like GML is more restricting (using python 2.7, older version of TensorFlow, must follow the given structure...). I guess they are benefits of using GML over a VM in GCE but I would like to know what they are.

like image 866
smichaud Avatar asked Jun 01 '17 14:06

smichaud


People also ask

Is Cloud Computing same as machine learning?

Machine learning makes intelligent machines or software, and on the other hand, cloud computing provides storage and security to access these applications. The main connection between machine learning and cloud computing is resource demand.

What is the difference between GCP Compute Engine and App Engine?

Google App Engine is a Platform as a Service (PaaS) solution that makes deployment easier. On the other hand, the Google Compute Engine is an Infrastructure as a Service (IaaS) tool.

What is GCP in machine learning?

Google Cloud Platform (GCP) for Machine Learning & AI.


1 Answers

Google Cloud ML is a fully managed service whereas Google Compute Engine is not (the latter is IaaS).

Assuming that you just want to know some differences for the case when you have your own model, here you have some:

  • The most noticeable feature of Google CloudML is the deployment itself. You don't have to take care of things like setting up your cluster (that is, scaling), launching it, installing the packages and deploy your model for training. This is all done automatically, and you would have to do it yourself in Compute Engine although you would be unrestricted in what you can install.

    Although all that deployment you can automatise more or less, there is no magic to it. In fact, you can see in the logs of CloudML for a training job that it is quite rudimentary in the sense that a cluster of instances is launched and thereafter TF is installed and your model is run with the options you set. This is due to TensorFlow being a framework decoupled from Google systems.

  • However, there is a substancial difference of CloudMl vs Compute Engine when it comes to prediction. And that is what you pay for mostly I would say with CloudML. You can have deployed model in CloudML for online and batch prediction out of the box pretty much. In Compute Engine, you would have to take care of all the quirks of TensorFlow Serving which are not that trivial (compared to training your model).

  • Another advantage of CloudML is hyper-parameter tuning. It is no more than just a somewhat smart brute-forcing tool to find out the best combination of parameters for your given model, and you could possibly automatise this in Compute Engine, but you would have to do that part of figuring out the optimisation algorithms to find the combination of parameters and values that would improve the objective function (usually maximise your accuracy or reduce your loss).

  • Finally, pricing is slightly different in either service. Until recently, pricing of CloudML was in pair with other competitors (you would pay for computing time in both training and prediction but also per prediction which you could compare with the computing time in Compute Engine). However, now you will only pay for that computing time (and it is even cheaper than before) which probably renders the idea of managing and scaling your own cluster (with TensorFlow) in Compute Engine useless in most scenarios.

like image 115
Guille Avatar answered Oct 21 '22 06:10

Guille