# OpenAI/微调(Fine-tuning)

# POST 创建微调作业

POST /v1/fine_tuning/jobs

创建一个作业,根据给定的数据集微调指定的模型。

响应包括排队作业的详细信息,包括作业状态和完成后微调模型的名称。

了解有关微调的更多信息 (opens new window)

Body 请求参数

{
  "training_file": "file-BK7bzQj3FfZFXr7DbL6xJwfo",
  "model": "gpt-3.5-turbo"
}

# 请求参数

名称 位置 类型 必选 说明
body body object none
» training_file body string 包含训练数据的上传文件的 ID。 有关如何上传文件的信息,请参阅上传文件。 (opens new window) 您的数据集必须格式化为 JSONL 文件。此外,您必须上传带有目的的文件fine-tune。 有关更多详细信息,请参阅微调指南。 (opens new window)
» model body string 要微调的模型的名称。您可以选择支持的模型之一。
» hyperparameters body object 用于微调工作的超参数。
»» batch_size body string 每批中的示例数。批量大小越大意味着模型参数的更新频率越低,但方差越小。
»» learning_rate_multiplier body string 学习率的比例因子。较小的学习率可能有助于避免过度拟合。
»» n_epochs body string 训练模型的纪元数。一个纪元是指训练数据集的一个完整周期。
» suffix body string 最多 18 个字符的字符串,将添加到您的微调模型名称中。 例如,suffix“custom-model-name”的 a 将生成类似 的模型名称ft:gpt-3.5-turbo:openai:custom-model-name:7p4lURel
» validation_file body string 如果您提供此文件,则数据将用于在微调期间定期生成验证指标。这些指标可以在微调结果文件中查看。相同的数据不应同时出现在训练文件和验证文件中。 您的数据集必须格式化为 JSONL 文件。您必须以特定目的上传文件fine-tune。 有关更多详细信息,请参阅微调指南。 (opens new window)

返回示例

成功

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

# 返回结果

状态码 状态码含义 说明 数据模型
200 OK (opens new window) 成功 Inline

# 返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» object string true none 对象类型,总是为"fine_tuning.job"
» id string true none 对象标识符,可以在API端点中引用
» model string true none 被微调的基础模型
» created_at integer true none 创建微调作业的Unix时间戳(秒)
» fine_tuned_model null true none 正在创建的微调模型的名称。如果微调作业仍在运行,则值为null
» organization_id string true none 拥有微调作业的组织
» result_files [string] true none 微调作业的编译结果文件ID。可以使用文件API检索结果
» status string true none 微调作业的当前状态,可以是validating_files、queued、running、succeeded、failed或cancelled
» validation_file null true none 用于验证的文件ID。可以使用文件API检索验证结果
» training_file string true none 用于训练的文件ID。可以使用文件API检索训练数据

# GET 列出微调作业

GET /v1/fine_tuning/jobs

列出您组织的微调工作

# 请求参数

名称 位置 类型 必选 说明
after query integer 上一个分页请求中最后一个作业的标识符。
limit query integer 要检索的微调作业的数量。

# 详细说明

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

limit: 要检索的微调作业的数量。

返回示例

成功

{
  "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"
    },
    {
      "...": null
    },
    {
      "...": null
    }
  ],
  "has_more": true
}

# 返回结果

状态码 状态码含义 说明 数据模型
200 OK (opens new window) 成功 Inline

# 返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» object string true none 对象类型,总是为"fine_tuning.job"
» data [object] true none none
»» object string false none none
»» id string false none none
»» created_at integer false none none
»» level string false none none
»» message string false none none
»» data null false none none
»» type string false none none
» has_more boolean true none none

# GET 检索微调作业

GET /v1/fine_tuning/jobs/{fine_tuning_job_id}

获取有关微调工作的信息。

了解有关微调的更多信息 (opens new window)

# 请求参数

