Software Engineering Practices for Machine Learning
This work tackles the problem of operationalizing ML for practitioners, but it is incremental as it adapts existing software engineering methods.
The paper addresses the challenge of managing machine learning models in production systems by applying established software engineering practices, providing an overview of techniques to handle complexity.
In the last couple of years we have witnessed an enormous increase of machine learning (ML) applications. More and more program functions are no longer written in code, but learnt from a huge amount of data samples using an ML algorithm. However, what is often overlooked is the complexity of managing the resulting ML models as well as bringing these into a real production system. In software engineering, we have spent decades on developing tools and methodologies to create, manage and assemble complex software modules. We present an overview of current techniques to manage complex software, and how this applies to ML models.