你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

计划管理 Azure OpenAI 服务的成本

本文介绍如何规划和管理 Azure OpenAI 服务的成本。 在部署服务之前,请使用 Azure 定价计算器估算 Azure OpenAI 的成本。 之后在部署 Azure 资源时,查看预估成本。 在开始使用 Azure OpenAI 资源之后,请使用“成本管理”功能来设置预算和监视成本。

你还可以查看预测成本并确定支出趋势,以确定你可能想要对其采取措施的区域。Azure OpenAI 服务的成本仅是 Azure 帐单中每月成本的一部分。 尽管本文介绍了如何为 Azure OpenAI 规划和管理成本,但你需要为 Azure 订阅中使用的所有 Azure 服务和资源(包括第三方服务)付费。

先决条件

成本管理中的成本分析支持大多数 Azure 帐户类型,但不支持所有帐户类型。 若要查看支持的帐户类型的完整列表,请参阅了解成本管理数据。 若要查看成本数据,你至少需要对 Azure 帐户具有读取访问权限。 若要了解如何分配对 Azure 成本管理数据的访问权限,请参阅分配对数据的访问权限

使用 Azure OpenAI 之前请估算成本

使用 Azure 定价计算器估算使用 Azure OpenAI 的成本。

了解 Azure OpenAI 完整计费模式

Azure OpenAI 服务在 Azure 基础结构上运行,部署新资源时,该基础结构会随之产生成本。 可能会有其他的基础结构成本产生。 以下部分介绍了 Azure OpenAI 服务的收费方式。

基础系列和 Codex 系列模型

Azure OpenAI 基础系列和 Codex 系列模型每 1,000 个标记进行收费。 成本因所选模型系列而异:Ada、Babbage、Curie、Davinci 或 Code-Cushman。

Azure OpenAI 模型通过将文本分解为令牌来理解和处理文本。 作为参考,对于典型的英文文本,每个标记大约是四个字符。

令牌成本是针对输入和输出计算的。 例如,假设你有 1,000 个令牌的 JavaScript 代码示例,且要求 Azure OpenAI 模型将代码转换为 Python。 首先你要为发送的初始输入请求的 1,000 个令牌支付费用,然后还要针对接收的响应支付输出的 1,000 个令牌的费用,总共涉及的是 2,000 个令牌。

实际上,在完成这种类型的调用时,令牌输入/输出不会完全为 1:1。 在不同的编程语言间进行转换时,输出可能会变长或变短,具体取决于许多因素。 其中一个因素是分配给 max_tokens 参数的值。

基本系列和 Codex 系列微调模型

Azure OpenAI 微调模型根据三个因素收费:

  • 训练小时数
  • 托管小时数
  • 每 1,000 个标记的推理

了解托管小时数成本非常重要,因为在部署了微调模型后,无论你是否主动使用它,每小时都会持续产生成本。 密切监视微调模型成本。

重要

在你部署自定义模型之后,如果部署处于非活动状态的时间超过十五 (15) 天,则会删除部署。 如果模型是在超过十五 (15) 天前部署的且在连续 15 天内无补全或聊天补全调用,则自定义模型的部署处于非活动状态。

删除非活动状态的部署时,不会删除或影响基础自定义模型,并且可以随时重新部署自定义模型。

部署的每个自定义(微调)模型都会产生每小时的托管成本,无论是否对模型进行补全或聊天补全调用都是如此。 。

Azure OpenAI 服务可能产生的其他成本

启用将数据发送到 Azure Monitor 日志和警报等功能会导致这些服务产生额外费用。 这些成本在其他服务下和订阅级别可见,但如果范围仅限于 Azure OpenAI 资源,则不可见。

对 Azure OpenAI 服务使用 Azure 预付款

可以使用 Azure 预付款额度支付 Azure OpenAI 服务费用。 但是,不能使用 Azure 预付款额度来支付第三方产品和服务的费用(包括 Azure 市场中的那些产品和服务)。

Azure OpenAI 服务中的 HTTP 错误响应代码和账单状态

如果服务执行处理,即使状态代码不成功(不是 200),也可能需要支付费用。 例如,由于内容筛选器或输入限制导致的 400 错误,或由于超时导致的 408 错误。

如果服务不进行处理,则不需要支付费用。 例如,由于身份验证导致的 401 错误或由于超过速率限制导致的 429 错误。

