Hacker News new | ask | show | jobs
by nielmalhotra 3407 days ago
Quick slightly unrelated question: Does anyone have a comparison of using Google cloud services vs AWS for machine learning? I'm planning to pick one, and I was leaning towards Google Cloud Services because of the TensorFlow support and the fact that Google is big on ML, making it likely that it's something that Google will support and be good at. With this blog post, I'm not sure.
5 comments

(Disclosure: I work on Google Cloud).

Both providers offer you raw VMs with GPUs and such so you can run popular machine learning frameworks yourself by hand. After that the three providers diverge a bit, and I've not seen a good writeup myself. Roughly:

- Google has both a hosted TensorFlow (Cloud ML) as well as specific, pre-trained models you can simply use (Cloud Vision, Cloud Speech, etc.). For an easy to use interface, we have direct TensorFlow (and more) integration in Datalab.

- AWS also has some pre-trained services (Rekognition, Polly, Lex) but for "obvious" reasons doesn't do hosted TensorFlow. Instead Amazon Machine Learning is a bit more like Azure's offering: "Put data in, wire up stuff in the console and hit go".

If you're really interested in ML, my biased opinion is that you'll be using TensorFlow. And as you surmised, we're committed to making TensorFlow the "best" ML framework and making sure it runs well on Google Cloud. Like Kubernetes, we're not going to handicap it elsewhere, but having it managed and accelerated for you, is extremely convenient.

[Edit for formatting. I also should have mentioned there will be lots of ML-related talks at NEXT in San Francisco in two weeks!].

GM for AI at AWS here: actually - we like TensorFlow quite a bit, too.

We provide a machine image with TF, MXNet and others pre-installed, along with Keras, CPU and NVIDIA divers, and other libraries for deep learning. We just added Ubuntu support too:

https://aws.amazon.com/blogs/ai/the-aws-deep-learning-ami-no...

Sorry if that wasn't clear from my opening (both providers offer the DIY option, and are happy to support every ML framework). I think for folks looking to have a hosted TF service though, we wouldn't expect that (sadly) from AWS, particularly after the MXnet announcement:

http://www.allthingsdistributed.com/2016/11/mxnet-default-fr...

but to each his own!

The challenge is always to get a lot of training data.

Are there (artificial) datasets that can be used that showcase particular fit for deep learning?

I think there is way to little research in building artificial datasets (using domain knowledge of course).

It might even be possible to run these generative models and have this type of data very soon.

ImageNet, GoogleNet, etc. are all image datasets for precisely this purpose. There's also the recently announced YouTube dataset and Kaggle challenge [1] and Google Research's datasets [2].

I agree though, the kind of artificial / play-against-yourself datasets that the folks at DeepMind created for say Alpha Go are an entirely different beast.

[1] https://cloud.google.com/blog/big-data/2017/02/google-cloud-...

[2] https://research.google.com/research-outreach.html#/research...

I've used both and both are great overall. Even if you are using TensorFlow, I would recommend AWS right now for someone just starting out because the documentation is more currently more thorough, although that will probably change. The CloudML service looks really cool (and I think it's really what everyone will ultimately use), but I hit enough problems/bugs getting my model trained and running that I plan to wait for it to come out of beta before trying again.
On the GPU side of things, I can confirm that AWS p2.xlarge has worked well for me. It has one Tesla K80. Azure's offering is similarly priced. Back in November Google Cloud announced P100 GPUs would be available soon; that will be interesting.
Curious too, esp on the new Cloud ML: https://cloud.google.com/ml/

I guess it's more comparable with Google Cloud Functions: https://cloud.google.com/functions/

Hmm. Cloud ML is "serverless" in a sense, but it's backed by VMs running CPUs or GPUs (up to you). Cloud ML is "hosted TensorFlow" and does a lot for you. The set of pre-trained model services (Cloud Vision, etc.) are quite a bit different.

For more info, see our new blogpost (discuss here: https://news.ycombinator.com/item?id=13697666).

Again, important disclosure: I work on Google Cloud.

If you are just learning Deep Learning, using Keras on top Theano on a single GPU is a good option. AWS has p2 instance that is used in Part 1 of Jeremy Howard's excellent fast.ai MOOC. Tensorflow becomes more useful when you have multiple GPUs.