Summary and Schedule
Workshop Overview
This workshop introduces machine learning workflows on AWS using Amazon SageMaker. It has two parts:
- SageMaker: training, tuning and fine-tuning. Storing data in S3, using a small notebook instance as a controller, running training jobs (XGBoost and PyTorch) and hyperparameter tuning, with guidance on choosing CPU vs. GPU instances and when parallel instances help; then fine-tuning a 3B open-weight vision-language model with LoRA as a training job, for handwriting transcription, with before/after evaluation on held-out pages.
- Retrieval-Augmented Generation (RAG). Building a RAG pipeline over a corpus of research papers two ways: with Amazon Bedrock (pay per token, nothing left running) and with SageMaker Processing jobs serving an open-weight model that Bedrock does not offer.
Who this workshop is for
Researchers and students who use ML or AI in their work and want to run it on AWS. The lesson assumes a basic machine learning background: you know what training, hyperparameter tuning, fine-tuning, embeddings and retrieval-augmented generation are. It does not teach these concepts; instructors may briefly review some of them depending on the audience, but the default schedule does not include that time. Python and Jupyter are used throughout; no prior AWS experience is needed.
Cost controls
Run as written, the full workshop costs a few dollars per learner. Every episode tags its resources, caps job runtime, estimates cost before launching and checks the bill after, and cleans up. The final episode covers monitoring and cleanup.
What This Workshop Does Not Cover
- General ML/AI concepts: the focus is on moving existing ML and AI work to the cloud, not on teaching training, fine-tuning or RAG themselves.
- Deploying models as endpoints: serving a trained or fine-tuned model behind an always-on API.
- Agents and tool use: LLM applications that call tools or chain multiple model calls (e.g., Bedrock Agents).
If there’s a specific ML or AI workflow or AWS service you’d like to see included in this curriculum, please let us know! We’re happy to develop additional content to meet the needs of researchers, students, and ML/AI practitioners. Please post an issue on the lesson GitHub or contact endemann@wisc.edu with suggestions or requests.
| Setup Instructions | Download files required for the lesson | |
| Duration: 00h 00m | 1. Overview: ML on AWS |
When is cloud compute the right tool for a researcher who already has a
cluster or a workstation? What do SageMaker and Bedrock add on top of renting a machine? |
| Duration: 00h 15m | 2. Data Storage: Setting up S3 |
How can I store and manage data effectively in AWS for SageMaker
workflows? What are the best practices for using S3 versus EC2 storage for machine learning projects? |
| Duration: 00h 35m | 3. Notebooks as Controllers |
How do you set up and use SageMaker notebooks for machine learning
tasks? How can you manage compute resources efficiently using SageMaker’s controller notebook approach? |
| Duration: 00h 55m | 4. Accessing and Managing Data in S3 with SageMaker Notebooks |
How can I load data from S3 into a SageMaker notebook? How do I monitor storage usage and costs for my S3 bucket? What steps are involved in pushing new data back to S3 from a notebook? |
| Duration: 01h 25m | 5. (Optional) Pushing Your Notebooks to GitHub from SageMaker |
How can I put the code I write on a SageMaker notebook instance under
version control on GitHub? How do I authenticate to GitHub from a notebook instance without leaving a password or key behind? How can I convert notebooks to .py files and keep
.ipynb files out of version control?
|
| Duration: 02h 00m | 6. Training Models in SageMaker: Intro |
What are the differences between local training and SageMaker-managed
training? How do Estimator classes in SageMaker streamline the training process for various frameworks? How do you estimate what a training job will cost before launching it, and check what it cost afterwards? |
| Duration: 03h 05m | 7. Training Models in SageMaker: PyTorch Example |
When should you consider using a GPU instance for training neural
networks in SageMaker, and what are the benefits and
limitations? How does SageMaker handle data parallelism and model parallelism, and which is suitable for typical neural network training? |
| Duration: 03h 55m | 8. Hyperparameter Tuning in SageMaker: Neural Network Example |
How can we efficiently manage hyperparameter tuning in
SageMaker? How can we parallelize tuning jobs to optimize time without increasing costs? |
| Duration: 04h 55m | 9. Fine-tuning a Vision-Language Model with Training Jobs |
When is fine-tuning worth it? Why does fine-tuning cost anywhere from a dollar to tens of thousands, and how do I estimate where my run falls before I launch it? How do I run a GPU fine-tune as a SageMaker training job so the meter stops the moment it finishes? How do I measure whether the fine-tune helped? |
| Duration: 07h 55m | 10. Overview of RAG Workflows on AWS |
What is Retrieval‑Augmented Generation (RAG)? What are the main architectural options for running RAG on AWS? Why is Bedrock the recommended default, and when should you reach for SageMaker instead? How do the billing models differ, and what does it cost if you forget to shut something down? |
| Duration: 08h 10m | 11. RAG with Bedrock |
How do we build a complete RAG pipeline on AWS without provisioning a
GPU? How do we turn a collection of PDFs into retrievable, citable chunks stored in S3? How do we call Bedrock-hosted embedding and generation models so that the spend is tagged to our project? |
| Duration: 09h 00m | 12. RAG with Processing Jobs |
When does a RAG pipeline need a self-hosted, open-weight model instead
of Bedrock, and what is the safest way to rent the GPU for it? How do we run the embedding and generation steps of the WattBot pipeline as SageMaker Processing jobs that end on their own? How do we pass data in and out of a job through S3, and tag the job so its cost is traceable? |
| Duration: 09h 50m | 13. (Optional) RAG with a Notebook GPU |
How can we run a basic Retrieval-Augmented Generation (RAG) pipeline
entirely from a single GPU-backed SageMaker notebook? How do we go from cached text chunks to a searchable embedding space using a self-hosted model? How can we generate WattBot-style answers (including citations and evidence) that follow the competition’s scoring conventions? |
| Duration: 10h 35m | 14. (Optional) The Same Jobs from the Terminal |
What does the AWS command-line interface (CLI) let me do that the
lesson’s notebooks did, and what should I not do with it? How do I see, and stop, everything that is costing money from a terminal? What request does the SageMaker SDK send when I call estimator.fit()?
|
| Duration: 11h 05m | 15. Resource Management and Monitoring |
How can I monitor and manage AWS resources to avoid unnecessary
costs? What steps are necessary to clean up SageMaker and S3 resources after the workshop? What best practices can help with efficient resource utilization? |
| Duration: 11h 40m | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.
Setup (Complete Before The Workshop)
Before attending this workshop, you’ll need to complete a few setup steps to ensure you can follow along smoothly. The main requirements are:
- GitHub Account (optional) – Only needed for the optional episode on pushing your own code to GitHub.
- AWS Access – Use a shared AWS account (UW-Madison) or sign up for an AWS Free Tier account.
- Data – Download one small zip.
- Visit Glossary — Find and briefly review the workshop glossary
Details on each step are outlined below.
1. GitHub Account (optional)
Only needed for the optional episode on pushing your notebooks to GitHub. Sign up if you plan to do it.
2. AWS Account
There are two ways to get access to AWS for this lesson. Please wait for a pre-workshop email from the instructor to confirm which option to choose.
Once your AWS account is set up, log in to the AWS Management
Console. For the shared account that means the sign-in link
from your instructor’s email, of the form
https://<org>.awsapps.com/start/#/console?account_id=...&role_name=...;
for your own account, the regular console sign-in at
https://console.aws.amazon.com/.
3. Download the Data
- Download data.zip (Right-click -> Save as).
- Extract it (Right-click -> Extract all on Windows; double-click on Mac).
- Keep the two Titanic files somewhere you can find them during the S3 episode, e.g.
~/Downloads/data/titanic/titanic_train.csv~/Downloads/data/titanic/titanic_test.csv
4. Review the Workshop Glossary Page
When learning cloud tools for the first time, understanding new terminology is half the battle. We encourage learners to briefly review the Glossary page (also accessible from the top menu of each lesson page) before the workshop. You don’t need to memorize the terms—just a quick read-through will help familiarize you with key concepts. Once we start running our own AWS SageMaker experiments, these terms will start to make more sense in context. If you feel lost at any point during the workshop, please ask the instructor for assistance or refer back to the glossary.