What is this course about?

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.

Why machine learning systems design?

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:

Honor Code

Permissive but strict. If unsure, please ask the course staff!

Audit policy

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.

Reference Text

There's no textbook. The course relies on lecture notes and accompanying readings.


Is this the first time the course is offered?
Yes. We're all a little nervous, and we're trying our best to ensure the quality of the lectures, but here and there things might not be as polished as other courses. Your feedback will be greatly appreciated.
Does the course count towards CS degrees?
For undergraduates, CS 329S can be used as a Track C requirement for the AI track. And it can be used as a general elective for the AI track. For all other tracks, they would need to petition to use the course.
For master's students, CS 329S can satisfy the AI Specialization Depth C requirement. It can be used as a general elective for all MS students, regardless of their specialization.
Are lectures recorded?
Yes, the lectures will be recorded and made available to enrolled students, including SCPD students.
Will the videos be made available publicly?
We won't know untile the end of the course. We're trying, but it's not solely our decision to make. We'll announce on the guest mailing list if and when the videos are available.
Is attendance mandatory?
We won't be taking attendance but we expect to see you often in class. We love talking to students to understand how you are doing, make sure you get the most out of the class, and get your feedback to improve the materials. The class is relatively small so we will probably get to know each other well.
If you have a time conflict and can't attend the online lectures, please send us an email to let us know!
What is the format of the class?
It will be lectures, tutorials, and discussion. We will often have industry experts to give us tutorials on tools for data streaming, experiment tracking, deep learning framework, monitoring, etc.
Do I need to know Python for the course?
Since Python has become the most popular language for machine learning, we expect most tutorials will be in Python. Python fluency isn't required, but will make your life so much easier during the course.
Can I follow along from the outside?
We'd be happy if you join us! All the slides and lecture notes will be posted on this website. You can also subscribe to the guest mailing list to get updates from the course.
Can I work in groups for the assignments?
Yes, in groups of up to two people.
I have a question about the class. What is the best way to reach the course staff?
Please post your question on the course forum so that other students can benefit from your questions. If you have a personal matter or emergencies, please email the staff at cs329s-win2021-staff@lists.stanford.edu.