Summary and Schedule
Workshop Overview
This workshop introduces you to foundational workflows in Amazon SageMaker, covering data setup, code repo setup, model training, and hyperparameter tuning within AWS’s managed environment. You’ll learn how to use SageMaker notebooks to control data pipelines, manage training and tuning jobs, and evaluate model performance effectively. We’ll also cover strategies to help you scale training and tuning efficiently, with guidance on choosing between CPUs and GPUs, as well as when to consider parallelized workflows (i.e., using multiple instances).
To keep costs manageable, this workshop provides tips for tracking and monitoring AWS expenses, so your experiments remain affordable. While AWS isn’t entirely free, it’s very cost-effective for typical ML workflows—training roughly 100 models on a small dataset (under 10GB) can cost under $20, making it accessible for many research projects.
What This Workshop Does Not Cover (Yet)
Currently, this workshop does not include:
- AWS Lambda for serverless function deployment,
- MLFlow or other MLOps tools for experiment tracking,
- Additional AWS services beyond the core SageMaker ML workflows.
If there’s a specific ML workflow or AWS service you’d like to see included in this curriculum, we’re open to developing more content to meet the needs of researchers and ML practitioners at UW–Madison (and at other researcher institutes). Please contact endemann@wisc.edu with suggestions or requests.
Setup Instructions | Download files required for the lesson | |
Duration: 00h 00m | 1. Overview of Amazon SageMaker | |
Duration: 00h 10m | 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 30m | 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: 01h 00m | 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 30m | 5. Using a GitHub Personal Access Token (PAT) to Push/Pull from a SageMaker Notebook |
How can I securely push/pull code to and from GitHub within a SageMaker
notebook? What steps are necessary to set up a GitHub PAT for authentication in SageMaker? How can I convert notebooks to .py files and ignore .ipynb files in version
control?
|
Duration: 02h 05m | 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 does SageMaker handle data and model parallelism, and when should each be considered? |
Duration: 02h 35m | 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 05m | 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 05m | 9. 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: 04h 35m | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.
Accounts and Initial Setup
GitHub Account
If you don’t already have a GitHub account, sign up for GitHub to create a free account. A GitHub account will be required to fork and interact with the lesson repository.
AWS Account
If you don’t have an AWS account, please follow these steps:
Note: Hackathon attendees can skip this step since we are providing you with the account.
- Go to the AWS Free Tier page and click Create a Free Account.
- Complete the sign-up process. AWS offers a free tier with limited monthly usage. Some services, including SageMaker, may incur charges beyond free-tier limits, so be mindful of usage during the workshop. If you follow along with the materials, you can expect to incur around $10 in compute fees (e.g., from training and tuning several different models with GPU enabled at times).
Once your AWS account is set up, log in to the AWS Management Console to get started with SageMaker.
Data Sets
For this workshop, you will need the Titanic
dataset. Please download the following files by right clicking
each and selecting Save as
. Make sure to save them out as
.csvs:
Save these files to a location where they can easily be accessed. In the first episode, you will create an S3 bucket and upload this data to use with SageMaker.
Workshop Repository Setup
You will need a copy of our AWS_helpers repo on GitHub to explore how to manage your repo in AWS. This setup will allow you to follow along with the workshop and test out the Interacting with Repositories episode.
To do this:
- Go to the AWS_helpers GitHub repository.
- Click Fork (top right) to create your own copy of the repository under your GitHub account.
- Once forked, you don’t need to do anything else. We’ll clone this fork once we start working in the AWS Jupyter environment using…