Skip to content

Commit 6c304d2

Browse files
authored
Merge pull request #94 from togethercomputer/artem/ENG-29283-fix-ft-api
ENG-29283: Add finetune truncated return objects into the schema
2 parents ee34229 + 73a8fa6 commit 6c304d2

1 file changed

Lines changed: 128 additions & 11 deletions

File tree

openapi.yaml

Lines changed: 128 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -640,7 +640,7 @@ paths:
640640
post:
641641
tags: ['Fine-tuning']
642642
summary: Create job
643-
description: Use a model to create a fine-tuning job.
643+
description: Create a fine-tuning job with the provided model and training data.
644644
requestBody:
645645
required: true
646646
content:
@@ -750,18 +750,18 @@ paths:
750750
content:
751751
application/json:
752752
schema:
753-
$ref: '#/components/schemas/FinetuneResponse'
753+
$ref: '#/components/schemas/FinetuneResponseTruncated'
754754
get:
755755
tags: ['Fine-tuning']
756756
summary: List all jobs
757-
description: List the metadata for all fine-tuning jobs.
757+
description: List the metadata for all fine-tuning jobs. Returns a list of FinetuneResponseTruncated objects.
758758
responses:
759759
'200':
760760
description: List of fine-tune jobs
761761
content:
762762
application/json:
763763
schema:
764-
$ref: '#/components/schemas/FinetuneList'
764+
$ref: '#/components/schemas/FinetuneTruncatedList'
765765
/fine-tunes/{id}:
766766
get:
767767
tags: ['Fine-tuning']
@@ -863,7 +863,7 @@ paths:
863863
post:
864864
tags: ['Fine-tuning']
865865
summary: Cancel job
866-
description: Cancel a currently running fine-tuning job.
866+
description: Cancel a currently running fine-tuning job. Returns a FinetuneResponseTruncated object.
867867
parameters:
868868
- in: path
869869
name: id
@@ -877,7 +877,7 @@ paths:
877877
content:
878878
application/json:
879879
schema:
880-
$ref: '#/components/schemas/FinetuneResponse'
880+
$ref: '#/components/schemas/FinetuneResponseTruncated'
881881
'400':
882882
description: Invalid request parameters.
883883
'404':
@@ -1215,7 +1215,7 @@ paths:
12151215
summary: List available hardware configurations
12161216
description: >
12171217
Returns a list of available hardware configurations for deploying models.
1218-
When a model parameter is provided, it returns only hardware configurations compatible
1218+
When a model parameter is provided, it returns only hardware configurations compatible
12191219
with that model, including their current availability status.
12201220
operationId: listHardware
12211221
parameters:
@@ -1225,7 +1225,7 @@ paths:
12251225
schema:
12261226
type: string
12271227
description: >
1228-
Filter hardware configurations by model compatibility. When provided,
1228+
Filter hardware configurations by model compatibility. When provided,
12291229
the response includes availability status for each compatible configuration.
12301230
example: meta-llama/Llama-3-70b-chat-hf
12311231
responses:
@@ -2022,7 +2022,7 @@ components:
20222022
enum: ['user']
20232023
name:
20242024
type: string
2025-
2025+
20262026
ChatCompletionAssistantMessageParam:
20272027
type: object
20282028
required: [role]
@@ -2707,6 +2707,123 @@ components:
27072707
from_checkpoint:
27082708
type: string
27092709