监视成本

将 Azure 资源用于 Azure OpenAI 时,会产生成本。 Azure 资源使用单位成本因时间间隔(如秒、分钟、小时和天)或单位使用量(如字节、MB 等)而异。 Azure OpenAI 一开始使用就会产生成本,你可以在成本分析中查看成本。

使用成本分析时,可以在关系图和表中查看不同时间间隔的 Azure OpenAI 成本。 有些示例是按天、当前、上个月和年划分的。 还可以对比预算和预测的成本来查看成本。 随着时间的推移切换到较长的视图,可帮助你确定支出趋势。 你可以看到哪里可能发生了超支。 如果已创建预算,还可以轻松查看超支的地方。

在成本分析中查看 Azure OpenAI 成本:

  1. 登录到 Azure 门户。
  2. 选择一个 Azure OpenAI 资源。
  3. 在“资源管理”下,选择“成本分析”
  4. 默认情况下,成本分析的范围仅限于单个 Azure OpenAI 资源。

范围限于 Azure OpenAI 资源的成本分析仪表板的屏幕截图。

若要了解构成该成本的明细,可以将“分组依据”修改为“计量”,将图表类型切换为“折线图”。 现在可以看到,对于此特定资源,成本源自三个不同的模型系列,其中“Text-Davinci 令牌”表示大部分成本。

成本分析仪表板的屏幕截图,其中“分组依据”设置为“计量”。

评估与 Azure OpenAI 相关的成本时,必须了解范围。 如果资源是同一资源组的一部分,则可以在该级别确定成本分析的范围,以了解对成本的影响。 如果资源分布在多个资源组中,则可以将范围限定为订阅级别。

当范围限定在更高级别时,你通常需要添加更多筛选器来关注 Azure OpenAI 的使用情况。 当范围限定在订阅级别时,你会看到在 Azure OpenAI 成本管理上下文中可能不在意的许多其他资源。 当范围限定在订阅级别时,建议导航到“成本管理”服务下的完整“成本分析工具”。

以下示例演示如何使用成本分析工具查看订阅或资源组的累计成本:

  1. 在顶部的 Azure 搜索栏中搜索“成本管理”,导航到完整的服务体验,其中包括创建预算等更多选项。
  2. 如有必要,如果“范围:”未指向要分析的资源组或订阅,请选择“更改”。
  3. 在左侧,选择“报告 + 分析”>“成本分析”。
  4. 在“所有视图”选项卡上,选择“累计成本”。

成本分析仪表板屏幕截图,显示如何访问累计成本。

成本分析仪表板显示根据为“范围”指定的内容分析的累计成本。

成本分析仪表板的屏幕截图,其中“范围”设置为“订阅”。

如果尝试按服务添加筛选器,你会发现在列表中找不到 Azure OpenAI。 出现这种情况的原因是,Azure OpenAI 与一部分 Azure AI 服务具有通用性,其中服务级别筛选器为“认知服务”。 如果想要查看订阅中的所有 Azure OpenAI 资源,而不使用任何其他类型的 Azure AI 服务资源,请改为将范围限定为“服务层: Azure OpenAI”:

成本分析仪表板的屏幕截图,其中突出显示了服务层级。

创建预算

可以创建预算来管理成本,并创建警报来通知利益干系人支出异常和超支风险。 警报基于与预算和成本阈值相比的支出。 为 Azure 订阅和资源组创建预算和警报。 作为整体成本监视策略的一部分,它们很有用。

如果希望可以更加精细地进行监视,可以在 Azure 中使用特定资源或服务的筛选器创建预算。 筛选器可帮助确保不会意外创建会产生额外成本的新资源。 有关创建预算时可用的筛选选项的详细信息,请参阅分组和筛选选项

重要

虽然 OpenAI 有一个硬限制选项可防止你超出预算,但 Azure OpenAI 目前不提供此功能。 作为预算通知的一部分,你可以从操作组启动自动化,以采取更高级的操作,但这需要你进行额外的自定义开发。

导出成本数据

你还可以将成本数据导出到存储帐户,这在需要其他人执行额外的成本数据分析时非常有用。 例如,财务团队可以使用 Excel 或 Power BI 来分析数据。 可以按每天、每周或每月计划导出成本,并设置自定义的日期范围。 建议将导出成本数据作为检索成本数据集的方法。

后续步骤