Code used in the AWS Immersion Day: SageMaker ala Carte organized by Loka and celebrated on November 2nd of 2021.
Repository mainly composed by:
training
deployment
In order to show different capabilities of SageMaker when deploying ML models, 2 models were trained prior the event and artifacts were provided to attendants. All code and data related to model training can be found inside training folder.
IMPORTANT NOTE: Before trying the following notebooks, activate the conda environment included in this repo as follows:
conda env create -f environment.yml && conda activate aws-inmmersion
To train a model using xtreme gradient boosting framework that SageMaker uses using SageMaker Python SDK we used the code inside xgboost_customer_churn.ipynb Jupyter notebook. This model is trained using SageMaker instances, therefore, expect a training job to be inititated and an tar.gz
artifact to be stored in an S3 bucket in your AWS account.
IMPORTANT NOTE: For executing this one, you should create a proper AWS IAM role with enough permissions to access SageMaker and S3. Read the notebook for further details.
To train a model using scikit-learn defacto Python ML library we used the code inside scikitlearn_churn_prediction.py.ipynb Jupyter notebook. This notebook can be executed locally as long as the conda environment in this repo is activated or the Python environment used has scikit-learn==0.24.2
.
IMPORTANT NOTE: scikit-learn version should be the same used in [deployment/requirements.txt](requirements.txt) otherwise, deployment will fail.
This folder is composed by:
custom_container
: Dockerfile, scripts and configuration files to create a Docker image that ships a scikit-learn model into Elastic Container Registry (ECR) for SageMaker to use when creating an endpoint.local_notebook
: Notebook to deploy models locally using yourAWS CLI
credentials/profiles rather than using SageMaker notebooks/SageMaker Studio notebooks.model
: XGBoost model artifact.test_data
: Test and validation files to evaluate model performance and send requests to SageMaker endpoint.sagemaker-inference-immersion-day-studio-ver-attendee
: Version that is meant to be used by the attendees while following instructions given by expositors.sagemaker-inference-immersion-day-studio-ver
: Version with full code and comments that is meant to be run as it is inside SageMaker Studio.
IMPORTANT NOTE: Workshop notebooks i.e. sagemaker-inference-immersion-day-studio-ver-attendee and sagemaker-inference-immersion-day-studio-ver are meant to be run inside **SageMaker Studio** otherwise, code will fail.