2710+
FinetuneResponseTruncated:
2711+
type: object
2712+
description: A truncated version of the fine-tune response, used for POST /fine-tunes, GET /fine-tunes and POST /fine-tunes/{id}/cancel endpoints
2713+
required:
2714+
- id
2715+
- status
2716+
- created_at
2717+
- updated_at
2718+
example:
2719+
id: ft-01234567890123456789
2720+
status: succeeded
2721+
created_at: "2023-05-17T17:35:45.123Z"
2722+
updated_at: "2023-05-17T18:46:23.456Z"
2723+
user_id: "user_01234567890123456789"
2724+
owner_address: "user@example.com"
2725+
total_price: 1500
2726+
token_count: 850000
2727+
events: [] # FineTuneTruncated object has no events
2728+
model: "meta-llama/Llama-2-7b-hf"
2729+
n_epochs: 3
2730+
training_file: "file-01234567890123456789"
2731+
wandb_project_name: "my-finetune-project"
2732+
properties:
2733+
id:
2734+
type: string
2735+
description: Unique identifier for the fine-tune job
2736+
status:
2737+
$ref: '#/components/schemas/FinetuneJobStatus'
2738+
created_at:
2739+
type: string
2740+
format: date-time
2741+
description: Creation timestamp of the fine-tune job
2742+
updated_at:
2743+
type: string
2744+
format: date-time
2745+
description: Last update timestamp of the fine-tune job
2746+
user_id:
2747+
type: string
2748+
description: Identifier for the user who created the job
2749+
owner_address:
2750+
type: string
2751+
description: Owner address information
2752+
total_price:
2753+
type: integer
2754+
description: Total price for the fine-tuning job
2755+
token_count:
2756+
type: integer
2757+
description: Count of tokens processed
2758+
events:
2759+
type: array
2760+
items:
2761+
$ref: '#/components/schemas/FineTuneEvent'
2762+
description: Events related to this fine-tune job
2763+
# FineTuneUserParams fields
2764+
training_file:
2765+
type: string
2766+
description: File-ID of the training file
2767+
validation_file:
2768+
type: string
2769+
description: File-ID of the validation file
2770+
model:
2771+
type: string
2772+
description: Base model used for fine-tuning
2773+
suffix:
2774+
type: string
2775+
description: Suffix added to the fine-tuned model name
2776+
n_epochs:
2777+
type: integer
2778+
description: Number of training epochs
2779+
n_evals:
2780+
type: integer
2781+
description: Number of evaluations during training
2782+
n_checkpoints:
2783+
type: integer
2784+
description: Number of checkpoints saved during training
2785+
batch_size:
2786+
type: integer
2787+
description: Batch size used for training
2788+
training_type:
2789+
oneOf:
2790+
- $ref: '#/components/schemas/FullTrainingType'
2791+
- $ref: '#/components/schemas/LoRATrainingType'
2792+
description: Type of training used (full or LoRA)
2793+
training_method:
2794+
oneOf:
2795+
- $ref: '#/components/schemas/TrainingMethodSFT'
2796+
- $ref: '#/components/schemas/TrainingMethodDPO'
2797+
description: Method of training used
2798+
learning_rate:
2799+
type: number
2800+
format: float
2801+
description: Learning rate used for training
2802+
lr_scheduler:
2803+
$ref: '#/components/schemas/LRScheduler'
2804+
description: Learning rate scheduler configuration
2805+
warmup_ratio:
2806+
type: number
2807+
format: float
2808+
description: Ratio of warmup steps
2809+
max_grad_norm:
2810+
type: number
2811+
format: float
2812+
description: Maximum gradient norm for clipping
2813+
weight_decay:
2814+
type: number
2815+
format: float
2816+
description: Weight decay value used
2817+
wandb_project_name:
2818+
type: string
2819+
description: Weights & Biases project name
2820+
wandb_name:
2821+
type: string
2822+
description: Weights & Biases run name
2823+
from_checkpoint:
2824+
type: string
2825+
description: Checkpoint used to continue training
2826+
27102827
FinetuneJobStatus:
27112828
type: string
27122829
enum:
@@ -2759,15 +2876,15 @@ components:
27592876
- refund
27602877
- warning
27612878

2762-
FinetuneList:
2879+
FinetuneTruncatedList:
27632880
type: object
27642881
required:
27652882
- data
27662883
properties:
27672884
data:
27682885
type: array
27692886
items:
2770-
$ref: '#/components/schemas/FinetuneResponse'
2887+
$ref: '#/components/schemas/FinetuneResponseTruncated'
27712888
FinetuneListEvents:
27722889
type: object
27732890
required:

0 commit comments

Comments
 (0)