创建微调
post https://api.openai.com/v1/fine-tunes
创建一个从给定数据集微调指定模型的作业。响应包括排队作业的详细信息,包括作业状态和完成后微调模型的名称。 了解更多微调
请求体
training_file string
必需的
包含训练数据的上传文件的 ID。
请参阅 上传文件 了解如何上传文件。
您的数据集必须格式化为 JSONL 文件,其中每个训练示例都是一个带有键“提示”和“完成”的 JSON 对象。 此外,您必须以“fine-tune”为目的上传您的文件。
有关详细信息,请参阅微调指南。
validation_file string
可选的
包含验证数据的上传文件的 ID。
如果您提供此文件,该数据将用于在微调期间定期生成验证指标。 这些指标可以在 微调结果文件 中查看。 您的火车和验证数据应该是互斥的。
您的数据集必须格式化为 JSONL 文件,其中每个验证示例都是一个带有键“prompt”和“completion”的 JSON 对象。 此外,您必须以“fine-tune”为目的上传您的文件。
有关详细信息,请参阅微调指南。
model string
可选的
默认值:curie
要微调的基本模型的名称。 您可以选择“ada”、“babbage”、“curie”、“davinci”或 2022-04-21 之后创建的微调模型之一。 要了解有关这些模型的更多信息,请参阅 Models 文档。
n_epochs integer
可选的
默认值:4
训练模型的时期数。 一个纪元指的是训练数据集的一个完整周期。
batch_size integer
可选的
默认值:null
用于训练的批量大小。 批量大小是用于训练单个前向和后向传递的训练示例数。
默认情况下,批量大小将动态配置为训练集中示例数量的 0.2%,上限为 256 - 通常,我们发现较大的批量大小往往更适合较大的数据集。
learning_rate_multiplier number
可选的
默认值:null
用于训练的学习率乘数。 微调学习率是用于预训练的原始学习率乘以该值。
默认情况下,学习率乘数是 0.05、0.1 或 0.2,具体取决于最终的“batch_size”(较大的学习率往往在较大的批量大小下表现更好)。 我们建议使用 0.02 到 0.2 范围内的值进行试验,以查看产生最佳结果的值。
prompt_loss_weight number
可选的
默认值:0.01
用于提示令牌损失的权重。 这控制了模型尝试学习生成提示的程度(与权重始终为 1.0 的完成相比),并且可以在完成较短时为训练增加稳定效果。
如果提示非常长(相对于完成),则减少此权重以避免过度优先学习提示可能是有意义的。
compute_classification_metrics boolean
可选的
默认值:false
如果设置,我们将在每个时期结束时使用验证集计算特定于分类的指标,例如准确性和 F-1 分数。 这些指标可以在 结果文件 中查看。
为了计算分类指标,您必须提供一个validation_file
。 此外,您必须为多类分类指定classification_n_classes
或为二元分类指定classification_positive_class
。
classification_n_classes integer
可选的
默认值:null
分类任务中的类数。 多类分类需要此参数。
classification_positive_class string
可选的
默认值:null
二元分类中的正类。
在进行二元分类时,需要此参数来生成精度、召回率和 F1 指标。
classification_betas array
可选的
默认值:null
如果提供,我们将计算指定 beta 值的 F-beta 分数。 F-beta 分数是 F-1 分数的推广。 这仅用于二进制分类。
当 beta 为 1(即 F-1 分数)时,精确率和召回率被赋予相同的权重。 Beta 分数越大,召回率越高,精确率越低。 Beta 分数越小,精确度越重要,召回率越低。
suffix string
可选的
默认值:null
最多 40 个字符的字符串,将添加到您的微调模型名称中。
例如,custom-model-name
的“后缀”会产生类似ada:ft-your-org:custom-model-name-2022-02-15-04-21-04
的模型名称。
请求示例
curl https://api.openai.com/v1/fine-tunes \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"training_file": "file-XGinujblHPwGLSztz8cPS8XY"
}'
响应示例
{
"id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
"object": "fine-tune",
"model": "curie",
"created_at": 1614807352,
"events": [
{
"object": "fine-tune-event",
"created_at": 1614807352,
"level": "info",
"message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0."
}
],
"fine_tuned_model": null,
"hyperparams": {
"batch_size": 4,
"learning_rate_multiplier": 0.1,
"n_epochs": 4,
"prompt_loss_weight": 0.1
},
"organization_id": "org-...",
"result_files": [],
"status": "pending",
"validation_files": [],
"training_files": [
{
"id": "file-XGinujblHPwGLSztz8cPS8XY",
"object": "file",
"bytes": 1547276,
"created_at": 1610062281,
"filename": "my-data-train.jsonl",
"purpose": "fine-tune-train"
}
],
"updated_at": 1614807352
}
列出微调
get https://api.openai.com/v1/fine-tunes
列出您的组织的微调工作
请求示例
curl https://api.openai.com/v1/fine-tunes \
-H "Authorization: Bearer $OPENAI_API_KEY"
参数示例
{
"object": "list",
"data": [
{
"id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
"object": "fine-tune",
"model": "curie",
"created_at": 1614807352,
"fine_tuned_model": null,
"hyperparams": { ... },
"organization_id": "org-...",
"result_files": [],
"status": "pending",
"validation_files": [],
"training_files": [ { ... } ],
"updated_at": 1614807352,
},
{ ... },
{ ... }
]
}
响应示例
检索微调
get https://api.openai.com/v1/fine-tunes/{fine\_tune\_id}
获取有关微调作业的信息。 了解更多微调
路径参数
fine_tune_id string
必需的
微调作业的ID
请求示例
curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F \
-H "Authorization: Bearer $OPENAI_API_KEY"
响应示例
{
"id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
"object": "fine-tune",
"model": "curie",
"created_at": 1614807352,
"events": [
{
"object": "fine-tune-event",
"created_at": 1614807352,
"level": "info",
"message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0."
},
{
"object": "fine-tune-event",
"created_at": 1614807356,
"level": "info",
"message": "Job started."
},
{
"object": "fine-tune-event",
"created_at": 1614807861,
"level": "info",
"message": "Uploaded snapshot: curie:ft-acmeco-2021-03-03-21-44-20."
},
{
"object": "fine-tune-event",
"created_at": 1614807864,
"level": "info",
"message": "Uploaded result files: file-QQm6ZpqdNwAaVC3aSz5sWwLT."
},
{
"object": "fine-tune-event",
"created_at": 1614807864,
"level": "info",
"message": "Job succeeded."
}
],
"fine_tuned_model": "curie:ft-acmeco-2021-03-03-21-44-20",
"hyperparams": {
"batch_size": 4,
"learning_rate_multiplier": 0.1,
"n_epochs": 4,
"prompt_loss_weight": 0.1
},
"organization_id": "org-...",
"result_files": [
{
"id": "file-QQm6ZpqdNwAaVC3aSz5sWwLT",
"object": "file",
"bytes": 81509,
"created_at": 1614807863,
"filename": "compiled_results.csv",
"purpose": "fine-tune-results"
}
],
"status": "succeeded",
"validation_files": [],
"training_files": [
{
"id": "file-XGinujblHPwGLSztz8cPS8XY",
"object": "file",
"bytes": 1547276,
"created_at": 1610062281,
"filename": "my-data-train.jsonl",
"purpose": "fine-tune-train"
}
],
"updated_at": 1614807865
}
取消微调
post https://api.openai.com/v1/fine-tunes/{fine\_tune\_id}/cancel
立即取消微调作业。
路径参数
fine_tune_id string
必需的
要取消的微调作业的 ID
请求示例
curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F/cancel \
-H "Authorization: Bearer $OPENAI_API_KEY"
响应示例
{
"id": "ft-xhrpBbvVUzYGo8oUO1FY4nI7",
"object": "fine-tune",
"model": "curie",
"created_at": 1614807770,
"events": [ { ... } ],
"fine_tuned_model": null,
"hyperparams": { ... },
"organization_id": "org-...",
"result_files": [],
"status": "cancelled",
"validation_files": [],
"training_files": [
{
"id": "file-XGinujblHPwGLSztz8cPS8XY",
"object": "file",
"bytes": 1547276,
"created_at": 1610062281,
"filename": "my-data-train.jsonl",
"purpose": "fine-tune-train"
}
],
"updated_at": 1614807789,
}
列出微调事件
get https://api.openai.com/v1/fine-tunes/{fine\_tune\_id}/events
获取微调作业的细粒度状态更新。
路径参数
fine_tune_id string
必需的
要为其获取事件的微调作业的 ID。
请求参数
stream boolean
可选的
默认值:false
是否为微调作业流式传输事件。 如果设置为 true,事件将作为纯数据发送 服务器发送事件 当它们可用时。 当作业完成(成功、取消或失败)时,流将以“数据:完成”消息终止。
如果设置为 false,则只返回到目前为止生成的事件。
请求示例
curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F/events \
-H "Authorization: Bearer $OPENAI_API_KEY"
响应示例
{
"object": "list",
"data": [
{
"object": "fine-tune-event",
"created_at": 1614807352,
"level": "info",
"message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0."
},
{
"object": "fine-tune-event",
"created_at": 1614807356,
"level": "info",
"message": "Job started."
},
{
"object": "fine-tune-event",
"created_at": 1614807861,
"level": "info",
"message": "Uploaded snapshot: curie:ft-acmeco-2021-03-03-21-44-20."
},
{
"object": "fine-tune-event",
"created_at": 1614807864,
"level": "info",
"message": "Uploaded result files: file-QQm6ZpqdNwAaVC3aSz5sWwLT."
},
{
"object": "fine-tune-event",
"created_at": 1614807864,
"level": "info",
"message": "Job succeeded."
}
]
}
删除微调模型
delete https://api.openai.com/v1/models/{model}
删除微调模型。 您必须在您的组织中拥有所有者角色。
路径参数
model string
必需的
要删除的模型
请求示例
curl https://api.openai.com/v1/models/curie:ft-acmeco-2021-03-03-21-44-20 \
-X DELETE \
-H "Authorization: Bearer $OPENAI_API_KEY"
响应示例
{
"id": "curie:ft-acmeco-2021-03-03-21-44-20",
"object": "model",
"deleted": true
}
.