From 785ce0b9545b74d5ae9ef56cb939b0fa656777df Mon Sep 17 00:00:00 2001 From: Jayesh Sharma Date: Thu, 31 Oct 2024 12:31:29 +0530 Subject: [PATCH 1/3] log invocation url and start with small instance --- .../steps/deploying/sagemaker_deployment.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/huggingface-sagemaker/steps/deploying/sagemaker_deployment.py b/huggingface-sagemaker/steps/deploying/sagemaker_deployment.py index ab1b2ca8..3373827c 100644 --- a/huggingface-sagemaker/steps/deploying/sagemaker_deployment.py +++ b/huggingface-sagemaker/steps/deploying/sagemaker_deployment.py @@ -15,12 +15,13 @@ # limitations under the License. # +import os from typing import Optional from gradio.aws_helper import get_sagemaker_role, get_sagemaker_session from sagemaker.huggingface import HuggingFaceModel from typing_extensions import Annotated -from zenml import get_step_context, step +from zenml import get_step_context, log_artifact_metadata, step from zenml.logger import get_logger # Initialize logger @@ -35,7 +36,7 @@ def deploy_hf_to_sagemaker( pytorch_version: str = "1.13.1", py_version: str = "py39", hf_task: str = "text-classification", - instance_type: str = "ml.g5.2xlarge", + instance_type: str = "ml.t2.medium", container_startup_health_check_timeout: int = 300, ) -> Annotated[str, "sagemaker_endpoint_name"]: """ @@ -83,4 +84,18 @@ def deploy_hf_to_sagemaker( ) endpoint_name = predictor.endpoint_name logger.info(f"Model deployed to SageMaker: {endpoint_name}") + + # get region from env variable + region = os.environ["AWS_REGION"] or "eu-central-1" + invocation_url = f"https://runtime.sagemaker.{region}.amazonaws.com/endpoints/{endpoint_name}/invocations" + + log_artifact_metadata( + artifact_name="sagemaker_endpoint_name", + metadata={ + "invocation_url": invocation_url, + "endpoint_name": endpoint_name, + }, + ) + + return endpoint_name From 099535f08927ea01c26ccf3cbc74a30d3452289f Mon Sep 17 00:00:00 2001 From: Jayesh Sharma Date: Thu, 31 Oct 2024 12:31:38 +0530 Subject: [PATCH 2/3] fix types --- .../steps/promotion/promote_metric_compare_promoter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/huggingface-sagemaker/steps/promotion/promote_metric_compare_promoter.py b/huggingface-sagemaker/steps/promotion/promote_metric_compare_promoter.py index 585aff8f..0938d73d 100644 --- a/huggingface-sagemaker/steps/promotion/promote_metric_compare_promoter.py +++ b/huggingface-sagemaker/steps/promotion/promote_metric_compare_promoter.py @@ -28,8 +28,8 @@ @step def promote_metric_compare_promoter( - latest_metrics: Dict[str, str], - current_metrics: Dict[str, str], + latest_metrics: Dict[str, float], + current_metrics: Dict[str, float], metric_to_compare: str = "accuracy", ): """Try to promote trained model. From e218d211f53f2a267cdda911e0fc7430566b243f Mon Sep 17 00:00:00 2001 From: Jayesh Sharma Date: Thu, 31 Oct 2024 12:31:53 +0530 Subject: [PATCH 3/3] fix artifact logging function --- huggingface-sagemaker/steps/training/model_trainer.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/huggingface-sagemaker/steps/training/model_trainer.py b/huggingface-sagemaker/steps/training/model_trainer.py index 88957340..bbd180fd 100644 --- a/huggingface-sagemaker/steps/training/model_trainer.py +++ b/huggingface-sagemaker/steps/training/model_trainer.py @@ -154,6 +154,8 @@ def model_trainer( eval_results = trainer.evaluate(metric_key_prefix="") # Log the evaluation results in model control plane - log_artifact_metadata(output_name="model", metrics=eval_results) + log_artifact_metadata( + artifact_name="model", metadata={"metrics": eval_results} + ) return model, tokenizer