Skip to content

Commit 1ec209c

Browse files
author
Bryannah Hernandez
committed
suggestions and test added
1 parent b6062a7 commit 1ec209c

File tree

5 files changed

+32
-21
lines changed

5 files changed

+32
-21
lines changed

src/sagemaker/serve/builder/model_builder.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -915,8 +915,12 @@ def _build_validations(self):
915915
"""Validations needed for model server overrides, or auto-detection or fallback"""
916916
if self.mode == Mode.IN_PROCESS and self.model_server is not ModelServer.MMS:
917917
raise ValueError(
918-
"IN_PROCESS mode is not supported yet for model server. It is "
919-
"supported for MMS/Transformers server in beta release."
918+
"IN_PROCESS mode is only supported for MMS/Transformers server in beta release."
919+
)
920+
921+
if self.mode == Mode.IN_PROCESS and self.model_server == ModelServer.MMS:
922+
raise Exception(
923+
"IN_PROCESS mode is supported for MMS/Transformers server in beta release."
920924
)
921925

922926
if self.inference_spec and self.model:

src/sagemaker/serve/builder/transformers_builder.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747

4848
logger = logging.getLogger(__name__)
4949
DEFAULT_TIMEOUT = 1800
50+
LOCAL_MODES = [Mode.LOCAL_CONTAINER, Mode.IN_PROCESS]
5051

5152

5253
"""Retrieves images for different libraries - Pytorch, TensorFlow from HuggingFace hub
@@ -164,7 +165,7 @@ def _get_hf_metadata_create_model(self) -> Type[Model]:
164165
vpc_config=self.vpc_config,
165166
)
166167

167-
if self.mode == Mode.LOCAL_CONTAINER or self.mode == Mode.IN_PROCESS:
168+
if self.mode in LOCAL_MODES:
168169
self.image_uri = pysdk_model.serving_image_uri(
169170
self.sagemaker_session.boto_region_name, "local"
170171
)
@@ -293,7 +294,7 @@ def _build_transformers_env(self):
293294

294295
self.pysdk_model = self._create_transformers_model()
295296

296-
if self.mode == Mode.LOCAL_CONTAINER or self.mode == Mode.IN_PROCESS:
297+
if self.mode in LOCAL_MODES:
297298
self._prepare_for_mode()
298299

299300
return self.pysdk_model

src/sagemaker/serve/mode/in_process_mode.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,8 @@
1616

1717
logger = logging.getLogger(__name__)
1818

19-
_PING_HEALTH_CHECK_INTERVAL_SEC = 5
20-
2119
_PING_HEALTH_CHECK_FAIL_MSG = (
22-
"Container did not pass the ping health check. "
20+
"Ping health check did not pass. "
2321
+ "Please increase container_timeout_seconds or review your inference code."
2422
)
2523

@@ -55,7 +53,7 @@ def __init__(
5553
self._invoke_serving = None
5654

5755
def load(self, model_path: str = None):
58-
"""Placeholder docstring"""
56+
"""Loads model path, checks that path exists"""
5957
path = Path(model_path if model_path else self.model_path)
6058
if not path.exists():
6159
raise Exception("model_path does not exist")
@@ -65,7 +63,7 @@ def load(self, model_path: str = None):
6563
return self.inference_spec.load(str(path))
6664

6765
def prepare(self):
68-
"""Placeholder docstring"""
66+
"""Prepares the server"""
6967

7068
def create_server(
7169
self,
@@ -75,9 +73,7 @@ def create_server(
7573
env_vars: Dict[str, str] = None,
7674
model_path: str = None,
7775
):
78-
"""Placeholder docstring"""
79-
80-
# self._pull_image(image=image)
76+
"""Creating the server and checking ping health."""
8177

8278
# self.destroy_server()
8379

src/sagemaker/serve/model_server/multi_model_server/server.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def _start_serving(
3131
secret_key: str,
3232
env_vars: dict,
3333
):
34-
"""Placeholder docstring"""
34+
"""Initializes the start of the server"""
3535
env = {
3636
"SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code",
3737
"SAGEMAKER_PROGRAM": "inference.py",
@@ -59,7 +59,7 @@ def _start_serving(
5959
)
6060

6161
def _invoke_multi_model_server_serving(self, request: object, content_type: str, accept: str):
62-
"""Placeholder docstring"""
62+
"""Invokes the MMS server by sending POST request"""
6363
logger.info(content_type)
6464
logger.info(accept)
6565

@@ -81,9 +81,8 @@ def _invoke_multi_model_server_serving(self, request: object, content_type: str,
8181
return (True, response)
8282

8383
def _multi_model_server_deep_ping(self, predictor: PredictorBase):
84-
"""Placeholder docstring"""
84+
"""Sends a deep ping to ensure prediction"""
8585
response = None
86-
logger.debug("AM I HERE? PING PING")
8786

8887
# try:
8988
# response = predictor.predict(self.schema_builder.sample_input)
@@ -108,7 +107,7 @@ def _start_serving(
108107
secret_key: str,
109108
env_vars: dict,
110109
):
111-
"""Placeholder docstring"""
110+
"""Initializes the start of the server"""
112111
env = {
113112
"SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code",
114113
"SAGEMAKER_PROGRAM": "inference.py",
@@ -136,7 +135,7 @@ def _start_serving(
136135
)
137136

138137
def _invoke_multi_model_server_serving(self, request: object, content_type: str, accept: str):
139-
"""Placeholder docstring"""
138+
"""Invokes MMS server by hitting the docker host"""
140139
try:
141140
response = requests.post(
142141
f"http://{get_docker_host()}:8080/invocations",
@@ -150,7 +149,7 @@ def _invoke_multi_model_server_serving(self, request: object, content_type: str,
150149
raise Exception("Unable to send request to the local container server") from e
151150

152151
def _multi_model_server_deep_ping(self, predictor: PredictorBase):
153-
"""Placeholder docstring"""
152+
"""Deep ping in order to ensure prediction"""
154153
response = None
155154
try:
156155
response = predictor.predict(self.schema_builder.sample_input)

tests/unit/sagemaker/serve/builder/test_model_builder.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,19 @@ def test_validation_in_progress_mode_not_supported(self, mock_serveSettings):
7777
)
7878
self.assertRaisesRegex(
7979
Exception,
80-
"IN_PROCESS mode is not supported yet for model server. It is "
81-
"supported for MMS/Transformers server in beta release.",
80+
"IN_PROCESS mode is only supported for MMS/Transformers server in beta release.",
81+
builder.build,
82+
Mode.IN_PROCESS,
83+
mock_role_arn,
84+
mock_session,
85+
)
86+
87+
patch("sagemaker.serve.builder.model_builder._ServeSettings")
88+
def test_validation_in_progress_mode_supported(self, mock_serveSettings):
89+
builder = ModelBuilder(model_server=ModelServer.MMS)
90+
self.assertRaisesRegex(
91+
Exception,
92+
"IN_PROCESS mode is supported for MMS/Transformers server in beta release.",
8293
builder.build,
8394
Mode.IN_PROCESS,
8495
mock_role_arn,

0 commit comments

Comments
 (0)