The hardest part for me is not the tooling or processes, but ironing out expectations, assumptions, what can and can't be done (or what's worthwhile) with ML.
Getting to a common understanding about metrics and outcomes with an end user / customer can chunks of time out of a project.
Data scientist have their own problems too, like crappy data (if any) and unclear business objectives. This usually means fast iteration at all costs. That's why Python or R are the languages of choice, which are not precisely the most amenable to deployment. Now, think about their KPIs vs yours and everything falls into place.
But whose job is it to run those steps? And note that most of what I think of as DevOps might have an analogy, but no direct equivalent.
Of course this is all solvable; the thing is that it is new. DevOps assumes that changes are to the code, and has processes and tools for managing code changes.
In ML, it is the DATA which changes.
Yes, there are usually several changes that need to be tracked - code/model changes (those usually happen early on and the stabalise), input/code changes (e.g. pre-processing the data with either new transformations or _other_ models), and data changes (both changes for training and testing). At Efemarai we are thinking about it as any changes to the above should automatically trigger a test suit of the model/process. And under test we're thinking not just the different forms of unit testing the input/output formats and sizes from the model, but also unit testing on the model performance of the data you've collected + stress testing the model with data the model is expected to see in production.
So in reality, it's indeed nothing new, but the standard DevOps pipeline needs to be extended to work with the ML assumptions.
1. Collect new data
2. Clean data
3. Annotate
4. Train models and store versions
5. Analyze errors/model metrics (and re-train as need be)
6. Deploy model/s
7. Monitor
8. Repeat steps 1 - 7
Yes, there are many tools that can help with each the above. Use whatever suits to automate it and make your job easier.