oracle-ads 2.13.0__py3-none-any.whl → 2.13.1__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 (55) hide show
  1. ads/aqua/__init__.py +7 -1
  2. ads/aqua/app.py +24 -23
  3. ads/aqua/client/client.py +48 -11
  4. ads/aqua/common/entities.py +28 -1
  5. ads/aqua/common/enums.py +13 -7
  6. ads/aqua/common/utils.py +8 -13
  7. ads/aqua/config/container_config.py +203 -0
  8. ads/aqua/config/evaluation/evaluation_service_config.py +5 -181
  9. ads/aqua/constants.py +0 -1
  10. ads/aqua/evaluation/evaluation.py +4 -4
  11. ads/aqua/extension/base_handler.py +4 -0
  12. ads/aqua/extension/model_handler.py +19 -28
  13. ads/aqua/finetuning/finetuning.py +2 -3
  14. ads/aqua/model/entities.py +2 -3
  15. ads/aqua/model/model.py +25 -30
  16. ads/aqua/modeldeployment/deployment.py +6 -14
  17. ads/aqua/modeldeployment/entities.py +2 -2
  18. ads/aqua/server/__init__.py +4 -0
  19. ads/aqua/server/__main__.py +24 -0
  20. ads/aqua/server/app.py +47 -0
  21. ads/aqua/server/aqua_spec.yml +1291 -0
  22. ads/aqua/ui.py +5 -199
  23. ads/common/auth.py +20 -11
  24. ads/common/utils.py +91 -11
  25. ads/config.py +3 -0
  26. ads/llm/__init__.py +1 -0
  27. ads/llm/langchain/plugins/llms/oci_data_science_model_deployment_endpoint.py +32 -23
  28. ads/model/artifact_downloader.py +4 -1
  29. ads/model/common/utils.py +15 -3
  30. ads/model/datascience_model.py +339 -8
  31. ads/model/model_metadata.py +54 -14
  32. ads/model/model_version_set.py +5 -3
  33. ads/model/service/oci_datascience_model.py +477 -5
  34. ads/opctl/anomaly_detection.py +11 -0
  35. ads/opctl/forecast.py +11 -0
  36. ads/opctl/operator/common/utils.py +16 -0
  37. ads/opctl/operator/lowcode/common/data.py +5 -2
  38. ads/opctl/operator/lowcode/common/transformations.py +2 -12
  39. ads/opctl/operator/lowcode/forecast/__main__.py +5 -5
  40. ads/opctl/operator/lowcode/forecast/model/arima.py +6 -3
  41. ads/opctl/operator/lowcode/forecast/model/automlx.py +61 -31
  42. ads/opctl/operator/lowcode/forecast/model/base_model.py +66 -40
  43. ads/opctl/operator/lowcode/forecast/model/forecast_datasets.py +79 -13
  44. ads/opctl/operator/lowcode/forecast/model/neuralprophet.py +5 -2
  45. ads/opctl/operator/lowcode/forecast/model/prophet.py +28 -15
  46. ads/opctl/operator/lowcode/forecast/model_evaluator.py +13 -15
  47. ads/opctl/operator/lowcode/forecast/schema.yaml +1 -1
  48. ads/opctl/operator/lowcode/forecast/whatifserve/deployment_manager.py +7 -0
  49. ads/opctl/operator/lowcode/forecast/whatifserve/score.py +19 -11
  50. {oracle_ads-2.13.0.dist-info → oracle_ads-2.13.1.dist-info}/METADATA +18 -15
  51. {oracle_ads-2.13.0.dist-info → oracle_ads-2.13.1.dist-info}/RECORD +54 -48
  52. {oracle_ads-2.13.0.dist-info → oracle_ads-2.13.1.dist-info}/WHEEL +1 -1
  53. ads/aqua/config/evaluation/evaluation_service_model_config.py +0 -8
  54. {oracle_ads-2.13.0.dist-info → oracle_ads-2.13.1.dist-info}/entry_points.txt +0 -0
  55. {oracle_ads-2.13.0.dist-info → oracle_ads-2.13.1.dist-info/licenses}/LICENSE.txt +0 -0
