Machine Learning Systems Design#

Course Description#

This course provides an in-depth exploration of designing and implementing machine learning systems, with a focus on the practical considerations of deploying and maintaining machine learning models in production. Students will learn how to design, build, and deploy machine learning models, and how to integrate machine learning into an organization’s broader software development process. The course will cover best practices in DevOps and MLOps, including dot files, git, docker, kubernetes, CI/CD, model selection, development, training, evaluation, deployment, monitoring, and continual learning. The course will also cover training data management, experiment tracking, and model versioning with tools such as Weights & Biases.

Learning Objectives#

Upon completing this course, students will be able to:

  • Design, build, and deploy machine learning systems in a production environment.

  • Understand the challenges of integrating machine learning into the broader software development process.

  • Develop strong skills in DevOps and MLOps, including dot files, git, docker, kubernetes, CI/CD, model selection, development, training, evaluation, deployment, monitoring, and continual learning.

  • Effectively manage training data for machine learning models.

  • Use Weights & Biases for experiment tracking and model versioning.

  • Deploy machine learning applications on cloud servers.

Prerequisites#

  • Familiarity with Python and machine learning concepts

Grading#

Grading will be based on the following:

  • Class participation: 10%

  • Assignments: 30%

  • Final project: 60%

Textbook#

There is no required textbook for this course. All required readings will be provided in class.

Resources#

🗓️ Table of Contents#