Source: Deep Learning on Medium
Amazon Machine Learning
Amazon Machine Learning — A Deep Dive Into AWS SageMaker
SageMaker is a fully managed service that enables developers to build, train, test and deploy machine learning models at scale.
Machine learning is a powerful concept of finding patterns from data. However, if you have tried building a machine model from scratch, you should be aware of the challenges involved in designing a scalable machine learning workflow.
Labeling, training, and fine-tuning parameters are all time-consuming activities involved in building a machine learning model using traditional methods. In addition to these, training a model is a tedious process that uses considerable compute capacity. This makes building scalable workflows with complex models like reinforcement learning, a challenging task for data scientists.
Amazon tries to address these challenges with AWS SageMaker. SageMaker is a fully managed service from Amazon that provides you with a rich set of tools to help you build, train, test and deploy your models with ease. SageMaker lets you design a complete machine learning workflow to integrate intelligence into your applications with minimal effort.
SageMaker is also a fully managed service. This means no setups, no installations and no need for manual scaling. Sagemaker offers a complete machine learning studio with tools including an IDE which you can use to collaborate with your team in real-time.
Let us take a look at the individual components of SageMaker and understand how they work together to help teams build and deliver better solutions for their customers.
SageMaker Ground Truth
Preparing the right dataset is the first challenge in building a machine learning model. These datasets are usually obtained from various sources and can be of different formats. Since algorithms can’t work with raw data, manual labeling is often needed during data preparation. Next to training the model, pre-processing the data is where engineers spend the most time.
SageMaker Ground Truth uses pre-trained machine learning models to automatically label your raw data, significantly reducing the time and effort required to create labeled datasets. Ground Truth also gets progressively better over time by learning from labels created by manual methods.
SageMaker Studio is a feature-rich integrated development environment (IDE) for machine learning. You can write, debug, and visualize your models using a single, integrated interface.
SageMaker studio also offers step-wise tracking which you can use to pause, replay and clone steps. This makes it easy to move back and forth to analyze and iterate individual steps in a machine learning workflow.
SageMaker studio comprises of the following tools that work together in sync to help you build even complex machine learning architectures effortlessly.
Autopilot is the most useful tool in SageMaker. Finding the right algorithm is another major challenge while designing an ML model. Given the variety of algorithms available to solve a machine learning problem, finding the right algorithm with maximum efficiency requires hours of training and testing.
Autopilot solves this by using pre-trained ML models to help you find the right algorithm for your data. By just providing the target column to predict, Autopilot will explore different solutions to find the best model that suits your dataset. Once the right model has been found by Autopilot, you also have the option to extend the model using custom configurations.
If you are familiar with Jupyter Notebooks, SageMaker Notebooks offer Jupyter notebooks that you can share with others. You can collaborate with your team and build your ML models in real-time using SageMaker Notebooks.
SageMaker Notebooks are also “detachable” from their initial configuration, meaning you can test your ML models using different hardware configurations. You can also choose from different pre-built templates when creating a new SageMaker Notebook.
In order to train a model, you have to run the data through the model for a number of iterations until you get the maximum accuracy. This involves trying different algorithms, fine-tuning parameters, adjusting features, etc.
SageMaker Experiments lets you store each of these optimizations as an “Experiment” and browse through them using a visual interface. SageMaker Experiments captures input parameters, configurations, results, etc for each iteration and lets you browse and review their performance.
The accuracy of a machine learning model is determined only after the training is complete. But training a model is a time-consuming process that takes anywhere between a few minutes to hours. If you have to change parameters, you will have to re-train the model to calculate its accuracy.
SageMaker debugger captures real-time metrics during the training process. It captures information such as validation, confusion matrix and learning gradients that help you to analyze the entire training process and optimize it for better accuracy rather than re-training an entire model. Debugger also issues warnings on common problems and provides recommendations for best practices.
SageMaker Model Monitor
Once your machine learning models are in production, it is hard to monitor the performance of your models automatically. As your model receives new data from user interaction, there can be data-drifts which will change the base values like mean, variance, average, etc. Without proper statistical analysis, it is hard to infer problems like these by traditional methods.
SageMaker Model Monitor watches your machine learning models in production and alerts you when the models do not perform as expected. Model Monitor can be configured to generate reports containing general statistics along with performance metrics and can be stored periodically in an S3 bucket.
Complex Machine learning solutions like Self-Driving Cars are built using a cluster of individual models. These models have to make fast, low-latency, highly accurate predictions in real-time. Models like these take years to train, test and deploy. Once deployed, it is hard to update the model unless a solid reinforcement learning architecture is in place.
This is where SageMaker Neo comes in. Neo optimizes models to run twice as fast, with less than a tenth of the memory footprint, without any loss of accuracy. Neo compiles your machine learning model into an executable, deploying it on the cloud or Lambda edge. Neo also supports over the air updates on edge locations with support from AWS Greengrass.
SageMaker Augmented AI
Even highly accurate machine learning models can benefit from a degree of human intervention to inspect data quality and accuracy. Amazon Augmented AI (A2I) makes it easy to build workflows that require a human reviewer to review predictions.
This is particularly useful when working with low-quality data formats like scanned documents and natural language text. A2I can be used to allow manual reviews of low confidence predictions or to audit predictions on an on-going basis.
AWS Marketplace is a digital catalog that offers thousands of pre-configured software services from independent software vendors. AWS Marketplace offers a broad range of solutions ranging from operating systems to data analytics.
AWS Marketplace also offers a wide variety of machine learning solutions built, trained and tested using the AWS platform. You can choose an existing model available in the marketplace and deploy it directly to production. Marketplace solutions are also extendable which enables developers to add additional layers of configuration before deploying those models to their customers.
If you are a machine learning engineer who builds complete ML workflows from scratch, you will appreciate the number of overheads and setups Sagemaker solves for you. SageMaker also provides Managed Spot Training that uses spare AWS Spot Instances to run your training jobs. This allows you to save costs in terms of compute capacity used while training large scale datasets.
Sagemaker also works well with languages like Tensorflow and Keras with the ability to provision a cluster of GPUs to run computations in parallel. SageMaker is undeniably a powerful tool in a machine learning engineer’s toolkit.