Machine Learning System Design 2
Part 2 of the 3 part Introductory Series on Engineering Machine Learning Systems.
Machine learning systems design is the process of defining the software architecture, infrastructure, algorithms, and data for a machine learning system to satisfy specified requirements.
These series of articles aim to provide an insight in the subject. Check out the video in the link about on the channel to watch the webinar.
Standardization is crucial to effectively manage the resources available. There are tons of different ways of serving models. Some popular model serving frameworks include flask, kubernetes, kubeflow, seldon and many more.
Effectively to simplify productionizing a machine learning model we could:
A technology that can help facilitate standardizing deployments:
In the first figure, the management of storage is inefficient and tedious when the three virtual machines are of different operating systems. To combat this issue, we apply the concept of containerizing applications.
The second figure depicts containerization. In containerization, we effectively abstract the run-time engine. Applications are packaged in such a way that they benefit from a shared memory practice. Here, dockers/containers are elastic by their nature compared to virtual machines in the sense of usability of the infrastructure. Also, the time it takes to spin up a container is much loer compared to a virtual machine.
In this mechanism, the application can be packaged in such a way that there is no changes in its core properties.
Some simple docker commands are:
𝗟𝗶𝗸𝗲, 𝗦𝗵𝗮𝗿𝗲, 𝗦𝘂𝗯𝘀𝗰𝗿𝗶𝗯𝗲
Thank you for sharing your time with us!