|
32 | 32 | from sagemaker.sklearn.model import SKLearnModel
|
33 | 33 | from sagemaker.tensorflow.model import TensorFlowModel
|
34 | 34 | from sagemaker.xgboost.model import XGBoostModel
|
| 35 | +from sagemaker.enums import EndpointType |
| 36 | +from sagemaker.compute_resource_requirements.resource_requirements import ResourceRequirements |
35 | 37 | from sagemaker.workflow.properties import Properties
|
36 | 38 | from tests.unit import (
|
37 | 39 | _test_default_bucket_and_prefix_combinations,
|
@@ -854,6 +856,65 @@ def test_script_mode_model_uses_jumpstart_base_name(repack_model, sagemaker_sess
|
854 | 856 | ].startswith(JUMPSTART_RESOURCE_BASE_NAME)
|
855 | 857 |
|
856 | 858 |
|
| 859 | +@patch("sagemaker.utils.repack_model") |
| 860 | +@patch("sagemaker.fw_utils.tar_and_upload_dir") |
| 861 | +def test_all_framework_models_generation_two_endpoint_deploy_path( |
| 862 | + repack_model, tar_and_uload_dir, sagemaker_session |
| 863 | +): |
| 864 | + framework_model_classes_to_kwargs = { |
| 865 | + PyTorchModel: {"framework_version": "1.5.0", "py_version": "py3"}, |
| 866 | + TensorFlowModel: { |
| 867 | + "framework_version": "2.3", |
| 868 | + }, |
| 869 | + HuggingFaceModel: { |
| 870 | + "pytorch_version": "1.7.1", |
| 871 | + "py_version": "py36", |
| 872 | + "transformers_version": "4.6.1", |
| 873 | + }, |
| 874 | + MXNetModel: {"framework_version": "1.7.0", "py_version": "py3"}, |
| 875 | + SKLearnModel: { |
| 876 | + "framework_version": "0.23-1", |
| 877 | + }, |
| 878 | + XGBoostModel: { |
| 879 | + "framework_version": "1.3-1", |
| 880 | + }, |
| 881 | + } |
| 882 | + |
| 883 | + sagemaker_session.settings = SessionSettings(include_jumpstart_tags=False) |
| 884 | + |
| 885 | + source_dir = "s3://blah/blah/blah" |
| 886 | + for framework_model_class, kwargs in framework_model_classes_to_kwargs.items(): |
| 887 | + framework_model_class( |
| 888 | + entry_point=ENTRY_POINT_INFERENCE, |
| 889 | + role=ROLE, |
| 890 | + sagemaker_session=sagemaker_session, |
| 891 | + model_data=source_dir, |
| 892 | + **kwargs, |
| 893 | + ).deploy( |
| 894 | + instance_type="ml.m2.xlarge", |
| 895 | + initial_instance_count=INSTANCE_COUNT, |
| 896 | + endpoint_type=EndpointType.GEN2, |
| 897 | + resources=ResourceRequirements( |
| 898 | + requests={ |
| 899 | + "num_accelerators": 1, |
| 900 | + "memory": 8192, |
| 901 | + "copies": 1, |
| 902 | + }, |
| 903 | + limits={}, |
| 904 | + ), |
| 905 | + ) |
| 906 | + |
| 907 | + # Verified Generation2 endpoint and inference component creation |
| 908 | + # path |
| 909 | + sagemaker_session.endpoint_in_service_or_not.assert_called_once() |
| 910 | + sagemaker_session.create_model.assert_called_once() |
| 911 | + sagemaker_session.create_inference_component.assert_called_once() |
| 912 | + |
| 913 | + sagemaker_session.create_inference_component.reset_mock() |
| 914 | + sagemaker_session.endpoint_in_service_or_not.reset_mock() |
| 915 | + sagemaker_session.create_model.reset_mock() |
| 916 | + |
| 917 | + |
857 | 918 | @patch("sagemaker.utils.repack_model")
|
858 | 919 | def test_repack_code_location_with_key_prefix(repack_model, sagemaker_session):
|
859 | 920 |
|
|
0 commit comments