微调

管理微调作业以将模型量身定制到您的特定训练数据。

相关指南:微调模型

创建微调作业

POST https://api.openai.com/v1/fine_tuning/jobs

创建一个微调作业,开始从给定数据集创建新模型的过程。

响应包括排队作业的详细信息,包括作业状态和一旦完成就会显示的微调模型的名称。

了解更多关于微调的信息

请求体

model(必需)

string

要微调的模型的名称。您可以选择一个支持微调的模型

training_file(必需)

string

包含训练数据的上传文件的ID。

查看上传文件了解如何上传文件。

您的数据集必须格式化为JSONL文件。此外,您必须将文件上传目的设置为 fine-tune

有关详细信息,请查看微调指南

hyperparameters(可选)

object

用于微调作业的超参数。

suffix(可选)

string or null 默认为null

将添加到您微调模型名称的最多18个字符的字符串。

例如,suffix 为 "custom-model-name" 会生成类似 ft:gpt-3.5-turbo:openai:custom-model-name:7p4lURel 的模型名称。

validation_file(可选)

string or null

包含验证数据的上传文件的ID。

如果提供此文件,数据将用于在微调期间定期生成验证指标。这些指标可以在微调结果文件中查看。

训练和验证文件中不应存在相同的

数据。

您的数据集必须格式化为JSONL文件。您必须将文件上传目的设置为 fine-tune

有关详细信息,请查看微调指南

integrations(可选)

array or null

为您的微调作业启用的集成列表。

seed(可选)

integer or null

种子控制作业的可重现性。传入相同的种子和作业参数应产生相同的结果,但在罕见的情况下可能会有所不同。

如果未指定种子,将为您生成一个。

返回

返回一个fine_tuning.job 对象

示例请求

默认

curl https://api.openai.com/v1/fine_tuning/jobs \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "training_file": "file-BK7bzQj3FfZFXr7DbL6xJwfo",
    "model": "gpt-3.5-turbo"
  }'

响应

{
  "object": "fine_tuning.job",
  "id": "ftjob-abc123",
  "model": "gpt-3.5-turbo-0125",
  "created_at": 1614807352,
  "fine_tuned_model": null,
  "organization_id": "org-123",
  "result_files": [],
  "status": "queued",
  "validation_file": null,
  "training_file": "file-abc123"
}

示例请求(Epochs标签页)

curl https://api.openai.com/v1/fine_tuning/jobs \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "training_file": "file-abc123",
    "model": "gpt-3.5-turbo",
    "hyperparameters": {
      "n_epochs": 2
    }
  }'

响应

{
  "object": "fine_tuning.job",
  "id": "ftjob-abc123",
  "model": "gpt-3.5-turbo-0125",
  "created_at": 1614807352,
  "fine_tuned_model": null,
  "organization_id": "org-123",
  "result_files": [],
  "status": "queued",
  "validation_file": null,
  "training_file": "file-abc123",
  "hyperparameters": {
    "n_epochs": 2
  }
}

示例请求(验证文件标签页)

curl https://api.openai.com/v1/fine_tuning/jobs \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "training_file": "file-abc123",
    "validation_file": "file-abc123",
    "model": "gpt-3.5-turbo"
  }'

响应

{
  "object": "fine_tuning.job",
  "id": "ftjob-abc123",
  "model": "gpt-3.5-turbo-0125",
  "created_at": 1614807352,
  "fine_tuned_model": null,
  "organization_id": "org-123",
  "result_files": [],
  "status": "queued",
  "validation_file": "file-abc123",
  "training_file": "file-abc123"
}

示例请求(W&B集成标签页)

curl https://api.openai.com/v1/fine_tuning/jobs \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "training_file": "file-abc123",
    "validation_file": "file-abc123",
    "model": "gpt-3.5-turbo",
    "integrations": [
      {
        "type": "wandb",
        "wandb": {
          "project": "my-wandb-project",
          "name": "ft-run-display-name",
          "tags": [
            "first-experiment", "v2"
          ]
        }
      }
    ]
  }'

