Amazon SageMaker Operators¶
Amazon SageMaker is a fully managed machine learning service. With Amazon SageMaker, data scientists and developers can quickly build and train machine learning models, and then deploy them into a production-ready hosted environment.
Airflow provides operators to create and interact with SageMaker Jobs.
Prerequisite Tasks¶
To use these operators, you must do a few things:
Create necessary resources using AWS Console or AWS CLI.
Install API libraries via pip.
pip install 'apache-airflow[amazon]'Detailed information is available Installation
Manage Amazon SageMaker Jobs¶
Create an Amazon SageMaker Processing Job¶
To create an Amazon Sagemaker processing job to sanitize your dataset you can use
SageMakerProcessingOperator.
preprocess_raw_data = SageMakerProcessingOperator(
task_id='preprocess_raw_data',
config=SAGEMAKER_PROCESSING_JOB_CONFIG,
do_xcom_push=False,
)
Create an Amazon SageMaker Training Job¶
To create an Amazon Sagemaker training job you can use
SageMakerTrainingOperator.
train_model = SageMakerTrainingOperator(
task_id='train_model',
config=TRAINING_CONFIG,
# Waits by default, setting as False to demonstrate the Sensor below.
wait_for_completion=False,
do_xcom_push=False,
)
Create an Amazon SageMaker Model¶
To create an Amazon Sagemaker model you can use
SageMakerModelOperator.
create_model = SageMakerModelOperator(
task_id='create_model',
config=MODEL_CONFIG,
do_xcom_push=False,
)
Start a Hyperparameter Tuning Job¶
To start a hyperparameter tuning job for an Amazon Sagemaker model you can use
SageMakerTuningOperator.
tune_model = SageMakerTuningOperator(
task_id='tune_model',
config=TUNING_CONFIG,
# Waits by default, setting as False to demonstrate the Sensor below.
wait_for_completion=False,
do_xcom_push=False,
)
Delete an Amazon SageMaker Model¶
To delete an Amazon Sagemaker model you can use
SageMakerDeleteModelOperator.
delete_model = SageMakerDeleteModelOperator(
task_id='delete_model',
config={'ModelName': MODEL_NAME},
trigger_rule='all_done',
)
Create an Amazon SageMaker Transform Job¶
To create an Amazon Sagemaker transform job you can use
SageMakerTransformOperator.
test_model = SageMakerTransformOperator(
task_id='test_model',
config=TRANSFORM_CONFIG,
# Waits by default, setting as False to demonstrate the Sensor below.
wait_for_completion=False,
do_xcom_push=False,
)
Create an Amazon SageMaker Endpoint Config Job¶
To create an Amazon Sagemaker endpoint config job you can use
SageMakerEndpointConfigOperator.
configure_endpoint = SageMakerEndpointConfigOperator(
task_id='configure_endpoint',
config=ENDPOINT_CONFIG_CONFIG,
do_xcom_push=False,
)
Create an Amazon SageMaker Endpoint Job¶
To create an Amazon Sagemaker endpoint you can use
SageMakerEndpointOperator.
deploy_endpoint = SageMakerEndpointOperator(
task_id='deploy_endpoint',
config=DEPLOY_ENDPOINT_CONFIG,
# Waits by default, <setting as False to demonstrate the Sensor below.
wait_for_completion=False,
do_xcom_push=False,
)
Amazon SageMaker Sensors¶
Amazon SageMaker Training Sensor¶
To check the state of an Amazon Sagemaker training job until it reaches a terminal state
you can use SageMakerTrainingSensor.
await_training = SageMakerTrainingSensor(
task_id='await_training',
job_name=TRAINING_JOB_NAME,
)
Amazon SageMaker Transform Sensor¶
To check the state of an Amazon Sagemaker transform job until it reaches a terminal state
you can use SageMakerTransformOperator.
await_transform = SageMakerTransformSensor(
task_id='await_transform',
job_name=TRANSFORM_JOB_NAME,
)
Amazon SageMaker Tuning Sensor¶
To check the state of an Amazon Sagemaker hyperparameter tuning job until it reaches a terminal state
you can use SageMakerTuningSensor.
await_tune = SageMakerTuningSensor(
task_id='await_tuning',
job_name=TUNING_JOB_NAME,
)
Amazon SageMaker Endpoint Sensor¶
To check the state of an Amazon Sagemaker hyperparameter tuning job until it reaches a terminal state
you can use SageMakerEndpointSensor.
await_endpoint = SageMakerEndpointSensor(
task_id='await_endpoint',
endpoint_name=ENDPOINT_NAME,
do_xcom_push=False,
)
Reference¶
For further information, look at: