Skip to content

Commit b7417eb

Browse files
authored
Merge branch 'master' into hf-inf-spec-pr
2 parents c3aea27 + 3d1a4f7 commit b7417eb

File tree

6 files changed

+39
-5
lines changed

6 files changed

+39
-5
lines changed

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
# Changelog
22

3+
## v2.224.3 (2024-07-03)
4+
5+
### Bug Fixes and Other Changes
6+
7+
* Upgrade local dependencies
8+
* Improve docstrings for estimator tags
9+
10+
## v2.224.2 (2024-06-27)
11+
12+
### Bug Fixes and Other Changes
13+
14+
* Update DJLModel class for latest container releases
15+
* list_models() for python3.8
16+
317
## v2.224.1 (2024-06-21)
418

519
### Bug Fixes and Other Changes

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.224.2.dev0
1+
2.224.4.dev0
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
urllib3>=1.26.8,<3.0.0
2-
docker>=5.0.2,<7.0.0
2+
docker>=5.0.2,<8.0.0
33
PyYAML>=5.4.1,<7

src/sagemaker/estimator.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,10 @@ def __init__(
274274
AWS services needed. If not specified, the estimator creates one
275275
using the default AWS configuration chain.
276276
tags (Optional[Tags]):
277-
Tags for labeling a training job. For more, see
277+
Tags for labeling a training job. These won't be propagated to Models,
278+
Endpoints during :meth:`~sagemaker.estimator.EstimatorBase.deploy`. The
279+
:meth:`~sagemaker.estimator.EstimatorBase.deploy` takes in a seperate
280+
tags parameter. For more on tags, see
278281
https://docs.aws.amazon.com/sagemaker/latest/dg/API_Tag.html.
279282
subnets (list[str] or list[PipelineVariable]): List of subnet ids. If not
280283
specified training job will be created without VPC config.

src/sagemaker/serve/builder/model_builder.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -881,6 +881,9 @@ def _build_for_model_server(self): # pylint: disable=R0911, R1710
881881
if self.model_metadata:
882882
mlflow_path = self.model_metadata.get(MLFLOW_MODEL_PATH)
883883

884+
if not self.model and not mlflow_path and not self.inference_spec:
885+
raise ValueError("Missing required parameter `model` or 'ml_flow' path or inf_spec")
886+
884887
if self.model_server == ModelServer.TORCHSERVE:
885888
return self._build_for_torchserve()
886889

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

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ def test_model_server_override_djl_without_model_or_mlflow(self, mock_serve_sett
147147
)
148148
self.assertRaisesRegex(
149149
Exception,
150-
"Missing required parameter `model` or 'ml_flow' path",
150+
"Missing required parameter `model` or 'ml_flow' path or inf_spec",
151151
builder.build,
152152
Mode.SAGEMAKER_ENDPOINT,
153153
mock_role_arn,
@@ -168,12 +168,26 @@ def test_model_server_override_torchserve_with_model(
168168

169169
mock_build_for_ts.assert_called_once()
170170

171+
@patch("sagemaker.serve.builder.model_builder._ServeSettings")
172+
@patch("sagemaker.serve.builder.model_builder.ModelBuilder._build_for_torchserve")
173+
def test_model_server_override_torchserve_with_inf_spec(
174+
self, mock_build_for_ts, mock_serve_settings
175+
):
176+
mock_setting_object = mock_serve_settings.return_value
177+
mock_setting_object.role_arn = mock_role_arn
178+
mock_setting_object.s3_model_data_url = mock_s3_model_data_url
179+
180+
builder = ModelBuilder(model_server=ModelServer.TORCHSERVE, inference_spec="some value")
181+
builder.build(sagemaker_session=mock_session)
182+
183+
mock_build_for_ts.assert_called_once()
184+
171185
@patch("sagemaker.serve.builder.model_builder._ServeSettings")
172186
def test_model_server_override_torchserve_without_model_or_mlflow(self, mock_serve_settings):
173187
builder = ModelBuilder(model_server=ModelServer.TORCHSERVE)
174188
self.assertRaisesRegex(
175189
Exception,
176-
"Missing required parameter `model` or 'ml_flow' path",
190+
"Missing required parameter `model` or 'ml_flow' path or inf_spec",
177191
builder.build,
178192
Mode.SAGEMAKER_ENDPOINT,
179193
mock_role_arn,

0 commit comments

Comments
 (0)