Data Science in the Cloud

Azure vs AWS vs GCP

Ilai Bavati
Towards Data Science

--

Photo by Max Duzij on Unsplash

The field of data science is varied, and today there are many different roles and responsibilities involved in the process. Data science work typically involves working with unstructured data, implementing machine learning (ML) concepts and techniques, generating insights. This process typically ends in a visual presentation of data-driven insights.

Machine learning is a critical element of the process, but training ML models is often a time-consuming process that requires a lot of resources. In the past, gaining access to ML resources was difficult and expensive. Today, many cloud computing vendors offer resources for data science in the cloud.

This article reviews the machine learning options on AWS, Azure and FCP to help you decide which resource meets your ML needs.

The Importance of Cloud Computing for Data Science

Training of machine learning and deep learning models involves thousands of iterations. You need these extensive amounts of iterations to produce the most accurate model. For example, if you have a set of training samples with only 1TB of data, 10 iterations of this training set will require 10TB of I/O. When computer vision algorithms process high-resolution images the input dataset size is very large. You can reduce the processing time by removing any associated network latency. This can help you ensure the best I/O performance for reading source data.

Cloud computing enables you to model storage capacity and handle loads at scale, or to scale the processing across nodes. For example, AWS offers Graphics Processing Unit (GPU) instances with 8–256GB memory capacity. These instances are priced at an hourly rate. GPUs are specialized processors designed for complex image processing. Azure offers the NC-series high performance GPU for high performance computing algorithms and applications.

AWS Machine Learning Services and Tools

Amazon offers several machine learning tools and services. These services enable organizations and developers to improve the performance of compute-intensive and high performance computing models. The list below reviews some of these services.

Amazon SageMaker

SageMaker is a fully-managed machine learning platform for data scientists and developers. The platform runs on Elastic Compute Cloud (EC2), and enables you to build machine learning models, organize your data, and scale your operations. Machine learning applications on SageMaker range from speech recognition, computer vision, and recommendations.

The AWS marketplace offers models you use, instead of starting from scratch. You can then start training and optimizing your model. The most common choices are frameworks like Keras, TensorFlow, and PyTorch. SageMaker can optimize and configure these frameworks automatically, or you can train them yourself. You can also develop your own algorithm by building it in a Docker container. You can use a Jupyter notebook to build your machine learning model, and visualize your data.

Amazon Lex

The Lex API is designed to integrate chatbots into applications. Lex contains deep learning-based Natural Language Processing (NLP) and automatic speech recognition capabilities.

The API can recognize spoken and written text. Lex’s User Interface (UI) enables you to embed recognized inputs to many different back-end solutions. Besides standalone apps, Lex supports chatbots deployment for Slack, Facebook Messenger, and Twilio.

Amazon Rekognition

Rekognition is a computer vision service that simplifies the development process for image and video recognition applications. Rekognition enables companies to customize their apps according to business needs. Rekognition’s image and video recognition features include:

  • Objects detection and classification — enables you to find and identify different objects in images and videos. For example, you can detect people that are dancing or an extinguishing fire.
  • Face recognition — used for face detection and matching. For example, you can use it to detect celebrity faces in images and videos.
  • Facial analysis — used to analyze facial expressions. You can detect smiles, analyze eyes, and even define emotional sentiment in videos.
  • Inappropriate scene detection — enables you to determine if an image or video contains inappropriate content, like explicit adult content or violence.

Azure Machine Learning Services and Tools

Compared to AWS, Azure machine learning offerings are more flexible in terms of out-of-the-box algorithms. Azure machine learning offerings can be separated into two main categories — Azure Machine Learning Services and Bot Service.

Azure Machine Learning (Azure ML) Services

Azure ML is a huge library of pre-trained, pre-packaged machine learning algorithms. Azure ML Service also provides an environment for implementing these algorithms and applying them to real-world applications. The UI of Azure ML enables you to build machine learning pipelines that combine multiple algorithms. You can use the UI to train, test, and evaluate models.

Azure ML also provides solutions for Artificial Intelligence (AI). This includes visualization and other data that can help understand model behavior, and compare algorithms to find the best option.

Azure ML Services offerings include:

  • Python packages — contain functions and libraries for computer vision, text analysis, forecasting, and hardware acceleration.
  • Experimentation — enables you to build different models, compare them, set the project to a particular historic configuration, and continue development from that moment.
  • Model management — provides an environment to host models, manage versions, and monitor models that run on Azure or on-premises.
  • Workbench — a simple command-line and desktop environment with dashboards and model development tracking tools.
  • Visual Studio Tools for AI — enables you to add tools for deep learning and other AI projects.

Azure Service Bot framework

Azure Service Bot provides an environment for building, deploying, and testing bots using different programming languages. Bot Service does not necessarily require machine learning methods, because Microsoft provides five pre-defined bot templates. This includes basic, form, proactive, language understanding, and Q&A. Only the language understanding template requires advanced AI techniques.

You can use Node.js and .NET technologies to build bots with Azure. You can deploy these bots on services like Skype, Bing, Office 365 email, Slack, Facebook Messenger, Twilio, and Telegram.

Google Cloud Machine Learning Services and Tools

Google provides machine learning and AI services on two levels — Google Cloud Machine Learning Engine for experienced data professionals and the Cloud AutoML platform for beginners.

Google Cloud AutoML

A cloud-based machine learning platform built for inexperienced users. You can upload your datasets, train models, and deploy them on the website. AutoML integrates with all Google’s services and stores data in the cloud. You can deploy trained models via the REST API interface.

There are a number of available AutoML products you can access via a graphical interface. This includes training models on structured data, image and video processing services, and a natural language processing and translation engine.

Google Cloud Machine Learning Engine

The Google Cloud ML Engine enables you to run machine learning training jobs and predictions at scale. You can use Google Cloud ML to train a complex model by leveraging GPU and Tensor Processing Unit (TPU) infrastructure. You can also use the service to deploy an externally trained model.

Cloud ML automates all monitoring and resource provisioning processes for running the jobs. Besides hosting and training, Cloud ML can also perform hyperparameter tuning that influences the accuracy of predictions. Without hyperparameter tuning automation, data scientists need to manually experiment with multiple values while evaluating the accuracy of the results.

TensorFlow

TensorFlow is an open source software library that uses data-flow graphs for numerical operations. Mathematical operations in these graphs are represented by nodes, while edges represent data transferred from one node to another. Data in TensorFlow is represented as tensors, which are multidimensional arrays. TensorFlow is usually used for deep learning research and practice. TensorFlow is cross-platform. You can run it on GPUs, CPUs, TPUs, and mobile platforms.

Conclusion

You can easily get lost in the variety of available data science solutions in the cloud. They differ in terms of algorithms, features, pricing, and programming languages. Moreover, the list of solutions is always changing. There is a good chance that you will choose one vendor and suddenly another one will release a product that is more suited to your business needs. When choosing, first figure out what you want to achieve with machine learning, and then choose the service that can help you accomplish your goals.

--

--

I’m a tech writer and editor based in Tel Aviv, with interests ranging from history and politics to AI and design.