Automation in the Machine Learning life cycle

mediumThis post was originally published by Pallav Raval at Medium [AI]

Automation in the Machine Learning life cycle

Automation in simple words is the control of a process or a system using a processor with minimal human assistance . This is a noticeable trend observable across industries from manufacturing to healthcare. This automation revolution is comparable to the Industrial revolution of the 18th century.

Similar to how the industrial revolution was a step to scale up the production capacity from community level to a global level, automation is a step to increase the efficiency of production.The reason why automation as an idea became popular is because machines are now better at performing repetitive task with greater speed and accuracy than humans . Automation also saves a lot of time, thereby operational efficiency.

Automation in the computing domain is in the form of artificial intelligence or AI . AI as we know it , is the development of computer models capable of performing tasks that usually require human intelligence. In other words, AI is focused on getting computers to think and behave more like people, often to make our lives easier.

This domain is one of the hottest career choices in the technology sector this decade. The research output in this domain has also gone up fourfold which again proves that AI is a new technology boom.

Most AI problems have standard steps to approach the solution, these steps are in the order:

  1. Problem Description: A clear understanding of what the goal of the model needs to be understood at this step.
  2. Data Mining: Data collection for the relevant task needs to be mined or generated.
  3. Data cleaning: Usually normalization and outlier removal happens at this stage
  4. Model Selection: An appropriate model needs to be identified from a plethora of choices.
  5. Hyper-parameter tuning: Hyper-parameters are the parameters that a machine learning model can’t learn itself , so these are the parameters set by the programmer. Some of these hyper-parameters are learning rate, number of layers in a neural network, etc
  6. Training/Testing a model: This is the big machine learning part where the engineer trains the weights for a machine learning model. A traditional machine learning engineer’s job is limited to this point.
  7. Model deployment: Once the model is trained, the software engineer carries forward the task of integrating the model into the software
  8. Model Feedback and then back to step 5: This step takes the end user’s feedback to improve the model accuracy by further training it.

So these are the steps to solve an AI problem. The only problem in this life cycle is that every step is independent and use different applications for a particular step. There is a need to bring all these steps under one common roof or platform.

With so much machine learning development around the world it was realized that maybe some sort of automation could be achieved in its life cycle. Even for a simple step like model deployment there are so many options like BentoMl, Seldon core,etc.It was up to the developer to decide between which would be more suitable to their application.

Project Kubeflow aims to solve this problem by bringing all the available options at a particular step under one roof. Kubeflow gives us the option of choosing a library at each step without worrying about how they work underneath. Some options available through kubeflow are:

  1. Model Deployment: Model deployment in kubeflow can be done in multiple ways. There are ways like TFserving (Tensorflow) which helps you deploy tensorflow models as a container over a server. Then there are other methods like BentoML and Seldon Core which deploy models but for a larger group of libraries like SciKit Learn , XGBoost,etc. The developer need not worry about how these deployments works, they just need to select one of these deployment methods and kubeflow gets them running on the backend.
  2. Hyperparameter tuning: Kubeflow provides this facility of tuning hyperparameters through Katib . As a developer if your task is to identify the correct set of hyperparameters , Katib can help you you narrow down the possible solution. Katib just requires you to give a target accuracy value and it will suggest you the possible hyper parameter range values like : the number of layers in the required neural network should be 3–5 . The developer can now look at a smaller range to get better accuracy.

Kubeflow is just a start about what the machine learning future looks like. It may come up to a point where an ML engineer is completely responsible for the whole Machine learning life cycle .

There might just be one software where the engineer can train the model and directly deploy it without any external help.

Spread the word

This post was originally published by Pallav Raval at Medium [AI]

Related posts