Skip to content

Commit b6dbc5b

Browse files
Support backward compatibility for TEI register command
1 parent 4ccd311 commit b6dbc5b

File tree

3 files changed

+43
-27
lines changed

3 files changed

+43
-27
lines changed

ads/aqua/model/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class ModelCustomMetadataFields(str, metaclass=ExtendedEnumMeta):
1717
DEPLOYMENT_CONTAINER = "deployment-container"
1818
EVALUATION_CONTAINER = "evaluation-container"
1919
FINETUNE_CONTAINER = "finetune-container"
20+
DEPLOYMENT_CONTAINER_URI = "deployment-container-uri"
2021

2122

2223
class ModelTask(str, metaclass=ExtendedEnumMeta):

ads/aqua/model/entities.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ class AquaModel(AquaModelSummary, DataClassSerializable):
9898

9999
model_card: str = None
100100
inference_container: str = None
101+
inference_container_uri: str = None
101102
finetuning_container: str = None
102103
evaluation_container: str = None
103104
artifact_location: str = None

ads/aqua/model/model.py

Lines changed: 41 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,12 @@ def get(self, model_id: str, load_model_card: Optional[bool] = True) -> "AquaMod
232232
ModelCustomMetadataFields.DEPLOYMENT_CONTAINER,
233233
ModelCustomMetadataItem(key=ModelCustomMetadataFields.DEPLOYMENT_CONTAINER),
234234
).value
235+
inference_container_uri = ds_model.custom_metadata_list.get(
236+
ModelCustomMetadataFields.DEPLOYMENT_CONTAINER_URI,
237+
ModelCustomMetadataItem(
238+
key=ModelCustomMetadataFields.DEPLOYMENT_CONTAINER_URI
239+
),
240+
).value
235241
evaluation_container = ds_model.custom_metadata_list.get(
236242
ModelCustomMetadataFields.EVALUATION_CONTAINER,
237243
ModelCustomMetadataItem(key=ModelCustomMetadataFields.EVALUATION_CONTAINER),
@@ -250,6 +256,7 @@ def get(self, model_id: str, load_model_card: Optional[bool] = True) -> "AquaMod
250256
project_id=ds_model.project_id,
251257
model_card=model_card,
252258
inference_container=inference_container,
259+
inference_container_uri=inference_container_uri,
253260
finetuning_container=finetuning_container,
254261
evaluation_container=evaluation_container,
255262
artifact_location=artifact_location,
@@ -696,23 +703,26 @@ def _create_model_catalog_entry(
696703
description=f"Inference container mapping for {model_name}",
697704
category="Other",
698705
)
706+
if inference_container_uri:
707+
metadata.add(
708+
key=AQUA_DEPLOYMENT_CONTAINER_URI_METADATA_NAME,
709+
value=inference_container_uri,
710+
description=f"Inference container URI for {model_name}",
711+
category="Other",
712+
)
713+
714+
inference_containers = (
715+
AquaContainerConfig.from_container_index_json().inference
716+
)
717+
smc_container_set = {
718+
container.family for container in inference_containers.values()
719+
}
720+
# only add cmd vars if inference container is not an SMC
699721
if (
700-
inference_container
722+
inference_container not in smc_container_set
723+
and inference_container
701724
== InferenceContainerTypeFamily.AQUA_TEI_CONTAINER_FAMILY
702725
):
703-
if not inference_container_uri:
704-
logger.warn(
705-
f"Proceeding with model registration without the inference container URI for "
706-
f"{inference_container}. You can still add this configuration during model deployment."
707-
)
708-
else:
709-
metadata.add(
710-
key=AQUA_DEPLOYMENT_CONTAINER_URI_METADATA_NAME,
711-
value=inference_container_uri,
712-
description=f"Inference container URI for {model_name}",
713-
category="Other",
714-
)
715-
716726
cmd_vars = generate_tei_cmd_var(os_path)
717727
metadata.add(
718728
key=AQUA_DEPLOYMENT_CONTAINER_CMD_VAR_METADATA_NAME,
@@ -1231,20 +1241,23 @@ def register(
12311241
# registered model will always have inference and evaluation container, but
12321242
# fine-tuning container may be not set
12331243
inference_container = ds_model.custom_metadata_list.get(
1234-
ModelCustomMetadataFields.DEPLOYMENT_CONTAINER
1244+
ModelCustomMetadataFields.DEPLOYMENT_CONTAINER,
1245+
ModelCustomMetadataItem(key=ModelCustomMetadataFields.DEPLOYMENT_CONTAINER),
1246+
).value
1247+
inference_container_uri = ds_model.custom_metadata_list.get(
1248+
ModelCustomMetadataFields.DEPLOYMENT_CONTAINER_URI,
1249+
ModelCustomMetadataItem(
1250+
key=ModelCustomMetadataFields.DEPLOYMENT_CONTAINER_URI
1251+
),
1252+
).value
1253+
evaluation_container = ds_model.custom_metadata_list.get(
1254+
ModelCustomMetadataFields.EVALUATION_CONTAINER,
1255+
ModelCustomMetadataItem(key=ModelCustomMetadataFields.EVALUATION_CONTAINER),
1256+
).value
1257+
finetuning_container: str = ds_model.custom_metadata_list.get(
1258+
ModelCustomMetadataFields.FINETUNE_CONTAINER,
1259+
ModelCustomMetadataItem(key=ModelCustomMetadataFields.FINETUNE_CONTAINER),
12351260
).value
1236-
try:
1237-
evaluation_container = ds_model.custom_metadata_list.get(
1238-
ModelCustomMetadataFields.EVALUATION_CONTAINER,
1239-
).value
1240-
except Exception:
1241-
evaluation_container = None
1242-
try:
1243-
finetuning_container = ds_model.custom_metadata_list.get(
1244-
ModelCustomMetadataFields.FINETUNE_CONTAINER,
1245-
).value
1246-
except Exception:
1247-
finetuning_container = None
12481261

12491262
aqua_model_attributes = dict(
12501263
**self._process_model(ds_model, self.region),
@@ -1256,6 +1269,7 @@ def register(
12561269
)
12571270
),
12581271
inference_container=inference_container,
1272+
inference_container_uri=inference_container_uri,
12591273
finetuning_container=finetuning_container,
12601274
evaluation_container=evaluation_container,
12611275
artifact_location=artifact_path,

0 commit comments

Comments
 (0)