Creates a fine-tuning job which begins the process of creating a new model from a given dataset. Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete. [Learn more about fine-tuning](/docs/guides/fine-tuning)
Body
Required
model
string Required The name of the model to fine-tune. You can select one of the supported models.
-
The ID of an uploaded file that contains training data.
See upload file for how to upload a file.
Your dataset must be formatted as a JSONL file. Additionally, you must upload your file with the purpose
fine-tune
.The contents of the file should differ depending on if the model uses the chat, completions format, or if the fine-tuning method uses the preference format.
See the fine-tuning guide for more details.
-
The hyperparameters used for the fine-tuning job. This value is now deprecated in favor of
method
, and should be passed in under themethod
parameter. -
A string of up to 64 characters that will be added to your fine-tuned model name.
For example, a
suffix
of "custom-model-name" would produce a model name likeft:gpt-4o-mini:openai:custom-model-name:7p4lURel
.Minimum length is
1
, maximum length is64
. -
The ID of an uploaded file that contains validation data.
If you provide this file, the data is used to generate validation metrics periodically during fine-tuning. These metrics can be viewed in the fine-tuning results file. The same data should not be present in both train and validation files.
Your dataset must be formatted as a JSONL file. You must upload your file with the purpose
fine-tune
.See the fine-tuning guide for more details.
-
A list of integrations to enable for your fine-tuning job.
-
The seed controls the reproducibility of the job. Passing in the same seed and job parameters should produce the same results, but may differ in rare cases. If a seed is not specified, one will be generated for you.
Minimum value is
0
, maximum value is2147483647
. -
The method used for fine-tuning.
-
Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard.
Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.
curl \
--request POST 'https://api.openai.com/v1/fine_tuning/jobs' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{"model":"gpt-4o-mini","training_file":"file-abc123","hyperparameters":{"batch_size":"auto","learning_rate_multiplier":"auto","n_epochs":"auto"},"suffix":"string","validation_file":"file-abc123","integrations":[{"type":"wandb","wandb":{"project":"my-wandb-project","name":"string","entity":"string","tags":["custom-tag"]}}],"seed":42,"method":{"type":"supervised","supervised":{"hyperparameters":{"batch_size":"auto","learning_rate_multiplier":"auto","n_epochs":"auto"}},"dpo":{"hyperparameters":{"beta":"auto","batch_size":"auto","learning_rate_multiplier":"auto","n_epochs":"auto"}}},"metadata":{"additionalProperty1":"string","additionalProperty2":"string"}}'
{
"model": "gpt-4o-mini",
"training_file": "file-abc123",
"hyperparameters": {
"batch_size": "auto",
"learning_rate_multiplier": "auto",
"n_epochs": "auto"
},
"suffix": "string",
"validation_file": "file-abc123",
"integrations": [
{
"type": "wandb",
"wandb": {
"project": "my-wandb-project",
"name": "string",
"entity": "string",
"tags": [
"custom-tag"
]
}
}
],
"seed": 42,
"method": {
"type": "supervised",
"supervised": {
"hyperparameters": {
"batch_size": "auto",
"learning_rate_multiplier": "auto",
"n_epochs": "auto"
}
},
"dpo": {
"hyperparameters": {
"beta": "auto",
"batch_size": "auto",
"learning_rate_multiplier": "auto",
"n_epochs": "auto"
}
}
},
"metadata": {
"additionalProperty1": "string",
"additionalProperty2": "string"
}
}
{
"id": "string",
"created_at": 42,
"error": {
"code": "string",
"message": "string",
"param": "string"
},
"fine_tuned_model": "string",
"finished_at": 42,
"hyperparameters": {
"batch_size": "auto",
"learning_rate_multiplier": "auto",
"n_epochs": "auto"
},
"model": "string",
"object": "fine_tuning.job",
"organization_id": "string",
"result_files": [
"file-abc123"
],
"status": "validating_files",
"trained_tokens": 42,
"training_file": "string",
"validation_file": "string",
"integrations": [
{
"type": "wandb",
"wandb": {
"project": "my-wandb-project",
"name": "string",
"entity": "string",
"tags": [
"custom-tag"
]
}
}
],
"seed": 42,
"estimated_finish": 42,
"method": {
"type": "supervised",
"supervised": {
"hyperparameters": {
"batch_size": "auto",
"learning_rate_multiplier": "auto",
"n_epochs": "auto"
}
},
"dpo": {
"hyperparameters": {
"beta": "auto",
"batch_size": "auto",
"learning_rate_multiplier": "auto",
"n_epochs": "auto"
}
}
},
"metadata": {
"additionalProperty1": "string",
"additionalProperty2": "string"
}
}