16
16
17
17
import pytest
18
18
19
- from sagemaker .model import Model
20
19
from sagemaker .sklearn .model import SKLearnModel , SKLearnPredictor
21
20
from sagemaker .utils import unique_name_from_base
22
21
from tests .integ import DATA_DIR
@@ -155,120 +154,6 @@ def advanced_right_sized_model(sagemaker_session, cpu_instance_type):
155
154
)
156
155
157
156
158
- @pytest .fixture (scope = "module" )
159
- def default_right_sized_unregistered_model (sagemaker_session , cpu_instance_type ):
160
- with timeout (minutes = 45 ):
161
- try :
162
- ir_job_name = unique_name_from_base ("test-ir-right-size-job-name" )
163
- model_data = sagemaker_session .upload_data (path = IR_SKLEARN_MODEL )
164
- payload_data = sagemaker_session .upload_data (path = IR_SKLEARN_PAYLOAD )
165
-
166
- iam_client = sagemaker_session .boto_session .client ("iam" )
167
- role_arn = iam_client .get_role (RoleName = "SageMakerRole" )["Role" ]["Arn" ]
168
-
169
- sklearn_model = SKLearnModel (
170
- model_data = model_data ,
171
- role = role_arn ,
172
- entry_point = IR_SKLEARN_ENTRY_POINT ,
173
- framework_version = IR_SKLEARN_FRAMEWORK_VERSION ,
174
- )
175
-
176
- return (
177
- sklearn_model .right_size (
178
- job_name = ir_job_name ,
179
- sample_payload_url = payload_data ,
180
- supported_content_types = IR_SKLEARN_CONTENT_TYPE ,
181
- supported_instance_types = [cpu_instance_type ],
182
- framework = IR_SKLEARN_FRAMEWORK ,
183
- log_level = "Quiet" ,
184
- ),
185
- ir_job_name ,
186
- )
187
- except Exception :
188
- sagemaker_session .delete_model (ModelName = sklearn_model .name )
189
-
190
-
191
- @pytest .fixture (scope = "module" )
192
- def advanced_right_sized_unregistered_model (sagemaker_session , cpu_instance_type ):
193
- with timeout (minutes = 45 ):
194
- try :
195
- model_data = sagemaker_session .upload_data (path = IR_SKLEARN_MODEL )
196
- payload_data = sagemaker_session .upload_data (path = IR_SKLEARN_PAYLOAD )
197
-
198
- iam_client = sagemaker_session .boto_session .client ("iam" )
199
- role_arn = iam_client .get_role (RoleName = "SageMakerRole" )["Role" ]["Arn" ]
200
-
201
- sklearn_model = SKLearnModel (
202
- model_data = model_data ,
203
- role = role_arn ,
204
- entry_point = IR_SKLEARN_ENTRY_POINT ,
205
- framework_version = IR_SKLEARN_FRAMEWORK_VERSION ,
206
- )
207
-
208
- hyperparameter_ranges = [
209
- {
210
- "instance_types" : CategoricalParameter ([cpu_instance_type ]),
211
- "TEST_PARAM" : CategoricalParameter (
212
- ["TEST_PARAM_VALUE_1" , "TEST_PARAM_VALUE_2" ]
213
- ),
214
- }
215
- ]
216
-
217
- phases = [
218
- Phase (duration_in_seconds = 300 , initial_number_of_users = 2 , spawn_rate = 2 ),
219
- Phase (duration_in_seconds = 300 , initial_number_of_users = 14 , spawn_rate = 2 ),
220
- ]
221
-
222
- model_latency_thresholds = [
223
- ModelLatencyThreshold (percentile = "P95" , value_in_milliseconds = 100 )
224
- ]
225
-
226
- return sklearn_model .right_size (
227
- sample_payload_url = payload_data ,
228
- supported_content_types = IR_SKLEARN_CONTENT_TYPE ,
229
- framework = IR_SKLEARN_FRAMEWORK ,
230
- job_duration_in_seconds = 3600 ,
231
- hyperparameter_ranges = hyperparameter_ranges ,
232
- phases = phases ,
233
- model_latency_thresholds = model_latency_thresholds ,
234
- max_invocations = 100 ,
235
- max_tests = 5 ,
236
- max_parallel_tests = 5 ,
237
- log_level = "Quiet" ,
238
- )
239
-
240
- except Exception :
241
- sagemaker_session .delete_model (ModelName = sklearn_model .name )
242
-
243
-
244
- @pytest .fixture (scope = "module" )
245
- def default_right_sized_unregistered_base_model (sagemaker_session , cpu_instance_type ):
246
- with timeout (minutes = 45 ):
247
- try :
248
- ir_job_name = unique_name_from_base ("test-ir-right-size-job-name" )
249
- model_data = sagemaker_session .upload_data (path = IR_SKLEARN_MODEL )
250
- payload_data = sagemaker_session .upload_data (path = IR_SKLEARN_PAYLOAD )
251
-
252
- iam_client = sagemaker_session .boto_session .client ("iam" )
253
- role_arn = iam_client .get_role (RoleName = "SageMakerRole" )["Role" ]["Arn" ]
254
-
255
- model = Model (model_data = model_data , role = role_arn , entry_point = IR_SKLEARN_ENTRY_POINT )
256
-
257
- return (
258
- model .right_size (
259
- job_name = ir_job_name ,
260
- sample_payload_url = payload_data ,
261
- supported_content_types = IR_SKLEARN_CONTENT_TYPE ,
262
- supported_instance_types = [cpu_instance_type ],
263
- framework = IR_SKLEARN_FRAMEWORK ,
264
- log_level = "Quiet" ,
265
- ),
266
- ir_job_name ,
267
- )
268
- except Exception :
269
- sagemaker_session .delete_model (ModelName = model .name )
270
-
271
-
272
157
@pytest .mark .slow_test
273
158
def test_default_right_size_and_deploy_registered_model_sklearn (
274
159
default_right_sized_model , sagemaker_session
@@ -291,72 +176,6 @@ def test_default_right_size_and_deploy_registered_model_sklearn(
291
176
predictor .delete_endpoint ()
292
177
293
178
294
- @pytest .mark .slow_test
295
- def test_default_right_size_and_deploy_unregistered_model_sklearn (
296
- default_right_sized_unregistered_model , sagemaker_session
297
- ):
298
- endpoint_name = unique_name_from_base ("test-ir-right-size-default-unregistered-sklearn" )
299
-
300
- right_size_model , ir_job_name = default_right_sized_unregistered_model
301
- with timeout (minutes = 45 ):
302
- try :
303
- right_size_model .predictor_cls = SKLearnPredictor
304
- predictor = right_size_model .deploy (endpoint_name = endpoint_name )
305
-
306
- payload = pd .read_csv (IR_SKLEARN_DATA , header = None )
307
-
308
- inference = predictor .predict (payload )
309
- assert inference is not None
310
- assert 26 == len (inference )
311
- finally :
312
- predictor .delete_model ()
313
- predictor .delete_endpoint ()
314
-
315
-
316
- @pytest .mark .slow_test
317
- def test_default_right_size_and_deploy_unregistered_base_model (
318
- default_right_sized_unregistered_base_model , sagemaker_session
319
- ):
320
- endpoint_name = unique_name_from_base ("test-ir-right-size-default-unregistered-base" )
321
-
322
- right_size_model , ir_job_name = default_right_sized_unregistered_base_model
323
- with timeout (minutes = 45 ):
324
- try :
325
- right_size_model .predictor_cls = SKLearnPredictor
326
- predictor = right_size_model .deploy (endpoint_name = endpoint_name )
327
-
328
- payload = pd .read_csv (IR_SKLEARN_DATA , header = None )
329
-
330
- inference = predictor .predict (payload )
331
- assert inference is not None
332
- assert 26 == len (inference )
333
- finally :
334
- predictor .delete_model ()
335
- predictor .delete_endpoint ()
336
-
337
-
338
- @pytest .mark .slow_test
339
- def test_advanced_right_size_and_deploy_unregistered_model_sklearn (
340
- advanced_right_sized_unregistered_model , sagemaker_session
341
- ):
342
- endpoint_name = unique_name_from_base ("test-ir-right-size-advanced-sklearn" )
343
-
344
- right_size_model = advanced_right_sized_unregistered_model
345
- with timeout (minutes = 45 ):
346
- try :
347
- right_size_model .predictor_cls = SKLearnPredictor
348
- predictor = right_size_model .deploy (endpoint_name = endpoint_name )
349
-
350
- payload = pd .read_csv (IR_SKLEARN_DATA , header = None )
351
-
352
- inference = predictor .predict (payload )
353
- assert inference is not None
354
- assert 26 == len (inference )
355
- finally :
356
- predictor .delete_model ()
357
- predictor .delete_endpoint ()
358
-
359
-
360
179
@pytest .mark .slow_test
361
180
def test_advanced_right_size_and_deploy_registered_model_sklearn (
362
181
advanced_right_sized_model , sagemaker_session
0 commit comments