名称 位置 类型 必选 说明
fine_tuning_job_id path string 微调作业的 ID。
Authorization header string none

# 详细说明

fine_tuning_job_id: 微调作业的 ID。

返回示例

成功

{
  "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
  },
  "trained_tokens": 5768
}

# 返回结果

状态码 状态码含义 说明 数据模型
200 OK (opens new window) 成功 Inline

# 返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» object string true none 对象类型,总是为"fine_tuning.job"
» id string true none 对象标识符,可以在API端点中引用
» model string true none 被微调的基础模型
» created_at integer true none 创建微调作业的Unix时间戳(秒)
» finished_at integer true none 微调作业完成的Unix时间戳(秒)。如果微调作业仍在运行,则值为null
» fine_tuned_model string true none 正在创建的微调模型的名称。如果微调作业仍在运行,则值为null
» organization_id string true none 拥有微调作业的组织
» result_files [string] true none 微调作业的编译结果文件ID。可以使用文件API检索结果
» status string true none 微调作业的当前状态,可以是validating_files、queued、running、succeeded、failed或cancelled
» validation_file null true none 用于验证的文件ID。可以使用文件API检索验证结果
» training_file string true none 用于训练的文件ID。可以使用文件API检索训练数据
» hyperparameters object true none 微调作业使用的超参数。更多详细信息请参阅微调指南
»» n_epochs integer true none none
» trained_tokens integer true none 此微调作业处理的计费标记总数。如果微调作业仍在运行,则值为null

# POST 取消微调

POST /v1/fine_tuning/jobs/{fine_tuning_job_id}/cancel

立即取消微调工作。

# 请求参数

名称 位置 类型 必选 说明
fine_tuning_job_id path string 要取消的微调作业的 ID。

# 详细说明

fine_tuning_job_id: 要取消的微调作业的 ID。

返回示例

成功

{
  "object": "fine_tuning.job",
  "id": "ftjob-abc123",
  "model": "gpt-3.5-turbo-0613",
  "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"
}

# 返回结果

状态码 状态码含义 说明 数据模型
200 OK (opens new window) 成功 Inline

# 返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» object string true none 对象类型,总是为"fine_tuning.job"
» id string true none 对象标识符,可以在API端点中引用
» model string true none 被微调的基础模型
» created_at integer true none 创建微调作业的Unix时间戳(秒)
» fine_tuned_model null true none 正在创建的微调模型的名称。如果微调作业仍在运行,则值为null
» organization_id string true none 拥有微调作业的组织
» result_files [string] true none 微调作业的编译结果文件ID。可以使用文件API检索结果
» hyperparameters object true none 微调作业使用的超参数。更多详细信息请参阅微调指南
»» n_epochs string true none none
» status string true none 微调作业的当前状态,可以是validating_files、queued、running、succeeded、failed或cancelled
» validation_file string true none 用于验证的文件ID。可以使用文件API检索验证结果
» training_file string true none 用于训练的文件ID。可以使用文件API检索训练数据

# GET 列出微调事件

GET /v1/fine_tuning/jobs/{fine_tuning_job_id}/events

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

# 请求参数

名称 位置 类型 必选 说明
fine_tuning_job_id path string 要为其获取事件的微调作业的 ID。
after query string 上一个分页请求中最后一个事件的标识符。
limit query integer 要检索的事件数。

# 详细说明

fine_tuning_job_id: 要为其获取事件的微调作业的 ID。

after: 上一个分页请求中最后一个事件的标识符。

limit: 要检索的事件数。

返回示例

成功

{
  "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
}

# 返回结果

状态码 状态码含义 说明 数据模型
200 OK (opens new window) 成功 Inline

# 返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» object string true none 对象类型,总是为"fine_tuning.job"
» data [object] true none none
»» object string true none none
»» id string true none none
»» created_at integer true none none
»» level string true none none
»» message string true none none
»» data null true none none
»» type string true none none
» has_more boolean true none none