Machine Learning Infrastructure and Best Practices for Software Engineers: Take Your Machine Learning Software From a Prototype to a Fully Fledged Software System
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
Machine Learning Compared to Traditional Software
Elements of a Machine Learning Software System
Data in Software Systems - Text, Images, Code, Features
Data Acquisition, Data Quality and Noise
Quantifying and Improving Data Properties
Types of Data in ML Systems
Feature Engineering for Numerical and Image Data
Feature Engineering for Natural Language Data
Types of Machine Learning Systems - Feature-Based and Raw Data Based (Deep Learning)
Training and evaluation of classical ML systems and neural networks
Training and evaluation of advanced algorithms - deep learning, autoencoders, GPT-3
Designing machine learning pipelines (MLOps) and their testing
Designing and implementation of large scale, robust ML software - a comprehensive example
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.
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
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
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
(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.