Deployment and Productionization of Machine Learning Models – From Acme to Nadir – II

Bricks and concrete that builds a machine learning home: System and Architecture.

A Machine Learning system is an entity that comprises the whole infrastructure(infrastructure that includes all the hardware from RAM to normal platform building equipment), then it includes operating system that power our machine learning task and makes it simpler by providing a robust background. It also includes all the applications, software, and tools. It trickles down to encircle all the configuration aspects such as compatibility and also parts like data, and documenting the workflow bit by bit. 

A machine infrastructure encompasses almost every stage of the machine learning workflow. To train, test and deploy machine learning models you need services from data scientist, data engineers, software prog engineers and DevOps engineers. Infrastructure allows people form all these domains to collaborate and empower them to associate for an end to end execution of the project.

Some examples of tools and platforms are AWS(amazon web services, Google Cloud, Microsoft Azure machine learning studio, Kubeflow: Machine-Learning Toolkit for Kubernetes.

Architecture deals with the arrangement of these components(things discussed above) and also takes care of how they must interact with them. Think of it like building a machine learning home where bricks, concrete, iron, are like infrastructure, applications, etc and architecture what it does is, it shapes our home by using these materials, similarly architecture here provides that interaction among these components.

Versioning and Reproducibility: The “it” IT jargons

Let’s understand first what is versioning and reproducibility.

Versioning:

It is common software and IT practice where you create and manage multiple releases of a product all of which have the same general function but are improved, upgraded or customized.

In machine learning, for the given data different models are built and we keep track through version control tools like DVC and Git. Version control will keep track of changes made to the model at each stage and keep a repository.

Reproducibility:

During the research stage, the stage where we build a machine learning model . Once the model is tested and only then it is deployed. After Deployment this model is assumed to be used on the same data that is used to build the model and is expected to give the same results. We deploy the entire model pipeline, not just the algorithm. Reproducibility ensures the ability to duplicate a model such that given the same raw data as input both models return the same output.

Let me throw some light on what affects the reproducibility so that, it will help you understand better. Suppose the model that you built earlier was giving you a 20% error. Imagine that your database has been changed and when you try to build the model again you aren’t aware of the additional training data which your database is injecting to the model and therefore resulting in an additional error.

There are a lot of factors that affect reproducibility. These versioning and version control help us keep track of it. Mostly it has been seen during model improvement.

There are various other system challenges from reproducibility to configuration issues to data issues. In the architecture, there are key points like reproducibility, scalability: the ability of the model to serve a many people among other points that one must keep in mind.

So, this article was written mainly to give you insights on basic terminologies used in deployment. I hope you enjoyed the article.

Leave a comment