From 27383eae8f5f0d14d2329217ede23e7dcad3995c Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Mon, 23 May 2022 11:26:46 +0200 Subject: [PATCH] feat: add new sklearn release 1.0-1 --- doc/amazon_sagemaker_processing.rst | 2 +- doc/frameworks/sklearn/using_sklearn.rst | 6 ++-- doc/overview.rst | 2 +- src/sagemaker/image_uri_config/sklearn.json | 31 +++++++++++++++++++ src/sagemaker/workflow/_utils.py | 2 +- .../integ/sagemaker/workflow/test_workflow.py | 2 +- .../image_uris/jumpstart/test_sklearn.py | 4 +-- tests/unit/sagemaker/jumpstart/constants.py | 4 +-- tests/unit/sagemaker/lineage/test_query.py | 8 ++--- tests/unit/sagemaker/model/test_model.py | 4 +-- .../workflow/test_processing_step.py | 2 +- .../workflow/test_step_collections.py | 4 +-- .../sagemaker/workflow/test_training_step.py | 2 +- tests/unit/test_estimator.py | 4 +-- 14 files changed, 54 insertions(+), 23 deletions(-) diff --git a/doc/amazon_sagemaker_processing.rst b/doc/amazon_sagemaker_processing.rst index ac168578cd..c290758103 100644 --- a/doc/amazon_sagemaker_processing.rst +++ b/doc/amazon_sagemaker_processing.rst @@ -36,7 +36,7 @@ You first create a ``SKLearnProcessor`` from sagemaker.sklearn.processing import SKLearnProcessor sklearn_processor = SKLearnProcessor( - framework_version="0.20.0", + framework_version="1.0-1", role="[Your SageMaker-compatible IAM role]", instance_type="ml.m5.xlarge", instance_count=1, diff --git a/doc/frameworks/sklearn/using_sklearn.rst b/doc/frameworks/sklearn/using_sklearn.rst index 8e82a1d86c..ef7812d48a 100644 --- a/doc/frameworks/sklearn/using_sklearn.rst +++ b/doc/frameworks/sklearn/using_sklearn.rst @@ -139,7 +139,7 @@ directories ('train' and 'test'). sklearn_estimator = SKLearn('sklearn-train.py', instance_type='ml.m4.xlarge', - framework_version='0.20.0', + framework_version='1.0-1', hyperparameters = {'epochs': 20, 'batch-size': 64, 'learning-rate': 0.1}) sklearn_estimator.fit({'train': 's3://my-data-bucket/path/to/my/training/data', 'test': 's3://my-data-bucket/path/to/my/test/data'}) @@ -203,7 +203,7 @@ operation. # Train my estimator sklearn_estimator = SKLearn(entry_point='train_and_deploy.py', instance_type='ml.m4.xlarge', - framework_version='0.20.0') + framework_version='1.0-1') sklearn_estimator.fit('s3://my_bucket/my_training_data/') # Deploy my estimator to a SageMaker Endpoint and get a Predictor @@ -472,7 +472,7 @@ The following code sample shows how to do this, using the ``SKLearnModel`` class sklearn_model = SKLearnModel(model_data="s3://bucket/model.tar.gz", role="SageMakerRole", entry_point="transform_script.py", - framework_version="0.20.0") + framework_version="1.0-1") predictor = sklearn_model.deploy(instance_type="ml.c4.xlarge", initial_instance_count=1) diff --git a/doc/overview.rst b/doc/overview.rst index 65246eafca..c111e64a10 100644 --- a/doc/overview.rst +++ b/doc/overview.rst @@ -1621,7 +1621,7 @@ To train a model in network isolation mode, set the optional parameter ``enable_ # set the enable_network_isolation parameter to True sklearn_estimator = SKLearn('sklearn-train.py', instance_type='ml.m4.xlarge', - framework_version='0.20.0', + framework_version='1.0-1', hyperparameters = {'epochs': 20, 'batch-size': 64, 'learning-rate': 0.1}, enable_network_isolation=True) diff --git a/src/sagemaker/image_uri_config/sklearn.json b/src/sagemaker/image_uri_config/sklearn.json index fc82eedf01..a9e5abf9f0 100644 --- a/src/sagemaker/image_uri_config/sklearn.json +++ b/src/sagemaker/image_uri_config/sklearn.json @@ -63,6 +63,37 @@ "us-west-2": "246618743249" }, "repository": "sagemaker-scikit-learn" + }, + "1.0-1": { + "py_versions": ["py3"], + "registries": { + "af-south-1": "510948584623", + "ap-east-1": "651117190479", + "ap-northeast-1": "354813040037", + "ap-northeast-2": "366743142698", + "ap-northeast-3": "867004704886", + "ap-south-1": "720646828776", + "ap-southeast-1": "121021644041", + "ap-southeast-2": "783357654285", + "ca-central-1": "341280168497", + "cn-north-1": "450853457545", + "cn-northwest-1": "451049120500", + "eu-central-1": "492215442770", + "eu-north-1": "662702820516", + "eu-west-1": "141502667606", + "eu-west-2": "764974769150", + "eu-west-3": "659782779980", + "eu-south-1": "978288397137", + "me-south-1": "801668240914", + "sa-east-1": "737474898029", + "us-east-1": "683313688378", + "us-east-2": "257758044811", + "us-gov-west-1": "414596584902", + "us-iso-east-1": "833128469047", + "us-west-1": "746614075791", + "us-west-2": "246618743249" + }, + "repository": "sagemaker-scikit-learn" } } } diff --git a/src/sagemaker/workflow/_utils.py b/src/sagemaker/workflow/_utils.py index fad66c3a04..4ffb1db9f1 100644 --- a/src/sagemaker/workflow/_utils.py +++ b/src/sagemaker/workflow/_utils.py @@ -37,7 +37,7 @@ if TYPE_CHECKING: from sagemaker.workflow.step_collections import StepCollection -FRAMEWORK_VERSION = "0.23-1" +FRAMEWORK_VERSION = "1.0-1" INSTANCE_TYPE = "ml.m5.large" REPACK_SCRIPT = "_repack_model.py" diff --git a/tests/integ/sagemaker/workflow/test_workflow.py b/tests/integ/sagemaker/workflow/test_workflow.py index 46eeeb4d06..d83bec5f6e 100644 --- a/tests/integ/sagemaker/workflow/test_workflow.py +++ b/tests/integ/sagemaker/workflow/test_workflow.py @@ -676,7 +676,7 @@ def test_end_to_end_pipeline_successful_execution( ) # define processing step - framework_version = "0.23-1" + framework_version = "1.0-1" sklearn_processor = SKLearnProcessor( framework_version=framework_version, instance_type=processing_instance_type, diff --git a/tests/unit/sagemaker/image_uris/jumpstart/test_sklearn.py b/tests/unit/sagemaker/image_uris/jumpstart/test_sklearn.py index 1410c59bb6..9d98121fd0 100644 --- a/tests/unit/sagemaker/image_uris/jumpstart/test_sklearn.py +++ b/tests/unit/sagemaker/image_uris/jumpstart/test_sklearn.py @@ -55,7 +55,7 @@ def test_jumpstart_sklearn_image_uri(patched_get_model_specs, session): assert uri == framework_class_uri assert ( - uri == "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:0.23-1-cpu-py3" + uri == "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:1.0-1-cpu-py3" ) # training @@ -81,7 +81,7 @@ def test_jumpstart_sklearn_image_uri(patched_get_model_specs, session): assert uri == framework_class_uri assert ( - uri == "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:0.23-1-cpu-py3" + uri == "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:1.0-1-cpu-py3" ) with pytest.raises(ValueError): diff --git a/tests/unit/sagemaker/jumpstart/constants.py b/tests/unit/sagemaker/jumpstart/constants.py index 9a616adfe7..6f2e92b3da 100644 --- a/tests/unit/sagemaker/jumpstart/constants.py +++ b/tests/unit/sagemaker/jumpstart/constants.py @@ -959,7 +959,7 @@ "incremental_training_supported": False, "hosting_ecr_specs": { "framework": "sklearn", - "framework_version": "0.23-1", + "framework_version": "1.0-1", "py_version": "py3", }, "hosting_artifact_key": "sklearn-infer/infer-sklearn-classification-linear.tar.gz", @@ -1025,7 +1025,7 @@ "training_script_key": "source-directory-tarballs/sklearn/transfer_learning/classification/" "v1.0.0/sourcedir.tar.gz", "training_ecr_specs": { - "framework_version": "0.23-1", + "framework_version": "1.0-1", "framework": "sklearn", "py_version": "py3", }, diff --git a/tests/unit/sagemaker/lineage/test_query.py b/tests/unit/sagemaker/lineage/test_query.py index ae76fd199c..b05755452e 100644 --- a/tests/unit/sagemaker/lineage/test_query.py +++ b/tests/unit/sagemaker/lineage/test_query.py @@ -404,7 +404,7 @@ def test_vertex_to_dataset_artifact(sagemaker_session): sagemaker_session.sagemaker_client.describe_artifact.return_value = { "ArtifactArn": "arn:aws:sagemaker:us-west-2:0123456789012:artifact/e66eef7f19c05e75284089183491bd4f", "Source": { - "SourceUri": "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:0.23-1-cpu-py3", + "SourceUri": "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:1.0-1-cpu-py3", "SourceTypes": [], }, "ArtifactType": "Image", @@ -435,7 +435,7 @@ def test_vertex_to_model_artifact(sagemaker_session): sagemaker_session.sagemaker_client.describe_artifact.return_value = { "ArtifactArn": "arn:aws:sagemaker:us-west-2:0123456789012:artifact/e66eef7f19c05e75284089183491bd4f", "Source": { - "SourceUri": "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:0.23-1-cpu-py3", + "SourceUri": "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:1.0-1-cpu-py3", "SourceTypes": [], }, "ArtifactType": "Image", @@ -466,7 +466,7 @@ def test_vertex_to_object_image_artifact(sagemaker_session): sagemaker_session.sagemaker_client.describe_artifact.return_value = { "ArtifactArn": "arn:aws:sagemaker:us-west-2:0123456789012:artifact/e66eef7f19c05e75284089183491bd4f", "Source": { - "SourceUri": "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:0.23-1-cpu-py3", + "SourceUri": "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:1.0-1-cpu-py3", "SourceTypes": [], }, "ArtifactType": "Image", @@ -497,7 +497,7 @@ def test_vertex_to_object_action(sagemaker_session): sagemaker_session.sagemaker_client.describe_action.return_value = { "ActionName": "cp-m5-20210424t041405868z-1619237657-1-aws-endpoint", "Source": { - "SourceUri": "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:0.23-1-cpu-py3", + "SourceUri": "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:1.0-1-cpu-py3", "SourceTypes": [], }, "ActionType": "A", diff --git a/tests/unit/sagemaker/model/test_model.py b/tests/unit/sagemaker/model/test_model.py index edcbfa7d9f..f6b8b777d7 100644 --- a/tests/unit/sagemaker/model/test_model.py +++ b/tests/unit/sagemaker/model/test_model.py @@ -598,7 +598,7 @@ def test_all_framework_models_add_jumpstart_tags( }, MXNetModel: {"framework_version": "1.7.0", "py_version": "py3"}, SKLearnModel: { - "framework_version": "0.23-1", + "framework_version": "1.0-1", }, XGBoostModel: { "framework_version": "1.3-1", @@ -690,7 +690,7 @@ def test_all_framework_models_add_jumpstart_base_name( }, MXNetModel: {"framework_version": "1.7.0", "py_version": "py3"}, SKLearnModel: { - "framework_version": "0.23-1", + "framework_version": "1.0-1", }, XGBoostModel: { "framework_version": "1.3-1", diff --git a/tests/unit/sagemaker/workflow/test_processing_step.py b/tests/unit/sagemaker/workflow/test_processing_step.py index 54bb66c7e2..5f4e3c35b5 100644 --- a/tests/unit/sagemaker/workflow/test_processing_step.py +++ b/tests/unit/sagemaker/workflow/test_processing_step.py @@ -233,7 +233,7 @@ def test_processing_step_with_script_processor(pipeline_session, processing_inpu ), ( SKLearnProcessor( - framework_version="0.23-1", + framework_version="1.0-1", instance_type=INSTANCE_TYPE, instance_count=1, role=sagemaker.get_execution_role(), diff --git a/tests/unit/sagemaker/workflow/test_step_collections.py b/tests/unit/sagemaker/workflow/test_step_collections.py index 9d41e70aca..01311e9485 100644 --- a/tests/unit/sagemaker/workflow/test_step_collections.py +++ b/tests/unit/sagemaker/workflow/test_step_collections.py @@ -63,7 +63,7 @@ ROLE = "DummyRole" MODEL_NAME = "gisele" MODEL_REPACKING_IMAGE_URI = ( - "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:0.23-1-cpu-py3" + "246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-scikit-learn:1.0-1-cpu-py3" ) @@ -1044,7 +1044,7 @@ def test_estimator_transformer_with_model_repack_with_estimator(estimator): "AlgorithmSpecification": { "TrainingInputMode": "File", "TrainingImage": "246618743249.dkr.ecr.us-west-2.amazonaws.com/" - + "sagemaker-scikit-learn:0.23-1-cpu-py3", + + "sagemaker-scikit-learn:1.0-1-cpu-py3", }, "OutputDataConfig": {"S3OutputPath": "s3://my-bucket/"}, "StoppingCondition": {"MaxRuntimeInSeconds": 86400}, diff --git a/tests/unit/sagemaker/workflow/test_training_step.py b/tests/unit/sagemaker/workflow/test_training_step.py index 8840d5bfa4..f84ea12ef3 100644 --- a/tests/unit/sagemaker/workflow/test_training_step.py +++ b/tests/unit/sagemaker/workflow/test_training_step.py @@ -126,7 +126,7 @@ def test_training_step_with_estimator(pipeline_session, training_input, hyperpar "estimator", [ SKLearn( - framework_version="0.23-1", + framework_version="1.0-1", py_version="py3", instance_type=INSTANCE_TYPE, instance_count=1, diff --git a/tests/unit/test_estimator.py b/tests/unit/test_estimator.py index 71e956d6d1..a98c52c3e3 100644 --- a/tests/unit/test_estimator.py +++ b/tests/unit/test_estimator.py @@ -3808,7 +3808,7 @@ def test_all_framework_estimators_add_jumpstart_tags( "instance_type": "ml.p2.xlarge", }, MXNet: {"framework_version": "1.7.0", "py_version": "py3", "instance_type": "ml.p2.xlarge"}, - SKLearn: {"framework_version": "0.23-1", "instance_type": "ml.m2.xlarge"}, + SKLearn: {"framework_version": "1.0-1", "instance_type": "ml.m2.xlarge"}, XGBoost: {"framework_version": "1.3-1", "instance_type": "ml.m2.xlarge"}, } jumpstart_model_uri = f"s3://{list(JUMPSTART_BUCKET_NAME_SET)[0]}/model_dirs/model.tar.gz" @@ -3959,7 +3959,7 @@ def test_all_framework_estimators_add_jumpstart_base_name( "instance_type": "ml.p2.xlarge", }, MXNet: {"framework_version": "1.7.0", "py_version": "py3", "instance_type": "ml.p2.xlarge"}, - SKLearn: {"framework_version": "0.23-1", "instance_type": "ml.m2.xlarge"}, + SKLearn: {"framework_version": "1.0-1", "instance_type": "ml.m2.xlarge"}, XGBoost: {"framework_version": "1.3-1", "instance_type": "ml.m2.xlarge"}, } jumpstart_model_uri = f"s3://{list(JUMPSTART_BUCKET_NAME_SET)[0]}/model_dirs/model.tar.gz"