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
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
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)