响应

{
  "object": "fine_tuning.job",
  "id": "ftjob-abc123",
  "model": "gpt-3.5-turbo-0125",
  "created_at": 1614807352,
  "fine_tuned_model": null,
  "organization_id": "org-123",
  "result_files": [],
  "status": "queued",
  "validation_file": "file-abc123",
  "training_file": "file-abc123",
  "integrations": [
    {
      "type": "wandb",
      "wandb": {
        "project": "my-wandb-project",
        "name": "ft-run-display-name",
        "tags": [
          "first-experiment", "v2"
        ]
      }
    }
  ]
}

列出微调作业

GET https://api.openai.com/v1/fine_tuning/jobs

列出您组织的微调作业。

查询参数

after

after

string

Optional

上一次分页请求中的最后一个作业的标识符。

limit

limit

integer

Optional
Defaults to 20

要检索的微调作业数量。

返回

一些分页的微调作业对象的列表。

示例请求

curl https://api.openai.com/v1/fine_tuning/jobs?limit=2 \
  -H "Authorization: Bearer $OPENAI_API_KEY"

响应

{
  "object": "list",
  "data": [
    {
      "object": "fine_tuning.job.event",
      "id": "ft-event-TjX0lMfOniCZX64t9PUQT5hn",
      "created_at": 1689813489,
      "level": "warn",
      "message": "Fine tuning process stopping due to job cancellation",
      "data": null,
      "type": "message"
    },
    { ... },
    { ... }
  ],
  "has_more": true
}

列举微调事件

get https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id}/events

获取 微调作业的状态更新。

路径参数

名称类型必须描述
fine_tuning_job_idstring要获取事件的微调 作业的 ID。

查询参数

名称类型必须默认值描述
afterstring用于分页的上一个事件的 ID。
limitinteger20要检索的事件数量。

返回值

Fine-tuning 事件对象的列表。

示例请求

curl https://api.openai.com/v1/fine_tuning/jobs/ftjob-abc123/events \
  -H "Authorization: Bearer $OPENAI_API_KEY"

响应

{
  "object": "list",
  "data": [
    {
      "object": "fine_tuning.job.event",
      "id": "ft-event-ddTJfwuMVpfLXseO0Am0Gqjm",
      "created_at": 1692407401,
      "level": "info",
      "message": "Fine tuning job successfully completed",
      "data": null,
      "type": "message"
    },
    {
      "object": "fine_tuning.job.event",
      "id": "ft-event-tyiGuB72evQncpH87xe505Sv",
      "created_at": 1692407400,
      "level": "info",
      "message": "New fine-tuned model created: ft:gpt-3.5-turbo:openai::7p4lURel",
      "data": null,
      "type": "message"
    }
  ],
  "has_more": true
}

列出微调的检查点

get https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints

列出某个微调任务的检查点。

路径参数

名称类型是否必须描述
fine_tuning_job_idstring要获取检查点的微调任务的 ID。

查询参数

名称类型是否必须描述
afterstring上一个分页请求中的最后一个检查点 ID 的标识符。
limitinteger要检索的检查点数量。默认为 10。

返回值

一个包含微调任务的一系列检查点对象的列表。每个对象都包含以下字段:

  • id: 字符串格式的检查点 ID。
  • object: 字符串格式的对象类型。对于检查点,始终为 fine_tuning.job.checkpoint
  • created_at: 整数格式的 UNIX 时间戳,表示检查点的创建时间。
  • fine_tuned_model_checkpoint: 字符串格式的微调模型检查点的 ID。
  • metrics: 一个包含以下字段的对象:
    • full_valid_loss: 浮点数格式的在整个验证集上计算的损失。
    • full_valid_mean_token_accuracy: 浮点数格式的在整个验证集上计算的平均 token 准确率。
  • fine_tuning_job_id: 字符串格式的微调任务的 ID。
  • step_number: 整数格式的表示检查点所在训练步骤的步骤号。

示例请求

