From 027415fcabc252482aae3af1c297fdf49422d2d4 Mon Sep 17 00:00:00 2001 From: Benjamin Crabtree Date: Mon, 10 Mar 2025 17:47:09 +0000 Subject: [PATCH 01/13] fix integ test hub --- src/sagemaker/jumpstart/hub/hub.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/sagemaker/jumpstart/hub/hub.py b/src/sagemaker/jumpstart/hub/hub.py index 692966cee4..4a412f81d3 100644 --- a/src/sagemaker/jumpstart/hub/hub.py +++ b/src/sagemaker/jumpstart/hub/hub.py @@ -99,12 +99,14 @@ def create( "hub_description": description, "hub_display_name": display_name, "hub_search_keywords": search_keywords, - "tags": tags, + "tags": tags } - + if self.bucket_name: request["s3_storage_config"] = { - "S3OutputPath": (f"s3://{self.bucket_name}/{self.hub_name}-{curr_timestamp}") + "S3OutputPath": ( + f"s3://{self.bucket_name}/{self.hub_name}-{curr_timestamp}" + ) } return self._sagemaker_session.create_hub(**request) From e262db9730afda70af9f50743107f735d01fc6ce Mon Sep 17 00:00:00 2001 From: Benjamin Crabtree Date: Mon, 10 Mar 2025 17:55:28 +0000 Subject: [PATCH 02/13] lint --- src/sagemaker/jumpstart/hub/hub.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/sagemaker/jumpstart/hub/hub.py b/src/sagemaker/jumpstart/hub/hub.py index 4a412f81d3..692966cee4 100644 --- a/src/sagemaker/jumpstart/hub/hub.py +++ b/src/sagemaker/jumpstart/hub/hub.py @@ -99,14 +99,12 @@ def create( "hub_description": description, "hub_display_name": display_name, "hub_search_keywords": search_keywords, - "tags": tags + "tags": tags, } - + if self.bucket_name: request["s3_storage_config"] = { - "S3OutputPath": ( - f"s3://{self.bucket_name}/{self.hub_name}-{curr_timestamp}" - ) + "S3OutputPath": (f"s3://{self.bucket_name}/{self.hub_name}-{curr_timestamp}") } return self._sagemaker_session.create_hub(**request) From cacb9779f72aa20d34fdd0692c11b09ad0b72216 Mon Sep 17 00:00:00 2001 From: Benjamin Crabtree Date: Tue, 1 Apr 2025 16:25:44 +0000 Subject: [PATCH 03/13] fix jumpstart curated hub bugs --- src/sagemaker/jumpstart/accessors.py | 5 +++ src/sagemaker/jumpstart/estimator.py | 2 +- src/sagemaker/jumpstart/utils.py | 24 ++++++++++--- .../test_jumpstart_private_hub_estimator.py | 36 +++++++++++++++++++ 4 files changed, 61 insertions(+), 6 deletions(-) diff --git a/src/sagemaker/jumpstart/accessors.py b/src/sagemaker/jumpstart/accessors.py index 2ed2deb803..9ebc2880bc 100644 --- a/src/sagemaker/jumpstart/accessors.py +++ b/src/sagemaker/jumpstart/accessors.py @@ -25,6 +25,7 @@ from sagemaker.jumpstart.hub.utils import ( construct_hub_model_arn_from_inputs, construct_hub_model_reference_arn_from_inputs, + generate_hub_arn_for_init_kwargs, ) from sagemaker.jumpstart.constants import JUMPSTART_DEFAULT_REGION_NAME from sagemaker.session import Session @@ -291,6 +292,10 @@ def get_model_specs( # Users only input model id, not contentType, so first try to describe with ModelReference, then with Model if hub_arn: try: + hub_arn = generate_hub_arn_for_init_kwargs( + hub_name=hub_arn, region=region, session=sagemaker_session + ) + hub_model_arn = construct_hub_model_reference_arn_from_inputs( hub_arn=hub_arn, model_name=model_id, version=version ) diff --git a/src/sagemaker/jumpstart/estimator.py b/src/sagemaker/jumpstart/estimator.py index af2fb5bc54..3a2dea8ff8 100644 --- a/src/sagemaker/jumpstart/estimator.py +++ b/src/sagemaker/jumpstart/estimator.py @@ -693,7 +693,7 @@ def fit( accept the end-user license agreement (EULA) that some models require. (Default: None). """ - self.model_access_config = get_model_access_config(accept_eula) + self.model_access_config = get_model_access_config(accept_eula, self.environment) self.hub_access_config = get_hub_access_config( hub_content_arn=self.init_kwargs.get("model_reference_arn", None) ) diff --git a/src/sagemaker/jumpstart/utils.py b/src/sagemaker/jumpstart/utils.py index bd81226727..0f56b7bd5b 100644 --- a/src/sagemaker/jumpstart/utils.py +++ b/src/sagemaker/jumpstart/utils.py @@ -1641,8 +1641,14 @@ def remove_env_var_from_estimator_kwargs_if_accept_eula_present( init_kwargs (dict): Dictionary of kwargs when Estimator is instantiated. accept_eula (Optional[bool]): Whether or not the EULA was accepted, optionally passed in to Estimator.fit(). """ - if accept_eula is not None and init_kwargs["environment"]: - del init_kwargs["environment"][constants.SAGEMAKER_GATED_MODEL_S3_URI_TRAINING_ENV_VAR_KEY] + if accept_eula is not None and init_kwargs.get("environment") is not None: + if ( + constants.SAGEMAKER_GATED_MODEL_S3_URI_TRAINING_ENV_VAR_KEY + in init_kwargs["environment"] + ): + del init_kwargs["environment"][ + constants.SAGEMAKER_GATED_MODEL_S3_URI_TRAINING_ENV_VAR_KEY + ] def get_hub_access_config(hub_content_arn: Optional[str]): @@ -1659,16 +1665,24 @@ def get_hub_access_config(hub_content_arn: Optional[str]): return hub_access_config -def get_model_access_config(accept_eula: Optional[bool]): +def get_model_access_config(accept_eula: Optional[bool], environment: Optional[dict]): """Get access configs Args: accept_eula (Optional[bool]): Whether or not the EULA was accepted, optionally passed in to Estimator.fit(). """ + env_var_eula = environment.get("accept_eula") + if env_var_eula and accept_eula is not None: + raise ValueError( + "Cannot pass in both accept_eula and environment variables. " + "Please remove the environment variable and pass in the accept_eula parameter." + ) + + model_access_config = None + if env_var_eula is not None: + model_access_config = {"AcceptEula": True if env_var_eula == "true" else False} if accept_eula is not None: model_access_config = {"AcceptEula": accept_eula} - else: - model_access_config = None return model_access_config diff --git a/tests/integ/sagemaker/jumpstart/private_hub/estimator/test_jumpstart_private_hub_estimator.py b/tests/integ/sagemaker/jumpstart/private_hub/estimator/test_jumpstart_private_hub_estimator.py index a6e33f1bdf..2a987c0318 100644 --- a/tests/integ/sagemaker/jumpstart/private_hub/estimator/test_jumpstart_private_hub_estimator.py +++ b/tests/integ/sagemaker/jumpstart/private_hub/estimator/test_jumpstart_private_hub_estimator.py @@ -170,6 +170,42 @@ def test_jumpstart_hub_gated_estimator_with_eula(setup, add_model_references): assert response is not None +def test_jumpstart_hub_gated_estimator_with_eula_env_var(setup, add_model_references): + + model_id, model_version = "meta-textgeneration-llama-2-7b", "*" + + estimator = JumpStartEstimator( + model_id=model_id, + hub_name=os.environ[ENV_VAR_JUMPSTART_SDK_TEST_HUB_NAME], + environment={ + "accept_eula": "true", + }, + tags=[{"Key": JUMPSTART_TAG, "Value": os.environ[ENV_VAR_JUMPSTART_SDK_TEST_SUITE_ID]}], + ) + + estimator.fit( + inputs={ + "training": f"s3://{get_jumpstart_content_bucket(JUMPSTART_DEFAULT_REGION_NAME)}/" + f"{get_training_dataset_for_model_and_version(model_id, model_version)}", + }, + ) + + predictor = estimator.deploy( + tags=[{"Key": JUMPSTART_TAG, "Value": os.environ[ENV_VAR_JUMPSTART_SDK_TEST_SUITE_ID]}], + role=get_sm_session().get_caller_identity_arn(), + sagemaker_session=get_sm_session(), + ) + + payload = { + "inputs": "some-payload", + "parameters": {"max_new_tokens": 256, "top_p": 0.9, "temperature": 0.6}, + } + + response = predictor.predict(payload, custom_attributes="accept_eula=true") + + assert response is not None + + def test_jumpstart_hub_gated_estimator_without_eula(setup, add_model_references): model_id, model_version = "meta-textgeneration-llama-2-7b", "*" From 426390408b3f6e5650a09834f3c1fa4de3860958 Mon Sep 17 00:00:00 2001 From: Benjamin Crabtree Date: Tue, 1 Apr 2025 17:10:55 +0000 Subject: [PATCH 04/13] lint --- src/sagemaker/jumpstart/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sagemaker/jumpstart/utils.py b/src/sagemaker/jumpstart/utils.py index 0f56b7bd5b..b2401b4057 100644 --- a/src/sagemaker/jumpstart/utils.py +++ b/src/sagemaker/jumpstart/utils.py @@ -1680,7 +1680,7 @@ def get_model_access_config(accept_eula: Optional[bool], environment: Optional[d model_access_config = None if env_var_eula is not None: - model_access_config = {"AcceptEula": True if env_var_eula == "true" else False} + model_access_config = {"AcceptEula": env_var_eula == "true"} if accept_eula is not None: model_access_config = {"AcceptEula": accept_eula} From c844b33f3bc1cebf8ec0f3fcc65e5060f47bfcdd Mon Sep 17 00:00:00 2001 From: Benjamin Crabtree Date: Tue, 1 Apr 2025 18:29:13 +0000 Subject: [PATCH 05/13] fix tests --- src/sagemaker/jumpstart/estimator.py | 1 + src/sagemaker/jumpstart/utils.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sagemaker/jumpstart/estimator.py b/src/sagemaker/jumpstart/estimator.py index 3a2dea8ff8..787cc2dd40 100644 --- a/src/sagemaker/jumpstart/estimator.py +++ b/src/sagemaker/jumpstart/estimator.py @@ -616,6 +616,7 @@ def _validate_model_id_and_get_type_hook(): self.tolerate_vulnerable_model = estimator_init_kwargs.tolerate_vulnerable_model self.instance_count = estimator_init_kwargs.instance_count self.region = estimator_init_kwargs.region + self.environment = estimator_init_kwargs.environment self.orig_predictor_cls = None self.role = estimator_init_kwargs.role self.sagemaker_session = estimator_init_kwargs.sagemaker_session diff --git a/src/sagemaker/jumpstart/utils.py b/src/sagemaker/jumpstart/utils.py index b2401b4057..80423be86d 100644 --- a/src/sagemaker/jumpstart/utils.py +++ b/src/sagemaker/jumpstart/utils.py @@ -1671,7 +1671,7 @@ def get_model_access_config(accept_eula: Optional[bool], environment: Optional[d Args: accept_eula (Optional[bool]): Whether or not the EULA was accepted, optionally passed in to Estimator.fit(). """ - env_var_eula = environment.get("accept_eula") + env_var_eula = environment.get("accept_eula") if environment else None if env_var_eula and accept_eula is not None: raise ValueError( "Cannot pass in both accept_eula and environment variables. " From d1ee7d225cb148dcb20fc682c83e45442f2c222f Mon Sep 17 00:00:00 2001 From: Benjamin Crabtree Date: Tue, 1 Apr 2025 20:55:59 +0000 Subject: [PATCH 06/13] linting --- src/sagemaker/jumpstart/estimator.py | 6 ++++-- src/sagemaker/jumpstart/utils.py | 10 +++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/sagemaker/jumpstart/estimator.py b/src/sagemaker/jumpstart/estimator.py index 787cc2dd40..4daf9b1810 100644 --- a/src/sagemaker/jumpstart/estimator.py +++ b/src/sagemaker/jumpstart/estimator.py @@ -41,7 +41,7 @@ validate_model_id_and_get_type, resolve_model_sagemaker_config_field, verify_model_region_and_return_specs, - remove_env_var_from_estimator_kwargs_if_accept_eula_present, + remove_env_var_from_estimator_kwargs_if_model_access_config_present, get_model_access_config, get_hub_access_config, ) @@ -714,7 +714,9 @@ def fit( config_name=self.config_name, hub_access_config=self.hub_access_config, ) - remove_env_var_from_estimator_kwargs_if_accept_eula_present(self.init_kwargs, accept_eula) + remove_env_var_from_estimator_kwargs_if_model_access_config_present( + self.init_kwargs, self.model_access_config + ) return super(JumpStartEstimator, self).fit(**estimator_fit_kwargs.to_kwargs_dict()) diff --git a/src/sagemaker/jumpstart/utils.py b/src/sagemaker/jumpstart/utils.py index 80423be86d..45407546bb 100644 --- a/src/sagemaker/jumpstart/utils.py +++ b/src/sagemaker/jumpstart/utils.py @@ -1632,16 +1632,16 @@ def get_draft_model_content_bucket(provider: Dict, region: str) -> str: return neo_bucket -def remove_env_var_from_estimator_kwargs_if_accept_eula_present( - init_kwargs: dict, accept_eula: Optional[bool] +def remove_env_var_from_estimator_kwargs_if_model_access_config_present( + init_kwargs: dict, model_access_config: dict | None ): - """Remove env vars if access configs are used + """Remove env vars if ModelAccessConfig is used Args: init_kwargs (dict): Dictionary of kwargs when Estimator is instantiated. accept_eula (Optional[bool]): Whether or not the EULA was accepted, optionally passed in to Estimator.fit(). """ - if accept_eula is not None and init_kwargs.get("environment") is not None: + if model_access_config is not None and init_kwargs.get("environment") is not None: if ( constants.SAGEMAKER_GATED_MODEL_S3_URI_TRAINING_ENV_VAR_KEY in init_kwargs["environment"] @@ -1672,7 +1672,7 @@ def get_model_access_config(accept_eula: Optional[bool], environment: Optional[d accept_eula (Optional[bool]): Whether or not the EULA was accepted, optionally passed in to Estimator.fit(). """ env_var_eula = environment.get("accept_eula") if environment else None - if env_var_eula and accept_eula is not None: + if env_var_eula is not None and accept_eula is not None: raise ValueError( "Cannot pass in both accept_eula and environment variables. " "Please remove the environment variable and pass in the accept_eula parameter." From 2e728f816bf3e964fda4147dfaccc479490988f7 Mon Sep 17 00:00:00 2001 From: Benjamin Crabtree Date: Tue, 1 Apr 2025 21:01:15 +0000 Subject: [PATCH 07/13] lint --- src/sagemaker/jumpstart/utils.py | 2 +- src/test.py | 36 ++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/test.py diff --git a/src/sagemaker/jumpstart/utils.py b/src/sagemaker/jumpstart/utils.py index 45407546bb..e395661c9a 100644 --- a/src/sagemaker/jumpstart/utils.py +++ b/src/sagemaker/jumpstart/utils.py @@ -1633,7 +1633,7 @@ def get_draft_model_content_bucket(provider: Dict, region: str) -> str: def remove_env_var_from_estimator_kwargs_if_model_access_config_present( - init_kwargs: dict, model_access_config: dict | None + init_kwargs: dict, model_access_config: Optional[dict] ): """Remove env vars if ModelAccessConfig is used diff --git a/src/test.py b/src/test.py new file mode 100644 index 0000000000..4f064f3334 --- /dev/null +++ b/src/test.py @@ -0,0 +1,36 @@ +from sagemaker.jumpstart.hub.hub import Hub +from sagemaker import hyperparameters +from sagemaker.session import Session +from sagemaker.jumpstart.estimator import JumpStartEstimator + + +hub = Hub(hub_name="temp-bencrab-hub", sagemaker_session=Session()) + +# hub.create(description="hello haha") + +model_id = "meta-vlm-llama-3-2-11b-vision" +model_version = "*" +hub_arn = hub.hub_name + +my_hyperparameters = hyperparameters.retrieve_default( + model_id=model_id, model_version=model_version, hub_arn=hub_arn +) +print(my_hyperparameters) +hyperparameters.validate( + model_id=model_id, + model_version=model_version, + hyperparameters=my_hyperparameters, + hub_arn=hub_arn, +) +estimator = JumpStartEstimator( + model_id=model_id, + hub_name=hub_arn, + model_version=model_version, + environment={"accept_eula": "true"}, # Please change {"accept_eula": "true"} + disable_output_compression=True, + instance_type="ml.p4d.24xlarge", + hyperparameters=my_hyperparameters, +) +estimator.fit( + {"training": "s3://jumpstart-cache-prod-us-west-2/training-datasets/docVQA-small-3000ex/"} +) From a8361cc98783ce64be85fe9c848db88c14892a8e Mon Sep 17 00:00:00 2001 From: Benjamin Crabtree Date: Tue, 1 Apr 2025 21:15:31 +0000 Subject: [PATCH 08/13] rm test file --- src/test.py | 36 ------------------------------------ 1 file changed, 36 deletions(-) delete mode 100644 src/test.py diff --git a/src/test.py b/src/test.py deleted file mode 100644 index 4f064f3334..0000000000 --- a/src/test.py +++ /dev/null @@ -1,36 +0,0 @@ -from sagemaker.jumpstart.hub.hub import Hub -from sagemaker import hyperparameters -from sagemaker.session import Session -from sagemaker.jumpstart.estimator import JumpStartEstimator - - -hub = Hub(hub_name="temp-bencrab-hub", sagemaker_session=Session()) - -# hub.create(description="hello haha") - -model_id = "meta-vlm-llama-3-2-11b-vision" -model_version = "*" -hub_arn = hub.hub_name - -my_hyperparameters = hyperparameters.retrieve_default( - model_id=model_id, model_version=model_version, hub_arn=hub_arn -) -print(my_hyperparameters) -hyperparameters.validate( - model_id=model_id, - model_version=model_version, - hyperparameters=my_hyperparameters, - hub_arn=hub_arn, -) -estimator = JumpStartEstimator( - model_id=model_id, - hub_name=hub_arn, - model_version=model_version, - environment={"accept_eula": "true"}, # Please change {"accept_eula": "true"} - disable_output_compression=True, - instance_type="ml.p4d.24xlarge", - hyperparameters=my_hyperparameters, -) -estimator.fit( - {"training": "s3://jumpstart-cache-prod-us-west-2/training-datasets/docVQA-small-3000ex/"} -) From b3e6fdef14d2f42231fae9127b49647b13b037ca Mon Sep 17 00:00:00 2001 From: Benjamin Crabtree Date: Wed, 2 Apr 2025 23:58:32 +0000 Subject: [PATCH 09/13] fix test --- .../test_jumpstart_private_hub_estimator.py | 36 ------------------- 1 file changed, 36 deletions(-) diff --git a/tests/integ/sagemaker/jumpstart/private_hub/estimator/test_jumpstart_private_hub_estimator.py b/tests/integ/sagemaker/jumpstart/private_hub/estimator/test_jumpstart_private_hub_estimator.py index 2a987c0318..a6e33f1bdf 100644 --- a/tests/integ/sagemaker/jumpstart/private_hub/estimator/test_jumpstart_private_hub_estimator.py +++ b/tests/integ/sagemaker/jumpstart/private_hub/estimator/test_jumpstart_private_hub_estimator.py @@ -170,42 +170,6 @@ def test_jumpstart_hub_gated_estimator_with_eula(setup, add_model_references): assert response is not None -def test_jumpstart_hub_gated_estimator_with_eula_env_var(setup, add_model_references): - - model_id, model_version = "meta-textgeneration-llama-2-7b", "*" - - estimator = JumpStartEstimator( - model_id=model_id, - hub_name=os.environ[ENV_VAR_JUMPSTART_SDK_TEST_HUB_NAME], - environment={ - "accept_eula": "true", - }, - tags=[{"Key": JUMPSTART_TAG, "Value": os.environ[ENV_VAR_JUMPSTART_SDK_TEST_SUITE_ID]}], - ) - - estimator.fit( - inputs={ - "training": f"s3://{get_jumpstart_content_bucket(JUMPSTART_DEFAULT_REGION_NAME)}/" - f"{get_training_dataset_for_model_and_version(model_id, model_version)}", - }, - ) - - predictor = estimator.deploy( - tags=[{"Key": JUMPSTART_TAG, "Value": os.environ[ENV_VAR_JUMPSTART_SDK_TEST_SUITE_ID]}], - role=get_sm_session().get_caller_identity_arn(), - sagemaker_session=get_sm_session(), - ) - - payload = { - "inputs": "some-payload", - "parameters": {"max_new_tokens": 256, "top_p": 0.9, "temperature": 0.6}, - } - - response = predictor.predict(payload, custom_attributes="accept_eula=true") - - assert response is not None - - def test_jumpstart_hub_gated_estimator_without_eula(setup, add_model_references): model_id, model_version = "meta-textgeneration-llama-2-7b", "*" From b44f722d39bd925f2b9870630792520a157709b1 Mon Sep 17 00:00:00 2001 From: Benjamin Crabtree Date: Thu, 3 Apr 2025 17:14:02 +0000 Subject: [PATCH 10/13] fix --- src/sagemaker/jumpstart/utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sagemaker/jumpstart/utils.py b/src/sagemaker/jumpstart/utils.py index e395661c9a..3d0a0395ea 100644 --- a/src/sagemaker/jumpstart/utils.py +++ b/src/sagemaker/jumpstart/utils.py @@ -1641,7 +1641,7 @@ def remove_env_var_from_estimator_kwargs_if_model_access_config_present( init_kwargs (dict): Dictionary of kwargs when Estimator is instantiated. accept_eula (Optional[bool]): Whether or not the EULA was accepted, optionally passed in to Estimator.fit(). """ - if model_access_config is not None and init_kwargs.get("environment") is not None: + if model_access_config is not None and init_kwargs.get("environment") is not None and init_kwargs.get("model_uri") is not None: if ( constants.SAGEMAKER_GATED_MODEL_S3_URI_TRAINING_ENV_VAR_KEY in init_kwargs["environment"] @@ -1649,6 +1649,7 @@ def remove_env_var_from_estimator_kwargs_if_model_access_config_present( del init_kwargs["environment"][ constants.SAGEMAKER_GATED_MODEL_S3_URI_TRAINING_ENV_VAR_KEY ] + del init_kwargs["environment"]["accept_eula"] def get_hub_access_config(hub_content_arn: Optional[str]): From 1e69585dc5bf805822446233720eceb5979aab6e Mon Sep 17 00:00:00 2001 From: Benjamin Crabtree Date: Thu, 3 Apr 2025 17:15:17 +0000 Subject: [PATCH 11/13] lint --- src/sagemaker/jumpstart/utils.py | 6 +++++- src/test.py | 36 ++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 src/test.py diff --git a/src/sagemaker/jumpstart/utils.py b/src/sagemaker/jumpstart/utils.py index 3d0a0395ea..3b622a1bfe 100644 --- a/src/sagemaker/jumpstart/utils.py +++ b/src/sagemaker/jumpstart/utils.py @@ -1641,7 +1641,11 @@ def remove_env_var_from_estimator_kwargs_if_model_access_config_present( init_kwargs (dict): Dictionary of kwargs when Estimator is instantiated. accept_eula (Optional[bool]): Whether or not the EULA was accepted, optionally passed in to Estimator.fit(). """ - if model_access_config is not None and init_kwargs.get("environment") is not None and init_kwargs.get("model_uri") is not None: + if ( + model_access_config is not None + and init_kwargs.get("environment") is not None + and init_kwargs.get("model_uri") is not None + ): if ( constants.SAGEMAKER_GATED_MODEL_S3_URI_TRAINING_ENV_VAR_KEY in init_kwargs["environment"] diff --git a/src/test.py b/src/test.py new file mode 100644 index 0000000000..4f064f3334 --- /dev/null +++ b/src/test.py @@ -0,0 +1,36 @@ +from sagemaker.jumpstart.hub.hub import Hub +from sagemaker import hyperparameters +from sagemaker.session import Session +from sagemaker.jumpstart.estimator import JumpStartEstimator + + +hub = Hub(hub_name="temp-bencrab-hub", sagemaker_session=Session()) + +# hub.create(description="hello haha") + +model_id = "meta-vlm-llama-3-2-11b-vision" +model_version = "*" +hub_arn = hub.hub_name + +my_hyperparameters = hyperparameters.retrieve_default( + model_id=model_id, model_version=model_version, hub_arn=hub_arn +) +print(my_hyperparameters) +hyperparameters.validate( + model_id=model_id, + model_version=model_version, + hyperparameters=my_hyperparameters, + hub_arn=hub_arn, +) +estimator = JumpStartEstimator( + model_id=model_id, + hub_name=hub_arn, + model_version=model_version, + environment={"accept_eula": "true"}, # Please change {"accept_eula": "true"} + disable_output_compression=True, + instance_type="ml.p4d.24xlarge", + hyperparameters=my_hyperparameters, +) +estimator.fit( + {"training": "s3://jumpstart-cache-prod-us-west-2/training-datasets/docVQA-small-3000ex/"} +) From ea18f02aaff00cbe7fdde7062b9289888431c77e Mon Sep 17 00:00:00 2001 From: Benjamin Crabtree Date: Thu, 3 Apr 2025 17:17:20 +0000 Subject: [PATCH 12/13] remove test --- src/test.py | 36 ------------------------------------ 1 file changed, 36 deletions(-) delete mode 100644 src/test.py diff --git a/src/test.py b/src/test.py deleted file mode 100644 index 4f064f3334..0000000000 --- a/src/test.py +++ /dev/null @@ -1,36 +0,0 @@ -from sagemaker.jumpstart.hub.hub import Hub -from sagemaker import hyperparameters -from sagemaker.session import Session -from sagemaker.jumpstart.estimator import JumpStartEstimator - - -hub = Hub(hub_name="temp-bencrab-hub", sagemaker_session=Session()) - -# hub.create(description="hello haha") - -model_id = "meta-vlm-llama-3-2-11b-vision" -model_version = "*" -hub_arn = hub.hub_name - -my_hyperparameters = hyperparameters.retrieve_default( - model_id=model_id, model_version=model_version, hub_arn=hub_arn -) -print(my_hyperparameters) -hyperparameters.validate( - model_id=model_id, - model_version=model_version, - hyperparameters=my_hyperparameters, - hub_arn=hub_arn, -) -estimator = JumpStartEstimator( - model_id=model_id, - hub_name=hub_arn, - model_version=model_version, - environment={"accept_eula": "true"}, # Please change {"accept_eula": "true"} - disable_output_compression=True, - instance_type="ml.p4d.24xlarge", - hyperparameters=my_hyperparameters, -) -estimator.fit( - {"training": "s3://jumpstart-cache-prod-us-west-2/training-datasets/docVQA-small-3000ex/"} -) From 988b2b5d8249a40fbc3779a29713dc7968d9227a Mon Sep 17 00:00:00 2001 From: Benjamin Crabtree Date: Thu, 3 Apr 2025 19:32:47 +0000 Subject: [PATCH 13/13] update for test --- src/sagemaker/jumpstart/utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sagemaker/jumpstart/utils.py b/src/sagemaker/jumpstart/utils.py index 3b622a1bfe..15f9e9b52e 100644 --- a/src/sagemaker/jumpstart/utils.py +++ b/src/sagemaker/jumpstart/utils.py @@ -1653,6 +1653,7 @@ def remove_env_var_from_estimator_kwargs_if_model_access_config_present( del init_kwargs["environment"][ constants.SAGEMAKER_GATED_MODEL_S3_URI_TRAINING_ENV_VAR_KEY ] + if "accept_eula" in init_kwargs["environment"]: del init_kwargs["environment"]["accept_eula"]