From b637aa1fc15055422bd948649e59abebeaf7f029 Mon Sep 17 00:00:00 2001 From: kumar shivam ranjan Date: Mon, 20 Jan 2025 23:55:52 +0530 Subject: [PATCH 1/8] Adding task input for OSS registration --- ads/aqua/extension/model_handler.py | 1 + ads/aqua/model/entities.py | 1 + ads/aqua/model/model.py | 2 ++ 3 files changed, 4 insertions(+) diff --git a/ads/aqua/extension/model_handler.py b/ads/aqua/extension/model_handler.py index 42f90ffef..39d1dd136 100644 --- a/ads/aqua/extension/model_handler.py +++ b/ads/aqua/extension/model_handler.py @@ -133,6 +133,7 @@ def post(self, *args, **kwargs): # noqa: ARG002 ignore_patterns = input_data.get("ignore_patterns") freeform_tags = input_data.get("freeform_tags") defined_tags = input_data.get("defined_tags") + task=input_data.get("task") return self.finish( AquaModelApp().register( diff --git a/ads/aqua/model/entities.py b/ads/aqua/model/entities.py index ecdb8b8e7..cb5c90989 100644 --- a/ads/aqua/model/entities.py +++ b/ads/aqua/model/entities.py @@ -293,6 +293,7 @@ class ImportModelDetails(CLIBuilderMixin): ignore_patterns: Optional[List[str]] = None freeform_tags: Optional[dict] = None defined_tags: Optional[dict] = None + task: Optional[str]=None def __post_init__(self): self._command = "model register" diff --git a/ads/aqua/model/model.py b/ads/aqua/model/model.py index 02e0df00f..31393d3c6 100644 --- a/ads/aqua/model/model.py +++ b/ads/aqua/model/model.py @@ -1119,6 +1119,8 @@ def _validate_model( validation_result.tags = hf_tags except Exception: pass + else: + validation_result.tags={Tags.TASK: import_model_details.task if import_model_details.task else UNKNOWN} validation_result.model_formats = model_formats From 63206f7904e5e6294fbae3a2b21f2c1c033e7aea Mon Sep 17 00:00:00 2001 From: kumar shivam ranjan Date: Mon, 20 Jan 2025 23:56:05 +0530 Subject: [PATCH 2/8] Adding task input for OSS registration --- ads/aqua/extension/model_handler.py | 2 +- ads/aqua/model/entities.py | 2 +- ads/aqua/model/model.py | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ads/aqua/extension/model_handler.py b/ads/aqua/extension/model_handler.py index 39d1dd136..009d1ead1 100644 --- a/ads/aqua/extension/model_handler.py +++ b/ads/aqua/extension/model_handler.py @@ -133,7 +133,7 @@ def post(self, *args, **kwargs): # noqa: ARG002 ignore_patterns = input_data.get("ignore_patterns") freeform_tags = input_data.get("freeform_tags") defined_tags = input_data.get("defined_tags") - task=input_data.get("task") + task = input_data.get("task") return self.finish( AquaModelApp().register( diff --git a/ads/aqua/model/entities.py b/ads/aqua/model/entities.py index cb5c90989..865ac14b6 100644 --- a/ads/aqua/model/entities.py +++ b/ads/aqua/model/entities.py @@ -293,7 +293,7 @@ class ImportModelDetails(CLIBuilderMixin): ignore_patterns: Optional[List[str]] = None freeform_tags: Optional[dict] = None defined_tags: Optional[dict] = None - task: Optional[str]=None + task: Optional[str] = None def __post_init__(self): self._command = "model register" diff --git a/ads/aqua/model/model.py b/ads/aqua/model/model.py index 31393d3c6..2468a5fa0 100644 --- a/ads/aqua/model/model.py +++ b/ads/aqua/model/model.py @@ -1120,7 +1120,11 @@ def _validate_model( except Exception: pass else: - validation_result.tags={Tags.TASK: import_model_details.task if import_model_details.task else UNKNOWN} + validation_result.tags = { + Tags.TASK: import_model_details.task + if import_model_details.task + else UNKNOWN + } validation_result.model_formats = model_formats From 62143ee1c6c219d9ae9ea03d6d0276e64b3cdb0b Mon Sep 17 00:00:00 2001 From: kumar shivam ranjan Date: Tue, 21 Jan 2025 00:33:19 +0530 Subject: [PATCH 3/8] Adding task input for OSS registration --- ads/aqua/extension/model_handler.py | 1 + 1 file changed, 1 insertion(+) diff --git a/ads/aqua/extension/model_handler.py b/ads/aqua/extension/model_handler.py index 009d1ead1..4d88d706a 100644 --- a/ads/aqua/extension/model_handler.py +++ b/ads/aqua/extension/model_handler.py @@ -150,6 +150,7 @@ def post(self, *args, **kwargs): # noqa: ARG002 ignore_patterns=ignore_patterns, freeform_tags=freeform_tags, defined_tags=defined_tags, + task=task ) ) From a4a70b3a37d343a9f07763dc9ab274a623f0962d Mon Sep 17 00:00:00 2001 From: kumar shivam ranjan Date: Tue, 21 Jan 2025 00:42:32 +0530 Subject: [PATCH 4/8] Addressing review comments --- ads/aqua/extension/model_handler.py | 2 +- ads/aqua/model/model.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ads/aqua/extension/model_handler.py b/ads/aqua/extension/model_handler.py index 4d88d706a..8d5002150 100644 --- a/ads/aqua/extension/model_handler.py +++ b/ads/aqua/extension/model_handler.py @@ -150,7 +150,7 @@ def post(self, *args, **kwargs): # noqa: ARG002 ignore_patterns=ignore_patterns, freeform_tags=freeform_tags, defined_tags=defined_tags, - task=task + task=task, ) ) diff --git a/ads/aqua/model/model.py b/ads/aqua/model/model.py index 2468a5fa0..c0d2345d3 100644 --- a/ads/aqua/model/model.py +++ b/ads/aqua/model/model.py @@ -376,7 +376,7 @@ def delete_model(self, model_id): f"Failed to delete model:{model_id}. Only registered models or finetuned model can be deleted." ) - @telemetry(entry_point="plugin=model&action=delete", name="aqua") + @telemetry(entry_point="plugin=model&action=edit", name="aqua") def edit_registered_model(self, id, inference_container, enable_finetuning, task): """Edits the default config of unverified registered model. From 6511faf2d5879e9b2fa97385abdbbbb2c751c92d Mon Sep 17 00:00:00 2001 From: kumar shivam ranjan Date: Tue, 21 Jan 2025 14:14:08 +0530 Subject: [PATCH 5/8] Fixing UTs --- tests/unitary/with_extras/aqua/test_deployment.py | 6 +++++- tests/unitary/with_extras/aqua/test_model.py | 8 ++++++++ tests/unitary/with_extras/aqua/test_model_handler.py | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/tests/unitary/with_extras/aqua/test_deployment.py b/tests/unitary/with_extras/aqua/test_deployment.py index 74612ac8d..70faf8610 100644 --- a/tests/unitary/with_extras/aqua/test_deployment.py +++ b/tests/unitary/with_extras/aqua/test_deployment.py @@ -253,7 +253,7 @@ class TestDataset: "created_on": "2024-01-01T00:00:00.000000+00:00", "created_by": "ocid1.user.oc1..", "endpoint": MODEL_DEPLOYMENT_URL, - "private_endpoint_id": null, + "private_endpoint_id": "", "environment_variables": { "BASE_MODEL": "service_models/model-name/artifact", "MODEL_DEPLOY_ENABLE_STREAMING": "true", @@ -521,6 +521,7 @@ def test_create_deployment_for_foundation_model( expected_result["state"] = "CREATING" expected_result["tags"].update(freeform_tags) expected_result["tags"].update(defined_tags) + expected_result["private_endpoint_id"]="" assert actual_attributes == expected_result @patch("ads.aqua.modeldeployment.deployment.get_container_config") @@ -593,6 +594,7 @@ def test_create_deployment_for_fine_tuned_model( assert set(actual_attributes) == set(expected_attributes), "Attributes mismatch" expected_result = copy.deepcopy(TestDataset.aqua_deployment_object) expected_result["state"] = "CREATING" + expected_result["private_endpoint_id"] = "" assert actual_attributes == expected_result @patch("ads.aqua.modeldeployment.deployment.get_container_config") @@ -673,6 +675,7 @@ def test_create_deployment_for_gguf_model( expected_result["environment_variables"] = ( TestDataset.aqua_deployment_gguf_env_vars ) + expected_result["private_endpoint_id"] = "" assert actual_attributes == expected_result @patch("ads.aqua.modeldeployment.deployment.get_container_config") @@ -751,6 +754,7 @@ def test_create_deployment_for_tei_byoc_embedding_model( expected_result["shape_info"] = ( TestDataset.aqua_deployment_tei_byoc_embeddings_shape_info ) + expected_result["private_endpoint_id"]="" expected_result["cmd"] = TestDataset.aqua_deployment_tei_byoc_embeddings_cmd expected_result["environment_variables"] = ( TestDataset.aqua_deployment_tei_byoc_embeddings_env_vars diff --git a/tests/unitary/with_extras/aqua/test_model.py b/tests/unitary/with_extras/aqua/test_model.py index cabb8c523..60eae0b3d 100644 --- a/tests/unitary/with_extras/aqua/test_model.py +++ b/tests/unitary/with_extras/aqua/test_model.py @@ -1021,11 +1021,15 @@ def test_import_any_model_smc_container( inference_container="odsc-vllm-or-tgi-container", finetuning_container="odsc-llm-fine-tuning", download_from_hf=False, + task='text-generation' ) assert model.tags == { "aqua_custom_base_model": "true", "model_format": "SAFETENSORS", "ready_to_fine_tune": "true", + 'license': '', + 'organization': '', + 'task': 'text-generation', **ds_freeform_tags, } assert model.inference_container == "odsc-vllm-or-tgi-container" @@ -1162,6 +1166,7 @@ def test_import_model_with_input_tags( download_from_hf=False, freeform_tags={"ftag1": "fvalue1", "ftag2": "fvalue2"}, defined_tags={"dtag1": "dvalue1", "dtag2": "dvalue2"}, + task="image_text_to_text" ) assert model.tags == { "aqua_custom_base_model": "true", @@ -1171,6 +1176,9 @@ def test_import_model_with_input_tags( "dtag2": "dvalue2", "ftag1": "fvalue1", "ftag2": "fvalue2", + 'license': '', + 'organization': '', + 'task': 'image_text_to_text', **ds_freeform_tags, } diff --git a/tests/unitary/with_extras/aqua/test_model_handler.py b/tests/unitary/with_extras/aqua/test_model_handler.py index bf02174b9..72957e526 100644 --- a/tests/unitary/with_extras/aqua/test_model_handler.py +++ b/tests/unitary/with_extras/aqua/test_model_handler.py @@ -218,6 +218,7 @@ def test_register( ignore_patterns=ignore_patterns, freeform_tags=freeform_tags, defined_tags=defined_tags, + task=None ) assert result["id"] == "test_id" assert result["inference_container"] == "odsc-tgi-serving" From 3df729f063b828554693e0864502b675fcf5e980 Mon Sep 17 00:00:00 2001 From: kumar shivam ranjan Date: Tue, 21 Jan 2025 14:14:31 +0530 Subject: [PATCH 6/8] Formatting --- .../unitary/with_extras/aqua/test_deployment.py | 4 ++-- tests/unitary/with_extras/aqua/test_model.py | 16 ++++++++-------- .../with_extras/aqua/test_model_handler.py | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/unitary/with_extras/aqua/test_deployment.py b/tests/unitary/with_extras/aqua/test_deployment.py index 70faf8610..d855ec406 100644 --- a/tests/unitary/with_extras/aqua/test_deployment.py +++ b/tests/unitary/with_extras/aqua/test_deployment.py @@ -521,7 +521,7 @@ def test_create_deployment_for_foundation_model( expected_result["state"] = "CREATING" expected_result["tags"].update(freeform_tags) expected_result["tags"].update(defined_tags) - expected_result["private_endpoint_id"]="" + expected_result["private_endpoint_id"] = "" assert actual_attributes == expected_result @patch("ads.aqua.modeldeployment.deployment.get_container_config") @@ -754,7 +754,7 @@ def test_create_deployment_for_tei_byoc_embedding_model( expected_result["shape_info"] = ( TestDataset.aqua_deployment_tei_byoc_embeddings_shape_info ) - expected_result["private_endpoint_id"]="" + expected_result["private_endpoint_id"] = "" expected_result["cmd"] = TestDataset.aqua_deployment_tei_byoc_embeddings_cmd expected_result["environment_variables"] = ( TestDataset.aqua_deployment_tei_byoc_embeddings_env_vars diff --git a/tests/unitary/with_extras/aqua/test_model.py b/tests/unitary/with_extras/aqua/test_model.py index 60eae0b3d..c69a57aa2 100644 --- a/tests/unitary/with_extras/aqua/test_model.py +++ b/tests/unitary/with_extras/aqua/test_model.py @@ -1021,15 +1021,15 @@ def test_import_any_model_smc_container( inference_container="odsc-vllm-or-tgi-container", finetuning_container="odsc-llm-fine-tuning", download_from_hf=False, - task='text-generation' + task="text-generation", ) assert model.tags == { "aqua_custom_base_model": "true", "model_format": "SAFETENSORS", "ready_to_fine_tune": "true", - 'license': '', - 'organization': '', - 'task': 'text-generation', + "license": "", + "organization": "", + "task": "text-generation", **ds_freeform_tags, } assert model.inference_container == "odsc-vllm-or-tgi-container" @@ -1166,7 +1166,7 @@ def test_import_model_with_input_tags( download_from_hf=False, freeform_tags={"ftag1": "fvalue1", "ftag2": "fvalue2"}, defined_tags={"dtag1": "dvalue1", "dtag2": "dvalue2"}, - task="image_text_to_text" + task="image_text_to_text", ) assert model.tags == { "aqua_custom_base_model": "true", @@ -1176,9 +1176,9 @@ def test_import_model_with_input_tags( "dtag2": "dvalue2", "ftag1": "fvalue1", "ftag2": "fvalue2", - 'license': '', - 'organization': '', - 'task': 'image_text_to_text', + "license": "", + "organization": "", + "task": "image_text_to_text", **ds_freeform_tags, } diff --git a/tests/unitary/with_extras/aqua/test_model_handler.py b/tests/unitary/with_extras/aqua/test_model_handler.py index 72957e526..fda60ae94 100644 --- a/tests/unitary/with_extras/aqua/test_model_handler.py +++ b/tests/unitary/with_extras/aqua/test_model_handler.py @@ -218,7 +218,7 @@ def test_register( ignore_patterns=ignore_patterns, freeform_tags=freeform_tags, defined_tags=defined_tags, - task=None + task=None, ) assert result["id"] == "test_id" assert result["inference_container"] == "odsc-tgi-serving" From 61f4cfa512aa2f0f77595414569d92d2fab2fed3 Mon Sep 17 00:00:00 2001 From: kumar shivam ranjan Date: Tue, 21 Jan 2025 15:37:21 +0530 Subject: [PATCH 7/8] Fixing UTs --- tests/unitary/with_extras/aqua/test_deployment.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tests/unitary/with_extras/aqua/test_deployment.py b/tests/unitary/with_extras/aqua/test_deployment.py index d855ec406..63a77bc5a 100644 --- a/tests/unitary/with_extras/aqua/test_deployment.py +++ b/tests/unitary/with_extras/aqua/test_deployment.py @@ -253,7 +253,6 @@ class TestDataset: "created_on": "2024-01-01T00:00:00.000000+00:00", "created_by": "ocid1.user.oc1..", "endpoint": MODEL_DEPLOYMENT_URL, - "private_endpoint_id": "", "environment_variables": { "BASE_MODEL": "service_models/model-name/artifact", "MODEL_DEPLOY_ENABLE_STREAMING": "true", @@ -521,7 +520,6 @@ def test_create_deployment_for_foundation_model( expected_result["state"] = "CREATING" expected_result["tags"].update(freeform_tags) expected_result["tags"].update(defined_tags) - expected_result["private_endpoint_id"] = "" assert actual_attributes == expected_result @patch("ads.aqua.modeldeployment.deployment.get_container_config") @@ -594,7 +592,6 @@ def test_create_deployment_for_fine_tuned_model( assert set(actual_attributes) == set(expected_attributes), "Attributes mismatch" expected_result = copy.deepcopy(TestDataset.aqua_deployment_object) expected_result["state"] = "CREATING" - expected_result["private_endpoint_id"] = "" assert actual_attributes == expected_result @patch("ads.aqua.modeldeployment.deployment.get_container_config") @@ -675,7 +672,6 @@ def test_create_deployment_for_gguf_model( expected_result["environment_variables"] = ( TestDataset.aqua_deployment_gguf_env_vars ) - expected_result["private_endpoint_id"] = "" assert actual_attributes == expected_result @patch("ads.aqua.modeldeployment.deployment.get_container_config") @@ -754,7 +750,6 @@ def test_create_deployment_for_tei_byoc_embedding_model( expected_result["shape_info"] = ( TestDataset.aqua_deployment_tei_byoc_embeddings_shape_info ) - expected_result["private_endpoint_id"] = "" expected_result["cmd"] = TestDataset.aqua_deployment_tei_byoc_embeddings_cmd expected_result["environment_variables"] = ( TestDataset.aqua_deployment_tei_byoc_embeddings_env_vars From 590ac5bd22d30d1e76594da5b362d1c9320c072d Mon Sep 17 00:00:00 2001 From: kumar shivam ranjan Date: Tue, 21 Jan 2025 15:39:27 +0530 Subject: [PATCH 8/8] Fixing UTs --- tests/unitary/with_extras/aqua/test_deployment.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/unitary/with_extras/aqua/test_deployment.py b/tests/unitary/with_extras/aqua/test_deployment.py index 63a77bc5a..74612ac8d 100644 --- a/tests/unitary/with_extras/aqua/test_deployment.py +++ b/tests/unitary/with_extras/aqua/test_deployment.py @@ -253,6 +253,7 @@ class TestDataset: "created_on": "2024-01-01T00:00:00.000000+00:00", "created_by": "ocid1.user.oc1..", "endpoint": MODEL_DEPLOYMENT_URL, + "private_endpoint_id": null, "environment_variables": { "BASE_MODEL": "service_models/model-name/artifact", "MODEL_DEPLOY_ENABLE_STREAMING": "true",