Part 2 Preparing for production: Creating maintainable ML

 

Now that you’ve worked through part 1 of this book, you have a feel for a pattern of validating project ideas that borrows heavily from the approaches set in modern software development. Once an idea has been properly vetted and a (rough) prototype built, the next step in building a maintainable solution is to focus on building it properly.

In the introduction to part 1, I mentioned that a lot of ML projects fail because of lackluster planning and scoping. Following closely on the heels of those reasons is the failure mode of shutting off a project that’s in production because it’s either an unsalvageable broken mess or because the business doesn’t realize the value of it and is unwilling to keep paying for it to run. These are solvable problems, provided that a specific methodology of project development is applied to avoid these pitfalls.

In part 2, we’ll go through some of the lessons I’ve learned through my own project work, those I’ve seen in others’ work (for better or worse), and standards of applied ML code development that will help you build the following:

  • Code that runs well
  • Code that is testable and able to be debugged
  • A solution that can be modified easily
  • A solution that can be evaluated for performance (based on whether it solves the problem well and continues to solve the problem it set out to solve)
  • A solution that you don’t regret building