From 781e4d0ec18df3f8841f26141ad952de2e66d538 Mon Sep 17 00:00:00 2001 From: v-rkasula Date: Wed, 30 Apr 2025 12:37:20 +0530 Subject: [PATCH 1/6] Update convertors.py --- .../azureml/model/mgmt/processors/pyfunc/convertors.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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..f35ce01ef0 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 @@ -45,7 +45,7 @@ MLflowSchemaLiterals as VirchowMLFlowSchemaLiterals, MLflowLiterals as VirchowMLflowLiterals from azureml.model.mgmt.processors.pyfunc.hibou_b.config import \ MLflowSchemaLiterals as HibouBMLFlowSchemaLiterals, MLflowLiterals as HibouBMLflowLiterals - +from azureml.model.mgmt.utils.common_utils import get_mlclient logger = get_logger(__name__) @@ -114,6 +114,12 @@ def _save( :type metadata: Optional[Dict]. Defaults to {}. """ signatures = self._signatures or self.get_model_signature() + if 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) + logger.info("Metadata: {}".format(metadata)) # set metadata info metadata.update(fetch_mlflow_acft_metadata( base_model_name=self._model_id, From c65362fbf47639424e6e0809ec6362a5e3828e90 Mon Sep 17 00:00:00 2001 From: v-rkasula Date: Wed, 30 Apr 2025 12:38:13 +0530 Subject: [PATCH 2/6] Update spec.yaml --- .../components/convert_model_to_mlflow/spec.yaml | 1 + 1 file changed, 1 insertion(+) 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..d755488f83 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}}]]" From 49396b480904bc6d1100844e98d4bef39b22be54 Mon Sep 17 00:00:00 2001 From: v-rkasula Date: Wed, 30 Apr 2025 12:39:45 +0530 Subject: [PATCH 3/6] Update 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..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 614881412b46836a677473c1ef94b34a684cd0c8 Mon Sep 17 00:00:00 2001 From: v-rkasula Date: Wed, 30 Apr 2025 12:44:12 +0530 Subject: [PATCH 4/6] Update spec.yaml --- .../components/validation_trigger_import/spec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/training/model_management/components/validation_trigger_import/spec.yaml b/assets/training/model_management/components/validation_trigger_import/spec.yaml index a21f5b8d4c..2fcd5f71a0 100644 --- a/assets/training/model_management/components/validation_trigger_import/spec.yaml +++ b/assets/training/model_management/components/validation_trigger_import/spec.yaml @@ -181,7 +181,7 @@ outputs: is_deterministic: True -environment: azureml://registries/azureml/environments/python-sdk-v2/versions/25 +environment: azureml://registries/azureml/environments/python-sdk-v2/versions/29 code: ../../src command: python run_model_validate.py --validation-info ${{outputs.validation_info}} From 390d42eba8cc963bcfbc9ec91f9d16cb4a421bd5 Mon Sep 17 00:00:00 2001 From: v-rkasula Date: Fri, 9 May 2025 17:46:52 +0530 Subject: [PATCH 5/6] Update spec.yaml --- .../components/convert_model_to_mlflow/spec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 d755488f83..3ce408b29e 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,7 +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 + # 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}}]]" From 4f86256dba60a35a587de97005fedec9757854ec Mon Sep 17 00:00:00 2001 From: v-rkasula Date: Fri, 9 May 2025 17:51:32 +0530 Subject: [PATCH 6/6] Update Dockerfile Included the necessary libraries directly in the Dockerfile instead of using the spec.yaml file. --- .../environments/model-management/context/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/assets/training/model_management/environments/model-management/context/Dockerfile b/assets/training/model_management/environments/model-management/context/Dockerfile index 9a3d6bda04..e7f68ed9bb 100644 --- a/assets/training/model_management/environments/model-management/context/Dockerfile +++ b/assets/training/model_management/environments/model-management/context/Dockerfile @@ -26,6 +26,7 @@ RUN pip install -r requirements.txt --no-cache-dir # Vulnerability fix RUN pip install Pillow gunicorn onnx==1.17.0 idna tqdm requests==2.32.1 tornado==6.4.2 certifi==2024.07.04 urllib3==1.26.19 scikit-learn==1.5.1 mlflow==2.20.3 mlflow-skinny==2.20.3 marshmallow==3.23.2 +transformers==4.48.0 torch==2.2.2 numpy==1.23.5 pandas==1.5.3 azureml-evaluate-mlflow --no-cache-dir --force-reinstall # List pip packages RUN pip list