AWS sagemaker documentation change
Summary
Updated documentation to use ModelTrainer API and added SageMaker Python SDK v3 code example for AutoGluon-Tabular training
Security assessment
The change updates API references from Estimator to ModelTrainer and adds new SDK v3 examples. No security vulnerabilities, security controls, or security-related configurations are mentioned or modified in the documentation.
Diff
diff --git a/sagemaker/latest/dg/autogluon-tabular-modes.md b/sagemaker/latest/dg/autogluon-tabular-modes.md index 728dae353..28f52f5e5 100644 --- a//sagemaker/latest/dg/autogluon-tabular-modes.md +++ b//sagemaker/latest/dg/autogluon-tabular-modes.md @@ -15 +15,85 @@ Use the AutoGluon-Tabular built-in algorithm to build an AutoGluon-Tabular train -After specifying the AutoGluon-Tabular image URI, you can use the AutoGluon-Tabular container to construct an estimator using the SageMaker AI Estimator API and initiate a training job. The AutoGluon-Tabular built-in algorithm runs in script mode, but the training script is provided for you and there is no need to replace it. If you have extensive experience using script mode to create a SageMaker training job, then you can incorporate your own AutoGluon-Tabular training scripts. +After specifying the AutoGluon-Tabular image URI, you can use the AutoGluon-Tabular container to construct a ModelTrainer using the SageMaker AI ModelTrainer API and initiate a training job. The AutoGluon-Tabular built-in algorithm runs in script mode, but the training script is provided for you and there is no need to replace it. If you have extensive experience using script mode to create a SageMaker training job, then you can incorporate your own AutoGluon-Tabular training scripts. + +SageMaker Python SDK v3 + + + from sagemaker.core import image_uris + from sagemaker.core import model_uris, script_uris + + train_model_id, train_model_version, train_scope = "autogluon-classification-ensemble", "*", "training" + training_instance_type = "ml.p3.2xlarge" + + # Retrieve the docker image + train_image_uri = image_uris.retrieve( + region=None, + framework=None, + model_id=train_model_id, + model_version=train_model_version, + image_scope=train_scope, + instance_type=training_instance_type + ) + + # Retrieve the training script + train_source_uri = script_uris.retrieve( + model_id=train_model_id, model_version=train_model_version, script_scope=train_scope + ) + + train_model_uri = model_uris.retrieve( + model_id=train_model_id, model_version=train_model_version, model_scope=train_scope + ) + + # Sample training data is available in this bucket + training_data_bucket = f"jumpstart-cache-prod-{aws_region}" + training_data_prefix = "training-datasets/tabular_binary/" + + training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}/train" + validation_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}/validation" + + output_bucket = sess.default_bucket() + output_prefix = "jumpstart-example-tabular-training" + + s3_output_location = f"s3://{output_bucket}/{output_prefix}/output" + + from sagemaker import hyperparameters + + # Retrieve the default hyperparameters for training the model + hyperparameters = hyperparameters.retrieve_default( + model_id=train_model_id, model_version=train_model_version + ) + + # [Optional] Override default hyperparameters with custom values + hyperparameters[ + "auto_stack" + ] = "True" + print(hyperparameters) + + from sagemaker.train import ModelTrainer + from sagemaker.train.configs import InputData + from sagemaker.train.configs import SourceCode, Compute, StoppingCondition, OutputDataConfig + from sagemaker.utils import name_from_base + + training_job_name = name_from_base(f"built-in-algo-{train_model_id}-training") + + # Create SageMaker ModelTrainer instance + tabular_model_trainer = ModelTrainer( + role=aws_role, + training_image=train_image_uri, + source_code=SourceCode(source_dir=train_source_uri, entry_script="transfer_learning.py"), + # In V3, pre-trained model artifacts are passed via input_data_config + compute=Compute(instance_type=training_instance_type, instance_count=1), + stopping_condition=StoppingCondition(max_runtime_in_seconds=360000), + hyperparameters=hyperparameters, + output_data_config=OutputDataConfig(s3_output_path=s3_output_location) + ) + + # Launch a SageMaker Training job by passing the S3 path of the training data + tabular_model_trainer.train( + input_data_config=[ + InputData(channel_name="training", data_source=training_dataset_s3_path), + InputData(channel_name="validation", data_source=validation_dataset_s3_path), + InputData(channel_name="model", data_source=train_model_uri), + ] + ) + +SageMaker Python SDK v2 (Legacy) +