2525 build_pydantic_error_message ,
2626 get_combined_params ,
2727 get_container_params_type ,
28- get_model_by_reference_paths ,
2928 get_ocid_substring ,
3029 get_params_dict ,
3130 get_params_list ,
4645 UNKNOWN_DICT ,
4746)
4847from ads .aqua .data import AquaResourceIdentifier
49- from ads .aqua .finetuning .finetuning import FineTuneCustomMetadata
48+ from ads .aqua .finetuning .entities import extract_base_model_ocid , set_fine_tune_env_var
5049from ads .aqua .model import AquaModelApp
5150from ads .aqua .model .constants import AquaModelMetadataKeys , ModelCustomMetadataFields
5251from ads .aqua .modeldeployment .entities import (
@@ -210,7 +209,8 @@ def create(
210209 container_config = container_config ,
211210 )
212211 else :
213- model_ids = [model .model_id for model in create_deployment_details .models ]
212+ model_ids = [model .model_id for model in create_deployment_details .models ]
213+
214214 try :
215215 model_config_summary = self .get_multimodel_deployment_config (
216216 model_ids = model_ids , compartment_id = compartment_id
@@ -343,22 +343,6 @@ def _create(
343343 config_source_id = create_deployment_details .model_id
344344 model_name = aqua_model .display_name
345345
346- is_fine_tuned_model = Tags .AQUA_FINE_TUNED_MODEL_TAG in aqua_model .freeform_tags
347-
348- if is_fine_tuned_model :
349- try :
350- config_source_id = aqua_model .custom_metadata_list .get (
351- FineTuneCustomMetadata .FINE_TUNE_SOURCE
352- ).value
353- model_name = aqua_model .custom_metadata_list .get (
354- FineTuneCustomMetadata .FINE_TUNE_SOURCE_NAME
355- ).value
356- except ValueError as err :
357- raise AquaValueError (
358- f"Either { FineTuneCustomMetadata .FINE_TUNE_SOURCE } or { FineTuneCustomMetadata .FINE_TUNE_SOURCE_NAME } is missing "
359- f"from custom metadata for the model { config_source_id } "
360- ) from err
361-
362346 # set up env and cmd var
363347 env_var = create_deployment_details .env_var or {}
364348 cmd_var = create_deployment_details .cmd_var or []
@@ -378,20 +362,11 @@ def _create(
378362
379363 env_var .update ({"BASE_MODEL" : f"{ model_path_prefix } " })
380364
381- if is_fine_tuned_model :
382- _ , fine_tune_output_path = get_model_by_reference_paths (
383- aqua_model .model_file_description
384- )
385-
386- if not fine_tune_output_path :
387- raise AquaValueError (
388- "Fine tuned output path is not available in the model artifact."
389- )
390-
391- os_path = ObjectStorageDetails .from_path (fine_tune_output_path )
392- fine_tune_output_path = os_path .filepath .rstrip ("/" )
365+ is_fine_tuned_model = Tags .AQUA_FINE_TUNED_MODEL_TAG in aqua_model .freeform_tags
393366
394- env_var .update ({"FT_MODEL" : f"{ fine_tune_output_path } " })
367+ if is_fine_tuned_model :
368+ config_source_id , model_name = extract_base_model_ocid (aqua_model )
369+ env_var = set_fine_tune_env_var (aqua_model , env_var )
395370
396371 container_type_key = self ._get_container_type_key (
397372 model = aqua_model ,
@@ -647,6 +622,12 @@ def _create_multi(
647622 config_data = {"params" : params , "model_path" : artifact_path_prefix }
648623 if model .model_task :
649624 config_data ["model_task" ] = model .model_task
625+
626+ fine_tuned_model = model .env_var .get ("FT_MODEL" )
627+
628+ if fine_tuned_model :
629+ config_data ["FT_MODEL" ] = fine_tuned_model
630+
650631 model_config .append (config_data )
651632 model_name_list .append (model .model_name )
652633
0 commit comments