Skip to content

Commit 9129ee9

Browse files
author
Bryannah Hernandez
committed
removing in_process and minor edits
1 parent 0528cdc commit 9129ee9

File tree

9 files changed

+12
-368
lines changed

9 files changed

+12
-368
lines changed

src/sagemaker/serve/builder/model_builder.py

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
from sagemaker.serve.mode.function_pointers import Mode
3737
from sagemaker.serve.mode.sagemaker_endpoint_mode import SageMakerEndpointMode
3838
from sagemaker.serve.mode.local_container_mode import LocalContainerMode
39-
from sagemaker.serve.mode.in_process_mode import InProcessMode
4039
from sagemaker.serve.detector.pickler import save_pkl, save_xgboost
4140
from sagemaker.serve.builder.serve_settings import _ServeSettings
4241
from sagemaker.serve.builder.djl_builder import DJL
@@ -411,7 +410,7 @@ def _prepare_for_mode(
411410
)
412411
self.env_vars.update(env_vars_sagemaker)
413412
return self.s3_upload_path, env_vars_sagemaker
414-
elif self.mode == Mode.LOCAL_CONTAINER:
413+
if self.mode == Mode.LOCAL_CONTAINER:
415414
# init the LocalContainerMode object
416415
self.modes[str(Mode.LOCAL_CONTAINER)] = LocalContainerMode(
417416
inference_spec=self.inference_spec,
@@ -423,22 +422,9 @@ def _prepare_for_mode(
423422
)
424423
self.modes[str(Mode.LOCAL_CONTAINER)].prepare()
425424
return None
426-
elif self.mode == Mode.IN_PROCESS:
427-
# init the InProcessMode object
428-
self.modes[str(Mode.IN_PROCESS)] = InProcessMode(
429-
inference_spec=self.inference_spec,
430-
schema_builder=self.schema_builder,
431-
session=self.sagemaker_session,
432-
model_path=self.model_path,
433-
env_vars=self.env_vars,
434-
model_server=self.model_server,
435-
)
436-
self.modes[str(Mode.IN_PROCESS)].prepare()
437-
return None
438425

439426
raise ValueError(
440-
"Please specify mode in: %s, %s, %s"
441-
% (Mode.LOCAL_CONTAINER, Mode.SAGEMAKER_ENDPOINT, Mode.IN_PROCESS)
427+
"Please specify mode in: %s, %s" % (Mode.LOCAL_CONTAINER, Mode.SAGEMAKER_ENDPOINT)
442428
)
443429

444430
def _get_client_translators(self):
@@ -620,9 +606,6 @@ def _overwrite_mode_in_deploy(self, overwrite_mode: str):
620606
elif overwrite_mode == Mode.LOCAL_CONTAINER:
621607
self.mode = self.pysdk_model.mode = Mode.LOCAL_CONTAINER
622608
self._prepare_for_mode()
623-
elif overwrite_mode == Mode.IN_PROCESS:
624-
self.mode = self.pysdk_model.mode = Mode.IN_PROCESS
625-
self._prepare_for_mode()
626609
else:
627610
raise ValueError("Mode %s is not supported!" % overwrite_mode)
628611

@@ -812,10 +795,9 @@ def _initialize_for_mlflow(self, artifact_path: str) -> None:
812795
self.dependencies.update({"requirements": mlflow_model_dependency_path})
813796

814797
# Model Builder is a class to build the model for deployment.
815-
# It supports two* modes of deployment
798+
# It supports two modes of deployment
816799
# 1/ SageMaker Endpoint
817800
# 2/ Local launch with container
818-
# 3/ In process mode with Transformers server in beta release
819801
def build( # pylint: disable=R0911
820802
self,
821803
mode: Type[Mode] = None,
@@ -913,10 +895,8 @@ def build( # pylint: disable=R0911
913895

914896
def _build_validations(self):
915897
"""Validations needed for model server overrides, or auto-detection or fallback"""
916-
if self.mode == Mode.IN_PROCESS and self.model_server is not ModelServer.MMS:
917-
raise ValueError(
918-
"IN_PROCESS mode is only supported for MMS/Transformers server in beta release."
919-
)
898+
if self.mode == Mode.IN_PROCESS:
899+
raise ValueError("IN_PROCESS mode is not supported yet!")
920900

921901
if self.inference_spec and self.model:
922902
raise ValueError("Can only set one of the following: model, inference_spec.")

src/sagemaker/serve/builder/requirements_manager.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020

2121

2222
class RequirementsManager:
23-
"""Transformers build logic with ModelBuilder()"""
23+
"""Manages dependency installation by detecting file types"""
2424

2525
def detect_file_exists(self, dependencies: str = None) -> str:
26-
"""Creates snapshot of the user's environment
26+
""" Detects the type of file dependencies will be installed from
2727
2828
If a req.txt or conda.yml file is provided, it verifies their existence and
2929
returns the local file path
@@ -92,7 +92,3 @@ def _capture_from_local_runtime(self) -> str:
9292
local_dependencies_path = os.path.join(os.getcwd(), "inf_env_snapshot.yml")
9393

9494
return local_dependencies_path
95-
96-
97-
if __name__ == "__main__":
98-
RequirementsManager().detect_file_exists(dependencies="auto_capture")

src/sagemaker/serve/builder/transformers_builder.py

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,7 @@
3636
)
3737
from sagemaker.serve.detector.pickler import save_pkl
3838
from sagemaker.serve.utils.optimize_utils import _is_optimized
39-
from sagemaker.serve.utils.predictors import (
40-
TransformersLocalModePredictor,
41-
TransformersInProcessModePredictor,
42-
)
39+
from sagemaker.serve.utils.predictors import TransformersLocalModePredictor
4340
from sagemaker.serve.utils.types import ModelServer
4441
from sagemaker.serve.mode.function_pointers import Mode
4542
from sagemaker.serve.utils.telemetry_logger import _capture_telemetry
@@ -50,7 +47,6 @@
5047

5148
logger = logging.getLogger(__name__)
5249
DEFAULT_TIMEOUT = 1800
53-
LOCAL_MODES = [Mode.LOCAL_CONTAINER, Mode.IN_PROCESS]
5450

5551

5652
"""Retrieves images for different libraries - Pytorch, TensorFlow from HuggingFace hub
@@ -234,22 +230,6 @@ def _transformers_model_builder_deploy_wrapper(self, *args, **kwargs) -> Type[Pr
234230
)
235231
return predictor
236232

237-
if self.mode == Mode.IN_PROCESS:
238-
timeout = kwargs.get("model_data_download_timeout")
239-
240-
predictor = TransformersInProcessModePredictor(
241-
self.modes[str(Mode.IN_PROCESS)], serializer, deserializer
242-
)
243-
244-
self.modes[str(Mode.IN_PROCESS)].create_server(
245-
self.image_uri,
246-
timeout if timeout else DEFAULT_TIMEOUT,
247-
None,
248-
predictor,
249-
self.pysdk_model.env,
250-
)
251-
return predictor
252-
253233
if "mode" in kwargs:
254234
del kwargs["mode"]
255235
if "role" in kwargs:
@@ -297,7 +277,7 @@ def _build_transformers_env(self):
297277

298278
self.pysdk_model = self._create_transformers_model()
299279

300-
if self.mode in LOCAL_MODES:
280+
if self.mode == Mode.LOCAL_CONTAINER:
301281
self._prepare_for_mode()
302282

303283
return self.pysdk_model

src/sagemaker/serve/mode/in_process_mode.py

Lines changed: 0 additions & 89 deletions
This file was deleted.

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

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,6 @@
2020
logger = logging.getLogger(__name__)
2121

2222

23-
class InProcessMultiModelServer:
24-
"""In Process Mode Multi Model server instance"""
25-
26-
def _start_serving(self):
27-
"""Initializes the start of the server"""
28-
return Exception("Not implemented")
29-
30-
def _invoke_multi_model_server_serving(self, request: object, content_type: str, accept: str):
31-
"""Invokes the MMS server by sending POST request"""
32-
return Exception("Not implemented")
33-
34-
def _multi_model_server_deep_ping(self, predictor: PredictorBase):
35-
"""Sends a deep ping to ensure prediction"""
36-
response = None
37-
return (True, response)
38-
39-
4023
class LocalMultiModelServer:
4124
"""Local Multi Model server instance"""
4225

src/sagemaker/serve/utils/exceptions.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,6 @@ def __init__(self, message):
2424
super().__init__(message=message)
2525

2626

27-
class InProcessDeepPingException(ModelBuilderException):
28-
"""Raise when in process model serving does not pass the deep ping check"""
29-
30-
fmt = "Error Message: {message}"
31-
model_builder_error_code = 1
32-
33-
def __init__(self, message):
34-
super().__init__(message=message)
35-
36-
3727
class LocalModelOutOfMemoryException(ModelBuilderException):
3828
"""Raise when local model serving fails to load the model"""
3929

src/sagemaker/serve/utils/predictors.py

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
from sagemaker import Session
88
from sagemaker.serve.mode.local_container_mode import LocalContainerMode
9-
from sagemaker.serve.mode.in_process_mode import InProcessMode
109
from sagemaker.serve.builder.schema_builder import SchemaBuilder
1110
from sagemaker.serializers import IdentitySerializer, JSONSerializer
1211
from sagemaker.deserializers import BytesDeserializer, JSONDeserializer
@@ -210,49 +209,6 @@ def delete_predictor(self):
210209
self._mode_obj.destroy_server()
211210

212211

213-
class TransformersInProcessModePredictor(PredictorBase):
214-
"""Lightweight Transformers predictor for local deployment"""
215-
216-
def __init__(
217-
self,
218-
mode_obj: Type[InProcessMode],
219-
serializer=JSONSerializer(),
220-
deserializer=JSONDeserializer(),
221-
):
222-
self._mode_obj = mode_obj
223-
self.serializer = serializer
224-
self.deserializer = deserializer
225-
226-
def predict(self, data):
227-
"""Placeholder docstring"""
228-
return [
229-
self.deserializer.deserialize(
230-
io.BytesIO(
231-
self._mode_obj._invoke_multi_model_server_serving(
232-
self.serializer.serialize(data),
233-
self.content_type,
234-
self.deserializer.ACCEPT[0],
235-
)
236-
),
237-
self.content_type,
238-
)
239-
]
240-
241-
@property
242-
def content_type(self):
243-
"""The MIME type of the data sent to the inference endpoint."""
244-
return self.serializer.CONTENT_TYPE
245-
246-
@property
247-
def accept(self):
248-
"""The content type(s) that are expected from the inference endpoint."""
249-
return self.deserializer.ACCEPT
250-
251-
def delete_predictor(self):
252-
"""Shut down and remove the container that you created in LOCAL_CONTAINER mode"""
253-
self._mode_obj.destroy_server()
254-
255-
256212
class TeiLocalModePredictor(PredictorBase):
257213
"""Lightweight Tei predictor for local deployment in IN_PROCESS and LOCAL_CONTAINER modes"""
258214

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,11 @@
6666

6767
class TestModelBuilder(unittest.TestCase):
6868
@patch("sagemaker.serve.builder.model_builder._ServeSettings")
69-
def test_validation_in_progress_mode_supported(self, mock_serveSettings):
70-
builder = ModelBuilder(model_server=ModelServer.TORCHSERVE)
69+
def test_validation_in_progress_mode_not_supported(self, mock_serveSettings):
70+
builder = ModelBuilder()
7171
self.assertRaisesRegex(
7272
Exception,
73-
"IN_PROCESS mode is only supported for MMS/Transformers server in beta release.",
73+
"IN_PROCESS mode is not supported yet!",
7474
builder.build,
7575
Mode.IN_PROCESS,
7676
mock_role_arn,

0 commit comments

Comments
 (0)