{"id":2681,"date":"2018-01-25T09:22:17","date_gmt":"2018-01-25T15:22:17","guid":{"rendered":"http:\/\/www.mooreds.com\/wordpress\/?p=2681"},"modified":"2018-01-25T09:22:17","modified_gmt":"2018-01-25T15:22:17","slug":"levels-of-abstraction-within-aws-ml-offerings","status":"publish","type":"post","link":"https:\/\/www.mooreds.com\/wordpress\/archives\/2681","title":{"rendered":"Levels of abstraction within AWS ML offerings"},"content":{"rendered":"<p>I went to an <a href=\"https:\/\/www.meetup.com\/AWS-Boulder-Denver\/events\/246426239\/\">interesting talk last night<\/a> at the AWS Boulder Denver Meetup where <a href=\"https:\/\/www.linkedin.com\/in\/brett-mitchell-64b0122\/\">Brett Mitchell<\/a>, the presenter, had built a sophisticated application using serverless and AWS machine learning technologies to make an animatronic parrot respond to images and speak phrases.\u00a0 From what he said, the most difficult task was getting the hardware installed into the animatronic parrot&#8211;the speaker said the software side of things was prototyped in a night.<\/p>\n<p>But he also said something that I wanted to capture and expand on.\u00a0 AWS is all about providing building best of breed building blocks that you can pick and choose from to build your application.\u00a0 Brett mentioned that there are four levels of AWS machine learning abstractions upon which you can build your application.\u00a0 Here&#8217;s my take on what they are and when you should choose them.<\/p>\n<ol>\n<li>Low level compute, like EC2 (maybe even the <a href=\"https:\/\/aws.amazon.com\/about-aws\/whats-new\/2017\/11\/announcing-amazon-ec2-bare-metal-instances-preview\/\">bare metal offering<\/a>, if performance is crucial).\u00a0 At this level, AWS is providing elasticity in terms of compute, but you are entirely in control of the algorithms you implement, the language you use, and how to maintain availability.\u00a0 With great control comes great responsibility.<\/li>\n<li>Library abstractions like <a href=\"http:\/\/mxnet.incubator.apache.org\/\">MXNet<\/a>, <a href=\"https:\/\/spark.apache.org\/mllib\/\">Spark ML<\/a>, and <a href=\"https:\/\/www.tensorflow.org\/\">Tensorflow<\/a>.\u00a0 You can either use a <a href=\"https:\/\/aws.amazon.com\/machine-learning\/amis\/\">prepackaged AMI<\/a>, <a href=\"https:\/\/aws.amazon.com\/sagemaker\/\">Sagemaker<\/a> or use <a href=\"https:\/\/aws.amazon.com\/emr\/\">Amazon EMR<\/a>.\u00a0 In either case you are leveraging existing libraries and building on top of them.\u00a0 You still own most of the model management and service availability if you are using the AMI, but the other alternatives remove much of that management hassle.<\/li>\n<li>Managed general purpose supervised learning, which is Amazon Machine Learning (hey, I recorded a <a href=\"http:\/\/www.mooreds.com\/wordpress\/amazon-machine-learning\">course<\/a> about that!).\u00a0 In this case, you don&#8217;t have access to the model or the algorithms&#8211;it&#8217;s a black box.\u00a0 This is aimed at non machine learning folks who have a general problem: &#8220;I have structured data I need to make predictions against&#8221;.<\/li>\n<li>Focused product offerings like <a href=\"https:\/\/aws.amazon.com\/rekognition\/\">image recognition<\/a> and <a href=\"https:\/\/aws.amazon.com\/lex\/\">speech recognition<\/a>, among others.\u00a0 These services may require you to provide some training data.\u00a0 Here you do nothing except leverage the service.\u00a0 You have to work within the limits of what the service provides, including performance and tuneability.\u00a0 The tradeoff is you get scale and high availability for a great price (in both dollars and effort).<\/li>\n<\/ol>\n<p>These options are all outlined nicely <a href=\"https:\/\/aws.amazon.com\/machine-learning\/\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I went to an interesting talk last night at the AWS Boulder Denver Meetup where Brett Mitchell, the presenter, had built a sophisticated application using serverless and AWS machine learning [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[80,79],"tags":[],"class_list":["post-2681","post","type-post","status-publish","format-standard","hentry","category-amazon-machine-learning","category-aws"],"_links":{"self":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts\/2681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/comments?post=2681"}],"version-history":[{"count":2,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts\/2681\/revisions"}],"predecessor-version":[{"id":2683,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts\/2681\/revisions\/2683"}],"wp:attachment":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/media?parent=2681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/categories?post=2681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/tags?post=2681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}