RFT 如何计费
强化微调 (RFT) 允许你使用强化学习优化 OpenAI 的推理模型性能。与我们的监督或偏好微调服务(按训练数据集中的 token 数计费)不同,RFT 根据你的训练运行执行核心机器学习任务所花费的时间计费。
本指南解释了哪些内容属于可计费的训练时间、我们如何处理暂停和取消,以及配置选择对成本的影响。
定价
计算:核心训练循环中每小时的实际时间费用为 100 美元,适用于 OpenAI
o4-mini-2025-04-16。费用按秒收取,并在发票上四舍五入到小数点后两位(例如:2.55 小时)。模型评分器的使用:如果你在训练期间使用 OpenAI 模型对输出进行“评分”,训练完成后,这些评分调用所消耗的 token 将按我们的标准 API 费率单独计费。
我们只对实际更新模型的训练任务收费(我们称之为“捕获的正向进展”)。
我们的收费标准
我们按训练工作节点积极训练模型时所花费的时间计费,具体如下:
在微调过程中从你的模型生成样本(称为“推演”)
使用你在任务中定义的一个或多个评分器评估这些输出(了解更多关于评分器的信息)
根据评分(反向传播)计算和应用权重更新。
运行你已配置的任何验证(评估)步骤。
大多数评分器均可“免费”运行,这意味着我们不会对其在核心训练循环之外的使用时间额外收费。模型评分器则属于例外情况,我们还会统计这些评分器在上述活动中消耗的 token。这些 token 将作为单独的项目显示在你的发票中。模型评分器消耗的 token 按正常推理费率计费(OpenAI 定价)。
我们不对以下项目收费
我们不对以下项目所花费的时间收费:
在训练开始前验证或检查你的数据集。
对你的数据集进行安全检查。
排队等待计算资源。
下载模型权重或数据集。
将你的数据集准备(转换)为我们的训练格式。
对你的微调模型进行培训后安全评估。
如果由于我们的错误导致训练任务丢失(例如,如果某个工作节点崩溃且必须返回先前的检查点),则不会向你收取计算时间或评估器 token 损耗的费用。更多详情,请参阅下一小节。
捕获的正向进展和计费事件
训练包含对模型的多个小更新。我们会跟踪记录已成功完成的更新。费用基于计算时间和与这些成功更新相关的评分器 token 收取。
当发生以下任一“计费事件”时,我们会收取费用:
训练已成功完成。
暂停训练。
取消训练。
训练失败。
每笔费用均涵盖自上次收费以来完成的增量任务。例如:
如果你暂停运行,我们会保存检查点,并根据自上次收费以来使用的计算时间和评估器 token 向你收费。
恢复训练时,训练将从检查点继续运行。下一笔费用(完成、再次暂停、取消或失败时)仅涵盖恢复后完成的额外任务。
如果取消运行,我们会向你收取在取消前已完成任务的费用。
如果训练失败且自上次收费以来的任务丢失,则不会向你收取丢失部分的费用。
这种“捕获的正向进展”方案可确保你仅为保留在模型中的任务或有意放弃的任务付费。
查看任务进度
RFT 任务设有一个名为“usage_metrics”的字段,该字段记录了此项任务截至当前步骤的总使用情况,包括训练所花费的时间,以及特定任务中所有模型评分器使用的全部 token。该字段可以通过 API (GET /v1/fine_tuning/jobs/{job_id}) 或微调控制面板进行检查。
影响训练时间的因素
因为计费采用基于时间的方案,你的配置选择会直接影响成本。关键因素包括:
问题难度:如果你的数据集包含较难处理的问题,模型可能会耗费更多时间来推理每个问题,从而增加生成每个样本所需的时间。
计算强度:
compute_multiplier超参数可控制每个训练步骤的计算量。数值越大,模型对每个数据点的推理就越繁琐,导致每个步骤的运行速度越发迟缓。验证设置:
大型验证集会增加评估所需的时间。
增加
eval_samples(每个验证示例中评估的模型输出数量)会增加验证时间。更频繁地运行验证(降低
eval_interval)会增加验证所花费的时间比例。
评分器性能:
规模较大或功能更强的模型评分器比小型评分器返回评分的时间更长。例如,使用推理模型进行评分可能比使用非推理模型花费的时间长 10 倍。
复杂的 Python 评分函数比简单函数运行时间更长。
这些设置允许你在成本、速度和模型质量间进行权衡。例如,频繁验证可以更早识别问题,但会增加成本。使用更先进的模型进行评分可以显著提高评分准确性,但会减慢每个评分步骤的速度,并增加任务成本。
管理成本
控制支出:
从较短的运行开始,了解配置对时间的影响。
使用合理数量的验证示例和
eval_samples。避免进行过于频繁的验证。选择符合质量要求的最小评分器模型。
保持自定义 Python 评分器的工作效率。
调整
compute_multiplier以平衡收敛速度和成本。通过面板或 API 监控运行情况。你可以随时暂停或取消。
示例
成功的训练运行
| 训练时间 | 计费时间 | 状态 | 描述 |
| 00 : 00 | 00 : 00 | – | 用户通过 API 创建 RFT 任务 |
| 00 : 10 | 00 : 00 | VALIDATING_FILES | 花费 10 分钟验证数据集 |
| 00 : 30 | 00 : 00 | VALIDATING_FILES | 花费 20 分钟运行数据集安全检查 |
| 01 : 00 | 00 : 00 | 排队中 | 等待 30 分钟以连接空闲的工作节点 |
| 01 : 30 | 00 : 00 | 运行中 | 花费 30 分钟设置训练(下载权重、预处理等) |
| 05 : 30 | 04 : 00 | 运行中 | 花费 4 小时完成训练 |
| 06 : 00 | 04 : 00 | 运行中 | 花费 30 分钟对最终模型运行安全评估 |
| 06 : 00 | 04 : 00 | 成功 | 训练完成 |
在这种情况下,实际花费的总时间为 6 小时,但只有 4 小时为可计费时间。费用为 4 小时 × 100 美元/小时 = 400 美元。
失败的任务示例
在此示例中,运行训练花费 2 小时,写入检查点后再次训练 1 小时,但最终失败。只有在检查点前的 2 小时训练为可计费时间。
| 训练时间 | 计费时间 | 状态 | 描述 |
| 00 : 00 | 00 : 00 | – | 用户通过 API 创建 RFT 任务 |
| 00 : 10 | 00 : 00 | VALIDATING_FILES | 花费 10 分钟验证数据集 |
| 00 : 30 | 00 : 00 | VALIDATING_FILES | 花费 20 分钟运行数据集安全检查 |
| 01 : 00 | 00 : 00 | 排队中 | 等待 30 分钟以连接空闲的工作节点 |
| 01 : 30 | 00 : 00 | 运行中 | 花费 30 分钟设置训练(下载权重、预处理等) |
| 03 : 30 | 02 : 00 | 运行中 | 花费 2 小时完成训练 |
| 03 : 30 | 02 : 00 | 运行中 | 在步骤 5 创建检查点 |
| 04 : 30 | 02 : 00 | 运行中 | 由于步骤 8 出现内部错误,训练失败(1 小时后) |
| 04 : 30 | 02 : 00 | 运行中 | 花费 30 分钟评估和验证检查点 |
| 04 : 30 | 02 : 00 | 成功 | 任务完成(包含最新检查点) |
尽管总共花费 3 小时进行训练,但只有可用检查点中花费的 2 小时被“捕获”并计费。由于故障导致的训练时间损失不在你的责任范围内。费用为 2 小时 × 100 美元/小时 = 200 美元。
常见问题解答
何时收费?
当你的运行完成、暂停、取消或失败时,我们会向你收费。每份账单均涵盖自上一份账单以来完成的任务。
如果运行失败,我需要付费吗?
如果由于我们的错误导致运行失败且任何最近的训练任务丢失,则不会向你收取丢失部分的费用。如果取消运行,我们会向你收取在取消前已完成任务的费用。
评分器模型的 token 如何计费?
我们会计算你配置的任何模型评分器所使用的 token。训练结束后,我们会按照每个 token 的标准费率对这些 token 进行计费。
我可以暂停并继续运行吗?
是的。当你暂停时,我们会保存检查点,并对当前已完成的任务收费。当你恢复时,你只需为恢复后完成的额外任务付费。
如果你对强化微调的计费情况有其他问题,请联系我们的支持团队。
