Login to your account using this guide
Use the following command to clone the workshop
git clone https://github.com/data-science-on-aws/oreilly_book.git
Breakout room for troubleshooting - https://chime.aws/4105144644
Introduction Allocated time: 10 minutes
- 01_introduction/01_Setup_Dependencies.ipynb.
- 01_introduction/02_Check_Environment.ipynb.
- 01_introduction/03_Create_S3_Bucket.ipynb.
- 01_introduction/04_Update_IAM_Roles_And_Policies.ipynb.
Resources:
Ingest Allocated time: 20 minutes
- 04_ingest/00_Overview.ipynb
- 04_ingest/01_Copy_TSV_To_S3.ipynb
- 04_ingest/02_Create_Athena_Database.ipynb
- 04_ingest/03_Register_S3_TSV_With_Athena.ipynb
- 04_ingest/04_Convert_S3_TSV_To_Parquet_With_Athena.ipynb
Explore Allocated time: 10 minutes
- 05_explore/00_Overview.ipynb
- 05_explore/01_Visualize_Reviews_Dataset.ipynb.
Prepare Allocated time: 30 minutes
- 06_prepare/00_Overview.ipynb
- 06_prepare/01_Prepare_Dataset_BERT_Scikit_AdHoc_FeatureStore.ipynb. (10m)
- It takes about 6 minutes for data to be availabe in offline feature store
- If you get any errors due to Athena limits, simply rerun the step. What we do here?
- Convert Raw Text to BERT Features using Hugging Face and TensorFlow
- Add Features to SageMaker Feature Store
- Ingest Records into Feature Store
- Build Training Dataset and review using Athena
- Review the Feature Store
- Release Resources
- 06_prepare/02_Prepare_Dataset_BERT_Scikit_ScriptMode_FeatureStore.ipynb. (20m)
- The processing job takes 15 minutes to run
- If you get any errors like ThrottlingException, simply rerun the step and it should work fine.
Resources:
Train
- 07_train/00_Overview.ipynb
- 07_train/01_Train_Reviews_BERT_Transformers_TensorFlow_AdHoc.ipynb
- 07_train/02_Train_Reviews_BERT_Transformers_TensorFlow_ScriptMode.ipynb
Deploy
- 09_deploy/00_Overview.ipynb
- 09_deploy/03_Deploy_Reviews_BERT_TensorFlow_REST_Endpoint.ipynb
- Takes 20 minutes to create the endpoint
- 09_deploy/04_Autoscale_Reviews_BERT_TensorFlow_REST_Endpoint.ipynb
Pipeline
- 10_pipeline/00_Overview.ipynb
- 10_pipeline/01_Create_SageMaker_Pipeline_BERT_Reviews.ipynb
- The pipeline execution takes 42 minutes.
- 10_pipeline/05_Register_Deploy_Model.ipynb
- 10_pipeline/kubeflow
-
10_pipeline/kubeflow/00_00_Setup_EKS.ipynb
- In step 3 - Create EKS cluster, replace the --version 1.17 with --version 1.18
-
10_pipeline/kubeflow/00_01_Configure_Environment.ipynb
-
10_pipeline/kubeflow/00_02_Create_S3_Bucket.ipynb
-
10_pipeline/kubeflow/00_03_Setup_Kubeflow.ipynb
-
10_pipeline/kubeflow/00_04_Setup_Kubeflow_EKS_Credentials.ipynb
-
10_pipeline/kubeflow/00_05_Launch_Kubeflow_Jupyter_Notebook.ipynb
-
10_pipeline/kubeflow/00_06_Explore_Kubernetes_Cluster.ipynb
-
10_pipeline/kubeflow/00_07_SWITCH_TO_KUBEFLOW_NOTEBOOK.ipynb
-
10_pipeline/kubeflow/01_Kubeflow_Intro.ipynb
-
10_pipeline/kubeflow/02_Kubeflow_Pipeline_Simple.ipynb
-
10_pipeline/kubeflow/03_Kubeflow_Pipeline_Reviews_BERT_SageMaker.ipynb
- Update the last cell of 03_Kubeflow_Pipeline_Reviews_BERT_SageMaker.ipynb with following code.
import json inputs = {"features": ["This is great!"]} response = sm_runtime.invoke_endpoint( EndpointName=endpoint_name, ContentType="application/jsonlines", Accept="application/jsonlines", Body=json.dumps(inputs).encode("utf-8") ) print("response: {}".format(response)) predicted_classes_str = response["Body"].read().decode() predicted_classes_json = json.loads(predicted_classes_str) predicted_classes = predicted_classes_json['predicted_label'] print("\n predicted_classes: {}".format(predicted_classes))
- Update the last cell of 03_Kubeflow_Pipeline_Reviews_BERT_SageMaker.ipynb with following code.
-
10_pipeline/kubeflow/04_Distributed_Training.ipynb
-
10_pipeline/kubeflow/05_Hyper_Parameter_Tuning.ipynb
-
