Latest / Agentic Conversations (formally mlops.community) / MLOps Meetup #26 // How to Leverage ML Tooling Ecosystem // Mariya Davydova - Head of Product at Neu.ro
Transcript
- 0:18We have a great talk today. I am very excited to announce
- 0:25that Maria is with us and she's going to talk about how we can
- 0:29Leverage This ml2 in ecosystem, how we can make the best out of
- 0:35it? Because I imagine a lot of you
- 0:39are like me and you've maybe played around with a few tools,
- 0:44but there's so many and how can you make them work together?
- 0:47What can we do to make them play nice?
- 0:50Right? Just a bit of background of
- 0:51Maria she comes from a software development background and she
- 0:58started her career as a Java developer.
- 1:00Soper. And then switched over became
- 1:02more and more interested in ml Ops and AI for the last couple
- 1:09years right now. It's been it's been a few Well,
- 1:16Paul a little bit of a year. Pizza.
- 1:29Four. I'm not sure if it's me or if
- 1:34it's you but I think one of us is breaking up.
- 1:40So look. If you what we can try to do for
- 1:48now is we will turn off video see if that helps with the
- 1:56bandwidth for you. I know it's not as cool but yeah
- 2:04we'll see if that helps. We all liked the video and I'll
- 2:09just finish this intro. We'll see if the Your connection
- 2:14stabilizes but really came to Ai and ml.
- 2:20I think she said she's been doing it for over a year over a
- 2:24few years. If anyone else caught it, please
- 2:27correct me and she's finished a lot of books, read a lot of her
- 2:32done. A lot, of course has finished a
- 2:33lot of books and wrote a fictional series on AI which is
- 2:38very cool. Now she believes that proper
- 2:42tooling. NG and decent development of
- 2:46operation practices is essential success for machine learning and
- 2:52I think we all can agree with her on that one.
- 2:54That is something that we are here for, right?
- 2:58And if you've been in our slack, which Shameless plug, we have a
- 3:02slack, and go ahead and get it. If you're not in it, Chris can
- 3:07drop a link to that in the chat. Maria is Super Active on there
- 3:12and very helpful. For.
- 3:14She was the one who had the initiative, she created the
- 3:18initiative to start a questions and answers channel.
- 3:22So if anyone has questions about different things that are coming
- 3:27up, when you're in your ml, Ops life cycle, she's there to help.
- 3:32There's a few other really smart people that are in their way
- 3:34smarter than me. Yes, you can imagine and they
- 3:40Are very generous with their information, their knowledge.
- 3:43So if you have any questions about anything, ml Ops related,
- 3:47get in there, ask questions. I'm sure.
- 3:49Maria will be happy to help you. Now, let's see.
- 3:53Here is the million-dollar question, has your internet
- 3:59stabilized, Maria Well, do you hear me?
- 4:05Yes, that is a first. Success, we do here?
- 4:08Yes, success. Yeah, because I had all your
- 4:11last talked last several minutes.
- 4:14So probably it's more or less stable.
- 4:16Now, you know, it's not sound like a problem with Internet and
- 4:20overloaded mobile systems as themselves, but also, it is a
- 4:24problem of a lot of people coming to the countryside in the
- 4:29middle of summer. And it's yeah.
- 4:33And it's also. Also, it's raining.
- 4:37Another kind of trouble. Yeah, baby.
- 4:41Can we try with the video on? And if it gets too crazy, will
- 4:44shut it off again. Yeah, let's do it.
- 4:48Let's do it. Let's see if it works.
- 4:58Oh, I can't stand his myself. Wow.
- 5:01So please do wait. Do I need to turn your video and
- 5:05yes. Yeah, because they call sculpted
- 5:07icons. Let's see if we can figure this
- 5:13out. There we go.
- 5:15I think I turned it off D. So I got it back on.
- 5:17All right, we got it. This is okay, thank you all for
- 5:22sitting with us in these hiccups.
- 5:26I appreciate it. Now, let's get into it.
- 5:28You wanted to talk to us today about leveraging, the ml tooling
- 5:33ecosystem. What exactly?
- 5:36Which tools are you going to talk about?
- 5:37What do you want to talk about? I know you have some slides
- 5:40prepared, joint, just jump into the slides.
- 5:44Yeah, well, let me start with small intro about it and then
- 5:48they will jump to the slides so well and it hurts about this
- 5:54talk. And when I Was preparing for it,
- 5:56I thought, okay, we have a lot of experience in ml operations,
- 6:01and I will show you an ideal project who is ideal pipelines,
- 6:06which we use for our clients. And then I started preparing the
- 6:13deck and diving into the details because actually I'm head of
- 6:18product. I know what's going on, but I'm
- 6:21not the person who writes this by blinds and all these
- 6:25Integrations. So I started diving into the
- 6:28details. I also watched several talks
- 6:32from previous meetups and I suddenly realize that this is
- 6:37not ideal. I will show you what we have now
- 6:43and I will describe briefly, which directions of improvement.
- 6:48We see and where are we going with it?
- 6:51So anyway, I want to show you how we built a complex system,
- 6:59integrating a lot of various tools in the water system on the
- 7:06basis of some generic or or and let's jump to my slides.
- 7:11Yeah. And as I'm doing that I think
- 7:14what you had told me and correct me if I'm wrong.
- 7:17I'm sure you're going to get into it.
- 7:19The tools that you are using are using a bit of DVC.
- 7:24Get Selden you're also using airflow.
- 7:29Is that correct? Yes, Griffon.
- 7:32Uh. Yep, and I think there's a few
- 7:36more in there that I may have forgotten, but that is the whole
- 7:40thing, so we can't go. There we go.
- 7:43Now, we see your screen. It's why I'm trying to run
- 7:46present, but it's oh, that's what it is.
- 7:51Awesome. So you see I like the colors,
- 7:54which he used, we have the same a metaphorical this.
- 7:57Oh, yeah. Yeah, we are. well, I know
- 8:04that's represent a vendor here, so I need to be very cautious,
- 8:10but still, I will start to little bit about our product
- 8:15without there are 30,000 kids and let me start first of all,
- 8:22with a task, which were going, which we are going to solve in
- 8:27this particular example, which I wanted to show So we are solving
- 8:32a very applied problem. One of our departments is doing
- 8:37a mail services for different countries around the world and
- 8:42we are doing a very applied pro wrestling, a very very applied
- 8:45program. We need to develop and deploy an
- 8:48object of ignition system or retail.
- 8:51So you see to the right the image, what our clients want to
- 8:58see is have this all stuff to be found and recognized.
- 9:12So the problem here is mostly in the production rather than in
- 9:18the machine learning box. So new data arrives daily.
- 9:25We need to retrieve the model very often as You're dead to
- 9:28rise and we need to redeploy this new models as soon as we
- 9:32get one from addiction. Well, the nature of the task is
- 9:35that the people which want to have a system, they go around
- 9:40different shops, make a lot of new photos.
- 9:42You get new kind of soldier trips that say that about you
- 9:46have to retrain. So yeah, that's that's the main
- 9:50problem. So, To solve it.
- 9:56We need some core on top of this core, we built Integrations.
- 10:03And as a core, we have our own product which is Euro platform.
- 10:09The main part of it is a resource of castration is a
- 10:14platform which is based on top of kubernetes.
- 10:16Its infrastructure agnostic. You can write it in clouds in
- 10:20premise in hybrid installations of Five attempts of the clouds.
- 10:27It has some additional perks over kubernetes like SSO, single
- 10:32sign-on, role-based access control, it has Ingress out of
- 10:36the box so that you don't have to set it up and it has unified
- 10:42simple interface and allows me rating between various
- 10:47infrastructure becomes very smoothly.
- 10:49So like you can, for example, if you are starting Top, which you
- 10:54got a lot of credits from Google.
- 10:56For example, you can install europea, then you will run out
- 11:03of this credits and install our own.
- 11:06Your Adobe has installation with another ton of credits and
- 11:09migrate very smoothly without changing interface or any habits
- 11:12or something. But that's not the point of this
- 11:15thing, it's hides their infrastructure from you and
- 11:19gives you a bunch of abstractions which can be used
- 11:22to build. High levels of of the product.
- 11:28So the concepts actually are clusters storage.
- 11:33Look at images and drops, four more four main Concepts.
- 11:37We work with clusters aggregation of your compute,
- 11:42CPU, CPU storage and Docker. Registry.
- 11:45Private registry on the platform storage is an obstruction over
- 11:54network storage or object storage or distributed file
- 11:58system. If we speak about on-premise
- 12:01installations, it's just an obstruction that gives you
- 12:08another, another view of your file management.
- 12:14You do not have to think about particular, emotional particular
- 12:18Drive, where your data is or your files.
- 12:20Are you just have a uniform. Unified interface to access them
- 12:28as parts of your personal name, space or the name space of your
- 12:32team like you again. You don't think about
- 12:34infrastructure, you just deal with storage which does
- 12:37something behind the scene, but you don't have to think about
- 12:40it, everything which happens on the platform.
- 12:44Kevin's insides Docker containers.
- 12:47And we can use images from public Registries as well as
- 12:50private version of the platform and in execution, On hearing it
- 12:54is called drop. So in the example to the right,
- 12:59you see how we run a job, which has a name trained in the second
- 13:05level two. Yeah.
- 13:06Which has a name train which actually runs Project drink by
- 13:15Script, it's is executed on GPU small percent which is a parts
- 13:21of cluster. So when you're on a job, you're
- 13:25not think again about the particular machine that you just
- 13:27need to think in terms of what kind of resources I need to
- 13:32these unit to execute. So we're on it on GPS.
- 13:37Small preset, which is enclosed usually.
- 13:42Katie and with the Tesla would be you, you run it with some
- 13:47parts of volume, some Williams, some parts of the storage
- 13:52mounted, and on some public, or private, in which, which is in
- 13:56this case, your mission base. So that's that's actually these
- 14:03are four main Concepts if you want to.
- 14:08You can build actually, whatever you want on top of this
- 14:12Concepts. If you have enough drive and
- 14:16energy and time and decided to do that, you can build anything.
- 14:22But the main question is that Enough to solve our task.
- 14:30Of course, it's not because it's generic platform which doesn't
- 14:38refer to machine learning or machine learning operations.
- 14:41To be honest, is just a resource orchestrator, in this part of
- 14:45it. So what you need, you need
- 14:48tools. And here's an interesting
- 14:51question, which I guess any company like ours has The
- 14:59customer would like somebody to see all the tools in one place.
- 15:04Like, have a unified interface for everything they need.
- 15:10For machine learning off of machine learning preparations
- 15:13data registry will be the same interface, which is model
- 15:17registry with the same interface as pipelines or something else,
- 15:20whatever they do not want to have a bunch of different tools
- 15:24and to set them up manually. But at the same time, you need a
- 15:29tremendous amount of resources to create a product which does
- 15:34everything and probably you won't be able to do that after
- 15:38all because the tools in this field are changing so fast.
- 15:45And you may think about integrating or writing your own
- 15:50engine for hi Roberta tuning and then someone like Facebook
- 15:55releases and You cool Library, which does the same, but 10
- 15:59times better. So you will be, you will already
- 16:04be behind. So we realized that we clearly
- 16:09are not capable of doing everything by ourselves.
- 16:13But why we went into the direction of Integrations and
- 16:19then I want to show you some examples of tools how we
- 16:23integrate them for which purpose, So if we split it, I'm
- 16:32sorry if your splits at their email project process into two
- 16:37stages, two major stages like development and production.
- 16:43In development, we use these number of tools we use cookie
- 16:48cutter for scaffolding and actually, it is hidden from the
- 16:54customer, we have a cookiecutter template, which is public but We
- 16:57have a commands in our see a lot of which restaurants this
- 17:00cookiecutter template if someone is unfamiliar with cookie
- 17:04cutter, it's a python tool which allows you to define the
- 17:12structure of files and directories, which you would
- 17:17like to use for a project like you run cookie cutter from this
- 17:22Guitar Hero and you get structure.
- 17:27Open your project with some variables replaced with, with
- 17:32the ones which you provide W, Carter.
- 17:34So it's trans ask you a bunch of questions and creates a template
- 17:37for you is extruded popular. And B, then is used for Jungle
- 17:43very actively and it's also used in data science, the
- 17:46preservative popular data science.
- 17:50I don't remember exactly how it's called, but again, very
- 17:53easily. Find Cookie.
- 17:53Cutter data science, templates, and we created a separate one
- 18:01for us, which actually integrates all these other, not
- 18:07the tools for the development so that you can run them in a short
- 18:12amount from a make file, we run jupyter notebooks for
- 18:16experimentation, we're on Dental Board.
- 18:19Vote for experiment, tracking by Chan, professional is normally
- 18:24used by our developers for photo editing and debugging and for
- 18:30the quite sharp professional. Which is I think only not open
- 18:35source tool in the list. Table show you, you need to have
- 18:39a license first and then you need to have a small setup, but
- 18:44it's also very useful and We used to get about management
- 18:52because you get this template from kids at you are expected to
- 18:57push it. And there's a git, ignore file,
- 19:00and the specific structure. So we imply that our customers
- 19:03going to use get and for data and Model Management in
- 19:08development stage, we use simply our storage.
- 19:13In these in these parts. Neither the data.
- 19:17No models are very short because we spoke to a lot of people who
- 19:25run many experiments in development stage like the place
- 19:29when you just try different models and see how it goes, they
- 19:33rather interested in running at Jupiter notebook or running
- 19:38training with one command rather than dealing with It's a version
- 19:43in his mother versioning because actually you are not really
- 19:48interested in all this production rate, stuff until you
- 19:54get a first decent model. So in this particular
- 19:58development template, which is afforded by Cookie Cutter, we
- 20:02just use our storage as applicants and that's it.
- 20:06So project templates months just to give You some understanding.
- 20:13As I said, you run in it, you answer a couple of questions
- 20:17from we gotta and you'll get a structure and make file, which
- 20:24contains very short commands to run on Europe.
- 20:27As you saw, the commands actually pretty long You saw the
- 20:33example on the previous slides, but my file adjusts brings
- 20:38together all the variables and all the volumes to mount and
- 20:44hides all these details from you.
- 20:48So that's actually interesting, but not really, because if you
- 20:55want to develop, you still can simply go for call up or you can
- 21:00go for I don't know, uploading your code to remote server.
- 21:05If you have access to it still it requires some ate it.
- 21:11We may make it more convenient, but it's not the main problem in
- 21:17the world of machine learning today.
- 21:20And here, where the problems start real problems, when you
- 21:24want to make it in the production.
- 21:27And for the production, we decided to integrate.
- 21:32Is cool and proven tools from open source world.
- 21:39We write pipelines real fast. I was just going to ask you, you
- 21:48mentioned. Yes, this here.
- 21:50The problem starts when you want to make it into production, why
- 21:54is is that Um, because in production, you have to bother
- 22:05about so many things, I have to bother about the versions of
- 22:10your data. I have to bother about the
- 22:13stability of the deployment actually, you have to deploy
- 22:19this stuff, somehow somewhere you have to balance the load.
- 22:25You have to Monitor if the model behaves.
- 22:28Well, after some after sometime, after a lot of new data, right?
- 22:36It's just too many things to think about, when you develop
- 22:42your not concerns about the quality of the court, you are
- 22:46not really concerned about whether it will.
- 22:52I don't know. I think that it's where you just
- 22:59develop the model you mostly get fun but to any you come to
- 23:03production you have to make it profitable for your business and
- 23:10here's where the fun stops. We have to make it work.
- 23:15Automated stable as a clock and here you're a really needs a lot
- 23:22of additional tools. Great point.
- 23:28So so we are, there are actually two slides with a production of
- 23:35apples. This light is devoted to the
- 23:38ones which are platform level, like, not even small tools that
- 23:45you can run on the platform, but entire huge, whatever that you
- 23:50have to run along the platform. We use air flow for pipelining.
- 23:56And technically there is a separate installation which runs
- 24:00on the same kubernetes cluster and knows something about the
- 24:06storage which has some specific components has taught kids,
- 24:13whatever. I'm not sure that.
- 24:15What are the questions? Our ml Engineers Emma loves
- 24:18Engineers. So it has to run nearby the
- 24:21platform. Will you sell them for
- 24:24deployment? It's also separate installation
- 24:27and sell themselves, a whole bunch of problems for us related
- 24:32to not only providing the API in the development mode, we can
- 24:40host job on a platform which provides an API using, for
- 24:45example, first server. But when it comes to production
- 24:49deployment to your needs to balance loads, you need to
- 24:52capture a bunch of metrics, you need to monitor all this stuff.
- 24:57Seldom does exactly that for us seldom does even more.
- 25:00We just, to be honest, don't use all its functionalities.
- 25:04We just exploring and we'll use more obvious criticism, like,
- 25:08A/B Testing of models, and it's that kind of stuff.
- 25:12And we use grow fonder for monitoring, mostly because it
- 25:16comes together seldom, but they are already integrated fine.
- 25:21So your Instagram fun and Southern Brides looks to permit
- 25:24has refineries this. Flocks and that's go smoothly.
- 25:29And I can show you how the dogs, the pipeline's for this
- 25:37particular use case. Look, we have three pipelines,
- 25:40three main pipe lines, one for data pre-processing.
- 25:44When you have a new bunch of data you potion and you want to
- 25:53merge it with existing data set and Make us bleed to train
- 25:58validation and test as usually like just just mix mix and make
- 26:03and your data set so this pipeline or separates and your
- 26:06data portion. And the base data set to use and
- 26:10Grace, if you did the sets, another pipeline takes a data
- 26:16set and the model coat and base model.
- 26:21In our particular case, we retrain the model.
- 26:24So we use some model too. To build another model top of
- 26:28it. So it takes a model version
- 26:31data, version a cold version, and creates a new model, and
- 26:35puts it puts it into the registry.
- 26:39And just for you two to understand the most, the most of
- 26:47these rectangles, the steps in airflow, they happen right on
- 26:51the platform. So that's an elephant
- 26:54aggression, which we have with our fault, we have our custom
- 26:58plugin, which knows how to work with a platform.
- 27:01Despite the fact that are forced out of the stands there beside
- 27:05it, besides then your installation are for knows how
- 27:09to talk with a platform and how to round trips and they eat and
- 27:13how to read storage. And so on so forth.
- 27:17I mean we could use vitamin C line but this kind of
- 27:20integration is more is more powerful because we can do more
- 27:24cool stuff there. So these rectangles I guess all
- 27:31of them which are white Yeah, yeah I guess that's why it's
- 27:36rectangles are full of has some weird scheme of coloring.
- 27:39That's the only problem, which I have those two players are
- 27:42Floyd, don't remember, it's their color scheme but I guess
- 27:44that's white rectangles around on the platform.
- 27:47So training job happens on the platform and all the validations
- 27:52before training after training committing the model.
- 27:55Everything happens on the blacktop And then the last
- 28:01pipeline is, to get a model and to deploy it to inference.
- 28:08And you can see that these dogs are pretty large, not only
- 28:13because there are a lot of steps involved.
- 28:15But also, I mean, a lot of logical steps involved but also
- 28:20because there are a lot of checks, like you're on a dog,
- 28:24but you have to provide some arguments and if you A good,
- 28:28forget them, or if these arguments are invalid, them talk
- 28:31should fail and should tell you precisely what happens.
- 28:35So if you forget to, if you're on this Dock and forget to give
- 28:40a model, then the it will fail and you will clearly see that it
- 28:45fails because you forget to provide the model.
- 28:47Like the most simple example here.
- 28:51And like you get a model you find your validated your run.
- 28:59Inference here are monitoring, you can open up the interface of
- 29:05each of these tools right from the dark.
- 29:10So, for the production, it became the major source of
- 29:14information. And also it's worth mentioning
- 29:19that to we use meat for keeping the dogs themselves.
- 29:27So airflow ducks Stored in a separate key, triple.
- 29:33And every minute if I'm not mistaken, airflow installation.
- 29:39Pulls the docks and redeploys them if it's needed.
- 29:44So the three main ducks and a couple of other ones, which open
- 29:50up the ends of the boards and a couple of other tools, Again, I
- 29:57see a question here in the chat from Yvonne is asking how many
- 30:02models you have in production so far?
- 30:06well, in this particular example, 1 So we speak about
- 30:10what a bunch of that for one model which is being updated
- 30:17perfect, but actually each duck, each each task requires another
- 30:27bunch of ducks and another resources.
- 30:34And in this particular case, we run all this stuff on a
- 30:37dedicated cluster, which is used By our internal team.
- 30:42And in this class the right now we're you know we're under this
- 30:46model. Our approach is basically to run
- 30:50a model or a bunch of similar models per cluster, making a
- 30:57cluster in the euro is pretty simple.
- 31:00So we opted for splitting splitting resources for models,
- 31:06it's easy to Monitor and to understand what happens with
- 31:08them. So this these are three major
- 31:15pipelines and this is example of graphing, a monitoring.
- 31:18You may see that, maybe this graphs are not really
- 31:24interesting because in this particular case our Lobster to
- 31:29the years around, all these pipelines on a copy of the
- 31:33project, not the customer project but on But they but they
- 31:41used cocoa dataset and some basic model just to demonstrate
- 31:44the stuff. So not not much data.
- 31:49Can be seen on this on this Grand Final screenshot.
- 31:54Also also lets the first part that's when you need huge tools,
- 32:02which run together with the butter amend have to somehow
- 32:06communicate with it. Another bunch of those is the
- 32:10ones which will use you use for management of various species.
- 32:17And the first one of the most complex one, I guess, is data
- 32:21management for which we use the VC.
- 32:25And we use it together with our storage and what actually
- 32:29happens we keep DVC files. You know the DVC upon the normal
- 32:38workflow we still see is when you have it but in our case we
- 32:43decided to start with a version without get.
- 32:47So when you commit something to do see you get a bunch of DVC
- 32:52files cases and we kept We keep these files on the platform
- 32:58storage, and we have a bunch of directories one version for data
- 33:04set version. And we can always grab these
- 33:09divisive files and copy them to a predefined location and
- 33:13restore the data set. It's actually pretty similar to
- 33:17get, but instead of having Russian control stuff.
- 33:23You have a bunch of folders which actually works because
- 33:27these files are very small and this is not a problem to give
- 33:30them alongside the the data. So the pipelines which was does,
- 33:40which do the processing. They pull data, according to the
- 33:44CDC files, they do whatever they want to do with it.
- 33:49And the data is the Your data is at this point, is also kept on
- 33:54the storage and the volumes with these data are mounted to the
- 34:00jobs. It's works surprisingly fast.
- 34:05I must say because This is this is high for both network
- 34:11storage, which we normally use and it gives you a high speeds
- 34:15and it's not that huge problem that we expected it to be.
- 34:20I mean when we have some additional storage some like
- 34:24network storage, we would expect that it'd be way too slow to
- 34:30make any data modifications but in case of, in our case, it
- 34:35turned out to be just fine. So We do all the stuff with data
- 34:39on storage and we update the data sets and copy.
- 34:44The Visa files to getting a location.
- 34:46That's our current workflow. Is it for the code management
- 34:51again? Right now, we use storage
- 34:56itself, we don't use get, and the code is copied the storage
- 35:01during the development stage. The reason for that, at least,
- 35:06at the current point, Is that the court changes, very seldom.
- 35:13At least point of the development, the data changes
- 35:15but the codes have the changes at all.
- 35:18So there is some model, which is being retrieved.
- 35:22I mean, the court has some water, which is being called
- 35:24trained team. Doesn't need a lot of attention
- 35:26from ml Engineers, for the model management for use Thunderbolt.
- 35:31I will show you a screenshot in a moment.
- 35:34And all met information is also kept on storage.
- 35:37On the mat. I mean stuff like which model
- 35:41which base model and which data set were used to create this
- 35:44particular model so that you can trace back how this model was
- 35:49created and reproduce it and environment management is done
- 35:56through their platform, registry and pre-built, images are copied
- 36:01again, the images do not change very often so we just Greed,
- 36:08then during the development stage and keep them there.
- 36:11So every time you need to change environments environments, I
- 36:16mean, Dakka Dakka, images are barriers and call it.
- 36:20You just need to copy it from yellow, perfume from your local
- 36:24machine to the bathroom storage. That's how it works now.
- 36:30So the data registry in this toy example which well Ops Engineers
- 36:36prepared for me for this presentation, looks like this.
- 36:39You can see the bunch of folders in file browser.
- 36:44Well, browser is another tool that we use inside the platform.
- 36:48It's very handy way to monitor the files on your network
- 36:53storage. So, you can see that there are
- 36:59several versions of data and these to create this data
- 37:06versions, We have a special script which looks through the
- 37:10content and features out the number of the next version of
- 37:16the data. So that, I mean, this is
- 37:19important because we started with using the current time The
- 37:24timestamp times them. But when you have a time stamp,
- 37:29it's really hard to compare something.
- 37:32And when you have D 4, d, 5 D, whatever.
- 37:36It's becomes so much easier. So we decided that it's worth
- 37:40writing small script which going to help us to monitor this stuff
- 37:46and for more the registry right now, we use pencil boards which
- 37:51runs on top of the folder where all the All the locks are kept.
- 37:57So we can always compare different versions of models.
- 38:00Like, in this particular example, I have three and zero
- 38:03and one and two and I can see the Matrix I can see the number
- 38:07of it will blow sent, all that kind of stuff. so, That's
- 38:16definitely not the end of it because we understand that there
- 38:22are a lot of issues in this particular Pipeline and this
- 38:29solution and the most important thing that we want to do and we
- 38:33will do pretty soon. We want to make a prophecy, ICD
- 38:38someone recently, shared a nice story in the chat in Slack.
- 38:45Of the community which, which showed three types of Emma loves
- 38:53maturity for a team when you do everything manually, when you
- 38:58have some pipelines, but you're still around the manually.
- 39:01And when you have CC ICD, like in this particular case, which I
- 39:05show you, we run pipelines manually.
- 39:09And what we want to do, we want to have a CI CD, of course.
- 39:13So we want to use get. And so we want to have a proper
- 39:19automated Behavior. Like new data comes, great racer
- 39:24train and no new data. Chunk comes, let's make a new
- 39:28data set. Your data set appears in get
- 39:32through DVC lights, retrain, the modern to keep it inside the
- 39:36registry and you model. It appears again, let's return
- 39:41to keep it into the registry and you modal.
- 39:44Register a let's deploy in death and Waterman's production
- 39:48environments is still a question and we think that it should be
- 39:52done Mary on the manually, but you have to understand what you
- 39:57are doing. When you are trying to deploy
- 40:00production model. But for these for these
- 40:05development stuff, we actually have to implement this this
- 40:13computer continuous integration computer continuous deployment
- 40:16stuff. And also, there are some
- 40:19improvements which we can Envision right now and I think
- 40:22that there will be more that we oscillate like we could build
- 40:27Docker images right on the classroom, instead of copying
- 40:31them. Being with them because well
- 40:34it's somewhat makes it harder to reproduce because you may lose
- 40:40the image in the prior charges through after a while you may
- 40:42delete it. But if you build an image from a
- 40:46Docker file, every time you want to run the pipeline and then we
- 40:49are just fine. You can reproduce in exactly the
- 40:52same environment which you had two months ago or seven months
- 40:57ago, whatever. And we are not really satisfied
- 41:01with our Moderator. See solution.
- 41:04We are looking into something like a velcro and we'll probably
- 41:08use it or maybe something else. There is plenty of modern
- 41:13register tools on the market right now.
- 41:16So we're just creating current looking for a best one, for this
- 41:20particular case, So that's basically it which I wanted to
- 41:26show you today. Thank you so much for that.
- 41:31I have a few questions. I'm sure other people have some
- 41:34questions too. Yeah, and I really think it's
- 41:38fascinating how you've been able to build one, level up, and take
- 41:44all of these tools and put them together so that they work
- 41:48seamlessly and people don't have to think about, you know, Can
- 41:52standing everything together. So my question comes in.
- 41:57How long did it take you to put this whole pipeline together and
- 42:02create this whole product? Because I know there's a lot of
- 42:05people out there that are going through the whole build verse by
- 42:08question. And when they think about the
- 42:11build I'm sure it would look or some people have thought about
- 42:16this this exact solution, right? Like oh well, maybe I could
- 42:21piece together DVC. See.
- 42:23And put some Selden and then I monitor with profound.
- 42:27No, but I'm wondering. What, how long have you been
- 42:31doing it? What were some mistakes that you
- 42:34learned along the way? Well, all I have to, I'm trying
- 42:44to remember, actually, I remember that initiative when we
- 42:49wanted to make this particular pipeline, it was like, okay,
- 42:53well a lots about these tools. Let's make a pipeline for these
- 42:58tasks are two weeks enough. Yeah, fair enough.
- 43:03Let's do it. It was a guess for months ago,
- 43:08something when we started doing it, actually, the sad thing
- 43:13about amylose is that it takes so much time to set this stuff
- 43:18up. Really a lot of time and we had
- 43:22to experiment. We had to think about stitching
- 43:29all this stuff together and make a I think about making it
- 43:34useful. Because one thing is what our
- 43:39envelopes Engineers want to see. Another thing is what clients
- 43:44want to see because they are going to use this by blinding in
- 43:47relatives. We need to provide some
- 43:48additional stuff for them, which is not there yet.
- 43:51Like, they clearly do not want to upload a data chunk to the
- 43:57storage and then run a pipeline manually when it's so prepare
- 44:01some cool web form for Them to upload and do everything else,
- 44:07they're magically, you know. And another think what am L
- 44:12Engineers, which create the model itself want to see.
- 44:16So we are trying to collect all these opinions and improve
- 44:20Improvement and growth and I think that it's gonna take
- 44:23another couple of answer, to the very least, to make it
- 44:27something, which I will probably finally call Ideal And what do
- 44:32you think was some of the stuff that held you up and you because
- 44:39you budgeted for two weeks? But then it's taken four months
- 44:44or so? What was it?
- 44:46That that came up that you didn't foresee all well, it took
- 44:54a lot of time to understand how data versioning works.
- 45:01Because it was not really clear from the first from the first
- 45:05view. Another serious issue was how
- 45:11to, how to save information for being able to reproduce an
- 45:19experiment because you need to drag the exact versions of
- 45:26everything called data model itself environments.
- 45:31And stuff to be able to reproduce it and with that for a
- 45:37while how to do it correctly that we tried a couple of
- 45:41different ways and this version management stuff also took some
- 45:46time. Like when you start with
- 45:49timestamps, it looks so obvious. But as long as the amount of
- 45:55versions gross, you said, no understand that you can deal
- 45:59with it because You just don't do, can't read all this stuff
- 46:03through. It's just not human friendly.
- 46:05Yes. Oh yeah.
- 46:07And maybe some other things. Oh, to be honest, it's I'm
- 46:11speaking about what I participated to you, but there
- 46:15is also a staff from infrastructure site like how to
- 46:19install seldom appropriately. How to make seldom work with our
- 46:24storage, how to make airflow and We'll just install air flow
- 46:33provides correct level of permissions and make it.
- 46:41I don't know what exactly was the problem.
- 46:43I don't remember, but there were some installation issues, quite
- 46:47a lot of them, so that was another team who was working
- 46:50with that. But still, it took a lot of
- 46:51time. Yeah, I believe it and that's
- 46:54something that I know it's. It seems trivial, would you
- 46:59looking at you go. Yeah, we just piece these few
- 47:03open source tools together and in two weeks we'll have it
- 47:06working. That'll be fine.
- 47:08But we already have them. What's a problem?
- 47:11We can do. Like, we also don't use the
- 47:13vcu's mo flow of the, of course, yeah, it should be easy, but
- 47:20it's never that easy, right? Absolutely not absolutely not
- 47:26and it's not that I would assume that this is our team's problem.
- 47:32Like, maybe we are stupid, we can't deal with it.
- 47:35But actually we talked with a lot of other teams and most of
- 47:40them, they need several months after half a year to create a
- 47:44proper pipeline in different tools.
- 47:47People, use cute flow, people, yours other stuff.
- 47:51It's just hot, it just as it is for now but today.
- 47:56Yeah. And is there any specific reason
- 47:59that you feel? It's is so hard, is it because
- 48:03it's not mature? The tools aren't as mature or is
- 48:06there something else that you think is it?
- 48:08Because just machine learning is so difficult and there's so many
- 48:13pieces involved in it. What are your thoughts are on
- 48:15that? I think that the main problem is
- 48:18in the domain is in much today. I think because in traditional
- 48:23develops, you just, I know that it sounds, so it would sound
- 48:29strange 20 years ago, but actually you just need to deploy
- 48:32the code and here you need to like, you need to train a model.
- 48:39Now, you need to keep your data somewhere and somehow and it's
- 48:44updated data sets. You need to train your model.
- 48:47You need to wrap this model into API.
- 48:51You need to host this API. You need to balance the load and
- 48:55monitor their health of the model which I don't think that
- 48:59devops ever had this problem. That your API make bright not
- 49:04break with become worse because all the time it's a specificity
- 49:08specificity of machine learning so it's just harder it just
- 49:13involves way more pieces. Ah and additionally, you may
- 49:17have expensive GPU resources for all.
- 49:21Stuff and do you need to somehow optimize the usage that RGB or
- 49:24resources? Otherwise you will just get were
- 49:28huge bills for infrastructure so it's just way too many pieces
- 49:34and way too many issues. Yeah.
- 49:36And as you say that expensive GPU, have you thought about for
- 49:41the product? Because I know this is something
- 49:43that we were looking at dot science being able to monitor
- 49:49like Which models are are using the most resources and, and
- 49:55who's, who's working on each model and being able to like
- 49:59graph that out and say, okay, this this bottle is, you know,
- 50:05is it really effective because it's taken up this much Well, we
- 50:11can do something like that. We can build reports for the
- 50:16development stage because we okay, we can understand which
- 50:23project, and which people spend the most of GPU resources for
- 50:27training for deployment support, actually, we didn't dive into
- 50:34that yet but think am. That's a good point will
- 50:38consider that No problem. I've got slutty other ideas if
- 50:43you want to talk to me later. Oh yeah.
- 50:45Oh yeah. Please do perfect.
- 50:49Well, does anyone else have any other questions of about let
- 50:56little space for someone if they want to ask anything and If not,
- 51:04we will. Go ahead and I think we're,
- 51:12we're going to call it good there.
- 51:13I want to just reiterate big. Thank you.
- 51:16It looks like our internet worked.
- 51:19And oh yeah. We had success and if anyone is
- 51:23onerous. Oh yeah.
- 51:26I just realized it's I didn't answer the question about the
- 51:29Betances. Yes.
- 51:33Actually I wanted to tell about 22.
- 51:37Connects which we used to deal with dependences with
- 51:40dependencies hell in Python in particular, like two things are
- 51:46the first one is that we run everything in to occur.
- 51:50So, in the case, when you have, I don't know.
- 51:56Some model, which requires skewed and nine Gudda Gudda 9,
- 52:02and another model, which requires good 11, and it doesn't
- 52:04matter, which requires, I don't know what else, dog had just
- 52:08saved your life and we have seen such kind of pipelines and we
- 52:15know that it helps. So dull care is way to go to
- 52:20separate the environment for different steps of the pipeline,
- 52:24the development process. And Another thing is that you're
- 52:28still needs to keep a lot of dependences for the tools, for
- 52:33the Frameworks. First of all, inside one
- 52:36environment. And in this case, for the
- 52:39development purposes, we use exact versions.
- 52:46So we keep all the versions with eagles, eagles in requirements
- 52:5260. And we use Dependable to update
- 52:55them. Because without dependent board
- 52:57you will you will hardly be able to update these requirements,
- 53:02txt file, as soon as you created, but if you have it, at
- 53:06least you can always grab all the dependencies on the packages
- 53:11which you installed and create requirements, txt file with
- 53:15everything. You have in this particular
- 53:18environment with exact versions and at least be sure that this
- 53:23stuff works and to won't break. Model because new package
- 53:27arrived. So we use this.
- 53:30And depending on what is an essential tool for that, for
- 53:33updating this stuff, but you updated.
- 53:36When you want to do that, not when the library's maintainer
- 53:40want to do that. So it depends on boards.
- 53:44Plus Docker, we are fired for this.
- 53:48Thank you so much. That was my burning question and
- 53:52I am happy to hear about that. I had load about it it's
- 53:57Dependable words is what you said but but Dependable what is
- 54:03GitHub tool actually which monitors the dependences if they
- 54:10updated and it automatically creates pilar's with an update
- 54:16for the package and for the related packages for its
- 54:18dependencies. And so you can always first, be
- 54:24sure that your tests run the It creates the pr and the other
- 54:27strong on top of that. And you can check it with your
- 54:32eyes with your hands. And only, when you merge the pr,
- 54:36then you're 100% sure that you did it.
- 54:40Nice. It's really much.
- 54:46Perfect. Well right on time.
- 54:49I think that's all we got for today.
- 54:52Thank you very much Maria. And for anybody, that is not in
- 54:56our slack. Go ahead and jump in there.
- 54:59Maria is on there. She's very active helping us all
- 55:03learn more. If you have any questions about
- 55:05anything ml Ops in general you can drop them into the ml Ops
- 55:09questions and answer slack Channel and otherwise we will
- 55:14see you out there. Go ahead.
- 55:15Had. Yeah, big round of applause for
- 55:19you. Maria.
- 55:20I appreciate you coming on here and joining us today.
- 55:24We will see you next week with a bit more of a deep dive into
- 55:30bottle monitoring. We're going to be with Arpita,
- 55:33and she's going to talk to us about how she does model
- 55:38monitoring. I do.
- 55:39We did it last week and we're going to do it again next week,
- 55:43so it's a big theme this. As days and yeah, it's a very
- 55:49hot topic and I think it's something that people really
- 55:52enjoy learning about so that's it.
- 55:56Take it easy. Everybody have a great night or
- 55:58day or wherever you are enjoy. We'll see you later.
- 56:02Thank you. Bye.