Machine Learning Infrastructure and Best Practices for Software Engineers: Take Your Machine Learning Software From a Prototype to a Fully Fledged Software System

Miroslaw Staron

Language: English

Publisher: Packt Publishing

Published: Jan 30, 2024

Description:

Efficiently transform your initial designs into big systems by learning the foundations of infrastructure, algorithms, and ethical considerations for modern software products

Key Features

  • Learn how to scale-up your machine learning software to a professional level
  • Secure the quality of your machine learning pipeline at runtime
  • Apply your knowledge to natural languages, programming languages, and images

Book Description

Although creating a machine learning pipeline or developing a working prototype of a software system from that pipeline is easy and straightforward nowadays, the journey toward a professional software system is still extensive. This book will help you get to grips with various best practices and recipes that will help software engineers transform prototype pipelines into complete software products.

The book begins by introducing the main concepts of professional software systems that leverage machine learning at their core. As you progress, you'll explore the differences between traditional, non-ML software, and machine learning software. The initial best practices will guide you in determining the type of software you need for your product. Subsequently, you will delve into algorithms, covering their selection, development, and testing before exploring the intricacies of the infrastructure for machine learning systems by defining best practices for identifying the right data source and ensuring its quality.

Towards the end, you'll address the most challenging aspect of large-scale machine learning systems - ethics. By exploring and defining best practices for assessing ethical risks and strategies for mitigation, you will conclude the book where it all began - large-scale machine learning software.

What you will learn

  • Identify what the machine learning software best suits your needs
  • Work with scalable machine learning pipelines
  • Scale up pipelines from prototypes to fully fledged software
  • Choose suitable data sources and processing methods for your product
  • Differentiate raw data from complex processing, noting their advantages
  • Track and mitigate important ethical risks in machine learning software
  • Work with testing and validation for machine learning systems

Who this book is for

If you're a machine learning engineer, this book will help you design more robust software, and understand which scaling-up challenges you need to address and why. Software engineers will benefit from best practices that will make your products robust, reliable, and innovative. Decision makers will also find lots of useful information in this book, including guidance on what to look for in a well-designed machine learning software product.

Table of Contents

  1. Machine Learning Compared to Traditional Software
  2. Elements of a Machine Learning Software System
  3. Data in Software Systems - Text, Images, Code, Features
  4. Data Acquisition, Data Quality and Noise
  5. Quantifying and Improving Data Properties
  6. Types of Data in ML Systems
  7. Feature Engineering for Numerical and Image Data
  8. Feature Engineering for Natural Language Data
  9. Types of Machine Learning Systems - Feature-Based and Raw Data Based (Deep Learning)
  10. Training and evaluation of classical ML systems and neural networks
  11. Training and evaluation of advanced algorithms - deep learning, autoencoders, GPT-3
  12. Designing machine learning pipelines (MLOps) and their testing
  13. Designing and implementation of large scale, robust ML software - a comprehensive example
  14. Ethics in data acquisition and management

(N.B. Please use the Look Inside option to see further chapters)

About the Author

Miroslaw Staron is a professor of Applied IT at the University of Gothenburg in Sweden with a focus on empirical software engineering, measurement, and machine learning. He is currently editor-in-chief of Information and Software Technology and co-editor of the regular Practitioner's Digest column of IEEE Software. He has authored books on automotive software architectures, software measurement, and action research. He also leads several projects in AI for software engineering and leads an AI and digitalization theme at Software Center. He has written over 200 journal and conference articles.