Latest / Agentic Conversations (formally mlops.community) / Our 1st MLOps Meetup // Luke Marsden // MLOps Meetup #1
Transcript
- 0:00So the talk I wanted to present today is really an introduction
- 0:02to what is interlocks. And obviously, if you came to
- 0:05this Meetup, you probably have some idea and you probably have
- 0:08an interest in it. But I wanted to sort of start
- 0:11start this study sessions with with an introduction.
- 0:17And I also wanted to put a little spin on it, which is how
- 0:21will a my lips properly done. Actually help me work from home
- 0:25because it's, it's now becoming The New Normal the especially
- 0:28for well, but it's becoming the new normal that everybody in the
- 0:32world is working from home which is kind of crazy kind of
- 0:34interesting. And in particular if you're a
- 0:39data scientist or someone managing data scientists then
- 0:43been working from home, working remotely, and doing a
- 0:46synchronous collaboration can be particularly challenging because
- 0:50of some of the complexities. So I'll also talk about that and
- 0:55then I'm going to do a live demo so please could everyone pray to
- 0:58the demo gods, Going to attempt to live demo of some of our
- 1:02collaboration tooling and then hopefully we have a good chunk
- 1:06of time afterwards for Q&A. So to jump straight in.
- 1:11Then what is ml Ops? Ml Ops is the intersection of
- 1:16these three disciplines, devops software, engineering, and
- 1:20machine learning. And so I'm going to talk for a
- 1:23short time about each of those disciplines in turn.
- 1:25And then we're going to talk about how the intersection of
- 1:29them is Is kind of interesting and complicated.
- 1:33So if we look at how software engineering has been done, I'm
- 1:36not going to spend too long on this, but the basic Point here
- 1:39is that software. Engineering has changed a lot in
- 1:44the time that it's been even a discipline.
- 1:48And we're used to all log into big mainframes, we used to email
- 1:53patch files around to each other.
- 1:55And the way that, that collaboration happened for For
- 2:00engineers used to very much be around manually, integrating
- 2:05changes to source code. This was prior to Version
- 2:08Control prior to things like subversion.
- 2:10And for the longest time, the Linux kernel, for example, was
- 2:14developed by people just emailing patch files around and
- 2:16maintaining their own local copy of the source tree and that was
- 2:20painful for obvious reasons and it took a long time to integrate
- 2:23things and then subversion came along and we got to the point
- 2:29where we had Had Version Control and you could check in and check
- 2:32out things. And that was a great
- 2:33Improvement. And then the additional sort of
- 2:36improvement beyond that is this notion of distributed Version
- 2:39Control where you can sort of do, social coding on GitHub.
- 2:45And that's kind of, in my mind, from a collaboration
- 2:50perspective, where, where we've got to from a software
- 2:53engineering perspective. The next piece is devops.
- 2:58And so, if software engineering is how we create software than
- 3:01devops is, how we deploy it and operate it.
- 3:05And devops has also undergone some significant changes in the
- 3:09last few decades and years. I am personally responsible for
- 3:16being one of the people who used to edit code live on the server.
- 3:19I don't do that anymore, but but that used to be the way that at
- 3:24a lot of things were done. People also used to build
- 3:29binaries and email them around. So people used to, for example,
- 3:33send War files, email a file to us to a sysadmin and get them to
- 3:39deploy latest version of the software on the server and
- 3:43obviously that had problems. And then this thing happened
- 3:47that was called devops and devops is about breaking down
- 3:50the silos for between Dev teams and Frances and and and so it
- 3:58was kind of a change in the way that teams are organized and
- 4:01it's also a change in the way that the software is deployed
- 4:05and managed. So now, the people who write the
- 4:09software are responsible for shipping software and operating
- 4:13it in most World Forum, Dev Ops teams and continuous integration
- 4:18as a thing. So software gets continuously
- 4:20automatically tested. Whenever changes are pushed to
- 4:24version. Control.
- 4:24There's also been a big move away from running your own
- 4:28Hardware, towards public cloud, and more.
- 4:32Recently, there's been a big move towards using a beautiful
- 4:35infrastructure like Docker kubernetes and even this notion
- 4:38of get Ops, which is that you should also store the
- 4:41configuration for how your software is operated in Version
- 4:44Control as well as the source code for it and then Source
- 4:52control becomes your source of Truth for Or the software that
- 4:57the infrastructure, the operating, and that has some
- 5:00obvious benefits. And then finally, the third
- 5:04discipline that's intersecting here is machine learning and
- 5:09machine. Learning is basically how we use
- 5:10data and maths to train models to make predictions about the
- 5:14world. And I won't go through the whole
- 5:17history of machine learning here.
- 5:21But just to say that sort of There was this thing that's
- 5:27called the AI winter, which is where there was a lot of hype
- 5:33around a, I kind of the first time that I think it was in the
- 5:3570s people in the audience May well.
- 5:38Correct me on that and there was a lot of hype around Ai and it
- 5:46turned out that the, both the algorithms, but also, the
- 5:48hardware wasn't wasn't good enough was a little bit like,
- 5:50the.com bubble in a sense that the Internet speeds back in
- 5:552000, weren't good enough and the harder, I wasn't good enough
- 5:59to the connectivity wasn't good enough to support all the hype
- 6:02that was going on about the about the web.
- 6:06And and this is AI winter. Let's do this sort of huge peak
- 6:13in high penis around machine learning and AI that then kind
- 6:18of collapse from people realize that it wasn't actually going to
- 6:21be able to deliver on all the hype.
- 6:23And we've kind of gone around that.
- 6:24Cycle once already and now we're in another hype cycle around Ai
- 6:27and machine learning. And now this time around, it
- 6:29does seem like it is it is set to seriously change the world
- 6:37really and to change the way that and it's starting to get
- 6:42adopted very seriously inside lots of large Enterprises which
- 6:46is which is interesting and I also just wanted to have an odd
- 6:53here too. The picture in this slide comes
- 6:56from a local Bristol company called graph core and they make
- 7:00some very beautiful pictures that are representations of the
- 7:05visual. Representations of how neural
- 7:07networks actually work which, which are pretty cool.
- 7:11And so basically deep learning is now becoming and machine
- 7:13learning in machine learning and deep learning is becoming
- 7:16computationally feasible. And there's this huge rush that
- 7:22all the Enterprises around the world are in the kind of Act in
- 7:24an arms race to get value out of AI.
- 7:29And so we end up in this place where machine learning is
- 7:33effectively emerging from research and it's being
- 7:35productionize door, it's like companies are attempting to
- 7:38productionize it and this means that ml is emerging from
- 7:42research and that these disciplines of software
- 7:46development devops and machine learning needs to converge so
- 7:50that people can build models and they can deploy them.
- 7:54And they can have the same level of rigor and reliability that
- 7:59software has in devops. And and so this convergence of
- 8:04these things will be called and is already called ml ox and
- 8:08that's why we've named our community.
- 8:11After this new emergent term I personally, believe that Ai and
- 8:16machine learning has the potential to reinvent the global
- 8:19economy and hopefully in a good way because I think it has the
- 8:24has the potential to eliminate a great deal of boredom, that is
- 8:28currently suffered by humans in doing very, tedious jobs.
- 8:33It's kind of outside of the scope of this talk to talk about
- 8:36the political changes that are going to be necessary to to make
- 8:40that non-disruptive. But anyway, So I think we can
- 8:45all agree that AI has the potential for good.
- 8:49And as a discipline, what we found is that it's extremely
- 8:54immature so it's kind of like the wild west out there and
- 8:58we've seen damaging levels of chaos and pain as companies go
- 9:02from what we call playing with AI to actually trying to use AI
- 9:06to deliver business value, which is often referred to as
- 9:10operationalizing, AI And so some of the things that we've seen
- 9:15that cause these pain points, things like models being blocked
- 9:22before they can even get to deployment.
- 9:25So so we spoken with with many companies that are trying to do
- 9:31AI in production and one of the things that is a very common
- 9:35theme is that we just can't, we can develop the models on our
- 9:38laptops but we but we just can't get them deployed into
- 9:42production. And of course, that sucks
- 9:44because that, then the time to value is very, very high.
- 9:48If it takes a long time, or if it's not even possible at all to
- 9:51deploy models, or even if it takes three or six months to
- 9:56deploy a model, then then by the time you've got the model
- 9:58deployed, the data is already stale and and often AI projects
- 10:03in companies, get grounded as a failure just because they can't
- 10:07get out the door. Another problem that we've seen,
- 10:11is that Models aren't monitored as actually item number 6 on
- 10:18this list and so we had one company tell us that they
- 10:21deployed a model to production and then the model went wrong
- 10:25and they lost an unmeasurable amount of money as in.
- 10:28They actually couldn't figure out how much money they lost
- 10:30because the model of gone wrong because they weren't monitoring
- 10:33it. And there are unique challenges
- 10:36around monitoring models that are different to monitoring
- 10:39regular software microservices that I'll talk about in a
- 10:42minute. Some other problems that we've
- 10:45seen that people end up wasting a lot of time.
- 10:48So if there are multiple data scientists or machine learning
- 10:51Engineers, collaborating on trying to trying to work on a
- 10:56Model together, then a lot of time is wasted just trying to
- 10:59set your development environments up so that they are
- 11:02similar enough to that. Your work is that the work with
- 11:08someone does is compatible with your environment or Spending a
- 11:12lot of time, copying data sets around between different
- 11:15machines. It's also kind of ties into the
- 11:20third Point here which is a lot of inefficient collaborations.
- 11:23So we've heard of people saying things like, oh, we just keep
- 11:28our data science team small and we keep them in the same room
- 11:31so, so they can collaborate by talking.
- 11:36And obviously in the current climate that is particularly
- 11:39challenging because you don't want to put people in the same
- 11:41room anymore. And, and even using paper
- 11:46notebooks to keep, That gives the work that they're doing in
- 11:48the results that they're keeping track of.
- 11:52And, and that relates to the fourth point, which is manual
- 11:56tracking. We've seen an awful lot of
- 11:58companies that they put the code, like, the, some reference
- 12:04to the version of the code and the data and the premises, they
- 12:07use when they're training a model along with the whatever
- 12:09like metrics like accuracy score for that model, they either put
- 12:13that in a Wiki or on paper or on a Or in a shed spreadsheet.
- 12:18We've seen an awful lot of Shad, spreadsheets kicking around.
- 12:22And there's another problem with those with those spreadsheets is
- 12:26that there's a lack of reproducibility and provenance
- 12:29and what this means is that you can't go back from a model
- 12:32that's running in production to well, what data was a trained on
- 12:36and wear? What parameters were used like,
- 12:40who even created this model? Do they even still work at this
- 12:43company like being able to keep track of?
- 12:47The work that went into creating a model causes lots of
- 12:50complexity, when when when you're trying to scale up a team
- 12:57or when the number of models that you have increases.
- 13:00But the key Point here is that if you can't deploy your models
- 13:03into production at all to begin with, then you're not going to
- 13:06get to the later problems of a lack of reproducibility and
- 13:10provenance. And so actually the most
- 13:12fundamental thing we need to solve in ml Ops is making it
- 13:15easy to get models into production in the First place.
- 13:20And so this is kind of oddly familiar, because we've been
- 13:23here before, and if you look at how software engineering was in
- 13:26the 90s, it was very siloed, not everything was in Version
- 13:30Control. There is no continuous delivery
- 13:33and it took a long time to ship software when it was being
- 13:36manually integrated and when they were these long like Q&A
- 13:40and release cycles and now software ships in visit in
- 13:43minutes in sometimes, in some cases seconds Modern tech
- 13:47companies that are shipping software, will often say when
- 13:50they on board, a new employee. Well, on your first day, your
- 13:52job is to make a life, change the products or small one, but
- 13:57push it through the continuous delivery Pipeline, and get it
- 13:59out. We make dozens of changes every
- 14:03hour in some cases, two different microservices, but but
- 14:08AI is kind of stuck in this pre devops world of collaboration.
- 14:15And a large part of that is because the tool.
- 14:17In isn't up to scratch. So we have this kind of
- 14:21Manifesto. So this is what we care about
- 14:24and why we get out of bed in the morning is because we are we're
- 14:29working on trying to solve this ml Ops Manifesto and the
- 14:35manifesto is in the form of four tests.
- 14:37So you can kind of apply these tests to your own ml Ops
- 14:41pipelines. And you can still form an
- 14:44opinion about how mature you are against.
- 14:48The different, the different requirements here.
- 14:51So the first requirement is that your model training and
- 14:58deployment pipelines have to be reproducible.
- 15:00Well, that means a good test. For this is if I can come along,
- 15:05nine months later if someone else can come along, nine months
- 15:09later. And retrain, a model that was
- 15:12trained by somebody else who without even talking to them
- 15:16with. Let's say an old version of
- 15:18tends to flow on an old data set with on on Hardware that is
- 15:26sufficiently equivalent that they can retrain the model to
- 15:30within a few percentage points. Then you've got a reproducible
- 15:33ml Ops Pipeline and if nine months later you can't because
- 15:37you upgraded the version of tensorflow on your development
- 15:40machines and the data's gone somewhere and you don't know
- 15:43where the data is gone, the data has changed in your production
- 15:46data. Is then you failed the
- 15:49reproducibility test and if you fail the reproducibility test,
- 15:51then you're in trouble from a governance and compliance
- 15:56perspective in some Industries. The second test is is your ml
- 16:01Ops pipeline accountable and we talk about accountability from
- 16:05the same perspective that we hold humans accountable for
- 16:08their decision-making process. And one of the ways in which you
- 16:11do that is you say on what basis did you make your decision and
- 16:15the on what basis Kitchen with machine learning as a minimum
- 16:21requirement, not even going into the whole area of explain
- 16:25ability, but as a minimum requirement, you have to be able
- 16:27to say what version of the data was the model trained on.
- 16:30So you need to be able to track the model, back to the
- 16:33provenance of where that model came from or what data was
- 16:36trained on by whom and and so on the next point and it's
- 16:41especially pertinent at the moment, is this collaboration
- 16:45requirements. So, It has to be possible to do
- 16:48asynchronous collaboration, and this is something that software
- 16:51devops has got sorted and ml Ops doesn't yet, mostly in this
- 16:56means that I need to be able to, if, for example, if my colleague
- 17:05Chris, is working on a Model, I need to be able to make a fork
- 17:10of that model and I need to be able to make changes to it
- 17:14without treading on Chris's toes.
- 17:16So we both Both need to be able to collaborate asynchronously
- 17:19and and get useful work done. Now, this has kind of influenced
- 17:26the design of what we're building to a large extent
- 17:29because because we believe very much in the sort of GitHub.
- 17:34Pull request style of collaboration that the data
- 17:36scientists are familiar with. And and there are some
- 17:40challenges in making that possible for 4 ML, and then
- 17:44finally, the model development, Has to be continuous.
- 17:48And so there are a couple of things that I mean by this.
- 17:51The first one is that the development process must be
- 17:55automatic, the deployment process.
- 17:56Sorry must be automatic. So it must be possible to
- 17:59automatically deploy a model into a staging environmental
- 18:04production, environment without manually.
- 18:06Emailing jupyter notebooks or or tensorflow files, serialized
- 18:13test flow models around because as soon as you Start doing
- 18:17things manually. Then it introduces this
- 18:20possibility for the human error and the other piece is that you
- 18:24have to be able to statistically monitor your models.
- 18:27And this is interesting because monitoring models is
- 18:32specifically is quite different to monitoring regular software
- 18:36that you might, deploy it as microservices.
- 18:39And the reason for that, is that When you monitor software, you
- 18:44can monitor things like Layton sees an error rates.
- 18:48But when you monitor Microsoft, sorry, when you monitor models
- 18:52machine learning models, they can be giving you perfectly
- 18:55normal Layton sees and perfectly normal error rates and the model
- 19:00can have gone completely haywire.
- 19:03And the reason for that is basically, if you already knew
- 19:07the right answer for what the model was predicting.
- 19:12Then you wouldn't need the model.
- 19:13In other words, the production data is unlabeled and so this
- 19:19means that it's challenging to understand the behavior of some
- 19:23of your model once it's running in production.
- 19:25So an example might be that I might have deployed a model for
- 19:34for autonomous vehicles, that classify road signs.
- 19:37And so you might have a bunch of Cars driving around with models
- 19:44running on Hardware, in the cars and sensors cameras, basically
- 19:48on the cars that are looking around for the road signs.
- 19:51And if you already knew what road sign, the sensor was
- 19:54looking at, then you wouldn't need the model, right?
- 19:58But at the same time it means that it's hard to understand the
- 20:01behavior of the model of production.
- 20:02There are some solutions to this including looking at the
- 20:06statistical distribution of the classifications.
- 20:08The model is making if it's a classifier. then you can say
- 20:12well if the actual distribution of classifications drifts vary
- 20:17significantly from my expected distribution like the
- 20:20distribution that I used in training in the training set
- 20:25then maybe page a human like fire and alert and get a human
- 20:28to look at what's going on because either you deployed a
- 20:31bad model in which case well you need to know about it so that so
- 20:37that you can roll back and so that you can figure out what
- 20:40went wrong with the new Floyd model or the world changed and
- 20:47especially with things like computer vision.
- 20:49It's it's often surprising like how the models actually
- 20:54distinguish features in the data and and you can get stupid
- 20:59things like the computer. Vision model might never have
- 21:04classified any, or never never be trained on any stop signs in
- 21:07the snow. And for some reason, it can't
- 21:09classify stop signs in the snow. So suddenly a snow Is over a
- 21:13large part of the country and then your stop sign classifier
- 21:16stops working and obviously you're in trouble.
- 21:18So you need to have that statistical monitoring So those
- 21:24are the requirements. And so I'm going to talk about
- 21:28how how we can try and address those requirements using ml Ops
- 21:33tools. And and just before I do that, I
- 21:37want to talk a little bit about how the the software life cycle.
- 21:43Sorry the ml, the ml Ops life cycle is just fundamentally more
- 21:47complicated than the software development life cycle.
- 21:50So, when you're doing software development and Life is easy,
- 21:55kind of it's easier anyway, because all you need to do is
- 22:00you need to think about versioning, specific versions of
- 22:03your code because as long as your doctor Rising things, then
- 22:09you ought to only need to know exactly which version of the
- 22:13code was used. Plus the doc file and
- 22:15dependencies in order to reproducibly, build the same or
- 22:22Effectively the same Deployable artifact and so you can build,
- 22:27you can create code, you can test that code in CI, you can
- 22:32deploy that code into production and then you're monitoring
- 22:35system. Can tell you how.
- 22:36Well, it's performing, maybe you need to upgrade a database.
- 22:39Maybe you need to go and optimize a certain code path,
- 22:43and you can go around this loop as quickly as you can.
- 22:46And that's basically what we're doing with a box, but with
- 22:48machine learning in ml Ops, you've got this fundamentally
- 22:51more It thing going on which is that you've got data coming into
- 22:55the system, which is a major form of entropy and you've got
- 23:01code. That's that's being written to
- 23:04train the models and you've got parameters, which are being fed
- 23:07in to the training. The models, the model runs the
- 23:12training model run, the model training run, sorry and all of
- 23:15these things combined and before you even trainer model, you've
- 23:20also got data runs which is when you're doing Feature
- 23:22engineering, or your filtering, or splitting the data.
- 23:27And so, you're executing a certain version of a piece of
- 23:29code, against a certain input dataset, and creating an
- 23:32intermediate data set. That's what a data runners.
- 23:36Or you're, you're running a certain version of a piece of
- 23:41code against an input data set like a test training, validation
- 23:47set, and then you're creating a model as an output.
- 23:51And When you're doing ml, when you're developing machine
- 23:55learning models, you are doing these data runs and these model
- 23:57runs whether you're keeping track of them or not.
- 23:59These might be the cells that you running your jupyter
- 24:01notebook, or the Python scripts that you run on your laptop.
- 24:04And these runs are happening. You just haven't given a name to
- 24:08them. And so what we've realized is
- 24:11that it's really important to introduce this notion of run as
- 24:14a kind of a building block. It's a fundamental object in the
- 24:18system. When you're doing ml odds, it's
- 24:20this version of this piece of code grand.
- 24:22In this environment with this input data and these parameters
- 24:25and it created this output and one of those types of outputs
- 24:29like I said is models and then the model itself, the serialized
- 24:32model file is the Deployable artifacts, it has some metrics
- 24:35associated with it like how well it performed against the
- 24:38validation set and then it's that model that you're deploying
- 24:40into production and then your monitoring in the way that I
- 24:45described the monitoring models is different to monitoring
- 24:48microservices. And then you're monitoring my
- 24:52Actually, cause you to go back around all sorts of different
- 24:54Loops through this diagram so that's kind of the flow that
- 24:59were looking at here. So I'm a little short on time.
- 25:03So I'm going to skip over the life cycle quickly.
- 25:09The life cycle is really just a visual representation of how the
- 25:13diagram. I just showed you is cyclic and
- 25:16so you do data engineering need to keep track of the data runs
- 25:20when you're doing things like feature engineering.
- 25:22And then you train a model, which means you take a certain
- 25:24version of the data and you, you train the model and out of the
- 25:27model development process. Come serialized models,
- 25:32typically Docker images, with serialized models, baked into
- 25:35them and then those serialized models get run in production or
- 25:39staging and then production. And then there are these kind of
- 25:43to feedback loops that's the statistical monitoring feedback
- 25:45loop which is the first one where you can say, show me the
- 25:49behavior of my model in production in real time based on
- 25:52The distribution of classifications it's making.
- 25:55And then there's also this slow feedback loop which is that you
- 25:57retrain the models with new data as you get new data coming in
- 26:00and of course the model making decisions can change the world.
- 26:06And so can also impact on the data that is being recorded in
- 26:10the database. So so that's kind of the, the ml
- 26:16Ops life cycle. And, and hopefully I've
- 26:18adequately answered the first part of the talk title now,
- 26:22Which is what is ml Ox my opinion is that ml Ops is not
- 26:27just about operating models. It's actually about the entire
- 26:30life cycle of doing data, engineering, training models,
- 26:34and then getting models into production and it's about being
- 26:40able to implement this process in in your company, or any
- 26:43organization with the same level of rigor, that sort of
- 26:48best-in-class, devops and software engineering teams.
- 26:53Managed. And so let's kind of take a step
- 26:57back that and say well how can how can properly implemented ml
- 27:01Ops help me in in the current Global situation that we have
- 27:07where we're now all suddenly working from home and in
- 27:10Brackets. If I'm a data scientist or a
- 27:12manager of data scientists, well the answer to that question
- 27:18comes down to the collaboration piece that I mentioned earlier.
- 27:21So that's kind of do a deep dive on.
- 27:22Collaboration. So there are two.
- 27:28Wait, there are two fundamental modes of collaborating between
- 27:31different people doing doing work there, synchronous and
- 27:36asynchronous. And synchronous collaboration is
- 27:38when people are sitting in a room together and then
- 27:40interrupting each other. When they have a question and
- 27:44when they need to get something done, and in particular with
- 27:47machine learning, it might even be that they're sharing an
- 27:49environment. So they might even be pair
- 27:51programming sharing a text editor.
- 27:55So they take it in turns to use the keyboard, they would be
- 28:00working on exactly the same data set and exactly the same
- 28:03environment and then you're kind of time slicing it.
- 28:06Well hopefully pair programming is is effective and okay so
- 28:11people can't make changes to this thing at the same time but
- 28:13we just take it in turns or there's an asynchronous approach
- 28:18which is to say that different people should be able to do.
- 28:25Welcome different copies of things, and problem with an
- 28:29asynchronous approach, of course, is that you then need to
- 28:31be able to cope with conflict. So, merge conflicts in get,
- 28:37which takes me to the second Point here, which is how how to
- 28:40software and devops teams, do it well with GitHub.
- 28:44Basically and tools that are like GitHub, like it lab and
- 28:49bitbucket and and all of the tooling around that and the the
- 28:54way Way that that works as I'm sure most of the people in the
- 28:57audience know, here is that you can Fork someone else's project
- 29:05effectively, or if you're or you can make a branch from Master,
- 29:10you can make some changes in your branch.
- 29:12And while you're making the changes in your branch, you're
- 29:14not trading on anyone else's toes and when you then proposed
- 29:17those changes back to the master Branch, that's when you can pull
- 29:21in new changes from the master branch and integrate them into
- 29:24your bra. And that's when you have to deal
- 29:27with merge conflicts and then you can propose a version of the
- 29:31change which is up-to-date with respect to the master Branch.
- 29:34That's basically commonly known as get flow and it's been very
- 29:40successfully used in pretty much every team on the planet.
- 29:45People have tweaks to that approach with multiple Master
- 29:49branches and so on. But it's all fundamentally the
- 29:51same idea of asynchronous collaboration and then we're
- 29:54dead. Ops teams adopting things like
- 29:56get Ops where your source of Truth for what's running in
- 29:59production is also in a git repo.
- 30:02Well, you can use tools like terraform or you can Version
- 30:05Control your communities. Yeah, yeah, malls.
- 30:09And then Happy Days. You can use the same
- 30:11collaboration approach pull requests when when you're
- 30:16deciding to scale up the cluster or deploy a new database and
- 30:22doing the other things that devops teams do, So, so how can
- 30:29you? So, what are the challenges
- 30:31applying asynchronous collaboration to machine
- 30:33learning? Well, they are numerous.
- 30:37The first problem is that is the jupyter notebooks, don't Version
- 30:44Control very well, and a lot of data scientists, use jupyter
- 30:47notebooks. Now, the challenge is the data
- 30:53versioning and data sharing is Uh is difficult in in machine
- 31:00learning context? Sorry in in a collaboration
- 31:03context because you can't very easily put your data in.
- 31:07Get there is a project called git lfs but it has some
- 31:11significant restrictions and and so what we find is that teams
- 31:18normally just don't bother the data versioning and they just
- 31:22rename files or rename folders and Have folder names with like
- 31:27underscore final and underscore final, final V2.
- 31:31And all these funny little strings that refers to the
- 31:33things that have been done and then they have to share those
- 31:36folders around and it becomes quite messy.
- 31:40The other thing is metric and Paramus tracking, you didn't
- 31:43have to do that when you're doing software but you do have
- 31:46to do with machine learning. You have to keep track of which
- 31:48parameters you used in? Which accuracy score you got?
- 31:52Because models are either. Sort of green or red are not
- 31:58either working or broken their kind of somewhere in the middle
- 32:01and the metrics. Like the accuracy school will
- 32:03tell you how good a model is against a certain test set.
- 32:09And so you need to keep track of that.
- 32:10And you could put that in the in the git commit message but then
- 32:15you have to have a human remembering to do it.
- 32:17People are bad at remembering to do things or you can use tools
- 32:21that help you with experiment tracking.
- 32:24And there are challenges with with using a combination of
- 32:29local development environments. So you might have a GPU or ipu
- 32:35in the machine in your desk or you might be using machines in
- 32:43the cloud and with gifts, it's quite easy to switch from a
- 32:47local machine to machine in the cloud or a machine in your data
- 32:50center. But doing it effectively, and
- 32:54with machine learning, Where you've also got data that you
- 32:57need to move around and you've got to keep track of metrics and
- 33:00parameters and maybe you can't even really use gets with your
- 33:04jupyter notebooks and still do effective collaboration.
- 33:07It makes it a lot more challenging with respect to kind
- 33:09of moving around where you're where you're doing the work.
- 33:15And so there are some tools that that help to solve these
- 33:20problems for machine learning and it's actually a very
- 33:23exciting space and There's lots of new innovation happening
- 33:26around this and so obviously I'm from dot science.
- 33:31I'd love it if you started using dot science.
- 33:34But I also wanted to give a acknowledgement to the fact that
- 33:37there are lots of other tools out there.
- 33:38And so ml flow is quite strong in the experiment, traffic
- 33:41experiment, tracking space, weights, and biases is very
- 33:45strong in like comparing relationships, between metrics
- 33:49and hyperparameters. DVC is a promising project in
- 33:54terms of. Data Version Control as a
- 33:58project called Pachyderm and then in terms of Dipping and
- 34:01merging jupyter. Notebooks, there's an open
- 34:02source project called embiid. I'm in fact, many of these, many
- 34:06of these projects are open source.
- 34:09And and so what we've tried to do a DOT science is bring the
- 34:14capabilities from these kinds of capabilities into a single tool.