Introduction
Before teaching the practical MLOps course, it's essential for teachers to have a deep understanding of the tools and technologies mentioned in the course outline. The course is structured around a 3-part demo, each highlighting a different approach to MLOps. Here are the steps to familiarize yourself with these tools:
1. The Shell (Manual) Way
Objective: Understand the basics of setting up a Python environment and running a Jupyter notebook.
Steps:
Python Environment: Install Python on your system. Learn how to create a virtual environment using venv or conda. Practice activating and deactivating the environment.
Package Installation: Understand the structure and purpose of a requirements.txt file. Practice installing packages using pip install -r requirements.txt.
Jupyter Notebook: Install Jupyter Notebook. Learn the basics of starting a Jupyter server. Practice creating, running, and saving notebooks.
Streamlit Server: Understand the purpose of Streamlit and how it can be used to create web applications. Practice using artifacts generated from a Jupyter notebook in a Streamlit application.
Considerations: Understand the benefits of this approach, such as building foundational knowledge and initial prototyping. Be aware of its limitations, like the potential messiness, challenges in knowledge transfer, and difficulties in replicating setups.
2. The Docker + Make (Inheritance) Way
Objective: Grasp the concepts of containerization and automation using Docker and Make.
Steps:
Docker: Install Docker on your system. Understand the structure and purpose of a Dockerfile. Practice building Docker images and running containers. Familiarize yourself with common Docker commands.
Makefile:Understand the purpose of a Makefile in automating tasks. Learn the basic syntax of a Makefile. Practice writing and executing simple Make commands.
Considerations: Understand the benefits of this approach, such as reproducibility. Recognize its limitations, like the need for replication across projects, context switching, and its focus on images over artifacts.
3. The Radix (Compositional) Way
Objective: Dive into advanced MLOps practices using compositional workflows.
Steps:
Papermill: Understand the purpose of Papermill in parameterizing and executing Jupyter notebooks. Practice creating and running notebooks with Papermill. Explore available packages or consider creating a simple one.
Streamlit (Advanced): Dive deeper into advanced Streamlit functionalities. Explore available packages or consider creating a simple one.
Workflow Creation: Understand the concept of compositional workflows in MLOps. Practice creating workflows that utilize the Papermill and Streamlit packages.
Considerations: Understand the benefits of this approach, such as reproducibility, easy parameterization, validation, and composability. Be aware of its limitations, like being on the bleeding edge and potential gaps in documentation.
Conclusion
By following these steps, teachers will be well-equipped to deliver the practical MLOps course effectively. It's crucial to not only understand the technical aspects but also the underlying reasons for choosing each approach. This will enable teachers to provide students with a comprehensive understanding of MLOps practices.
Outline
Outline/time schedule
Duration (Min) |
Description |
30 |
The Manual Way - Shell Scripting |
30 |
The Docker + Make (Inheritance) way |
30 |
The Radix (Compositional) way |
30 |
Runtime, Tooling and Performance considerations |
10 |
Summarize and evaluate results |