使用 curl 列出微调任务 ftjob-abc123 的检查点:

curl https://api.openai.com/v1/fine_tuning/jobs/ftjob-abc123/checkpoints \
  -H "Authorization: Bearer $OPENAI_API_KEY"

响应

成功的响应将返回一个包含微调任务的一系列检查点对象的列表。例如:

{
  "object": "list",
  "data": [
    {
      "object": "fine_tuning.job.checkpoint",
      "id": "ftckpt_zc4Q7MP6XxulcVzj4MZdwsAB",
      "created_at": 1519129973,
      "fine_tuned_model_checkpoint": "ft:gpt-3.5-turbo-0125:my-org:custom-suffix:96olL566:ckpt-step-2000",
      "metrics": {
        "full_valid_loss": 0.134,
        "full_valid_mean_token_accuracy": 0.874
      },
      "fine_tuning_job_id": "ftjob-abc123",
      "step_number": 2000
    },
    {
      "object": "fine_tuning.job.checkpoint",
      "id": "ftckpt_enQCFmOTGj3syEpYVhBRLTSy",
      "created_at": 1519129833,
      "fine_tuned_model_checkpoint": "ft:gpt-3.5-turbo-0125:my-org:custom-suffix:7q8mpxmy:ckpt-step-1000",
      "metrics": {
        "full_valid_loss": 0.167,
        "full_valid_mean_token_accuracy": 0.781
      },
      "fine_tuning_job_id": "ftjob-abc123",
      "step_number": 1000
    },
  ],
  "first_id": "ftckpt_zc4Q7MP6XxulcVzj4MZdwsAB",
  "last_id": "ftckpt_enQCFmOTGj3syEpYVhBRLTSy",
  "has_more": true
}

检索微调任务

get https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id}

获取有关微调任务的信息。

了解有关微调的更多信息。

路径参数

名称类型必须描述
fine_tuning_job_idstring微调任务的 ID。

返回值

具有给定 ID 的微调对象

示例请求

使用 curl 检索 ID 为 ft-AF1WoRqd3aJAHsqc9NY7iL8F 的微调任务:

curl https://api.openai.com/v1/fine_tuning/jobs/ft-AF1WoRqd3aJAHsqc9NY7iL8F \
  -H "Authorization: Bearer $OPENAI_API_KEY"

响应

成功的响应将返回一个 JSON 对象,其中包含有关微调任务的信息:

{
  "object": "fine_tuning.job",
  "id": "ftjob-abc123",
  "model": "davinci-002",
  "created_at": 1692661014,
  "finished_at": 1692661190,
  "fine_tuned_model": "ft:davinci-002:my-org:custom_suffix:7q8mpxmy",
  "organization_id": "org-123",
  "result_files": [
      "file-abc123"
  ],
  "status": "succeeded",
  "validation_file": null,
  "training_file": "file-abc123",
  "hyperparameters": {
      "n_epochs": 4,
      "batch_size": 1,
      "learning_rate_multiplier": 1.0
  },
  "trained_tokens": 5768,
  "integrations": [],
  "seed": 0,
  "estimated_finish": 0
}

取消微调

POST https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id}/cancel

立即取消微调作业。

路径参数

名称类型必需描述
fine_tuning_job_idstring必需要取消的微调作业的ID。

返回

已取消的微调对象。

示例请求

curl -X POST https://api.openai.com/v1/fine_tuning/jobs/ftjob-abc123/cancel \
  -H "Authorization: Bearer $OPENAI_API_KEY"

响应

{
  "object": "fine_tuning.job",
  "id": "ftjob-abc123",
  "model": "gpt-3.5-turbo-0125",
  "created_at": 1689376978,
  "fine_tuned_model": null,
  "organization_id": "org-123",
  "result_files": [],
  "hyperparameters": {
    "n_epochs": "auto"
  },
  "status": "cancelled",
  "validation_file": "file-abc123",
  "training_file": "file-abc123"
}

微调作业对象

fine_tuning.job 对象表示通过 API 创建的微调作业。

