William Galindez Arias – GitLab Demo: Leverage GitLab To Automate Machine Learning Pipelines
Leverage the power of Gitlab to automate tasks in Machine learning Pipelines, adopting DevOps to step-up the scalability and reproducibility of ML Powered applications.
Transcript
Hello, my name is William, and I hope you are enjoying GitLab Commit. In this demo, I will walk you through the deployment of application powered by machine learning models, you will learn how using the power of develop and develops, you can automate several steps from your own deployments, mixing traditional software engineering practices with machine learning pipelines to deploy better and more robust applications. This is my repository.
I have a chat book project, the one that to be deployed requires several steps to be executed. Let me show you how the chapbook pipeline looks like. Let's use this one as an example.
When I create a pipeline and GitLab, I get this visual representation here we can see the steps for this machine learning powered application. I need first to test the blood from make sure that he has the requirements needed, such as the proper version of the dialogue engine, the training data that the application will use to learn. Once I know I have the proper version of the library and training data, I can move on and train a model, which I will do from Getler on this is Step.
Good luck. We generate a machine learning model as an artifact that now I can use to test it again against my dataset and this is step I'm finding the performance of the model. I just train and beat an experiment or a deployment to production.
I need to keep track on a paper trail of my experiments, results and other metrics. And that's why there isn't a specific job for that. This job will create a report for me in which which I can observe my model metrics.
And lastly, if I'm happy with the model performance, I will back the model and deploy to production where it will be able to start having conversations with real people. That's what our chat board actually does. Ok, so now let's find out how to create this chapbook pipeline.
A. file and let's throw in the steps that we depicted before. We start defining as default raza dialogue engine container image, this is the image we will use in most of the jobs that involve machine learning.
Here I am bringing this image to my runners. The steps we saw before are defined in here as stages in the general file. So here I want to test do we have the dialogue engine version we want is the training data pre-process and in a format that we need to feed it to the learning algorithm?
If, yes, we make available the data for the next job, knowing the data is properly processed, we can feed it to the model and train it. And when the training is completed, I define an artifact, which in this case is the actual model. Our artifact will be the brain of the chatbot, and once I define it, I can use it in the next steps of of my pipeline.
Ok. I mean, this is that I want to test it and find out how well the model performs using data it hasn't seen before. This will give me an idea of how it could perform in real life.
The report that this is generates is a mess, Jason, so observer here, the power of the pipelines being developed, I can execute custom scripts that we organise that message for me and put it in a more reliable way, plus doing something very cool. I will add the results automatically to the wiki of the project. Here you can see I am consuming GitLab Wiki API to write in nicely formatted was sold to the wiki of the project.
If you want to know more, please visit the API documentation. And if all the steps so far were successful, it would conclude taking our trained, model, tested model to the production server. Here I am posting that model using the server API for this purpose.
Lastly, probably you noticed there were some variables in the five variables that potentially have sensitive information. For such cases, you do find those variables under settings CICD. And remember.
We had a wicked step or where we create some report, this is an example of how to generate the report created as an output of the pipeline. OK, so we have all the pieces. Let's see to get the flow for our objective in production.
Let's check it out, how it will look like. So, as usual, everything starts with an issue. In this issue, I will explain what laws need to be included in the chatbot database.
From the issue, I can create a marriage request, let's click on that now to work on the changes I want to use and GitLab with. I look at the file in charge of the child knowledge base data. Then I add the corresponding words, I want the child both to learn, and when I'm ready, I just click on it and this is the only manual step or intervention intervention we need so far, then good luck to start the corresponding pipelines that if successful, I will be able to merge the change into the main branch and serve the application into production environment or the environment that you might find.
Here we can see the merger request and the pipeline was successful. And as a part of the merger request, I get a little blood showing me the performance of the model when classifying intense. Let's say that I'm happy with such a result, so immerged.
The deployment pipeline starts. And we'll end up with the model surf interrupter ocean environment for these an area. This is a machine learning model server here, we can see it was successfully deployed.
And made active, it is ready to be used by end users. Cool. So we learn how machine learning pipelines can benefit from GitLab.
Bring into life machine learning power applications that use developed practices. Revisiting the original process, the steps we can see all the potential of going from manual and error, from steps to fully automated ones, making this way the life of the developers and machine learning engineers easier. Thank you for watching.