Original article was published on Artificial Intelligence on Medium
I built a Machine Learning Platform on AWS after passing SAP-C01 exam
After getting my AWS Certified Solutions Architect — Professional certification, I was wondering: was it worth it? And does it give me enough knowledge to architect a platform?
So, I decided to put it to the test: I tried to build a Machine Learning Platform on AWS.
The result? This certification is definitely worth it: Properly preparing and passing it gave me the necessary tools to look at the big picture, see all the little moving parts. But it is not enough… In order to achieve this, I got inspired by what big companies with great expertise in this domain did, like Uber with their Michelangelo, Netflix, Comcast and many others. Amazon’s client’s use cases helped me have a good vision of how they harnessed AWS’s power in order to face this challenge.
This article is the first of few upcoming others in which I am going to describe my journey in building a Machine Learning platform on AWS.
In this first article, I am going to give a high-level overview of the platform I am trying to build.
1 | Why a Machine Learning platform?
Nowadays, companies are starting to take machine learning models more seriously. These models are being seen as a potential, if not the best, solution for a lot of business use cases. As a result, a lot of data scientists emerged to tackle these use cases: All it takes is a Jupyter notebook and some data, and we have a functioning model with a low error rate and a set of optimized hyperparameters.
However, the moment companies decide to really use this model and take it to a production environment, they realize that getting a functioning model is just a first step. A bigger challenge is yet to solve: how to take this functioning code from a Jupyter notebook to a highly available, scalable and secure production environment? To face this challenge, building a Machine Learning platform is mandatory.
2 | What is a platform anyway?
A platform is a set of ordered layers communicating with each other in order to produce a result. Each layer has one and only one dedicated role. These roles define the boundaries of each layer: the more these boundaries are clear and well defined, the more the platform is solid, scalable and easy to maintain.
Four layers can form a platform:
- Infrastructure layer: Layer bringing energy to the platform: it contains the bare metal servers, virtual machines, storage system, etc. Architects & DevOps Engineers need to build the right architecture for the infrastructure layer so that this platform can survive disasters and guarantee a continuity of service.
- Software Layer: Layer containing software solutions: these could be the operating system (Linux, windows), software for load balancing, software for security management, databases solutions, etc. Architects & Software Engineers are responsible for choosing the right software stack to cover the platform’s features.
- Framework Layer: The brain of the platform: this layer contains the framework capable of bringing a machine learning model to production. This framework is a set of well-architected patterns and well-developed features which answer a use case landing on the platform. Architects & Software Engineers are responsible for building a reliable design for the framework and designing strong data patterns.
- Use cases layer: this layer contains the description of new use cases landing on the platform and the Machine Learning models solving these use cases. Business Analysts & Data scientists work together to understand use cases and build strong machine learning models which produce convincing results.
3 | Now, what are the key steps when dealing with a Machine Learning platform? And what challenges can be faced in each step?
Four key steps to land a use case on a Machine Learning Platform and each step involves a lot of challenges: