MLSYS ENGINEERING

Welcome to "MLSys Engineering"! Your journey into machine learning systems starts here!

Who should read this book

This book is for anyone who wants to learn MLSys engineering. You might be a machine learning engineer, a research scientist seeking more MLSys knowledge, or someone like me transitioning into MLSys. This book equips you with the essential knowledge and skills for MLSys engineering, explained clearly in plain language. The book is designed to be short and easy-to-read.

What you will get

This book delivers:

  • Essential MLSys knowledge for beginners, no fluff.

  • A smooth learning curve with consistent depth throughout.

  • Practical, runnable code for you to check every detail.

Most importantly, you'll develop system thinking. We emphasize the intuition behind how problems are approached. This mindset will help you tackle the MLSys challenges of tomorrow.

Prerequisites

In the age of AI, there is no prerequisite for any book. You can always have an AI by your side and ask it for any background knowledge you need even you know absolutely nothing about the subject. However, here are the suggested prerequisites to give you a sense of the assumed background knowledge.

On the engineering side, you should have basic programming skills in Python and be able to read some simple C++ code. You should have some basic experience using PyTorch to implement simple neural networks, like training a multi-layer perceptron (MLP) on MNIST.

On the machine learning side, you should know the basics, for example, what stochastic gradient descent (SGD) is and how it updates neural network weights, or be able to pick it up quickly when needed. In the book, we will briefly review some machine learning concepts as they come up, but will not go into depth.

On the systems side, an introductory course to computer science is recommended. We will introduce all the advanced systems concepts from scratch, but you should at least know the basic concepts like what software, hardware, memory, a CPU, compilation, machine code, threads, processes, and parallelization are.

How to use this book

The easiest way to read this book is to pick it up and read a couple of sections whenever you have time. Sections are short, so you can start and stop at any time. Feel free to skip parts that do not interest you or that you already know, and come back to them later if needed. Overall, it should be a smooth and delightful experience instead of a heavy burden.

If you are curious about implementation details, check the code in the GitHub repo. The code snippets cited in the book should be sufficient for most readers. The GitHub repo also hosts the official community for this book. Use the issues there for questions or feedback.

About the Author

I am someone like you, who wants to learn more about MLSys. I wrote this book to share what I learned along the way.

The quality and clarity of this book demonstrate my qualifications more effectively than any credentials or past achievements. Let the work speak for itself.

Support this work

This book is 100% free to read online. I design the website to be clean and delightful to use with no distractions like ads, merch or subscriptions. The content is independently created and remains objective, with no interest or obligation to promote any specific technology. If you enjoy this book, the best way to support it is to share it with friends, colleagues, or anyone who wants to learn MLSys.