oracle-ads 2.13.6__py3-none-any.whl → 2.13.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. ads/aqua/__init__.py +0 -5
  2. ads/aqua/app.py +133 -20
  3. ads/aqua/cli.py +2 -15
  4. ads/aqua/common/utils.py +12 -83
  5. ads/aqua/config/container_config.py +105 -69
  6. ads/aqua/config/evaluation/evaluation_service_config.py +40 -0
  7. ads/aqua/constants.py +22 -20
  8. ads/aqua/evaluation/evaluation.py +98 -32
  9. ads/aqua/extension/common_handler.py +3 -12
  10. ads/aqua/extension/common_ws_msg_handler.py +3 -24
  11. ads/aqua/extension/model_handler.py +59 -6
  12. ads/aqua/extension/models/ws_models.py +2 -0
  13. ads/aqua/extension/models_ws_msg_handler.py +1 -0
  14. ads/aqua/extension/utils.py +11 -24
  15. ads/aqua/finetuning/entities.py +23 -1
  16. ads/aqua/finetuning/finetuning.py +26 -10
  17. ads/aqua/model/constants.py +8 -0
  18. ads/aqua/model/entities.py +8 -1
  19. ads/aqua/model/model.py +278 -113
  20. ads/aqua/modeldeployment/deployment.py +51 -47
  21. ads/aqua/modeldeployment/utils.py +23 -5
  22. ads/aqua/ui.py +3 -4
  23. ads/config.py +2 -2
  24. ads/model/datascience_model.py +29 -0
  25. ads/model/service/oci_datascience_model.py +1 -1
  26. ads/opctl/operator/lowcode/anomaly/model/anomaly_dataset.py +8 -6
  27. ads/opctl/operator/lowcode/anomaly/model/base_model.py +1 -1
  28. ads/opctl/operator/lowcode/anomaly/operator_config.py +5 -3
  29. ads/opctl/operator/lowcode/common/transformations.py +2 -0
  30. ads/opctl/operator/lowcode/forecast/model/automlx.py +29 -0
  31. ads/type_discovery/typed_feature.py +32 -34
  32. {oracle_ads-2.13.6.dist-info → oracle_ads-2.13.8.dist-info}/METADATA +1 -1
  33. {oracle_ads-2.13.6.dist-info → oracle_ads-2.13.8.dist-info}/RECORD +36 -37
  34. ads/aqua/config/config.py +0 -31
  35. {oracle_ads-2.13.6.dist-info → oracle_ads-2.13.8.dist-info}/WHEEL +0 -0
  36. {oracle_ads-2.13.6.dist-info → oracle_ads-2.13.8.dist-info}/entry_points.txt +0 -0
  37. {oracle_ads-2.13.6.dist-info → oracle_ads-2.13.8.dist-info}/licenses/LICENSE.txt +0 -0
@@ -20,8 +20,8 @@ from ads.aqua.app import AquaApp
20
20
  from ads.aqua.common.enums import Resource, Tags
21
21
  from ads.aqua.common.errors import AquaFileExistsError, AquaValueError
22
22
  from ads.aqua.common.utils import (
23
+ DEFINED_METADATA_TO_FILE_MAP,
23
24
  build_pydantic_error_message,
24
- get_container_image,
25
25
  upload_local_to_os,
26
26
  )
