From 87ba4fe0075878a1e7f7149c28509d00c1e60d35 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Mon, 21 Apr 2025 19:58:53 +0530 Subject: [PATCH 01/39] sample commit --- .../src/azureml/model/mgmt/processors/preprocess.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/preprocess.py b/assets/training/model_management/src/azureml/model/mgmt/processors/preprocess.py index eafedca8b8..dd459bfff4 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/preprocess.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/preprocess.py @@ -6,6 +6,9 @@ from azureml.model.mgmt.processors.convertors import MLFLowConvertorInterface from azureml.model.mgmt.processors.factory import get_mlflow_convertor from azureml.model.mgmt.utils.logging_utils import get_logger +from azureml.model.mgmt.utils.common_utils import ( + get_mlclient, +) from pathlib import Path from typing import Dict import os @@ -33,6 +36,16 @@ def run_preprocess(model_framework: str, model_path: Path, output_dir: Path, tem model_framework=model_framework, model_dir=model_path, output_dir=output_dir, temp_dir=temp_dir, translate_params=preprocess_args ) + + # Logic for _vllm_enabled false + if not mlflow_convertor._vllm_enabled: + mlclient = get_mlclient("azureml") + vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") + metadata = { + "azureml.base_image": "mcr.microsoft.com/azureml/curated/foundation-model-inference:" + str(vllm_image.version) + } + logger.info("Metadata: {}".format(metadata)) + mlflow_convertor.save_as_mlflow() logger.info("Model preprocessing completed.") From 643c85f0347854d451710bc418bfdd7838fd79be Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Mon, 21 Apr 2025 20:20:18 +0530 Subject: [PATCH 02/39] Handled Base MLFlow Image as a Tag in Metadata for Import Model Component --- .../model/mgmt/processors/pyfunc/convertors.py | 13 +++++++++++++ .../mgmt/processors/transformers/convertors.py | 11 +++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py index 0fcc355498..a0066401b6 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py @@ -114,6 +114,19 @@ def _save( :type metadata: Optional[Dict]. Defaults to {}. """ signatures = self._signatures or self.get_model_signature() + + # Check and update Base MLFlow Image metadata in Import Model Component + if not self._vllm_enabled: + from azureml.model.mgmt.utils.common_utils import get_mlclient + + mlclient = get_mlclient("azureml") + vllm_image = mlclient.environments.get("mlflow-model-inference", label="latest") + metadata.update({ + "azureml.base_image": "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" + str(vllm_image.version) + }) + logger.info("Metadata: {}".format(metadata)) + + # set metadata info metadata.update(fetch_mlflow_acft_metadata( base_model_name=self._model_id, diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index b650f13555..702080accf 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -180,9 +180,16 @@ def _save( if self._vllm_enabled: mlclient = get_mlclient("azureml") vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") - metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ - + str(vllm_image.version) + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" + str(vllm_image.version) logger.info("Metadata: {}".format(metadata)) + elif not self._vllm_enabled: + mlclient = get_mlclient("azureml") + vllm_image = mlclient.environments.get("mlflow-model-inference", label="latest") + metadata.update({ + "azureml.base_image": "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" + str(vllm_image.version) + }) + logger.info("Metadata: {}".format(metadata)) + if self._model_flavor == "OSS": try: From 5e25780473265fd507036867b4bd664bbb3c7769 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Mon, 21 Apr 2025 20:24:40 +0530 Subject: [PATCH 03/39] Reverted Changes from preprocess.py --- .../src/azureml/model/mgmt/processors/preprocess.py | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/preprocess.py b/assets/training/model_management/src/azureml/model/mgmt/processors/preprocess.py index dd459bfff4..eafedca8b8 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/preprocess.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/preprocess.py @@ -6,9 +6,6 @@ from azureml.model.mgmt.processors.convertors import MLFLowConvertorInterface from azureml.model.mgmt.processors.factory import get_mlflow_convertor from azureml.model.mgmt.utils.logging_utils import get_logger -from azureml.model.mgmt.utils.common_utils import ( - get_mlclient, -) from pathlib import Path from typing import Dict import os @@ -36,16 +33,6 @@ def run_preprocess(model_framework: str, model_path: Path, output_dir: Path, tem model_framework=model_framework, model_dir=model_path, output_dir=output_dir, temp_dir=temp_dir, translate_params=preprocess_args ) - - # Logic for _vllm_enabled false - if not mlflow_convertor._vllm_enabled: - mlclient = get_mlclient("azureml") - vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") - metadata = { - "azureml.base_image": "mcr.microsoft.com/azureml/curated/foundation-model-inference:" + str(vllm_image.version) - } - logger.info("Metadata: {}".format(metadata)) - mlflow_convertor.save_as_mlflow() logger.info("Model preprocessing completed.") From 0b0605744b451e8e817a0d907d18e62e294e4604 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Mon, 21 Apr 2025 20:33:48 +0530 Subject: [PATCH 04/39] Code Refactored --- .../model/mgmt/processors/pyfunc/convertors.py | 7 +++---- .../model/mgmt/processors/transformers/convertors.py | 11 ++++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py index a0066401b6..182ad846fc 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py @@ -120,10 +120,9 @@ def _save( from azureml.model.mgmt.utils.common_utils import get_mlclient mlclient = get_mlclient("azureml") - vllm_image = mlclient.environments.get("mlflow-model-inference", label="latest") - metadata.update({ - "azureml.base_image": "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" + str(vllm_image.version) - }) + mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + + str(mlFlow_image.version) logger.info("Metadata: {}".format(metadata)) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index 702080accf..a4e447d892 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -180,14 +180,15 @@ def _save( if self._vllm_enabled: mlclient = get_mlclient("azureml") vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") - metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" + str(vllm_image.version) + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ + + str(vllm_image.version) logger.info("Metadata: {}".format(metadata)) elif not self._vllm_enabled: mlclient = get_mlclient("azureml") - vllm_image = mlclient.environments.get("mlflow-model-inference", label="latest") - metadata.update({ - "azureml.base_image": "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" + str(vllm_image.version) - }) + mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + + str(mlFlow_image.version) + logger.info("Metadata: {}".format(metadata)) From cd1cf02e368b2fa3aa03486aea8381cb4d78d049 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Mon, 21 Apr 2025 20:43:09 +0530 Subject: [PATCH 05/39] Code Refactored --- .../src/azureml/model/mgmt/processors/pyfunc/convertors.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py index 182ad846fc..4a1d1120d8 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py @@ -114,17 +114,14 @@ def _save( :type metadata: Optional[Dict]. Defaults to {}. """ signatures = self._signatures or self.get_model_signature() - - # Check and update Base MLFlow Image metadata in Import Model Component + # Check and update Base MLFlow Image metadata in Import Model Component if not self._vllm_enabled: from azureml.model.mgmt.utils.common_utils import get_mlclient - mlclient = get_mlclient("azureml") mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + str(mlFlow_image.version) logger.info("Metadata: {}".format(metadata)) - # set metadata info metadata.update(fetch_mlflow_acft_metadata( From 47da33ef532ed34d3667d8fe353198feb6292427 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Mon, 21 Apr 2025 20:49:07 +0530 Subject: [PATCH 06/39] Code Refactored --- .../azureml/model/mgmt/processors/transformers/convertors.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index a4e447d892..6804d5c94e 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -186,12 +186,9 @@ def _save( elif not self._vllm_enabled: mlclient = get_mlclient("azureml") mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") - metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ - + str(mlFlow_image.version) - + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" + str(mlFlow_image.version) logger.info("Metadata: {}".format(metadata)) - if self._model_flavor == "OSS": try: self._save_in_oss_flavor(model, metadata, conda_env, code_paths, input_example, pip_requirements) From 465fb21fdd38dc4e352f42dcdf2cf25a20c35c8c Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Mon, 21 Apr 2025 20:56:37 +0530 Subject: [PATCH 07/39] Code Refactored --- .../src/azureml/model/mgmt/processors/pyfunc/convertors.py | 1 - .../azureml/model/mgmt/processors/transformers/convertors.py | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py index 4a1d1120d8..8153afac1c 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py @@ -122,7 +122,6 @@ def _save( metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + str(mlFlow_image.version) logger.info("Metadata: {}".format(metadata)) - # set metadata info metadata.update(fetch_mlflow_acft_metadata( base_model_name=self._model_id, diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index 6804d5c94e..f4a07e12bc 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -186,7 +186,8 @@ def _save( elif not self._vllm_enabled: mlclient = get_mlclient("azureml") mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") - metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" + str(mlFlow_image.version) + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + + str(mlFlow_image.version) logger.info("Metadata: {}".format(metadata)) if self._model_flavor == "OSS": From 0f68c4d0af02776d4f6d385f0e9aa8acfcef40cb Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 12:19:51 +0530 Subject: [PATCH 08/39] Test Class fixed --- .../model_management/tests/unittests/test_preprocess.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/assets/training/model_management/tests/unittests/test_preprocess.py b/assets/training/model_management/tests/unittests/test_preprocess.py index 4375ed53e8..5d13d39f75 100644 --- a/assets/training/model_management/tests/unittests/test_preprocess.py +++ b/assets/training/model_management/tests/unittests/test_preprocess.py @@ -434,9 +434,12 @@ def test_run_preprocess(self, mock_get_mlflow_convertor): class TestHFMLFLowConvertor: """Test HF Model Convertor Factory.""" - - def test_mlflow_conda_dep(self, model_path, translate_params): + @patch("azureml._common.authentication.AzureMLOnBehalfOfCredential") + def test_mlflow_conda_dep(self, mock_credential, model_path, translate_params): """Validate conda dep has needed dependencies.""" + # Mock the AzureML credential to avoid authentication issues + mock_credential.return_value = MagicMock() + with TemporaryDirectory() as output_dir, TemporaryDirectory() as temp_dir: # save model nlp_mlflow_convertor = NLPMLflowConvertor( From b04bfabc1b935b137a51de40281e4f2acd15e166 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 12:22:46 +0530 Subject: [PATCH 09/39] Code Refactored --- .../training/model_management/tests/unittests/test_preprocess.py | 1 - 1 file changed, 1 deletion(-) diff --git a/assets/training/model_management/tests/unittests/test_preprocess.py b/assets/training/model_management/tests/unittests/test_preprocess.py index 5d13d39f75..60cd82087c 100644 --- a/assets/training/model_management/tests/unittests/test_preprocess.py +++ b/assets/training/model_management/tests/unittests/test_preprocess.py @@ -439,7 +439,6 @@ def test_mlflow_conda_dep(self, mock_credential, model_path, translate_params): """Validate conda dep has needed dependencies.""" # Mock the AzureML credential to avoid authentication issues mock_credential.return_value = MagicMock() - with TemporaryDirectory() as output_dir, TemporaryDirectory() as temp_dir: # save model nlp_mlflow_convertor = NLPMLflowConvertor( From 911a07ae1c42a9a70c0dc93c7162d67531dad6aa Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 12:25:38 +0530 Subject: [PATCH 10/39] Code Refactored --- .../training/model_management/tests/unittests/test_preprocess.py | 1 + 1 file changed, 1 insertion(+) diff --git a/assets/training/model_management/tests/unittests/test_preprocess.py b/assets/training/model_management/tests/unittests/test_preprocess.py index 60cd82087c..2c5db4ca6b 100644 --- a/assets/training/model_management/tests/unittests/test_preprocess.py +++ b/assets/training/model_management/tests/unittests/test_preprocess.py @@ -434,6 +434,7 @@ def test_run_preprocess(self, mock_get_mlflow_convertor): class TestHFMLFLowConvertor: """Test HF Model Convertor Factory.""" + @patch("azureml._common.authentication.AzureMLOnBehalfOfCredential") def test_mlflow_conda_dep(self, mock_credential, model_path, translate_params): """Validate conda dep has needed dependencies.""" From 81afc02da2cb3de108ccbed32700d03164a619e1 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 12:32:33 +0530 Subject: [PATCH 11/39] Trimmed Trailing space --- .../model_management/tests/unittests/test_preprocess.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/training/model_management/tests/unittests/test_preprocess.py b/assets/training/model_management/tests/unittests/test_preprocess.py index 2c5db4ca6b..2b871f593c 100644 --- a/assets/training/model_management/tests/unittests/test_preprocess.py +++ b/assets/training/model_management/tests/unittests/test_preprocess.py @@ -434,9 +434,9 @@ def test_run_preprocess(self, mock_get_mlflow_convertor): class TestHFMLFLowConvertor: """Test HF Model Convertor Factory.""" - + @patch("azureml._common.authentication.AzureMLOnBehalfOfCredential") - def test_mlflow_conda_dep(self, mock_credential, model_path, translate_params): + def test_mlflow_conda_dep(self, mock_credential): """Validate conda dep has needed dependencies.""" # Mock the AzureML credential to avoid authentication issues mock_credential.return_value = MagicMock() From cf7ae5ccc1af93446728ae0719daed03254f7d1d Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 12:42:34 +0530 Subject: [PATCH 12/39] Handled Error AzureML --- .../training/model_management/tests/unittests/test_preprocess.py | 1 + 1 file changed, 1 insertion(+) diff --git a/assets/training/model_management/tests/unittests/test_preprocess.py b/assets/training/model_management/tests/unittests/test_preprocess.py index 2b871f593c..af86fe92d0 100644 --- a/assets/training/model_management/tests/unittests/test_preprocess.py +++ b/assets/training/model_management/tests/unittests/test_preprocess.py @@ -26,6 +26,7 @@ from pathlib import Path from tempfile import TemporaryDirectory from unittest.mock import patch +from azureml.core.authentication import AzureMLOnBehalfOfCredential @pytest.fixture From 0115149b20a852b2b1db4f932331378a720a0a37 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 12:46:21 +0530 Subject: [PATCH 13/39] Code Refactored --- .../training/model_management/tests/unittests/test_preprocess.py | 1 - 1 file changed, 1 deletion(-) diff --git a/assets/training/model_management/tests/unittests/test_preprocess.py b/assets/training/model_management/tests/unittests/test_preprocess.py index af86fe92d0..2b871f593c 100644 --- a/assets/training/model_management/tests/unittests/test_preprocess.py +++ b/assets/training/model_management/tests/unittests/test_preprocess.py @@ -26,7 +26,6 @@ from pathlib import Path from tempfile import TemporaryDirectory from unittest.mock import patch -from azureml.core.authentication import AzureMLOnBehalfOfCredential @pytest.fixture From 3b54cdc0298c9f45a9b4426e3cd236586a379ff8 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 13:11:06 +0530 Subject: [PATCH 14/39] Change Reverted --- .../model_management/tests/unittests/test_preprocess.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/assets/training/model_management/tests/unittests/test_preprocess.py b/assets/training/model_management/tests/unittests/test_preprocess.py index 2b871f593c..4375ed53e8 100644 --- a/assets/training/model_management/tests/unittests/test_preprocess.py +++ b/assets/training/model_management/tests/unittests/test_preprocess.py @@ -435,11 +435,8 @@ def test_run_preprocess(self, mock_get_mlflow_convertor): class TestHFMLFLowConvertor: """Test HF Model Convertor Factory.""" - @patch("azureml._common.authentication.AzureMLOnBehalfOfCredential") - def test_mlflow_conda_dep(self, mock_credential): + def test_mlflow_conda_dep(self, model_path, translate_params): """Validate conda dep has needed dependencies.""" - # Mock the AzureML credential to avoid authentication issues - mock_credential.return_value = MagicMock() with TemporaryDirectory() as output_dir, TemporaryDirectory() as temp_dir: # save model nlp_mlflow_convertor = NLPMLflowConvertor( From 9ddb34f0eac7310f9a7b50e1e2a63003721f6893 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 13:43:02 +0530 Subject: [PATCH 15/39] Mocked AzureMLOnBehalfOfCredential --- .../model_management/tests/unittests/test_preprocess.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/assets/training/model_management/tests/unittests/test_preprocess.py b/assets/training/model_management/tests/unittests/test_preprocess.py index 4375ed53e8..4e46c2584e 100644 --- a/assets/training/model_management/tests/unittests/test_preprocess.py +++ b/assets/training/model_management/tests/unittests/test_preprocess.py @@ -435,8 +435,11 @@ def test_run_preprocess(self, mock_get_mlflow_convertor): class TestHFMLFLowConvertor: """Test HF Model Convertor Factory.""" - def test_mlflow_conda_dep(self, model_path, translate_params): + @patch("azureml.model.mgmt.processors.transformers.convertors.AzureMLOnBehalfOfCredential") + def test_mlflow_conda_dep(self, mock_credential, model_path, translate_params): """Validate conda dep has needed dependencies.""" + # Mock the AzureMLOnBehalfOfCredential to avoid authentication errors + mock_credential.return_value = MagicMock() with TemporaryDirectory() as output_dir, TemporaryDirectory() as temp_dir: # save model nlp_mlflow_convertor = NLPMLflowConvertor( From 351780d9ddbbd95bcdc755ad3e85da8b7b7619f5 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 14:08:52 +0530 Subject: [PATCH 16/39] reverted --- .../model_management/tests/unittests/test_preprocess.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/assets/training/model_management/tests/unittests/test_preprocess.py b/assets/training/model_management/tests/unittests/test_preprocess.py index 4e46c2584e..1525ce788b 100644 --- a/assets/training/model_management/tests/unittests/test_preprocess.py +++ b/assets/training/model_management/tests/unittests/test_preprocess.py @@ -435,11 +435,8 @@ def test_run_preprocess(self, mock_get_mlflow_convertor): class TestHFMLFLowConvertor: """Test HF Model Convertor Factory.""" - @patch("azureml.model.mgmt.processors.transformers.convertors.AzureMLOnBehalfOfCredential") def test_mlflow_conda_dep(self, mock_credential, model_path, translate_params): """Validate conda dep has needed dependencies.""" - # Mock the AzureMLOnBehalfOfCredential to avoid authentication errors - mock_credential.return_value = MagicMock() with TemporaryDirectory() as output_dir, TemporaryDirectory() as temp_dir: # save model nlp_mlflow_convertor = NLPMLflowConvertor( From 51bb47234899fc7e58168b025e90ea0583d2ef57 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 14:11:02 +0530 Subject: [PATCH 17/39] reverted --- .../model_management/tests/unittests/test_preprocess.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/training/model_management/tests/unittests/test_preprocess.py b/assets/training/model_management/tests/unittests/test_preprocess.py index 1525ce788b..4375ed53e8 100644 --- a/assets/training/model_management/tests/unittests/test_preprocess.py +++ b/assets/training/model_management/tests/unittests/test_preprocess.py @@ -435,7 +435,7 @@ def test_run_preprocess(self, mock_get_mlflow_convertor): class TestHFMLFLowConvertor: """Test HF Model Convertor Factory.""" - def test_mlflow_conda_dep(self, mock_credential, model_path, translate_params): + def test_mlflow_conda_dep(self, model_path, translate_params): """Validate conda dep has needed dependencies.""" with TemporaryDirectory() as output_dir, TemporaryDirectory() as temp_dir: # save model From d6700194d1a7164a5f86f697147c4464bfd6d483 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 14:15:34 +0530 Subject: [PATCH 18/39] Testing Base MLFlow Image check --- .../src/azureml/model/mgmt/processors/pyfunc/convertors.py | 4 ++-- .../azureml/model/mgmt/processors/transformers/convertors.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py index 8153afac1c..5130adb6c3 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py @@ -118,8 +118,8 @@ def _save( if not self._vllm_enabled: from azureml.model.mgmt.utils.common_utils import get_mlclient mlclient = get_mlclient("azureml") - mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") - metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + mlFlow_image = mlclient.environments.get("foundation-model-inference", label="latest") + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ + str(mlFlow_image.version) logger.info("Metadata: {}".format(metadata)) # set metadata info diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index f4a07e12bc..7047e0a16c 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -185,8 +185,8 @@ def _save( logger.info("Metadata: {}".format(metadata)) elif not self._vllm_enabled: mlclient = get_mlclient("azureml") - mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") - metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + mlFlow_image = mlclient.environments.get("foundation-model-inference", label="latest") + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ + str(mlFlow_image.version) logger.info("Metadata: {}".format(metadata)) From 4c16b82a80d7a8f80afe618259c35fa9db666913 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 14:24:04 +0530 Subject: [PATCH 19/39] Latest all changes reverted --- .../azureml/model/mgmt/processors/pyfunc/convertors.py | 8 -------- .../model/mgmt/processors/transformers/convertors.py | 6 ------ 2 files changed, 14 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py index 5130adb6c3..0fcc355498 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py @@ -114,14 +114,6 @@ def _save( :type metadata: Optional[Dict]. Defaults to {}. """ signatures = self._signatures or self.get_model_signature() - # Check and update Base MLFlow Image metadata in Import Model Component - if not self._vllm_enabled: - from azureml.model.mgmt.utils.common_utils import get_mlclient - mlclient = get_mlclient("azureml") - mlFlow_image = mlclient.environments.get("foundation-model-inference", label="latest") - metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ - + str(mlFlow_image.version) - logger.info("Metadata: {}".format(metadata)) # set metadata info metadata.update(fetch_mlflow_acft_metadata( base_model_name=self._model_id, diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index 7047e0a16c..b650f13555 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -183,12 +183,6 @@ def _save( metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ + str(vllm_image.version) logger.info("Metadata: {}".format(metadata)) - elif not self._vllm_enabled: - mlclient = get_mlclient("azureml") - mlFlow_image = mlclient.environments.get("foundation-model-inference", label="latest") - metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ - + str(mlFlow_image.version) - logger.info("Metadata: {}".format(metadata)) if self._model_flavor == "OSS": try: From 43fbc90340689542fc71e030b0bfb96037484ecf Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 14:28:24 +0530 Subject: [PATCH 20/39] convertors.py pyfunc changes done --- .../azureml/model/mgmt/processors/pyfunc/convertors.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py index 0fcc355498..8153afac1c 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/pyfunc/convertors.py @@ -114,6 +114,14 @@ def _save( :type metadata: Optional[Dict]. Defaults to {}. """ signatures = self._signatures or self.get_model_signature() + # Check and update Base MLFlow Image metadata in Import Model Component + if not self._vllm_enabled: + from azureml.model.mgmt.utils.common_utils import get_mlclient + mlclient = get_mlclient("azureml") + mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + + str(mlFlow_image.version) + logger.info("Metadata: {}".format(metadata)) # set metadata info metadata.update(fetch_mlflow_acft_metadata( base_model_name=self._model_id, From 208ed569ad35b8e445b6762d793ae9541e07f854 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 14:54:01 +0530 Subject: [PATCH 21/39] change done in convertors.py --- .../model/mgmt/processors/transformers/convertors.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index b650f13555..f809caad52 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -183,6 +183,12 @@ def _save( metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ + str(vllm_image.version) logger.info("Metadata: {}".format(metadata)) + else: + mlclient = get_mlclient("azureml") + mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + + str(mlFlow_image.version) + logger.info("Metadata: {}".format(metadata)) if self._model_flavor == "OSS": try: From 5ac0759dd94a83c5c3256d326b7077a4ac9d4ccd Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 14:55:58 +0530 Subject: [PATCH 22/39] changes done in convertors.py --- .../azureml/model/mgmt/processors/transformers/convertors.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index f809caad52..3667560e11 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -187,7 +187,7 @@ def _save( mlclient = get_mlclient("azureml") mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ - + str(mlFlow_image.version) + + str(mlFlow_image.version) logger.info("Metadata: {}".format(metadata)) if self._model_flavor == "OSS": From 746e71426048484bf21dec39c3b3d0ad683499ac Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 15:04:36 +0530 Subject: [PATCH 23/39] changes done --- .../azureml/model/mgmt/processors/transformers/convertors.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index 3667560e11..07860c261f 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -178,13 +178,13 @@ def _save( base_model_task=self._task) if self._vllm_enabled: - mlclient = get_mlclient("azureml") + mlclient = get_mlclient("azureml", identity_type="UserIdentity") vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ + str(vllm_image.version) logger.info("Metadata: {}".format(metadata)) else: - mlclient = get_mlclient("azureml") + mlclient = get_mlclient("azureml", identity_type="UserIdentity") mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + str(mlFlow_image.version) From 082aeeb5b13a3742c637bc7a1beb1d66b214479a Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 15:19:32 +0530 Subject: [PATCH 24/39] changes done --- .../azureml/model/mgmt/processors/transformers/convertors.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index 07860c261f..8775c5430a 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -177,14 +177,13 @@ def _save( is_finetuned_model=False, base_model_task=self._task) + mlclient = get_mlclient("azureml") if self._vllm_enabled: - mlclient = get_mlclient("azureml", identity_type="UserIdentity") vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ + str(vllm_image.version) logger.info("Metadata: {}".format(metadata)) else: - mlclient = get_mlclient("azureml", identity_type="UserIdentity") mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + str(mlFlow_image.version) From 2944af247ae307c888749312e0ba2ef31537250a Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 15:37:26 +0530 Subject: [PATCH 25/39] changes fixed --- .../model/mgmt/processors/transformers/convertors.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index 8775c5430a..75b9b63606 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -182,12 +182,8 @@ def _save( vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ + str(vllm_image.version) - logger.info("Metadata: {}".format(metadata)) - else: - mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") - metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ - + str(mlFlow_image.version) - logger.info("Metadata: {}".format(metadata)) + + logger.info("Metadata: {}".format(metadata)) if self._model_flavor == "OSS": try: From 3033e4183b0a7b86efe4fca94ba987033438fb42 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 15:44:06 +0530 Subject: [PATCH 26/39] changes fix --- .../model/mgmt/processors/transformers/convertors.py | 11 ++++++++--- .../src/azureml/model/mgmt/utils/common_utils.py | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index 75b9b63606..3667560e11 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -177,13 +177,18 @@ def _save( is_finetuned_model=False, base_model_task=self._task) - mlclient = get_mlclient("azureml") if self._vllm_enabled: + mlclient = get_mlclient("azureml") vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ + str(vllm_image.version) - - logger.info("Metadata: {}".format(metadata)) + logger.info("Metadata: {}".format(metadata)) + else: + mlclient = get_mlclient("azureml") + mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + + str(mlFlow_image.version) + logger.info("Metadata: {}".format(metadata)) if self._model_flavor == "OSS": try: diff --git a/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py b/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py index 48979902e1..44f1ddb8b8 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py +++ b/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py @@ -96,6 +96,7 @@ def get_mlclient(registry_name: str = None): has_msi_succeeded = False try: msi_client_id = os.environ.get("DEFAULT_IDENTITY_CLIENT_ID") + print(f"msi_client_id: {msi_client_id}") credential = ManagedIdentityCredential(client_id=msi_client_id) credential.get_token("https://management.azure.com/.default") has_msi_succeeded = True From 9c701fc15cb288644ce4653640bb37bc3fe13679 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 15:47:23 +0530 Subject: [PATCH 27/39] testing1 --- .../azureml/model/mgmt/processors/transformers/convertors.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index 3667560e11..88ab06e8b5 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -182,13 +182,13 @@ def _save( vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ + str(vllm_image.version) - logger.info("Metadata: {}".format(metadata)) else: mlclient = get_mlclient("azureml") mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + str(mlFlow_image.version) - logger.info("Metadata: {}".format(metadata)) + + logger.info("Metadata: {}".format(metadata)) if self._model_flavor == "OSS": try: From fd085420e2109b631de5c70a815500faff02faa0 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 16:00:29 +0530 Subject: [PATCH 28/39] testing2 --- .../src/azureml/model/mgmt/utils/common_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py b/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py index 44f1ddb8b8..a4568949ed 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py +++ b/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py @@ -96,7 +96,7 @@ def get_mlclient(registry_name: str = None): has_msi_succeeded = False try: msi_client_id = os.environ.get("DEFAULT_IDENTITY_CLIENT_ID") - print(f"msi_client_id: {msi_client_id}") + logger.warning(f"msi_client_id: {msi_client_id}") credential = ManagedIdentityCredential(client_id=msi_client_id) credential.get_token("https://management.azure.com/.default") has_msi_succeeded = True From 55894e092d8eba25b5eb53432eb585bb93592517 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 16:11:16 +0530 Subject: [PATCH 29/39] testing3 --- .../processors/transformers/convertors.py | 22 ++++++++++--------- .../azureml/model/mgmt/utils/common_utils.py | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index 88ab06e8b5..f87c07a004 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -177,18 +177,20 @@ def _save( is_finetuned_model=False, base_model_task=self._task) - if self._vllm_enabled: - mlclient = get_mlclient("azureml") - vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") - metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ - + str(vllm_image.version) - else: - mlclient = get_mlclient("azureml") - mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") - metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ - + str(mlFlow_image.version) + mlclient = get_mlclient("azureml") + image_name = "foundation-model-inference" if self._vllm_enabled else "mlflow-model-inference" + image = mlclient.environments.get(image_name, label="latest") + metadata["azureml.base_image"] = f"mcr.microsoft.com/azureml/curated/{image_name}:" \ + + str(image.version) logger.info("Metadata: {}".format(metadata)) + # else: + # mlclient = get_mlclient("azureml") + # mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") + # metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + # + str(mlFlow_image.version) + + if self._model_flavor == "OSS": try: diff --git a/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py b/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py index a4568949ed..199d83b710 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py +++ b/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py @@ -96,7 +96,7 @@ def get_mlclient(registry_name: str = None): has_msi_succeeded = False try: msi_client_id = os.environ.get("DEFAULT_IDENTITY_CLIENT_ID") - logger.warning(f"msi_client_id: {msi_client_id}") + logger.info(f"msi_client_id: {msi_client_id}") credential = ManagedIdentityCredential(client_id=msi_client_id) credential.get_token("https://management.azure.com/.default") has_msi_succeeded = True From 47180ba652fbc935f6fc03a11df0e84ede14b88c Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 16:13:52 +0530 Subject: [PATCH 30/39] testing4 --- .../azureml/model/mgmt/processors/transformers/convertors.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index f87c07a004..e66ecd9f87 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -189,9 +189,6 @@ def _save( # mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") # metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ # + str(mlFlow_image.version) - - - if self._model_flavor == "OSS": try: self._save_in_oss_flavor(model, metadata, conda_env, code_paths, input_example, pip_requirements) From b1d2b77b1e5e5593474dfe2ab8f637f3cc1dd86c Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 16:22:48 +0530 Subject: [PATCH 31/39] sample commit --- .../mgmt/processors/transformers/convertors.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index e66ecd9f87..d5eda0e5a6 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -177,11 +177,19 @@ def _save( is_finetuned_model=False, base_model_task=self._task) - mlclient = get_mlclient("azureml") - image_name = "foundation-model-inference" if self._vllm_enabled else "mlflow-model-inference" - image = mlclient.environments.get(image_name, label="latest") - metadata["azureml.base_image"] = f"mcr.microsoft.com/azureml/curated/{image_name}:" \ - + str(image.version) + if self._vllm_enabled: + mlclient = get_mlclient("azureml") + vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ + + str(vllm_image.version) + logger.info("Metadata: {}".format(metadata)) + + if not self._vllm_enabled: + mlclient = get_mlclient("azureml") + vllm_image = mlclient.environments.get("mlflow-model-inference", label="latest") + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + + str(vllm_image.version) + logger.info("Metadata: {}".format(metadata)) logger.info("Metadata: {}".format(metadata)) # else: From 3b92f626f47f23bcb784e3014bba19ec62e4bc7d Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 16:28:14 +0530 Subject: [PATCH 32/39] sample commit1 --- .../model/mgmt/processors/transformers/convertors.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index d5eda0e5a6..37c056107e 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -184,14 +184,7 @@ def _save( + str(vllm_image.version) logger.info("Metadata: {}".format(metadata)) - if not self._vllm_enabled: - mlclient = get_mlclient("azureml") - vllm_image = mlclient.environments.get("mlflow-model-inference", label="latest") - metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ - + str(vllm_image.version) - logger.info("Metadata: {}".format(metadata)) - - logger.info("Metadata: {}".format(metadata)) + #logger.info("Metadata: {}".format(metadata)) # else: # mlclient = get_mlclient("azureml") # mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") From 1a6ffd345b27105e5102e807be06126dc11923d7 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 16:29:36 +0530 Subject: [PATCH 33/39] sample commit2 --- .../model/mgmt/processors/transformers/convertors.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index 37c056107e..b650f13555 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -184,12 +184,6 @@ def _save( + str(vllm_image.version) logger.info("Metadata: {}".format(metadata)) - #logger.info("Metadata: {}".format(metadata)) - # else: - # mlclient = get_mlclient("azureml") - # mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") - # metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ - # + str(mlFlow_image.version) if self._model_flavor == "OSS": try: self._save_in_oss_flavor(model, metadata, conda_env, code_paths, input_example, pip_requirements) From 5260f24651ad7f55bdbf6d2107e17c7da2603f13 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 18:51:30 +0530 Subject: [PATCH 34/39] Test1 --- .../model/mgmt/processors/transformers/convertors.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index b650f13555..3667560e11 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -183,6 +183,12 @@ def _save( metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ + str(vllm_image.version) logger.info("Metadata: {}".format(metadata)) + else: + mlclient = get_mlclient("azureml") + mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + + str(mlFlow_image.version) + logger.info("Metadata: {}".format(metadata)) if self._model_flavor == "OSS": try: From 0b3c1fe88e03dc820742bd21e9da2b69092088aa Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 19:03:03 +0530 Subject: [PATCH 35/39] test4 --- .../processors/transformers/convertors.py | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index 3667560e11..f45cc6780b 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -177,18 +177,27 @@ def _save( is_finetuned_model=False, base_model_task=self._task) + mlclient = get_mlclient("azureml") if self._vllm_enabled: - mlclient = get_mlclient("azureml") - vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") - metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ - + str(vllm_image.version) - logger.info("Metadata: {}".format(metadata)) + env_name = "foundation-model-inference" else: - mlclient = get_mlclient("azureml") - mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") - metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ - + str(mlFlow_image.version) - logger.info("Metadata: {}".format(metadata)) + env_name = "mlflow-model-inference" + + env = mlclient.environments.get(env_name, label="latest") + metadata["azureml.base_image"] = f"mcr.microsoft.com/azureml/curated/{env_name}:{env.version}" + logger.info("Metadata: %s", metadata) + # if self._vllm_enabled: + # mlclient = get_mlclient("azureml") + # vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") + # metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ + # + str(vllm_image.version) + # logger.info("Metadata: {}".format(metadata)) + # else: + # mlclient = get_mlclient("azureml") + # mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") + # metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + # + str(mlFlow_image.version) + # logger.info("Metadata: {}".format(metadata)) if self._model_flavor == "OSS": try: From fa1574f52b9547b4ffad65e31037dfed47af4f63 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Tue, 22 Apr 2025 19:04:41 +0530 Subject: [PATCH 36/39] test5 --- .../azureml/model/mgmt/processors/transformers/convertors.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index f45cc6780b..dc96d3345e 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -186,7 +186,7 @@ def _save( env = mlclient.environments.get(env_name, label="latest") metadata["azureml.base_image"] = f"mcr.microsoft.com/azureml/curated/{env_name}:{env.version}" logger.info("Metadata: %s", metadata) - # if self._vllm_enabled: + # if self._vllm_enabled: # mlclient = get_mlclient("azureml") # vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") # metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ From 9c777810b9e9c0c649e01bfd9216b1f73ddd99f0 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Thu, 24 Apr 2025 13:10:29 +0530 Subject: [PATCH 37/39] spec.yml changes added --- .../components/convert_model_to_mlflow/spec.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/assets/training/model_management/components/convert_model_to_mlflow/spec.yaml b/assets/training/model_management/components/convert_model_to_mlflow/spec.yaml index 4a23c598f2..8374d58df7 100644 --- a/assets/training/model_management/components/convert_model_to_mlflow/spec.yaml +++ b/assets/training/model_management/components/convert_model_to_mlflow/spec.yaml @@ -13,6 +13,7 @@ environment: azureml://registries/azureml/environments/model-management/versions code: ../../src/ command: | + pip install transformers==4.48.0 torch==2.2.2 numpy==1.23.5 pandas==1.5.3 urllib3==1.26.19 --no-cache-dir --force-reinstall # TODO: This has one disadvantage as shell logs wont be pushed to appinsights set -ex IFS=',' read -ra pip_pkgs <<< "$[[${{inputs.extra_pip_requirements}}]]" @@ -39,7 +40,7 @@ inputs: vllm_enabled: type: boolean - description: Enable vllm in the converted model + description: Enable vllm in the converted model default: false optional: false @@ -141,7 +142,7 @@ inputs: Pip dependencies expressed as below. Do not use quotes for passing. eg: pkg1==1.0, pkg2, pkg3==1.0 optional: true - + inference_base_image: type: string description: | From abf4f9eb93256f23a8e3bb3a80d71e948ffefce1 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Thu, 24 Apr 2025 13:14:11 +0530 Subject: [PATCH 38/39] Chnages done --- .../processors/transformers/convertors.py | 29 +++++++------------ 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py index dc96d3345e..3667560e11 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py +++ b/assets/training/model_management/src/azureml/model/mgmt/processors/transformers/convertors.py @@ -177,27 +177,18 @@ def _save( is_finetuned_model=False, base_model_task=self._task) - mlclient = get_mlclient("azureml") if self._vllm_enabled: - env_name = "foundation-model-inference" + mlclient = get_mlclient("azureml") + vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ + + str(vllm_image.version) + logger.info("Metadata: {}".format(metadata)) else: - env_name = "mlflow-model-inference" - - env = mlclient.environments.get(env_name, label="latest") - metadata["azureml.base_image"] = f"mcr.microsoft.com/azureml/curated/{env_name}:{env.version}" - logger.info("Metadata: %s", metadata) - # if self._vllm_enabled: - # mlclient = get_mlclient("azureml") - # vllm_image = mlclient.environments.get("foundation-model-inference", label="latest") - # metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/foundation-model-inference:" \ - # + str(vllm_image.version) - # logger.info("Metadata: {}".format(metadata)) - # else: - # mlclient = get_mlclient("azureml") - # mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") - # metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ - # + str(mlFlow_image.version) - # logger.info("Metadata: {}".format(metadata)) + mlclient = get_mlclient("azureml") + mlFlow_image = mlclient.environments.get("mlflow-model-inference", label="latest") + metadata["azureml.base_image"] = "mcr.microsoft.com/azureml/curated/mlflow-model-inference:" \ + + str(mlFlow_image.version) + logger.info("Metadata: {}".format(metadata)) if self._model_flavor == "OSS": try: From fdd783fdc581fd3b20b3d85896f10dec40ecb9b4 Mon Sep 17 00:00:00 2001 From: Priyanka Dede Date: Thu, 24 Apr 2025 13:17:14 +0530 Subject: [PATCH 39/39] Changes reverted --- .../src/azureml/model/mgmt/utils/common_utils.py | 1 - 1 file changed, 1 deletion(-) diff --git a/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py b/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py index 199d83b710..48979902e1 100644 --- a/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py +++ b/assets/training/model_management/src/azureml/model/mgmt/utils/common_utils.py @@ -96,7 +96,6 @@ def get_mlclient(registry_name: str = None): has_msi_succeeded = False try: msi_client_id = os.environ.get("DEFAULT_IDENTITY_CLIENT_ID") - logger.info(f"msi_client_id: {msi_client_id}") credential = ManagedIdentityCredential(client_id=msi_client_id) credential.get_token("https://management.azure.com/.default") has_msi_succeeded = True