This course aims to provide an iterative framework for designing real-world machine learning systems. The goal of this framework is to build a system that is deployable, reliable, and scalable.
It starts by considering all stakeholders of each machine learning project and their objectives. Different objectives require different design choices, and this book will discuss the tradeoffs of those choices.
The course covers all the steps from project scoping, data management, model development, deployment, infrastructure, team structure, to business analysis. At each step, it goes over the motivations, challenges, and limitations, if any, of different solutions. The course ends with a discussion on the future of the machine learning production ecosystem.
In the process, students will learn about important issues including privacy, fairness, and security.
Machine learning systems design is the process of defining the software architecture, infrastructure, algorithms, and data for a machine learning system to satisfy specified requirements.
The tutorial approach has been tremendously successful in getting models off the ground. However, the resulting systems tend to go outdated quickly because (1) the tooling space is being innovated, (2) business requirements change, and (3) data distributions constantly shift. Without an intentional design to hold all the components together, a system will become technical liability, prone to errors and quick to fall apart.
Students are expected to have the following background:
Permissive but strict. If unsure, please ask the course staff!
We’re generally open to auditing requests by all Stanford affiliates. External requests will be determined on a case by case basis, mostly because the course is hosted on Canvas and we’re not sure how non-Stanford affiliates access Canvas.
You will be able to attend all the lectures, but we won't be able to grade your homework or give advice on final projects. Our human resources are limited. There are only four of us and on top of teaching, we also have full-time jobs or are full-time students.
Even if you’re not auditing, you can still access all the slides, (very intensive) notes, assignments, and final project instructions. These are posted on the Syllabus page.
To audit the class, please send cs329s-win2021-staff@lists.stanford.edu an email with the subject title "CS329S: Audit Request" with a few sentences introducing yourself and your relevant background.
We’ll add you as an observer on Canvas -- you need to create an account on Canvas first. You can attend all lectures scheduled there.
There's no textbook. The course relies on lecture notes and accompanying readings.