@@ -0,0 +1,1291 @@
1
+ openapi: '3.0.3'
2
+ info:
3
+ title: AI Quick Actions
4
+ version: '1.0'
5
+ servers:
6
+ - url: "http://localhost:8080/aqua"
7
+ - url: http://{host}:{port}/aqua
8
+ paths:
9
+ /model:
10
+ get:
11
+ summary: "List Models"
12
+ description: "Returns array of AquaModel object. To fetch finetuned model set the compartment_id in the query param"
13
+ operationId: "listModels"
14
+ parameters:
15
+ - name: compartment_id
16
+ in: query
17
+ description: "compartment id where model exists. Set this for registered model or fine tuned model"
18
+ required: false
19
+ schema:
20
+ type: string
21
+ - name: model_type
22
+ in: query
23
+ description: "Type of the model"
24
+ required: false
25
+ schema:
26
+ type: string
27
+ enum:
28
+ - BASE
29
+ - FT
30
+ example: "FT" # Only applicable if compartment_id is provided
31
+ responses:
32
+ '200':
33
+ description: OK
34
+ content:
35
+ application/json:
36
+ schema:
37
+ $ref: '#/components/schemas/AquaModelList'
38
+ '404':
39
+ description: "Model not found"
40
+
41
+ post:
42
+ summary: "Register Model"
43
+ description: "Register model into data science service."
44
+ operationId: "registerModel"
45
+ requestBody:
46
+ description: "User object that needs to be added"
47
+ required: true
48
+ content:
49
+ application/json:
50
+ schema:
51
+ $ref: '#/components/schemas/ImportModelDetails'
52
+ examples:
53
+ verifiedModelOrCachedmodel:
54
+ summary: "Verfied or Cached Model"
55
+ description: "The inference container and finetuning container is automatically set"
56
+ value:
57
+ model: "meta-llama/Llama-3.2-1B-Instruct"
58
+ os_path: "oci://<bucketname>@<namespace>/models"
59
+ download_from_hf: true
60
+ cleanup_model_cache: true
61
+ ignore_patterns: ["original/*"]
62
+ registerFromObjectStorageLocation:
63
+ summary: "Register from object storage"
64
+ description: "If the model is already available on the object storage, set the os_path to the model artifact path. Set the `download_from_hf` to false"
65
+ value:
66
+ model: "meta-llama/Llama-3.2-1B-Instruct"
67
+ os_path: "oci://<bucketname>@<namespace>/models/meta-llama/Llama-3.2-1B-Instruct"
68
+ download_from_hf: false
69
+ cleanup_model_cache: true
70
+ ignore_patterns: ["original/*"]
71
+ unverifiedModel:
72
+ summary: "Unverfied models"
73
+ description: "In case of unverified model, explicity provide the inference container and the finetuning container"
74
+ value:
75
+ model: "meta-llama/Llama-3.3-70B-Instruct"
76
+ os_path: "oci://<bucketname>@<namespace>/models"
77
+ download_from_hf: true
78
+ cleanup_model_cache: true
79
+ ignore_patterns: ["original/*"]
80
+ inference_container: "dsmc://odsc-vllm-serving:0.6.4.post1.1"
81
+ finetuning_container: "dsmc://odsc-llm-fine-tuning:2.2.62.70"
82
+ responses:
83
+ '200':
84
+ description: OK
85
+ content:
86
+ application/json:
87
+ schema:
88
+ $ref: '#/components/schemas/AquaModel'
89
+ '404':
90
+ description: "Model not found"
91
+ /model/{model_id}:
92
+ get:
93
+ summary: "Retrieve a model"
94
+ description: "Returns a AquaModel if model_id is base model. If it is fine tuned model it returns AquaFineTuneModel. To fetch finetuned model set the compartment_id in the query param"
95
+ operationId: "getModel"
96
+ parameters:
97
+ - name: model_id
98
+ in: path
99
+ description: "ID of the model to retrieve"
100
+ required: true
101
+ schema:
102
+ type: string
103
+ responses:
104
+ '200':
105
+ description: "Model object"
106
+ content:
107
+ application/json:
108
+ schema:
109
+ oneOf:
110
+ - $ref: '#/components/schemas/AquaModel'
111
+ - $ref: "#/components/schemas/AquaFineTuneModel"
112
+ '404':
113
+ description: "Model not found"
114
+ /finetuning:
115
+ post:
116
+ summary: "Create a fine-tuning job"
117
+ operationId: createFineTuningJob
118
+ requestBody:
119
+ description: "Input data for creating a fine-tuning job."
120
+ required: true
121
+ content:
122
+ application/json:
123
+ schema:
124
+ $ref: "#/components/schemas/CreateFineTuningDetails"
125
+ example:
126
+ "ft_source_id": "ocid1.datasciencemodel.oc1..<UNIQUEID>"
127
+ "ft_name": "My FineTuning Job"
128
+ "dataset_path": "oci://bucket@namespace/path/to/my-data.jsonl"
129
+ "report_path": "oci://bucket@namespace/path/to/"
130
+ "ft_parameters":
131
+ "epochs": 10
132
+ "learning_rate": 0.001
133
+ "shape_name": "VM.GPU.A10.2"
134
+ "replica": 1
135
+ "validation_set_size": 0.2
136
+ "ft_description": "API Testing."
137
+ "compartment_id": "ocid1.compartment.oc1..<UNIQUEID>"
138
+ "experiment_name": "API Testing"
139
+ "experiment_description": "Testing API"
140
+ "log_group_id": "ocid1.loggroup.oc1..<UNIQUEID>"
141
+ "log_id": "ocid1.log.oc1..<UNIQUEID>"
142
+ responses:
143
+ "200":
144
+ description: "Fine-tuning job created successfully."
145
+ content:
146
+ application/json:
147
+ schema:
148
+ $ref: "#/components/schemas/AquaFineTuneModel"
149
+ "400":
150
+ description: "Invalid input data."
151
+ content:
152
+ application/json:
153
+ schema:
154
+ type: object
155
+ /finetuning/config/{model_id}:
156
+ get:
157
+ summary: "Get fine-tuning configuration for a base model"
158
+ description: "Fetches the shapes and default replica and batch size for different supported shapes."
159
+ operationId: getFinetuningConfig
160
+ parameters:
161
+ - name: model_id
162
+ in: path
163
+ description: "The base model id for which to retrieve the fine-tuning configuration."
164
+ required: true
165
+ schema:
166
+ type: string
167
+ responses:
168
+ "200":
169
+ description: "Fine-tuning configuration retrieved successfully."
170
+ content:
171
+ application/json:
172
+ schema:
173
+ type: object
174
+ additionalProperties: true
175
+ "400":
176
+ description: "Invalid request. Model id is required or the request is invalid."
177
+ content:
178
+ application/json:
179
+ schema:
180
+ type: object
181
+ /finetuning/{model_id}/params:
182
+ get:
183
+ summary: "Get default fine-tuning parameters for a model"
184
+ description: "Fetches the fine tuning parameter defaults set for fine tuning"
185
+ operationId: getFinetuningDefaultParams
186
+ parameters:
187
+ - name: model_id
188
+ in: path
189
+ description: "The base model id for which to get the default fine-tuning parameters."
190
+ required: true
191
+ schema:
192
+ type: string
193
+ responses:
194
+ "200":
195
+ description: "Default fine-tuning parameters retrieved successfully."
196
+ content:
197
+ application/json:
198
+ schema:
199
+ $ref: "#/components/schemas/AquaFineTuneValidation"
200
+ "400":
201
+ description: "Invalid request or missing model id."
202
+ content:
203
+ application/json:
204
+ schema:
205
+ type: object
206
+ post:
207
+ summary: "Validate fine-tuning parameters for a model"
208
+ operationId: validateFineTuningParams
209
+ parameters:
210
+ - name: model_id
211
+ in: path
212
+ description: "The model id for which to validate fine-tuning parameters."
213
+ required: true
214
+ schema:
215
+ type: string
216
+ requestBody:
217
+ description: "JSON object containing the 'params' to be validated."
218
+ required: true
219
+ content:
220
+ application/json:
221
+ schema:
222
+ type: object
223
+ properties:
224
+ params:
225
+ type: object
226
+ description: "Fine-tuning parameters to validate."
227
+ responses:
228
+ "200":
229
+ description: "Fine-tuning parameters validated successfully."
230
+ content:
231
+ application/json:
232
+ schema:
233
+ $ref: "#/components/schemas/AquaFineTuneValidation"
234
+ "400":
235
+ description: "Invalid input data."
236
+ content:
237
+ application/json:
238
+ schema:
239
+ type: object
240
+ /deployments:
241
+ get:
242
+ summary: "Lists all the AI Quick Actions deployment in the compartment"
243
+ description: "Lists all the deployments."
244
+ operationId: listDeployment
245
+ parameters:
246
+ - name: compartment_id
247
+ in: query
248
+ description: "If not provided, default compartment set at the API server will be used."
249
+ required: false
250
+ schema:
251
+ type: string
252
+ example: "ocid1.compartment.oc1..<UNIQUEID>"
253
+ - name: project_id
254
+ in: query
255
+ description: "If not provided, default project_id set at the API server will be used."
256
+ required: false
257
+ schema:
258
+ type: string
259
+ example: "ocid1.datascienceproject.oc1..<UNIQUEID>"
260
+ responses:
261
+ "200":
262
+ description: "Deployment details retrieved successfully."
263
+ content:
264
+ application/json:
265
+ schema:
266
+ $ref: "#/components/schemas/AquaDeploymentList"
267
+ "400":
268
+ description: "Invalid deployment id provided."
269
+ content:
270
+ application/json:
271
+ schema:
272
+ type: object
273
+ post:
274
+ summary: "Create a new model deployment"
275
+ description: "Creates a new Aqua model deployment with the provided configuration."
276
+ operationId: createDeployment
277
+ requestBody:
278
+ required: true
279
+ description: "Deployment configuration parameters."
280
+ content:
281
+ application/json:
282
+ schema:
283
+ $ref: "#/components/schemas/AquaCreateDeployment"
284
+ responses:
285
+ "200":
286
+ description: "Deployment created successfully."
287
+ content:
288
+ application/json:
289
+ schema:
290
+ $ref: "#/components/schemas/AquaDeployment"
291
+ "400":
292
+ description: "Invalid input data."
293
+ content:
294
+ application/json:
295
+ schema:
296
+ type: object
297
+ /deployments/{deployment_id}:
298
+ get:
299
+ summary: "Retrieve a model deployment"
300
+ description: "Retrieves the details of a specific Aqua model deployment by its deployment_id."
301
+ operationId: getDeployment
302
+ parameters:
303
+ - name: deployment_id
304
+ in: path
305
+ description: "The unique identifier of the deployment."
306
+ required: true
307
+ schema:
308
+ type: string
309
+ example: "ocid1.datasciencemodeldeployment.oc1..<UNIQUEID>"
310
+ responses:
311
+ "200":
312
+ description: "Deployment details retrieved successfully."
313
+ content:
314
+ application/json:
315
+ schema:
316
+ $ref: "#/components/schemas/AquaDeploymentDetail"
317
+ "400":
318
+ description: "Invalid deployment id provided."
319
+ content:
320
+ application/json:
321
+ schema:
322
+ type: object
323
+ /deployment/delete/{deployment_id}:
324
+ delete:
325
+ summary: "Delete a model deployment"
326
+ description: "Deletes the Aqua model deployment specified by deployment_id."
327
+ operationId: deleteDeployment
328
+ parameters:
329
+ - name: deployment_id
330
+ in: path
331
+ description: "The unique identifier of the deployment to be deleted."
332
+ required: true
333
+ schema:
334
+ type: string
335
+ example: "deployment-ocid-001"
336
+ responses:
337
+ "200":
338
+ description: "Deployment deleted successfully."
339
+ content:
340
+ application/json:
341
+ schema:
342
+ type: object
343
+ properties:
344
+ message:
345
+ type: string
346
+ example: "Deployment deleted successfully."
347
+ "400":
348
+ description: "Invalid deployment id provided."
349
+ content:
350
+ application/json:
351
+ schema:
352
+ type: object
353
+ /evaluation/config:
354
+ get:
355
+ summary: "Retrieve evaluation configuration"
356
+ description: "Returns the evaluation configuration for a given evaluation id. If the evaluation id is missing, a 400 error is returned."
357
+ operationId: getEvaluationConfig
358
+ responses:
359
+ "200":
360
+ description: "Evaluation configuration retrieved successfully."
361
+ content:
362
+ application/json:
363
+ schema:
364
+ type: object
365
+ additionalProperties: true
366
+ "400":
367
+ description: "Invalid evaluation id provided."
368
+ content:
369
+ application/json:
370
+ schema:
371
+ type: object
372
+ /evaluation/{eval_id}:
373
+ get:
374
+ summary: "Get Evaluation Run details"
375
+ operationId: getEvaluation
376
+ parameters:
377
+ - name: eval_id
378
+ in: path
379
+ description: "ID of the evaluation model to retrieve"
380
+ required: true
381
+ schema:
382
+ type: string
383
+ responses:
384
+ '200':
385
+ description: "Model object"
386
+ content:
387
+ application/json:
388
+ schema:
389
+ $ref: '#/components/schemas/AquaEvaluationSummary'
390
+ '404':
391
+ description: "Model not found"
392
+
393
+ /evaluation:
394
+ get:
395
+ summary: "List Evaluation"
396
+ description: "Returns array of AquaEvaluationSummary object."
397
+ operationId: "listEvaluation"
398
+ parameters:
399
+ - name: compartment_id
400
+ in: query
401
+ description: "compartment id where evaluation run exists. If not set, will use the default set at the API server"
402
+ required: false
403
+ schema:
404
+ type: string
405
+ responses:
406
+ '200':
407
+ description: OK
408
+ content:
409
+ application/json:
410
+ schema:
411
+ $ref: '#/components/schemas/AquaEvaluationSummary'
412
+ '404':
413
+ description: "Evaluation Run not found"
414
+ post:
415
+ summary: "Create evaluation job"
416
+ description: "Creates a new evaluation job using the provided evaluation details."
417
+ operationId: createEvaluationJob
418
+ requestBody:
419
+ description: "Payload for creating a new evaluation job."
420
+ required: true
421
+ content:
422
+ application/json:
423
+ schema:
424
+ $ref: "#/components/schemas/CreateEvaluationDetails"
425
+ responses:
426
+ "200":
427
+ description: "Evaluation job created successfully."
428
+ content:
429
+ application/json:
430
+ schema:
431
+ $ref: "#/components/schemas/AquaEvaluationSummary"
432
+ "400":
433
+ description: "Invalid input data."
434
+ content:
435
+ application/json:
436
+ schema:
437
+ type: object
438
+ components:
439
+ schemas:
440
+ FineTuningShapeInfo:
441
+ type: object
442
+ properties:
443
+ instance_shape:
444
+ type: string
445
+ description: "Shape of the instance"
446
+ replica:
447
+ type: integer
448
+ description: "Replica count"
449
+ example:
450
+ instance_shape: "VM.Standard2.1"
451
+ replica: 1
452
+
453
+ AquaFineTuneValidation:
454
+ type: object
455
+ properties:
456
+ type:
457
+ type: string
458
+ default: "Automatic split"
459
+ description: "Type of validation used"
460
+ value:
461
+ type: string
462
+ description: "Validation value"
463
+ example:
464
+ type: "Automatic split"
465
+ value: "80:20"
466
+
467
+ ModelFormat:
468
+ type: string
469
+ description: "Model format enumeration (external type placeholder)"
470
+ example: "SAFETENSORS"
471
+
472
+ ModelValidationResult:
473
+ type: object
474
+ properties:
475
+ model_file:
476
+ type: string
477
+ description: "Path or identifier of the model file"
478
+ model_formats:
479
+ type: array
480
+ items:
481
+ $ref: '#/components/schemas/ModelFormat'
482
+ description: "List of supported model formats"
483
+ telemetry_model_name:
484
+ type: string
485
+ description: "Telemetry name of the model"
486
+ tags:
487
+ type: object
488
+ description: "Arbitrary tags"
489
+ additionalProperties: true
490
+ example:
491
+ model_file: "model.pkl"
492
+ model_formats: ["ONNX"]
493
+ telemetry_model_name: "MyModelTelemetry"
494
+ tags:
495
+ environment: "production"
496
+
497
+ AquaFineTuningMetric:
498
+ type: object
499
+ properties:
500
+ name:
501
+ type: string
502
+ description: "Metric name"
503
+ category:
504
+ type: string
505
+ description: "Metric category"
506
+ scores:
507
+ type: array
508
+ items:
509
+ type: number
510
+ description: "List of metric scores"
511
+ example:
512
+ name: "accuracy"
513
+ category: "performance"
514
+ scores: [0.95, 0.96]
515
+
516
+ AquaModelLicense:
517
+ type: object
518
+ properties:
519
+ id:
520
+ type: string
521
+ description: "License identifier"
522
+ license:
523
+ type: string
524
+ description: "License text or reference"
525
+ example:
526
+ id: "lic-123"
527
+ license: "Apache-2.0"
528
+
529
+ AquaModelSummary:
530
+ type: object
531
+ properties:
532
+ compartment_id:
533
+ type: string
534
+ icon:
535
+ type: string
536
+ id:
537
+ type: string
538
+ is_fine_tuned_model:
539
+ type: boolean
540
+ license:
541
+ type: string
542
+ name:
543
+ type: string
544
+ organization:
545
+ type: string
546
+ project_id:
547
+ type: string
548
+ tags:
549
+ type: object
550
+ additionalProperties: true
551
+ task:
552
+ type: string
553
+ time_created:
554
+ type: string
555
+ console_link:
556
+ type: string
557
+ search_text:
558
+ type: string
559
+ ready_to_deploy:
560
+ type: boolean
561
+ default: true
562
+ ready_to_finetune:
563
+ type: boolean
564
+ default: false
565
+ ready_to_import:
566
+ type: boolean
567
+ default: false
568
+ nvidia_gpu_supported:
569
+ type: boolean
570
+ default: false
571
+ arm_cpu_supported:
572
+ type: boolean
573
+ default: false
574
+ model_file:
575
+ type: string
576
+ model_formats:
577
+ type: array
578
+ items:
579
+ $ref: '#/components/schemas/ModelFormat'
580
+ example:
581
+ compartment_id: "comp-123"
582
+ id: "model-456"
583
+ is_fine_tuned_model: false
584
+ name: "Example Model"
585
+ ready_to_deploy: true
586
+ model_formats: ["ONNX"]
587
+
588
+ AquaModel:
589
+ allOf:
590
+ - $ref: '#/components/schemas/AquaModelSummary'
591
+ - type: object
592
+ properties:
593
+ model_card:
594
+ type: string
595
+ inference_container:
596
+ type: string
597
+ inference_container_uri:
598
+ type: string
599
+ finetuning_container:
600
+ type: string
601
+ evaluation_container:
602
+ type: string
603
+ artifact_location:
604
+ type: string
605
+ example:
606
+ model_card: "http://example.com/model-card"
607
+ inference_container: "inference-container:latest"
608
+ inference_container_uri: "oci://inference_container_uri"
609
+ finetuning_container: "finetuning-container:latest"
610
+ evaluation_container: "evaluation-container:latest"
611
+ artifact_location: "/path/to/artifact"
612
+ AquaModelList:
613
+ type: object
614
+ properties:
615
+ data:
616
+ type: array
617
+ items:
618
+ $ref: "#/components/schemas/AquaModel"
619
+ HFModelContainerInfo:
620
+ type: object
621
+ properties:
622
+ inference_container:
623
+ type: string
624
+ finetuning_container:
625
+ type: string
626
+ example:
627
+ inference_container: "inference-container:latest"
628
+ finetuning_container: "finetuning-container:latest"
629
+
630
+ HFModelSummary:
631
+ type: object
632
+ properties:
633
+ model_info:
634
+ type: object
635
+ description: "Hugging Face ModelInfo object (external type placeholder)"
636
+ example:
637
+ modelId: "hf-model-001"
638
+ aqua_model_info:
639
+ $ref: '#/components/schemas/AquaModelSummary'
640
+ example:
641
+ model_info:
642
+ modelId: "hf-model-001"
643
+ aqua_model_info:
644
+ id: "model-456"
645
+ name: "Example Model"
646
+
647
+ AquaResourceIdentifier:
648
+ type: object
649
+ description: "A resource identifier containing id, name, and url."
650
+ properties:
651
+ id:
652
+ type: string
653
+ name:
654
+ type: string
655
+ url:
656
+ type: string
657
+ example:
658
+ id: "res-789"
659
+ name: "Resource Name"
660
+ url: "http://example.com/resource"
661
+
662
+ AquaEvalFTCommon:
663
+ type: object
664
+ properties:
665
+ lifecycle_state:
666
+ type: string
667
+ lifecycle_details:
668
+ type: string
669
+ job:
670
+ $ref: '#/components/schemas/AquaResourceIdentifier'
671
+ source:
672
+ $ref: '#/components/schemas/AquaResourceIdentifier'
673
+ experiment:
674
+ $ref: '#/components/schemas/AquaResourceIdentifier'
675
+ log_group:
676
+ $ref: '#/components/schemas/AquaResourceIdentifier'
677
+ log:
678
+ $ref: '#/components/schemas/AquaResourceIdentifier'
679
+ example:
680
+ lifecycle_state: "SUCCEEDED"
681
+ lifecycle_details: "Completed successfully"
682
+ job:
683
+ id: "job-001"
684
+ name: "Job One"
685
+ url: "http://example.com/job/001"
686
+ source:
687
+ id: "src-002"
688
+ name: "Source Two"
689
+ url: "http://example.com/src/002"
690
+ experiment:
691
+ id: "exp-003"
692
+ name: "Experiment Three"
693
+ url: "http://example.com/exp/003"
694
+ log_group:
695
+ id: "lg-004"
696
+ name: "Log Group Four"
697
+ url: "http://example.com/lg/004"
698
+ log:
699
+ id: "log-005"
700
+ name: "Log Five"
701
+ url: "http://example.com/log/005"
702
+
703
+ AquaFineTuneModel:
704
+ allOf:
705
+ - $ref: '#/components/schemas/AquaModel'
706
+ - $ref: '#/components/schemas/AquaEvalFTCommon'
707
+ - type: object
708
+ properties:
709
+ dataset:
710
+ type: string
711
+ validation:
712
+ $ref: '#/components/schemas/AquaFineTuneValidation'
713
+ shape_info:
714
+ $ref: '#/components/schemas/FineTuningShapeInfo'
715
+ metrics:
716
+ type: array
717
+ items:
718
+ $ref: '#/components/schemas/AquaFineTuningMetric'
719
+ example:
720
+ dataset: "training_data.csv"
721
+ validation:
722
+ type: "Automatic split"
723
+ value: "20%"
724
+ shape_info:
725
+ instance_shape: "VM.Standard2.1"
726
+ replica: 2
727
+ metrics:
728
+ - name: "accuracy"
729
+ category: "performance"
730
+ scores: [0.95]
731
+ AquaFineTuneModelList:
732
+ type: object
733
+ properties:
734
+ data:
735
+ type: array
736
+ items:
737
+ $ref: "#/components/schemas/AquaFineTuneModel"
738
+
739
+ ImportModelDetails:
740
+ type: object
741
+ properties:
742
+ model:
743
+ type: string
744
+ description: "Name of the model"
745
+ os_path:
746
+ type: string
747
+ description: "Path to the model in the objet storage. This is of the format oci://namesapace@bucket_name/path/to/model. "
748
+ download_from_hf:
749
+ type: boolean
750
+ default: true
751
+ description: "Will download the model from the huggingface and uploaded to the provided object storage path"
752
+ local_dir:
753
+ type: string
754
+ description: "Local directory where the model will be downloaded to from huggingface"
755
+ cleanup_model_cache:
756
+ type: boolean
757
+ default: false
758
+ description: "Cleanup local path"
759
+ inference_container:
760
+ type: string
761
+ description: "The inference container to use for model deployment"
762
+ finetuning_container:
763
+ type: string
764
+ description: "The Fine tuning container to use for model deployment"
765
+ compartment_id:
766
+ type: string
767
+ project_id:
768
+ type: string
769
+ model_file:
770
+ type: string
771
+ description: "Required if the model is of type GGUF"
772
+ inference_container_uri:
773
+ type: string
774
+ allow_patterns:
775
+ description: "Artifact file patterns that should be included while downloading from HuggingFace"
776
+ type: array
777
+ items:
778
+ type: string
779
+ ignore_patterns:
780
+ description: "Artifact file patterns that should be ignored while downloading from HuggingFace"
781
+ type: array
782
+ items:
783
+ type: string
784
+ freeform_tags:
785
+ description: "Freeform tags to be added to the model created"
786
+ type: object
787
+ additionalProperties: true
788
+ defined_tags:
789
+ type: object
790
+ additionalProperties: true
791
+ ignore_model_artifact_check:
792
+ description: "Flag to ignore checking config.json or safetensor file presence in the huggingface repo"
793
+ type: boolean
794
+ default: false
795
+ required:
796
+ - model
797
+ - os_path
798
+
799
+ AquaFineTuningParams:
800
+ type: object
801
+ description: "Class for maintaining Aqua fine-tuning model parameters"
802
+ properties:
803
+ epochs:
804
+ type: integer
805
+ nullable: true
806
+ example: 10
807
+ learning_rate:
808
+ type: number
809
+ format: float
810
+ nullable: true
811
+ example: 0.001
812
+ sample_packing:
813
+ oneOf:
814
+ - type: boolean
815
+ - type: string
816
+ enum: ["auto"]
817
+ default: "auto"
818
+ example: "auto"
819
+ batch_size:
820
+ type: integer
821
+ nullable: true
822
+ description: "Internally used as micro_batch_size"
823
+ example: 32
824
+ sequence_len:
825
+ type: integer
826
+ nullable: true
827
+ example: 128
828
+ pad_to_sequence_len:
829
+ type: boolean
830
+ nullable: true
831
+ example: true
832
+ lora_r:
833
+ type: integer
834
+ nullable: true
835
+ example: 4
836
+ lora_alpha:
837
+ type: integer
838
+ nullable: true
839
+ example: 16
840
+ lora_dropout:
841
+ type: number
842
+ format: float
843
+ nullable: true
844
+ example: 0.1
845
+ lora_target_linear:
846
+ type: boolean
847
+ nullable: true
848
+ example: false
849
+ lora_target_modules:
850
+ type: array
851
+ items:
852
+ type: string
853
+ nullable: true
854
+ example: ["module1", "module2"]
855
+ early_stopping_patience:
856
+ type: integer
857
+ nullable: true
858
+ example: 3
859
+ early_stopping_threshold:
860
+ type: number
861
+ format: float
862
+ nullable: true
863
+ example: 0.01
864
+ additionalProperties: true
865
+
866
+ AquaFineTuningSummary:
867
+ type: object
868
+ description: "Represents a summary of Aqua FineTuning job."
869
+ properties:
870
+ id:
871
+ type: string
872
+ example: "ft-job-1234"
873
+ name:
874
+ type: string
875
+ example: "Fine Tuning Job Name"
876
+ console_url:
877
+ type: string
878
+ example: "https://console.example.com/jobs/ft-job-1234"
879
+ lifecycle_state:
880
+ type: string
881
+ example: "SUCCEEDED"
882
+ lifecycle_details:
883
+ type: string
884
+ example: "Completed successfully"
885
+ time_created:
886
+ type: string
887
+ example: "2025-01-01T12:00:00Z"
888
+ tags:
889
+ type: object
890
+ additionalProperties: true
891
+ example: { "env": "prod" }
892
+ experiment:
893
+ $ref: "#/components/schemas/AquaResourceIdentifier"
894
+ source:
895
+ $ref: "#/components/schemas/AquaResourceIdentifier"
896
+ job:
897
+ $ref: "#/components/schemas/AquaResourceIdentifier"
898
+ parameters:
899
+ $ref: "#/components/schemas/AquaFineTuningParams"
900
+ CreateFineTuningDetails:
901
+ type: object
902
+ description: "Class to create aqua model fine-tuning instance."
903
+ properties:
904
+ ft_source_id:
905
+ type: string
906
+ example: "ocid.datasciencemodel.......<UNIQUEID>"
907
+ ft_name:
908
+ type: string
909
+ example: "My FineTuning Job"
910
+ dataset_path:
911
+ type: string
912
+ example: "oci://bucket@namespace/path/to/dataset.jsonl"
913
+ report_path:
914
+ type: string
915
+ example: "oci://bucket@namespace/path/to/report/"
916
+ ft_parameters:
917
+ type: object
918
+ description: "Parameters for fine-tuning job"
919
+ example:
920
+ epochs: 10
921
+ learning_rate: 0.001
922
+ shape_name:
923
+ type: string
924
+ example: "VM.GPU.A10.2"
925
+ replica:
926
+ type: integer
927
+ example: 2
928
+ validation_set_size:
929
+ type: number
930
+ format: float
931
+ example: 0.2
932
+ ft_description:
933
+ type: string
934
+ nullable: true
935
+ example: "A description for the fine-tuning job."
936
+ compartment_id:
937
+ type: string
938
+ nullable: true
939
+ example: "ocid.compartment.......<UNIQUEID>"
940
+ project_id:
941
+ type: string
942
+ nullable: true
943
+ example: "ocid.datascienceproject.......<UNIQUEID>"
944
+ experiment_id:
945
+ type: string
946
+ nullable: true
947
+ example: "experiment-9012"
948
+ experiment_name:
949
+ type: string
950
+ nullable: true
951
+ example: "Experiment Name"
952
+ experiment_description:
953
+ type: string
954
+ nullable: true
955
+ example: "Description of the experiment"
956
+ block_storage_size:
957
+ type: integer
958
+ nullable: true
959
+ example: 256
960
+ subnet_id:
961
+ type: string
962
+ nullable: true
963
+ example: "subnet-3456"
964
+ log_group_id:
965
+ type: string
966
+ nullable: true
967
+ example: "loggroup-7890"
968
+ log_id:
969
+ type: string
970
+ nullable: true
971
+ example: "log-1234"
972
+ watch_logs:
973
+ type: boolean
974
+ nullable: true
975
+ default: false
976
+ example: false
977
+ force_overwrite:
978
+ type: boolean
979
+ nullable: true
980
+ default: false
981
+ example: false
982
+ freeform_tags:
983
+ type: object
984
+ additionalProperties: true
985
+ nullable: true
986
+ example: { "key": "value" }
987
+ defined_tags:
988
+ type: object
989
+ additionalProperties: true
990
+ nullable: true
991
+ example: { "namespace": { "key": "value" } }
992
+ required:
993
+ - ft_source_id
994
+ - ft_name
995
+ - dataset_path
996
+ - report_path
997
+ - ft_parameters
998
+ - shape_name
999
+ - replica
1000
+ - validation_set_size
1001
+
1002
+ ModelParams:
1003
+ type: object
1004
+ description: "Parameters for model deployment."
1005
+ properties:
1006
+ max_tokens:
1007
+ type: integer
1008
+ nullable: true
1009
+ example: 256
1010
+ temperature:
1011
+ type: number
1012
+ format: float
1013
+ nullable: true
1014
+ example: 0.7
1015
+ top_k:
1016
+ type: number
1017
+ format: float
1018
+ nullable: true
1019
+ example: 50
1020
+ top_p:
1021
+ type: number
1022
+ format: float
1023
+ nullable: true
1024
+ example: 0.9
1025
+ model:
1026
+ type: string
1027
+ nullable: true
1028
+ example: "gpt-3.5-turbo"
1029
+ additionalProperties: false
1030
+
1031
+ ShapeInfo:
1032
+ type: object
1033
+ description: "Information about the shape configuration for the deployment."
1034
+ properties:
1035
+ instance_shape:
1036
+ type: string
1037
+ nullable: true
1038
+ example: "VM.Standard2.1"
1039
+ instance_count:
1040
+ type: integer
1041
+ nullable: true
1042
+ example: 2
1043
+ ocpus:
1044
+ type: number
1045
+ format: float
1046
+ nullable: true
1047
+ example: 1.0
1048
+ memory_in_gbs:
1049
+ type: number
1050
+ format: float
1051
+ nullable: true
1052
+ example: 15.0
1053
+ additionalProperties: false
1054
+
1055
+ AquaDeployment:
1056
+ type: object
1057
+ description: "Represents an Aqua Model Deployment."
1058
+ properties:
1059
+ id:
1060
+ type: string
1061
+ example: "deployment-ocid-001"
1062
+ display_name:
1063
+ type: string
1064
+ example: "My Model Deployment"
1065
+ aqua_service_model:
1066
+ type: boolean
1067
+ example: true
1068
+ model_id:
1069
+ type: string
1070
+ example: "model-ocid-1234"
1071
+ aqua_model_name:
1072
+ type: string
1073
+ example: "Aqua Model Name"
1074
+ state:
1075
+ type: string
1076
+ example: "ACTIVE"
1077
+ description:
1078
+ type: string
1079
+ nullable: true
1080
+ example: "Deployment description"
1081
+ created_on:
1082
+ type: string
1083
+ format: date-time
1084
+ example: "2025-01-01T12:00:00Z"
1085
+ created_by:
1086
+ type: string
1087
+ example: "user@example.com"
1088
+ endpoint:
1089
+ type: string
1090
+ example: "https://endpoint.example.com"
1091
+ private_endpoint_id:
1092
+ type: string
1093
+ nullable: true
1094
+ example: "private-endpoint-ocid-001"
1095
+ console_link:
1096
+ type: string
1097
+ example: "https://console.example.com/model-deployments/deployment-ocid-001"
1098
+ lifecycle_details:
1099
+ type: string
1100
+ nullable: true
1101
+ example: "All systems go"
1102
+ shape_info:
1103
+ $ref: "#/components/schemas/ShapeInfo"
1104
+ tags:
1105
+ type: object
1106
+ additionalProperties: true
1107
+ example: { "env": "prod", "project": "example" }
1108
+ environment_variables:
1109
+ type: object
1110
+ additionalProperties: true
1111
+ example: { "VAR1": "value1", "VAR2": "value2" }
1112
+ cmd:
1113
+ type: array
1114
+ items:
1115
+ type: string
1116
+ example: ["python", "serve.py"]
1117
+ required:
1118
+ - id
1119
+ - display_name
1120
+ - aqua_service_model
1121
+ - model_id
1122
+ - state
1123
+ - created_on
1124
+ - created_by
1125
+ - endpoint
1126
+
1127
+ AquaDeploymentList:
1128
+ type: object
1129
+ properties:
1130
+ data:
1131
+ type: array
1132
+ items:
1133
+ $ref: "#/components/schemas/AquaDeployment"
1134
+
1135
+ AquaCreateDeployment:
1136
+ type: object
1137
+ properties:
1138
+ compartment_id:
1139
+ type: string
1140
+ example: "ocid1.compartment.oc1..<UNIQUEID>"
1141
+ project_id:
1142
+ type: string
1143
+ example: "ocid1.datascienceproject.oc1..<UNIQUEID>"
1144
+ log_group_id:
1145
+ type: string
1146
+ example: "ocid1.loggroup.oc1..<UNIQUEID>"
1147
+ access_log_id:
1148
+ type: string
1149
+ example: "ocid1.log.oc1..<UNIQUEID>"
1150
+ predict_log_id:
1151
+ type: string
1152
+ example: "ocid1.log.oc1..<UNIQUEID>"
1153
+ description:
1154
+ type: string
1155
+ example: "llama model deployment"
1156
+ instance_count:
1157
+ type: integer
1158
+ example: 1
1159
+ bandwidth_mbps:
1160
+ type: integer
1161
+ example: 10
1162
+ env_var:
1163
+ type: object
1164
+ example: {"key": "value"}
1165
+ container_family:
1166
+ type: string
1167
+ example: "odsc-vllm-serving"
1168
+ ocpus:
1169
+ type: number
1170
+ description: "applicable when CPU shape is chose. Not applicable for GPU shape"
1171
+ example: 40
1172
+ memory_in_gbs:
1173
+ type: number
1174
+ description: "applicable when CPU shape is chose. Not applicable for GPU shape"
1175
+ example: 256
1176
+ model_file:
1177
+ type: string
1178
+ example: "my_model.gguf"
1179
+ description: "Applicable when there are multiple gguf files."
1180
+ private_endpoint_id:
1181
+ type: string
1182
+ example: "ocid1.datasciencemodeldeploymentprivatendpoint.oc1..<UNIQUEID>"
1183
+ cmd_var:
1184
+ type: string
1185
+ example: "ocid1.compartment.oc1..<UNIQUEID>"
1186
+
1187
+ AquaDeploymentDetail:
1188
+ allOf:
1189
+ - $ref: "#/components/schemas/AquaDeployment"
1190
+ - type: object
1191
+ description: "Represents details of an Aqua deployment with logging information."
1192
+ properties:
1193
+ log_group:
1194
+ $ref: "#/components/schemas/AquaResourceIdentifier"
1195
+ log:
1196
+ $ref: "#/components/schemas/AquaResourceIdentifier"
1197
+ AquaEvaluationMetric:
1198
+ type: object
1199
+ description: "Represents a single evaluation metric for a model."
1200
+ properties:
1201
+ name:
1202
+ type: string
1203
+ description: "Name of the evaluation metric."
1204
+ example: "accuracy"
1205
+ value:
1206
+ type: number
1207
+ format: float
1208
+ description: "Numeric value of the evaluation metric."
1209
+ example: 0.95
1210
+ threshold:
1211
+ type: number
1212
+ format: float
1213
+ description: "Threshold value for evaluation comparison."
1214
+ example: 0.90
1215
+ required:
1216
+ - name
1217
+ - value
1218
+
1219
+ AquaEvaluationSummary:
1220
+ type: object
1221
+ description: "Represents a summary of model evaluation results."
1222
+ properties:
1223
+ id:
1224
+ type: string
1225
+ description: "Unique identifier of the evaluation job."
1226
+ example: "eval-ocid-001"
1227
+ model_id:
1228
+ type: string
1229
+ description: "Identifier of the evaluated model."
1230
+ example: "model-ocid-1234"
1231
+ evaluator:
1232
+ type: string
1233
+ description: "Name or identifier of the evaluator."
1234
+ example: "AutoEvaluator"
1235
+ evaluation_metrics:
1236
+ type: array
1237
+ description: "List of evaluation metrics."
1238
+ items:
1239
+ $ref: "#/components/schemas/AquaEvaluationMetric"
1240
+ status:
1241
+ type: string
1242
+ description: "Evaluation status (e.g. SUCCEEDED, FAILED)."
1243
+ example: "SUCCEEDED"
1244
+ created_on:
1245
+ type: string
1246
+ format: date-time
1247
+ description: "Timestamp when the evaluation was created."
1248
+ example: "2025-01-15T10:30:00Z"
1249
+ comments:
1250
+ type: string
1251
+ description: "Optional comments regarding the evaluation."
1252
+ example: "Evaluation completed successfully."
1253
+ required:
1254
+ - id
1255
+ - model_id
1256
+ - evaluator
1257
+ - evaluation_metrics
1258
+ - status
1259
+ - created_on
1260
+
1261
+ CreateEvaluationDetails:
1262
+ type: object
1263
+ description: "Payload for creating a new model evaluation job."
1264
+ properties:
1265
+ model_id:
1266
+ type: string
1267
+ description: "Identifier of the model to be evaluated."
1268
+ example: "model-ocid-1234"
1269
+ dataset_path:
1270
+ type: string
1271
+ description: "Path to the dataset used for evaluation. This can be a local or object storage path."
1272
+ example: "oci://bucket/path/to/evaluation_data.csv"
1273
+ evaluator:
1274
+ type: string
1275
+ description: "Evaluator name or identifier."
1276
+ example: "AutoEvaluator"
1277
+ evaluation_params:
1278
+ type: object
1279
+ description: "Additional evaluation parameters."
1280
+ additionalProperties: true
1281
+ example:
1282
+ batch_size: 32
1283
+ metric: "accuracy"
1284
+ comments:
1285
+ type: string
1286
+ description: "Optional comments or description for the evaluation job."
1287
+ example: "Evaluating model performance on test dataset."
1288
+ required:
1289
+ - model_id
1290
+ - dataset_path
1291
+ - evaluator