属性类型描述
idstring对象的标识符,可在API端点中引用。
created_atinteger创建微调作业的Unix时间戳(以秒为单位)。
errorobject or null对于已经失败的微调作业,这将包含有关失败原因的更多信息。
fine_tuned_modelstring or null正在创建的微调模型的名称。如果微调作业仍在运行,则值为null。
finished_atinteger or null完成微调作业的Unix时间戳(以秒为单位)。如果微调作业仍在运行,则值为null。
hyperparametersobject用于微调作业的超参数。有关更多详细信息,请参阅微调指南
modelstring正在进行微调的基础模型。
objectstring对象类型,始终为“fine_tuning.job”。
organization_idstring拥有微调作业的组织。
result_filesarray微调作业的编译结果文件ID。您可以使用文件API检索结果。
statusstring微调作业的当前状态,可以是validating\_filesqueuedrunningsucceededfailedcancelled
trained_tokensinteger or null由此微调作业处理的总计费令牌数。如果微调作业仍在运行,则值为null。
training_filestring用于培训的文件ID。您可以使用文件API检索培训数据。
validation_filestring or null用于验证的文件ID。您可以使用文件API检索验证结果。
integrationsarray or null要为此微调作业启用的集成列表。
seedinteger用于微调作业的种子。
estimated_finishinteger or null估计完成微调作业的Unix时间戳(以秒为单位)。如果微调作业未运行,则值为null。

微调作业对象

{
  "object": "fine_tuning.job",
  "id": "ftjob-abc123",
  "model": "davinci-002",
  "created_at": 1692661014,
  "finished_at": 1692661190,
  "fine_tuned_model": "ft:davinci-002:my-org:custom_suffix:7q8mpxmy",
  "organization_id": "org-123",
  "result_files": [
    "file-abc123"
  ],
  "status": "succeeded",
  "validation_file": null,
  "training_file": "file-abc123",
  "hyperparameters": {
    "n_epochs": 4,
    "batch_size": 1,
    "learning_rate_multiplier": 1.0
  },
  "trained_tokens": 5768,
  "integrations": [],
  "seed": 0,
  "estimated_finish": 0
}

微调作业事件对象

微调作业事件对象

属性类型
idstring
created_atinteger
levelstring
messagestring
objectstring

微调作业事件对象

{
  "object": "fine_tuning.job.event",
  "id": "ftevent-abc123"
  "created_at": 1677610602,
  "level": "info",
  "message": "Created fine-tuning job"
}

微调作业检查点对象

fine_tuning.job.checkpoint 对象表示一个准备好使用的 fine-tuning 作业模型检查点。

参数类型描述
idstring检查点标识符,可以在 API 端点中引用。
created_atinteger创建检查点的 Unix 时间戳(以秒为单位)。
fine_tuned_model_checkpointstring创建的 fine-tuned 检查点模型的名称。
step_numberinteger创建检查点的步骤号。
metricsobject在 fine-tuning 作业期间步骤号的度量。
fine_tuning_job_idstring此检查点是从中创建的 fine-tuning 作业的名称。
objectstring对象类型,总是“fine_tuning.job.checkpoint”。
{
  "object": "fine_tuning.job.checkpoint",
  "id": "ftckpt_qtZ5Gyk4BLq1SfLFWp3RtO3P",
  "created_at": 1712211699,
  "fine_tuned_model_checkpoint": "ft:gpt-3.5-turbo-0125:my-org:custom_suffix:9ABel2dg:ckpt-step-88",
  "fine_tuning_job_id": "ftjob-fpbNQ3H1GrMehXRf8cO97xTN",
  "metrics": {
    "step": 88,
    "train_loss": 0.478,
    "train_mean_token_accuracy": 0.924,
    "valid_loss": 10.112,
    "valid_mean_token_accuracy": 0.145,
    "full_valid_loss": 0.567,
    "full_valid_mean_token_accuracy": 0.944,
  },
  "step_number": 88,
}

Was this page helpful?