管理微調作業(yè)以根據您的特定訓練數據定制模型。
POST https://api.openai.com/v1/fine-tunes
創(chuàng)建一個從給定數據集微調指定模型的作業(yè)。
響應包括排隊作業(yè)的詳細信息,包括作業(yè)狀態(tài)和完成后微調模型的名稱。
字段 | 類型 | 是否可選 | 說明 |
training_file | string | 必須 |
包含訓練數據的上傳文件的 ID。 您的數據集必須格式化為 JSONL 文件,其中每個訓練示例都是一個帶有鍵“提示”和“完成”的 JSON 對象。此外,您必須上傳帶有微調目的的文件。 |
validation_file | string | 可選 |
包含驗證數據的上傳文件的 ID。 如果您提供此文件,該數據將用于在微調期間定期生成驗證指標。這些指標可以在微調結果文件中查看。您的火車和驗證數據應該是互斥的。 您的數據集必須格式化為 JSONL 文件,其中每個驗證示例都是一個帶有鍵“prompt”和“completion”的 JSON 對象。此外,您必須上傳帶有微調目的的文件。 |
model | string | 可選 默認為 curie | 要微調的基本模型的名稱。您可以選擇“ada”、“babbage”、“curie”、“davinci”或 2022-04-21 之后創(chuàng)建的微調模型之一。 |
n_epochs | integer | 可選 默認為 4 | 訓練模型的時期數。一個紀元指的是訓練數據集的一個完整周期。 |
batch_size | integer | 可選 默認為 null |
用于訓練的批量大小。批量大小是用于訓練單個前向和后向傳遞的訓練示例數。 默認情況下,批量大小將動態(tài)配置為訓練集中示例數量的 0.2%,上限為 256 - 通常,我們發(fā)現(xiàn)較大的批量大小往往更適合較大的數據集。 |
learning_rate_multiplier | number | 可選 默認為 null |
用于訓練的學習率乘數。微調學習率是用于預訓練的原始學習率乘以該值。 默認情況下,學習率乘數是 0.05、0.1 或 0.2,具體取決于最終的 batch_size(較大的學習率往往在較大的批量大小下表現(xiàn)更好)。我們建議使用 0.02 到 0.2 范圍內的值進行試驗,以查看產生最佳結果的值。 |
prompt_loss_weight | number | 可選 默認為 0.01 |
用于提示令牌損失的權重。這控制了模型嘗試學習生成提示的程度(與權重始終為 1.0 的完成相比),并且可以在完成較短時為訓練增加穩(wěn)定效果。 如果提示非常長(相對于完成),則減少此權重以避免過度優(yōu)先學習提示可能是有意義的。 |
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 | python | node.js |
|
|
|
響應
{
"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 | python | node.js |
|
|
|
響應
{
"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}
獲取有關微調作業(yè)的信息。
字段 | 類型 | 是否可選 | 說明 |
fine_tune_id
|
string
|
必須 |
微調作業(yè)的ID
|
示例請求
curl | python | node.js |
|
|
|
響應
{
"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
立即取消微調作業(yè)。
字段
|
類型 | 是否可選 | 說明 |
fine_tune_id
|
string
|
必須 |
要取消的微調作業(yè)的 ID
|
示例請求
curl | python | node.js |
|
|
|
響應
{
"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
獲取微調作業(yè)的細粒度狀態(tài)更新。
字段 | 類型 | 是否可選 | 說明 |
fine_tune_id
|
string
|
必須 |
要為其獲取事件的微調作業(yè)的 ID。
|
字段 | 類型 | 是否可選 | 說明 |
stream
|
boolean
|
可選 默認為 false
|
是否為微調作業(yè)流式傳輸事件。如果設置為 true,事件將在可用時作為純數據服務器發(fā)送事件發(fā)送。當作業(yè)完成(成功、取消或失?。r,流將以 data: [DONE] 消息終止。 如果設置為 false,則只返回到目前為止生成的事件。 |
示例請求
curl | python | node.js |
|
|
|
響應
{
"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 | python | node.js |
|
|
|
響應
{
"id": "curie:ft-acmeco-2021-03-03-21-44-20",
"object": "model",
"deleted": true
}
更多建議: