/sagemaker-101-workshop

Hands-on demonstrations for data scientists exploring Amazon SageMaker

Primary LanguageJupyter Notebook

Getting Started with "Amazon SageMaker 101"

This repository accompanies a hands-on training event to introduce data scientists (and ML-ready developers / technical leaders) to core model training and deployment workflows with Amazon SageMaker.

Like a "101" course in the academic sense, this will likely not be the simplest introduction to SageMaker you can find; nor the fastest way to get started with advanced features like optimized SageMaker Distributed training or SageMaker Clarify for bias and explainability analyses.

Instead, these exercises are chosen to demonstrate some core build/train/deploy patterns that we've found help new users to first get productive with SageMaker - and to later understand how the more advanced features fit in.

Agenda

An interactive walkthrough of the content with screenshots is available at:

https://sagemaker-101-workshop.workshop.aws/

Sessions in suggested order:

  • builtin_algorithm_hpo_tabular: Demonstrating how to use (and tune the hyperparameters of) a pre-built, SageMaker-provided algorithm (Applying XGBoost to tabular data)
  • (Optional) custom_sklearn_rf: Introductory example showing how to bring your own algorithm, using SageMaker's Scikit-Learn container environment as a base (Predicting housing prices)
  • custom_tensorflow_keras_nlp: Demonstrating how to bring your own algorithm, using SageMaker's TensorFlow container environment as a base (Classifying news headline text)
  • migration_challenge_keras_image: A challenge to use what you've learned to migrate an existing TensorFlow notebook to SageMaker model training job and real-time inference endpoint deployment (Classifying MNIST DIGITS images)

While the deep learning exercises above are presented in TensorFlow+Keras by default, PyTorch users can explore the pytorch_alternatives folder instead.

Deploying in Your Own Account

If you've onboarded to SageMaker Studio, you can download this repository by launching a System terminal (From the "Utilities and files" section of the launcher screen inside Studio) and running git clone https://github.com/aws-samples/sagemaker-101-workshop.

If you prefer to use classic SageMaker Notebook Instances, you can find a CloudFormation template defining the standard setup at .ee.tpl.yaml. This can be deployed via the AWS CloudFormation Console.

Note: Some of the examples depend on ipywidgets for interactive inference demos, which should be installed by default in SageMaker Studio but requires additional setup on a classic Notebook Instance. See the CloudFormation template for an example installing the required libraries via Lifecycle Configuration script.

Depending on your setup, you may be asked to choose a kernel when opening some notebooks. There should be guidance at the top of each notebook on suggested kernel types, but if you can't find any, Python 3 (Data Science) (on Studio) or conda_python3 (on Notebook Instances) are likely good options.

You can refer to the "How Are Amazon SageMaker Studio Notebooks Different from Notebook Instances?" docs page for more details on differences between the Studio and Notebook Instance environments. As that page notes, SageMaker studio does not yet support local mode: which we find can be useful to accelerate debugging in the migration challenge.

Security

See CONTRIBUTING for more information.

License

This library is licensed under the MIT-0 License. See the LICENSE file.

Further Reading

One major focus of this workshop is how SageMaker helps us right-size and segregate compute resources for different ML tasks, without sacrificing (but ideally accelerating!) data scientist productivity. For more information on this topic, see this post on the AWS Machine Learning Blog: Right-sizing resources and avoiding unnecessary costs in Amazon SageMaker

As you continue to explore Amazon SageMaker, you'll also find many more useful resources in:

More advanced users may also find it helpful to refer to: