Exploring Machine Learning with the Cloud
Machine Learning, a subset of Artificial Intelligence (AI), has exploded in popularity in recent years with successful implementation in a vast range of industries including healthcare, retail, banking, oil and gas, transportation, and the automotive industry to name a few. Because of its steady rise in popularity, now more than ever, organizations - both large and small - seek to leverage the additional capabilities machine learning provides; and rightfully so, as there has never been a more suitable time for adoption of ML than now, thanks to the Cloud.
Cloud technology, which started out as an IT solution where computational resources were made available on-demand for users to host their data and applications, has grown beyond its early days of being just an IT solution to becoming a fully-fledged business solution while creating a pathway for anyone or any organization to leverage the benefits of machine learning.
Machine Learning - The Need For Cloud?
Machine Learning is very data-hungry! ML systems require large chunks of data to be ingested and then trained to perform efficient working models. The sheer size of this data requires a very capable IT environment comprising both storage and distributed systems architecture to handle parallel workloads. It also requires networking, security, and trained personnel to manage all these.
This meant that before the cloud; anyone looking to experiment with machine learning had to have a huge CAPEX budget for providing computing hardware and infrastructure to meet the demands of these very large data streams to be ingested. Resources were wasted due to over-provisioning of hardware. The cost of buying and maintaining the needed infrastructure was definitely not cheap, requiring deep pockets just to get started. While this is not the only limitation faced by machine learning, it is one that certainly limited its adoption to a select few that could afford the massive costs that came with it.
Benefits of the Cloud to Machine Learning
Implementing Machine Learning without Cloud would be impractical for most organizations from a business perspective. Because of the enormous amount of scale businesses would require to provide data-intensive services at a logical cost. The advantage Cloud brings is the opportunity to save cost by moving from a CAPEX IT budget, to an OPEX budget where organizations only pay for resources used, instead of all the extra services required to use those resources.
Most cloud service providers make use of the latest premium IT hardware specializing in ML tasks (e.g GPU, TPU, etc.), making it ideal to run machine learning workloads on their remote cloud servers without additional management costs. This natural fusion between both technologies has become popular as MLaaS (Machine Learning as a Service).
Today, with advancing research in machine learning algorithms, the applications of ML continue to grow, and the practicality of ML has Cloud at its core. Cloud provides agility, flexibility and cost-savings to the machine learning workflow. With the use of Cloud today, setting up an environment to implement ML can be completed in minutes and is as simple as:
- Selecting a cloud services vendor: GCP, AWS, Microsoft Azure, IBM Cloud, etc.
- Choose a service ranging from IaaS (low-level access to underlying infrastructure) to SaaS (ready-to-serve solutions with no sort of management/configuration) offerings.
- Link the chosen service to a billing account, possibly via credit card.
- Build, run, and deploy machine learning services from the Cloud provider.
Some common AI and Cloud use cases include:
AI Bots and digital assistants: Apple's Siri, Microsoft's Cortana and Google Home are all present solutions that utilize both AI and Cloud effectively to improve their functionality and provide added value to users.
Fully Managed ML Services: Cloud service providers offer fully managed solutions, providing templates, pre-built models, and even GUI based drag-and-drop tools that facilitate the ML process making it easier for organizations, regardless of size to use machine learning frameworks without the need for Ops to manage and configure underlying infrastructure.
Machine Learning APIs: Cloud vendors offer plug-and-play services with ML solutions readily available in their respective API Marketplace's. These APIs make it easy for developers to infuse already developed solutions into their products; saving a lot of time, as developers can focus on increased functionality of their applications rather than having to develop from scratch.
Cloud Services Offerings for Machine Learning
Machine learning cloud services - MLaaS, offers flexible alternatives for enterprises of all sizes to build working models. Small and medium businesses with limited strength are also able to leverage the added business intelligence brought by ML, thanks to these cloud services. Let's take a look at the options available on the three most popular cloud vendors: AWS, GCP and Microsoft Azure, for machine learning.
Amazon, like the other two cloud vendors, has a plethora of services for AI on their cloud platform, with their flagship offering specifically for machine learning being the AWS SageMaker. SageMaker is a fully-managed platform, so a machine learning environment with tools for fast model creation and deployment can be set up quickly without the burden of server provisioning and management.
The full suite of SageMaker offers end-to-end experience, from automated data labelling with SageMaker Ground Truth, to model interpretation and debugging with SageMaker Debugger, as well as model deployment and monitoring using SageMaker Model monitor. The AWS ML Services is well suited for both ML beginners and seasoned data scientists, with a very flexible environment and a low learning curve. Some of its features are:
- It has many pre-built algorithms, with lots more available in the AWS Marketplace.
- It is optimized for very large datasets and computing in large distributed systems.
- It includes built-in support for many popular machine learning frameworks like TensorFlow, Apache MXNet, PyTorch, etc while also allowing flexibility for using any other preferred framework through the use of containers.
- Jupyter notebook environment running R/Python kernels aiding easy collaborations among teams.
- It also has GPU's available to provide added gains in ML performance.
Azure is also a major player in the machine learning cloud services space with various MLaaS offerings. Azure has ML Studio which makes use of a very simple GUI drag-and-drop tool feature, that makes it very easy to orchestrate services (e.g data investigation, data preprocessing, data investigation, method selection, etc). The GUI makes it suitable for users to view and understand the entire workflow within Azure's ML Studio. Azure also offers support for 100+ algorithms and modules, although not supporting popular frameworks such as TensorFlow, MXNet, Chainer, etc. Azure instead supports those frameworks on Azure ML Services.
The ML Services platform supports a wide range of open-source frameworks and even third-party services for model deployments like Docker. It includes Azure SQL Managed Instance ML Service for training and deploying models inside an Azure SQL managed instance using SQL, Azure SQL Edge for cloud-based machine learning in SQL, Azure Databricks for spark-based analytics, capable of building and deploying models and data workflows. The ML Services platform is a more in-depth service than the ML Studio; It offers environments for hosting, versioning, management and monitoring of models on Azure, as well as edge devices. Using Azure's machine learning service, models are trained, deployed and managed in Azure using Python and the command line.
Google Cloud "GCP" is another major cloud service vendor which aims to be the de facto "all you need in the cloud" service provider. GCP's machine learning service includes the Deep Learning VM Image, and the AI Platform.
With the Deep Learning VM Image, ML Engineers can provision a VM with everything ready for use. Users will have a machine instance preloaded with any of the popular frameworks of their choice without worrying about software compatibility. These Google Compute instances can be installed with TensorFlow, PyTorch, Scikit-learn, MXNet, etc. It's also easy to add cloud GPU and TPU for added performance. Jupyter lab notebooks are also supported to provide a seamless, interactive machine learning environment for ML experiments.
The AI Platform is created in a way that ML developers and engineers can move projects from idea-phase to production and deployment in a relatively fast pace while supporting TFX tools for testing and analyzing models. The AI Platform and prediction service can be used to train models and deploy them to production on GCP in a serverless environment.
The cloud brings a wide variety of employable solutions for machine learning solutions. Considering the many benefits both suites of technology can offer to businesses and other organizations, it's not surprising to see the steady rise in the adoption of both services. Machine Learning when combined with the cloud brings needed support for enterprises in starting ML. The various cloud vendors offering MLaaS have different suites of services that provide AI tools in their respective cloud-based computing frameworks. Small and medium-sized enterprises can take advantage of MLaaS with the promise of gaining valuable insights from working models even with limited team strength via machine learning cloud services. Clearly, machine learning and cloud has become a synergy; and the cloud is currently the way forward for AI and especially Machine Learning in the 21st Century. The future looks set for a new standard of doing machine learning in the cloud.