Fine Tunes - Create
创建一个作业,该作业根据给定的训练文件微调指定模型。 响应包括排队作业的详细信息,包括作业状态和超参数。 微调模型的名称将在响应完成后添加到响应中。
POST {endpoint}/openai/fine-tunes?api-version=2023-05-15
URI 参数
| 名称 | 在 | 必需 | 类型 | 说明 |
|---|---|---|---|---|
|
endpoint
|
path | True |
string (url) |
支持的认知服务终结点(协议和主机名,例如:https://aoairesource.openai.azure.com。将“aoairesource”替换为 Azure OpenAI 帐户名称。 |
|
api-version
|
query | True |
string |
请求的 API 版本。 |
请求头
| 名称 | 必需 | 类型 | 说明 |
|---|---|---|---|
| api-key | True |
string |
在此处提供认知服务 Azure OpenAI 帐户密钥。 |
请求正文
| 名称 | 必需 | 类型 | 说明 |
|---|---|---|---|
| model | True |
string minLength: 1 |
用于此微调的基本模型的标识符(model-id)。 |
| training_file | True |
string minLength: 1 |
用于训练此微调模型的文件标识(file-id)。 |
| batch_size |
integer (int32) |
要用于训练的批大小。 批大小是用于训练单个向前和向后传递的训练示例数。 一般情况下,我们发现较大的批大小往往更适合较大的数据集。 此属性的默认值和最大值特定于基本模型。 |
|
| classification_betas |
number[] (double) |
分类 beta 值。 如果提供此功能,我们将按指定的 beta 值计算 F-beta 分数。 F-beta 分数是 F-1 分数的通用化。 这仅用于二元分类。 测试版为 1(即 F-1 分数),精度和召回率相同。 更大的 beta 分数对召回率和精度的权重更大。 较小的 beta 分数对精度和召回率的权重更低。 |
|
| classification_n_classes |
integer (int32) |
分类任务中的类数。 多类分类需要此参数。 |
|
| classification_positive_class |
string |
二元分类中的正类。 执行二元分类时,需要此参数来生成精度、召回率和 F1 指标。 |
|
| compute_classification_metrics |
boolean |
一个值,该值指示是否计算分类指标。 如果设置,我们将在每个时期结束时使用验证集计算特定于分类的指标,例如准确性和 F-1 分数。 可以在结果文件中查看这些指标。 若要计算分类指标,必须提供validation_file。此外,必须为多类分类指定classification_n_classes,或为二元分类指定classification_positive_class。 |
|
| learning_rate_multiplier |
number (double) |
用于训练的学习速率乘数。 微调学习速率是用于预先训练的原始学习速率乘以此值。 较大的学习速率往往在较大的批大小下表现更好。 建议试验 0.02 到 0.2 范围内的值,以查看产生最佳结果的内容。 |
|
| n_epochs |
integer (int32) |
要为其训练模型的纪元数。 纪元是指通过训练数据集的一个完整周期。 |
|
| prompt_loss_weight |
number (double) |
用于在提示令牌上丢失的权重。 这控制模型尝试生成提示的数量(与总权重为 1.0 的完成相比),并且可以在完成时间较短时为训练添加稳定效果。 如果提示时间非常长(相对于完成),则降低此权重是有意义的,以避免过度优先学习提示。 |
|
| suffix |
string |
用于标识微调模型的后缀。 后缀最多可包含 40 个字符(a-z、A-Z、0-9 和 _),这些字符将添加到微调的模型名称中。 |
|
| validation_file |
string |
用于在训练期间评估微调模型的文件标识(file-id)。 |
响应
| 名称 | 类型 | 说明 |
|---|---|---|
| 201 Created |
已成功创建微调。 标头 Location: string |
|
| Other Status Codes |
发生错误。 |
安全性
api-key
在此处提供认知服务 Azure OpenAI 帐户密钥。
类型:
apiKey
在:
header
示例
| Creating a fine tune job for classification. |
| Creating a fine tune job. |
Creating a fine tune job for classification.
示例请求
POST https://aoairesource.openai.azure.com/openai/fine-tunes?api-version=2023-05-15
{
"compute_classification_metrics": true,
"classification_n_classes": 4,
"model": "curie",
"training_file": "file-181a1cbdcdcf4677ada87f63a0928099"
}
示例响应
location: https://aoairesource.openai.azure.com/openai/fine-tunes/ft-72a2792ef7d24ba7b82c7fe4a37e379f
{
"hyperparams": {
"compute_classification_metrics": true,
"classification_n_classes": 4,
"batch_size": 32,
"learning_rate_multiplier": 1,
"n_epochs": 2,
"prompt_loss_weight": 0.1
},
"model": "curie",
"training_files": [
{
"statistics": {
"tokens": 42,
"examples": 23
},
"bytes": 140,
"purpose": "fine-tune",
"filename": "puppy.jsonl",
"id": "file-181a1cbdcdcf4677ada87f63a0928099",
"status": "succeeded",
"created_at": 1646126127,
"updated_at": 1646127311,
"object": "file"
}
],
"id": "ft-72a2792ef7d24ba7b82c7fe4a37e379f",
"status": "notRunning",
"created_at": 1646126127,
"updated_at": 1646127311,
"object": "fine-tune"
}
Creating a fine tune job.
示例请求
POST https://aoairesource.openai.azure.com/openai/fine-tunes?api-version=2023-05-15
{
"model": "curie",
"training_file": "file-181a1cbdcdcf4677ada87f63a0928099"
}
示例响应
location: https://aoairesource.openai.azure.com/openai/fine-tunes/ft-72a2792ef7d24ba7b82c7fe4a37e379f
{
"hyperparams": {
"batch_size": 32,
"learning_rate_multiplier": 1,
"n_epochs": 2,
"prompt_loss_weight": 0.1
},
"model": "curie",
"training_files": [
{
"statistics": {
"tokens": 42,
"examples": 23
},
"bytes": 140,
"purpose": "fine-tune",
"filename": "puppy.jsonl",
"id": "file-181a1cbdcdcf4677ada87f63a0928099",
"status": "succeeded",
"created_at": 1646126127,
"updated_at": 1646127311,
"object": "file"
}
],
"id": "ft-72a2792ef7d24ba7b82c7fe4a37e379f",
"status": "notRunning",
"created_at": 1646126127,
"updated_at": 1646127311,
"object": "fine-tune"
}
定义
| 名称 | 说明 |
|---|---|
| Error |
错误 |
|
Error |
ErrorCode |
|
Error |
ErrorResponse |
| Event |
事件 |
| File |
文件 |
|
File |
FileStatistics |
|
Fine |
FineTune |
|
Fine |
FineTuneCreation |
|
Hyper |
HyperParameters |
|
Inner |
InnerError |
|
Inner |
InnerErrorCode |
|
Log |
LogLevel |
| Purpose |
目的 |
| State |
州 |
|
Type |
TypeDiscriminator |
Error
错误
| 名称 | 类型 | 说明 |
|---|---|---|
| code |
ErrorCode |
|
| details |
Error[] |
错误详细信息(如果可用)。 |
| innererror |
InnerError |
|
| message |
string minLength: 1 |
此错误的消息。 |
| target |
string |
发生错误的位置(如果可用)。 |
ErrorCode
ErrorCode
| 值 | 说明 |
|---|---|
| conflict |
请求的作与当前资源状态冲突。 |
| invalidPayload |
此作的请求数据无效。 |
| forbidden |
当前用户/API 密钥禁止此作。 |
| notFound |
找不到资源。 |
| unexpectedEntityState |
无法以当前资源的状态执行该作。 |
| itemDoesAlreadyExist |
该项已存在。 |
| serviceUnavailable |
该服务当前不可用。 |
| internalFailure |
内部错误。 请重试。 |
| quotaExceeded |
超出配额。 |
| jsonlValidationFailed |
jsonl 数据的验证失败。 |
| fileImportFailed |
导入文件失败。 |
ErrorResponse
ErrorResponse
| 名称 | 类型 | 说明 |
|---|---|---|
| error |
错误 |
Event
事件
| 名称 | 类型 | 说明 |
|---|---|---|
| created_at |
integer (unixtime) |
创建此事件的时间戳(在 unix 纪元中)。 |
| level |
LogLevel |
|
| message |
string minLength: 1 |
描述事件的消息。 这可以是状态的更改,例如排队、启动、失败或已完成或其他事件,例如上传的结果。 |
| object |
TypeDiscriminator |
File
文件
| 名称 | 类型 | 说明 |
|---|---|---|
| bytes |
integer (int64) |
可用时此文件的大小(可以为 null)。 不支持大于 2^53-1 的文件大小,以确保与 JavaScript 整数兼容。 |
| created_at |
integer (unixtime) |
创建此作业或项时的时间戳(在 unix 纪元中)。 |
| error |
错误 |
|
| filename |
string minLength: 1 |
文件的名称。 |
| id |
string |
此项的标识。 |
| object |
TypeDiscriminator |
|
| purpose |
目的 |
|
| statistics |
FileStatistics |
|
| status |
州 |
|
| updated_at |
integer (unixtime) |
上次修改此作业或项时的时间戳(在 unix 纪元中)。 |
FileStatistics
FileStatistics
| 名称 | 类型 | 说明 |
|---|---|---|
| examples |
integer (int32) |
文件内容验证完成后,“微调”文件中包含的训练示例的数量。 |
| tokens |
integer (int32) |
验证文件内容后,提示和完成文件类型为“微调”的文件使用的令牌数。 |
FineTune
FineTune
| 名称 | 类型 | 说明 |
|---|---|---|
| created_at |
integer (unixtime) |
创建此作业或项时的时间戳(在 unix 纪元中)。 |
| error |
错误 |
|
| events |
Event[] |
显示微调运行进度的事件,包括排队、运行和已完成。 |
| fine_tuned_model |
string |
生成的微调模型的标识符(model-id)。 仅填充此属性以成功完成微调运行。 使用此标识符创建用于推理的部署。 |
| hyperparams |
HyperParameters |
|
| id |
string |
此项的标识。 |
| model |
string minLength: 1 |
用于微调的基本模型的标识符(model-id)。 |
| object |
TypeDiscriminator |
|
| organisation_id |
string |
此微调作业的组织 ID。 Azure OpenAI 上未使用;仅 OpenAI 的兼容性。 |
| result_files |
File[] |
结果文件标识(文件 ID),其中包含 csv 格式的训练和评估指标。 该文件仅适用于成功完成的微调运行。 |
| status |
州 |
|
| suffix |
string |
用于标识微调模型的后缀。 |
| training_files |
File[] |
用于训练微调模型的文件标识(file-id)。 |
| updated_at |
integer (unixtime) |
上次修改此作业或项时的时间戳(在 unix 纪元中)。 |
| user_id |
string |
此微调作业的用户 ID。 Azure OpenAI 上未使用;仅 OpenAI 的兼容性。 |
| validation_files |
File[] |
用于在训练期间评估微调模型的文件标识(file-id)。 |
FineTuneCreation
FineTuneCreation
| 名称 | 类型 | 说明 |
|---|---|---|
| batch_size |
integer (int32) |
要用于训练的批大小。 批大小是用于训练单个向前和向后传递的训练示例数。 一般情况下,我们发现较大的批大小往往更适合较大的数据集。 此属性的默认值和最大值特定于基本模型。 |
| classification_betas |
number[] (double) |
分类 beta 值。 如果提供此功能,我们将按指定的 beta 值计算 F-beta 分数。 F-beta 分数是 F-1 分数的通用化。 这仅用于二元分类。 测试版为 1(即 F-1 分数),精度和召回率相同。 更大的 beta 分数对召回率和精度的权重更大。 较小的 beta 分数对精度和召回率的权重更低。 |
| classification_n_classes |
integer (int32) |
分类任务中的类数。 多类分类需要此参数。 |
| classification_positive_class |
string |
二元分类中的正类。 执行二元分类时,需要此参数来生成精度、召回率和 F1 指标。 |
| compute_classification_metrics |
boolean |
一个值,该值指示是否计算分类指标。 如果设置,我们将在每个时期结束时使用验证集计算特定于分类的指标,例如准确性和 F-1 分数。 可以在结果文件中查看这些指标。 若要计算分类指标,必须提供validation_file。此外,必须为多类分类指定classification_n_classes,或为二元分类指定classification_positive_class。 |
| learning_rate_multiplier |
number (double) |
用于训练的学习速率乘数。 微调学习速率是用于预先训练的原始学习速率乘以此值。 较大的学习速率往往在较大的批大小下表现更好。 建议试验 0.02 到 0.2 范围内的值,以查看产生最佳结果的内容。 |
| model |
string minLength: 1 |
用于此微调的基本模型的标识符(model-id)。 |
| n_epochs |
integer (int32) |
要为其训练模型的纪元数。 纪元是指通过训练数据集的一个完整周期。 |
| prompt_loss_weight |
number (double) |
用于在提示令牌上丢失的权重。 这控制模型尝试生成提示的数量(与总权重为 1.0 的完成相比),并且可以在完成时间较短时为训练添加稳定效果。 如果提示时间非常长(相对于完成),则降低此权重是有意义的,以避免过度优先学习提示。 |
| suffix |
string |
用于标识微调模型的后缀。 后缀最多可包含 40 个字符(a-z、A-Z、0-9 和 _),这些字符将添加到微调的模型名称中。 |
| training_file |
string minLength: 1 |
用于训练此微调模型的文件标识(file-id)。 |
| validation_file |
string |
用于在训练期间评估微调模型的文件标识(file-id)。 |
HyperParameters
HyperParameters
| 名称 | 类型 | 说明 |
|---|---|---|
| batch_size |
integer (int32) |
要用于训练的批大小。 批大小是用于训练单个向前和向后传递的训练示例数。 一般情况下,我们发现较大的批大小往往更适合较大的数据集。 此属性的默认值和最大值特定于基本模型。 |
| classification_betas |
number[] (double) |
分类 beta 值。 如果提供此功能,我们将按指定的 beta 值计算 F-beta 分数。 F-beta 分数是 F-1 分数的通用化。 这仅用于二元分类。 测试版为 1(即 F-1 分数),精度和召回率相同。 更大的 beta 分数对召回率和精度的权重更大。 较小的 beta 分数对精度和召回率的权重更低。 |
| classification_n_classes |
integer (int32) |
分类任务中的类数。 多类分类需要此参数。 |
| classification_positive_class |
string |
二元分类中的正类。 执行二元分类时,需要此参数来生成精度、召回率和 F1 指标。 |
| compute_classification_metrics |
boolean |
一个值,该值指示是否计算分类指标。 如果设置,我们将在每个时期结束时使用验证集计算特定于分类的指标,例如准确性和 F-1 分数。 可以在结果文件中查看这些指标。 若要计算分类指标,必须提供validation_file。此外,必须为多类分类指定classification_n_classes,或为二元分类指定classification_positive_class。 |
| learning_rate_multiplier |
number (double) |
用于训练的学习速率乘数。 微调学习速率是用于预先训练的原始学习速率乘以此值。 较大的学习速率往往在较大的批大小下表现更好。 建议试验 0.02 到 0.2 范围内的值,以查看产生最佳结果的内容。 |
| n_epochs |
integer (int32) |
要为其训练模型的纪元数。 纪元是指通过训练数据集的一个完整周期。 |
| prompt_loss_weight |
number (double) |
用于在提示令牌上丢失的权重。 这控制模型尝试生成提示的数量(与总权重为 1.0 的完成相比),并且可以在完成时间较短时为训练添加稳定效果。 如果提示时间非常长(相对于完成),则降低此权重是有意义的,以避免过度优先学习提示。 |
InnerError
InnerError
| 名称 | 类型 | 说明 |
|---|---|---|
| code |
InnerErrorCode |
|
| innererror |
InnerError |
InnerErrorCode
InnerErrorCode
| 值 | 说明 |
|---|---|
| invalidPayload |
此作的请求数据无效。 |
LogLevel
LogLevel
| 值 | 说明 |
|---|---|
| info |
此事件仅适用于信息。 |
| warning |
此事件表示缓解的问题。 |
| error |
此消息表示不可恢复的问题。 |
Purpose
目的
| 值 | 说明 |
|---|---|
| fine-tune |
此文件包含用于微调作业的训练数据。 |
| fine-tune-results |
此文件包含微调作业的结果。 |
State
州
| 值 | 说明 |
|---|---|
| notRunning |
该作已创建,并且不会排队等待将来处理。 |
| running |
作已开始处理。 |
| succeeded |
作已成功处理,可供使用。 |
| canceled |
作已取消且不完整。 |
| failed |
该作已完成处理并失败,不能进一步使用。 |
| deleted |
该实体已被删除,但仍可能由其他实体引用该删除。 |
TypeDiscriminator
TypeDiscriminator
| 值 | 说明 |
|---|---|
| list |
此对象表示其他对象的列表。 |
| fine-tune |
此对象表示微调作业。 |
| file |
此对象表示文件。 |
| fine-tune-event |
此对象表示微调作业的事件。 |
| model |
此对象表示模型(可以是基本模型或微调作业结果)。 |