Skip to content

Commit 9de7a5c

Browse files
authored
Added validation for fine tuning models. (#787)
2 parents 4a6bb03 + 3d7cc59 commit 9de7a5c

File tree

2 files changed

+28
-6
lines changed

2 files changed

+28
-6
lines changed

ads/aqua/finetune.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
UpdateModelProvenanceDetails,
1616
)
1717

18+
from ads.aqua import ODSC_MODEL_COMPARTMENT_OCID
1819
from ads.aqua.base import AquaApp
1920
from ads.aqua.data import AquaResourceIdentifier, Resource, Tags
2021
from ads.aqua.exception import AquaFileExistsError, AquaValueError
@@ -195,12 +196,11 @@ def create(
195196
)
196197

197198
source = self.get_source(create_fine_tuning_details.ft_source_id)
198-
# TODO: add the following validation for fine tuning aqua service model. Revisit it when all service models are available
199-
# if source.compartment_id != ODSC_MODEL_COMPARTMENT_OCID:
200-
# raise AquaValueError(
201-
# f"Fine tuning is only supported for Aqua service models in {ODSC_MODEL_COMPARTMENT_OCID}. "
202-
# "Use a valid Aqua service model id instead."
203-
# )
199+
if source.compartment_id != ODSC_MODEL_COMPARTMENT_OCID:
200+
raise AquaValueError(
201+
f"Fine tuning is only supported for Aqua service models in {ODSC_MODEL_COMPARTMENT_OCID}. "
202+
"Use a valid Aqua service model id instead."
203+
)
204204

205205
target_compartment = (
206206
create_fine_tuning_details.compartment_id or COMPARTMENT_OCID

tests/unitary/with_extras/aqua/test_finetuning.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,15 @@
55
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
66

77
from dataclasses import asdict
8+
from importlib import reload
9+
import os
810
from unittest import TestCase
911
from unittest.mock import MagicMock, PropertyMock
1012

1113
from mock import patch
14+
import ads.config
15+
import ads.aqua
16+
import ads.aqua.finetune
1217
from ads.aqua.base import AquaApp
1318
from ads.aqua.finetune import AquaFineTuningApp, FineTuneCustomMetadata
1419
from ads.aqua.model import AquaFineTuneModel
@@ -18,9 +23,25 @@
1823

1924
class FineTuningTestCase(TestCase):
2025

26+
SERVICE_COMPARTMENT_ID = "ocid1.compartment.oc1..<OCID>"
27+
2128
def setUp(self):
2229
self.app = AquaFineTuningApp()
2330

31+
@classmethod
32+
def setUpClass(cls):
33+
os.environ["ODSC_MODEL_COMPARTMENT_OCID"] = cls.SERVICE_COMPARTMENT_ID
34+
reload(ads.config)
35+
reload(ads.aqua)
36+
reload(ads.aqua.finetune)
37+
38+
@classmethod
39+
def tearDownClass(cls):
40+
os.environ.pop("ODSC_MODEL_COMPARTMENT_OCID", None)
41+
reload(ads.config)
42+
reload(ads.aqua)
43+
reload(ads.aqua.finetune)
44+
2445
@patch.object(Job, "run")
2546
@patch("ads.jobs.ads_job.Job.name", new_callable=PropertyMock)
2647
@patch("ads.jobs.ads_job.Job.id", new_callable=PropertyMock)
@@ -58,6 +79,7 @@ def test_create_fine_tuning(
5879

5980
ft_source = MagicMock()
6081
ft_source.id = "test_ft_source_id"
82+
ft_source.compartment_id = self.SERVICE_COMPARTMENT_ID
6183
ft_source.display_name = "test_ft_source_model"
6284
ft_source.custom_metadata_list = custom_metadata_list
6385
mock_get_source.return_value = ft_source

0 commit comments

Comments
 (0)