@@ -1614,7 +1614,25 @@ def test_model_set_deployment_config(
1614
1614
mock_get_model_specs .reset_mock ()
1615
1615
mock_model_deploy .reset_mock ()
1616
1616
mock_get_model_specs .side_effect = get_prototype_spec_with_configs
1617
- model .set_deployment_config ("neuron-inference" )
1617
+ model .set_deployment_config ("neuron-inference" , "ml.inf2.2xlarge" )
1618
+
1619
+ assert model .config_name == "neuron-inference"
1620
+
1621
+ model .deploy ()
1622
+
1623
+ mock_model_deploy .assert_called_once_with (
1624
+ initial_instance_count = 1 ,
1625
+ instance_type = "ml.inf2.2xlarge" ,
1626
+ tags = [
1627
+ {"Key" : JumpStartTag .MODEL_ID , "Value" : "pytorch-eqa-bert-base-cased" },
1628
+ {"Key" : JumpStartTag .MODEL_VERSION , "Value" : "1.0.0" },
1629
+ {"Key" : JumpStartTag .MODEL_CONFIG_NAME , "Value" : "neuron-inference" },
1630
+ ],
1631
+ wait = True ,
1632
+ endpoint_logging = False ,
1633
+ )
1634
+ mock_model_deploy .reset_mock ()
1635
+ model .set_deployment_config ("neuron-inference" , "ml.inf2.xlarge" )
1618
1636
1619
1637
assert model .config_name == "neuron-inference"
1620
1638
@@ -1640,15 +1658,15 @@ def test_model_set_deployment_config(
1640
1658
@mock .patch ("sagemaker.jumpstart.accessors.JumpStartModelsAccessor.get_model_specs" )
1641
1659
@mock .patch ("sagemaker.jumpstart.model.Model.deploy" )
1642
1660
@mock .patch ("sagemaker.jumpstart.factory.model.JUMPSTART_DEFAULT_REGION_NAME" , region )
1643
- def test_model_unset_deployment_config (
1661
+ def test_model_set_deployment_config_incompatible_instance_type_or_name (
1644
1662
self ,
1645
1663
mock_model_deploy : mock .Mock ,
1646
1664
mock_get_model_specs : mock .Mock ,
1647
1665
mock_session : mock .Mock ,
1648
1666
mock_get_manifest : mock .Mock ,
1649
1667
mock_get_jumpstart_configs : mock .Mock ,
1650
1668
):
1651
- mock_get_model_specs .side_effect = get_prototype_spec_with_configs
1669
+ mock_get_model_specs .side_effect = get_prototype_model_spec
1652
1670
mock_get_manifest .side_effect = (
1653
1671
lambda region , model_type , * args , ** kwargs : get_prototype_manifest (region , model_type )
1654
1672
)
@@ -1658,40 +1676,40 @@ def test_model_unset_deployment_config(
1658
1676
1659
1677
mock_session .return_value = sagemaker_session
1660
1678
1661
- model = JumpStartModel (model_id = model_id , config_name = "neuron-inference" )
1679
+ model = JumpStartModel (model_id = model_id )
1662
1680
1663
- assert model .config_name == "neuron-inference"
1681
+ assert model .config_name is None
1664
1682
1665
1683
model .deploy ()
1666
1684
1667
1685
mock_model_deploy .assert_called_once_with (
1668
1686
initial_instance_count = 1 ,
1669
- instance_type = "ml.inf2 .xlarge" ,
1687
+ instance_type = "ml.p2 .xlarge" ,
1670
1688
tags = [
1671
1689
{"Key" : JumpStartTag .MODEL_ID , "Value" : "pytorch-eqa-bert-base-cased" },
1672
1690
{"Key" : JumpStartTag .MODEL_VERSION , "Value" : "1.0.0" },
1673
- {"Key" : JumpStartTag .MODEL_CONFIG_NAME , "Value" : "neuron-inference" },
1674
1691
],
1675
1692
wait = True ,
1676
1693
endpoint_logging = False ,
1677
1694
)
1678
1695
1679
1696
mock_get_model_specs .reset_mock ()
1680
1697
mock_model_deploy .reset_mock ()
1681
- mock_get_model_specs .side_effect = get_prototype_model_spec
1682
- model .set_deployment_config (None )
1683
-
1684
- model .deploy ()
1698
+ mock_get_model_specs .side_effect = get_prototype_spec_with_configs
1699
+ with pytest .raises (ValueError ) as error :
1700
+ model .set_deployment_config ("neuron-inference" , "ml.inf2.32xlarge" )
1701
+ assert (
1702
+ "Instance type ml.inf2.32xlarge is not supported for config neuron-inference."
1703
+ in str (error )
1704
+ )
1685
1705
1686
- mock_model_deploy .assert_called_once_with (
1687
- initial_instance_count = 1 ,
1688
- instance_type = "ml.p2.xlarge" ,
1689
- tags = [
1690
- {"Key" : JumpStartTag .MODEL_ID , "Value" : "pytorch-eqa-bert-base-cased" },
1691
- {"Key" : JumpStartTag .MODEL_VERSION , "Value" : "1.0.0" },
1692
- ],
1693
- wait = True ,
1694
- endpoint_logging = False ,
1706
+ with pytest .raises (ValueError ) as error :
1707
+ model .set_deployment_config ("neuron-inference-unknown-name" , "ml.inf2.32xlarge" )
1708
+ assert (
1709
+ "Cannot find Jumpstart config name neuron-inference-unknown-name. "
1710
+ "List of config names that is supported by the model: "
1711
+ "['neuron-inference', 'neuron-inference-budget', 'gpu-inference-budget', 'gpu-inference']"
1712
+ in str (error )
1695
1713
)
1696
1714
1697
1715
@mock .patch ("sagemaker.jumpstart.model.get_init_kwargs" )
@@ -1813,6 +1831,7 @@ def test_model_retrieve_deployment_config(
1813
1831
1814
1832
expected = get_base_deployment_configs ()[0 ]
1815
1833
config_name = expected .get ("DeploymentConfigName" )
1834
+ instance_type = expected .get ("InstanceType" )
1816
1835
mock_get_init_kwargs .side_effect = lambda * args , ** kwargs : get_mock_init_kwargs (
1817
1836
model_id , config_name
1818
1837
)
@@ -1821,17 +1840,13 @@ def test_model_retrieve_deployment_config(
1821
1840
1822
1841
model = JumpStartModel (model_id = model_id )
1823
1842
1824
- model .set_deployment_config (config_name )
1843
+ model .set_deployment_config (config_name , instance_type )
1825
1844
1826
1845
self .assertEqual (model .deployment_config , expected )
1827
1846
1828
1847
mock_get_init_kwargs .reset_mock ()
1829
1848
mock_get_init_kwargs .side_effect = lambda * args , ** kwargs : get_mock_init_kwargs (model_id )
1830
1849
1831
- # Unset
1832
- model .set_deployment_config (None )
1833
- self .assertIsNone (model .deployment_config )
1834
-
1835
1850
@mock .patch ("sagemaker.jumpstart.model.get_init_kwargs" )
1836
1851
@mock .patch ("sagemaker.jumpstart.utils.verify_model_region_and_return_specs" )
1837
1852
@mock .patch ("sagemaker.jumpstart.model.get_instance_rate_per_hour" )
0 commit comments