27
27
  from ads.aqua.constants import (
@@ -38,17 +38,18 @@ from ads.aqua.finetuning.constants import (
38
38
  FineTuneCustomMetadata,
39
39
  )
40
40
  from ads.aqua.finetuning.entities import (
41
+ AquaFineTuningConfig,
41
42
  AquaFineTuningParams,
42
43
  AquaFineTuningSummary,
43
44
  CreateFineTuningDetails,
44
45
  )
46
+ from ads.aqua.model.constants import AquaModelMetadataKeys
45
47
  from ads.common.auth import default_signer
46
48
  from ads.common.object_storage_details import ObjectStorageDetails
47
49
  from ads.common.utils import UNKNOWN, get_console_link
48
50
  from ads.config import (
49
51
  AQUA_FINETUNING_CONTAINER_OVERRIDE_FLAG_METADATA_NAME,
50
52
  AQUA_JOB_SUBNET_ID,
51
- AQUA_MODEL_FINETUNING_CONFIG,
52
53
  COMPARTMENT_OCID,
53
54
  CONDA_BUCKET_NS,
54
55
  PROJECT_OCID,
@@ -312,7 +313,7 @@ class AquaFineTuningApp(AquaApp):
312
313
  compartment_id=target_compartment,
313
314
  project_id=target_project,
314
315
  model_by_reference=True,
315
- defined_tags=create_fine_tuning_details.defined_tags
316
+ defined_tags=create_fine_tuning_details.defined_tags,
316
317
  )
317
318
 
318
319
  ft_job_freeform_tags = {
@@ -371,11 +372,11 @@ class AquaFineTuningApp(AquaApp):
371
372
  is_custom_container = True
372
373
 
373
374
  ft_parameters.batch_size = ft_parameters.batch_size or (
374
- ft_config.get("shape", UNKNOWN_DICT)
375
+ (ft_config.shape if ft_config else UNKNOWN_DICT)
375
376
  .get(create_fine_tuning_details.shape_name, UNKNOWN_DICT)
376
377
  .get("batch_size", DEFAULT_FT_BATCH_SIZE)
377
378
  )
378
- finetuning_params = ft_config.get("finetuning_params")
379
+ finetuning_params = ft_config.finetuning_params if ft_config else UNKNOWN
379
380
 
380
381
  ft_job.with_runtime(
381
382
  self._build_fine_tuning_runtime(
@@ -558,7 +559,7 @@ class AquaFineTuningApp(AquaApp):
558
559
  ) -> Runtime:
559
560
  """Builds fine tuning runtime for Job."""
560
561
  container = (
561
- get_container_image(
562
+ self.get_container_image(
562
563
  container_type=ft_container,
563
564
  )
564
565
  if not is_custom_container
@@ -626,7 +627,7 @@ class AquaFineTuningApp(AquaApp):
626
627
  @telemetry(
627
628
  entry_point="plugin=finetuning&action=get_finetuning_config", name="aqua"
628
629
  )
629
- def get_finetuning_config(self, model_id: str) -> Dict:
630
+ def get_finetuning_config(self, model_id: str) -> AquaFineTuningConfig:
630
631
  """Gets the finetuning config for given Aqua model.
631
632
 
632
633
  Parameters
@@ -639,12 +640,25 @@ class AquaFineTuningApp(AquaApp):
639
640
  Dict:
640
641
  A dict of allowed finetuning configs.
641
642
  """
642
- config = self.get_config(model_id, AQUA_MODEL_FINETUNING_CONFIG).config
643
+ config = self.get_config_from_metadata(
644
+ model_id, AquaModelMetadataKeys.FINE_TUNING_CONFIGURATION
645
+ ).config
646
+ if config:
647
+ logger.info(
648
+ f"Fetched {AquaModelMetadataKeys.FINE_TUNING_CONFIGURATION} from defined metadata for model: {model_id}."
649
+ )
650
+ return AquaFineTuningConfig(**(config or UNKNOWN_DICT))
651
+ config = self.get_config(
652
+ model_id,
653
+ DEFINED_METADATA_TO_FILE_MAP.get(
654
+ AquaModelMetadataKeys.FINE_TUNING_CONFIGURATION.lower()
655
+ ),
656
+ ).config
643
657
  if not config:
644
658
  logger.debug(
645
659
  f"Fine-tuning config for custom model: {model_id} is not available. Use defaults."
646
660
  )
647
- return config
661
+ return AquaFineTuningConfig(**(config or UNKNOWN_DICT))
648
662
 
649
663
  @telemetry(
650
664
  entry_point="plugin=finetuning&action=get_finetuning_default_params",
@@ -667,7 +681,9 @@ class AquaFineTuningApp(AquaApp):
667
681
  """
668
682
  default_params = {"params": {}}
669
683
  finetuning_config = self.get_finetuning_config(model_id)
670
- config_parameters = finetuning_config.get("configuration", UNKNOWN_DICT)
684
+ config_parameters = (
685
+ finetuning_config.configuration if finetuning_config else UNKNOWN_DICT
686
+ )
671
687
  dataclass_fields = self._get_finetuning_params(
672
688
  config_parameters, validate=False
673
689
  ).to_dict()
@@ -50,3 +50,11 @@ class FineTuningCustomMetadata(ExtendedEnum):
50
50
  VALIDATION_METRICS_FINAL = "val_metrics_final"
51
51
  TRAINING_METRICS_EPOCH = "train_metrics_epoch"
52
52
  VALIDATION_METRICS_EPOCH = "val_metrics_epoch"
53
+
54
+
55
+ class AquaModelMetadataKeys(ExtendedEnum):
56
+ FINE_TUNING_CONFIGURATION = "FineTuneConfiguration"
57
+ DEPLOYMENT_CONFIGURATION = "DeploymentConfiguration"
58
+ README = "Readme"
59
+ LICENSE = "License"
60
+ REPORTS = "Reports"
@@ -15,6 +15,7 @@ from typing import List, Optional
15
15
 
16
16
  import oci
17
17
  from huggingface_hub import hf_api
18
+ from pydantic import BaseModel
18
19
 
19
20
  from ads.aqua import logger
20
21
  from ads.aqua.app import CLIBuilderMixin
@@ -29,6 +30,13 @@ from ads.model.datascience_model import DataScienceModel
29
30
  from ads.model.model_metadata import MetadataTaxonomyKeys
30
31
 
31
32
 
33
+ class AquaModelReadme(BaseModel):
34
+ """Represents the response of Get Model Readme."""
35
+
36
+ id: str = field(default_factory=str)
37
+ model_card: str = field(default_factory=str)
38
+
39
+
32
40
  @dataclass(repr=False)
33
41
  class FineTuningShapeInfo(DataClassSerializable):
34
42
  instance_shape: str = field(default_factory=str)
@@ -95,7 +103,6 @@ class AquaModelSummary(DataClassSerializable):
95
103
  class AquaModel(AquaModelSummary, DataClassSerializable):
96
104
  """Represents an Aqua model."""
97
105
 
98
- model_card: str = None
99
106
  inference_container: str = None
100
107
  inference_container_uri: str = None
101
108
  finetuning_container: str = None