Nowadays, #Machine learning models are used in within different platforms. In general terms, any machine learning model can be termed as a mathematical or statistical representation of any real-life problem or situation. All machine learning models consist of huge number of algorithms and training data.
Machine Learning Model as API with AWS Serverless- Loves Cloud
1. Machine Learning Model as API with AWS
Serverless- Loves Cloud
Piggybacking Cloud technologies, business processes and activities are undergoing a
profound digital transformation. There is an emergence of new technologies and new
pathways every day. When the Internet was first introduced, its basic job was to
provide information. The objective of search engines have changed drastically from
providing just information which was before; to providing most accurate and relatable
information in the modern days. Machine Learning in general has helped this cause a
lot. Machine Learning in general, is basically an application of artificial intelligence.
Thus, machine learning can work and find solutions on it’s own from previous
experiences and trends; without explicitly manual user instructions.
Why and how Machine Learning is related to this?
Nowadays, Machine learning models are used in within different platforms. In general
terms, any machine learning model can be termed as a mathematical or statistical
representation of any real-life problem or situation. All machine learning models
consist of huge number of algorithms and training data. Whenever, any certain
situation occurs, the algorithm tries to find the best solution by finding different
patterns within the training data while corresponding to the different parameters given
by the input target. Machine learning as an application and machine learning models
go hand in hand while machine learning models do function as a sub-division under
the vast umbrella of artificial intelligence. All the big guns in the IT industry like
Google, Amazon, IBM and a lot of others are using Machine Learning as one of their
greatest tools to deliver different services to their customers.
Why use Machine Learning Model as API?
For understanding this concept, we first need to understand what API is exactly. The
full form of API is ‘Application Programming Interface.’ Basically, by using API, two
different software can communicate with each other. API, in general terms, is a pack
of codes, definitions, protocols, and tools all bundled together for building a software
or an application. Being the link between two software, APIs not only allow the
software to communicate but send and receive requests as well. This is the main
reason to use Machine Learning model as an API for distinctive application building
on the cloud. API gateway or in short, API becomes the connecting link to send and
receive requests over different servers in different locations, for the ease of work.
The Use of Machine Learning Model as API with AWS Serverless: A Case Study
2. The Use case
We recently got the chance to help one of our start-up clients from the Oil and Gas
research domain. They have to deal with heavy workloads on AWS for their
application. This was achieved by training and deploying a lot of machine learning
models using AWS SageMaker and AWS EC2. AWS SageMaker is a tool which
helps the data scientists and developers to quickly build and deploy applications
within a hosted environment. Also, AWS EC2 or elastic Compute Cloud is the tool for
providing scalable computing capacity across different virtual servers.
The Problem
For every single model that is going to be trained, deployed and exported, the
developers need to launch separate AWS EC2 instances, copy the models over to the
machines or to be precise the virtual machines and then again launch Flask or Django
based APIs to consume the pickle models. This is exactly where our client was
incurring too much cost for running AWS EC2 and SageMaker as they had to launch
new virtual machines each time they wanted to run the APIs which are eventually
based on different models. Deploying models using the AWS SageMaker dashboard
into a secure or scalable environment could be easily done with just one click. But, the
billing for the same is done based on the GPU instances and usage by minutes.
AWS Services Cost
EC2 (4x t3.medium) $ 133.3
EBS $ 15.0
Other AWS services
(including support)
$ 2
The testing phase:
Whenever our client wanted to test and train a new API, they had to launch a new
AWS EC2 instance. Not only this approach was difficult to handle and expensive, but
it was also the opposite of what our client had planned for using Machine Learning
models. Further tests implied that the EC2 instances were handling fewer numbers of
requests per hour. This test was conducted depending on some variables such as API
request, response data, and resource utilization. Tests also revealed that the EC2
instances are the reason for 90% of the total cost incurred by the client as the EC2
instances were idle for too long and at times, the virtual machines were serving as few
as 10 API requests per hour, or sometimes even less than that.
Our solution to the client
3. We had to keep in mind that there has to be a minimum number of instances running
just to make sure that the application can be accessed from anywhere. Rigorous
testing and analysis of APIs along with other variables were done such as the
following to make sure that we provide a robust solution to our client:
Resource Utilization
Request and response data size
Size of Python API code
Execution time (within a range of 200ms ~ 20000ms)
Memory utilization for processing request with pickle model (that was in a
range of 500mb to 2400mb)
Our decision was to architect the APIs with the use of AWS Serverless components
such as:
AWS Lambda
API Gateway
S3 for Storage
and AWS Cognito
Since our Model were bit heavier on size, we stored them in a S3 Bucket and packed
all of the deployable codes for Lambda and deploy using AWS SAM template. The
result was- reduced cost incurrence.
AWS ServicesCost Per month
AWS Lambda $ 15
API Gateway < $ 26
AWS Cognito for Authentication
{Less than 50K users}
$ 0
AWS S3 < $5
As it is visible from the above chart, the machine learning model with API running
costs came down significantly. Plus, it was also possible to serve more requests with
an acceptable performance level using the same architecture.
At Loves Cloud, we are constantly leveraging the power of various open source
software solutions to automate, optimize, and scale the workloads of our customers.
To learn more about our services aimed at digital transformation of your business,
check https://www.loves.cloud/.