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

在生产环境中运维已预配的部署

当前查看:新版 Foundry 门户 - 切换到经典版 Foundry 门户

本文介绍用于在生产环境中运行预配吞吐量部署的端到端任务:管理预配的吞吐量单位(PTU)配额、创建部署、购买Azure预留、进行推理调用、基准测试、监视利用率、处理高负载、缩放和清理资源。

本文假设熟悉 什么是预配吞吐量 的概念? 以及 PTU 计费和成本管理中的计费详细信息。

先决条件

  • 具有有效付款方式的 Azure 订阅。 如果没有 Azure 订阅,请先创建一个付费的 Azure 帐户
  • 在你计划创建部署的订阅或资源组上具有 Azure 参与者认知服务参与者角色。
  • 位于你具有 PTU 配额的区域中的 Microsoft Foundry 项目。 Foundry 项目在 Foundry 资源下管理。

估算 PTU 需求

在创建预配部署之前,你应先估算你的工作负载需要多少 PTU。 有关估算公式、计算示例和容量计算器的使用说明,请参阅 确定工作负载的 PTU 容量

查看并申请 PTU 配额

PTU 配额按订阅和区域授予,并限制你在该区域内跨所有模型可部署的 PTU 总量。 有关配额和容量关系的详细信息,请参阅 PTU 配额与容量

检查当前使用情况或请求其他配额:

  1. Foundry 门户中,转到操作>配额>预配吞吐量单位
  2. 选择要查看当前使用情况的所需订阅和区域。
  3. 若要请求更多配额,请选择“ 请求配额 ”并完成表单。

Tip

还可以按照此 直接链接到配额请求表单

创建预配型部署

若要创建预配的部署,请参阅 快速入门:创建预配的吞吐量部署

在一个区域内,相同部署类型的所有预配部署共享 PTU 配额。 如果在初始部署后剩余配额,则可以使用它部署其他受支持的模型,而无需请求更多配额。 在 Foundry 门户操作 下的 配额 页面中查看配额使用情况。

您可以通过申请更多配额,或删除现有部署来管理配额,从而为新部署腾出 PTU。

扩展部署规模

可以随时通过 Foundry 门户或Azure CLI增加或减少预配部署的 PTU 计数。 有关扩容时的容量限制、计费调整时间以及对现有预留资源的影响,请参阅 扩缩预配部署

购买预定

预配部署就绪后,请考虑购买 Azure 预留,以享受 PTU 计费折扣。 对于计划运行超过几天的部署,预留相比按小时计费可提供大幅折扣。

请按以下操作顺序进行,以避免为不存在或与已部署的 PTU 不匹配的容量购买预留容量:

  1. 使用 Foundry 在具有可用配额的区域部署模型。 此步骤确认容量可用。
  2. 部署后,请注意部署详细信息:部署类型(全局预配、数据区域预配或区域预配)、区域(对于数据区域和区域部署),以及订阅。
  3. 购买与这些详细信息匹配的新预留,或验证现有预留是否已涵盖部署。 对于全局部署,预留区域不需要与部署区域匹配,因为单个全局预留可以涵盖跨多个区域的全局 PTU 部署。

有关容量规划、定价和管理预留的指导,请参阅 PTU 计费和成本管理

发起推理调用

有关使用预配部署的推理代码示例,请参阅 快速入门。 预配部署的推理代码与任何其他部署类型相同。 使用部署名称(而不是模型名称)作为 model 参数值。

运行基准

部署的确切性能和吞吐量功能取决于部署的 PTU 数量、发出的请求类型以及工作负荷形状(包括提示大小、生成大小、调用速率和类似因素)。 确定工作负荷的吞吐量的最佳方法是对自己的数据运行基准。

基准测试工具提供预配置的工作负载形状并输出关键性能指标。 使用此工具在部署上运行基准测试。 有关详细信息和配置设置,请参阅 GitHub 上的 azure-openai-benchmark 存储库。

建议的基准测试工作流:

  1. 使用容量计算器估算 PTU 要求。
  2. 运行此流量形状的基准测试至少 10 分钟,以观察稳定状态结果。
  3. 观察基准工具和Azure Monitor的利用率、令牌处理和调用速率。
  4. 使用您自己的客户端实现,按您自己的流量模式和工作负载运行基准测试。 使用 OpenAI 客户端库或自定义重试逻辑实现重试逻辑。

度量部署利用率

创建预配的部署时,服务会分配固定数量的推理吞吐量。 若要跟踪工作负荷消耗的容量量,请在Azure Monitor中使用 预配管理的利用率 V2 指标。

PTU 利用率定义为:

PTU 部署利用率 = (时间段内消耗的 PTU) / (在时间段内部署的 PTU)

要查看该指标:

  1. 登录到 Azure 门户
  2. 导航到 Foundry 资源,然后在左侧导航中选择 “指标 ”。
  3. 选择 预配管理的利用率 V2 指标。
  4. 如果资源中有多个部署,请选择 “应用拆分 ”以查看按部署拆分的值。

Azure 门户中资源指标边栏选项卡上显示的预配管理的利用率 V2 指标的屏幕截图。

利用率的工作原理

每个客户在预配部署上都可使用固定额度的容量。 为了将使用率保持在 100% 以下,同时允许出现一些流量突发,该服务采用了漏桶算法的变体,如下所示:

  1. 限制为 100%:发出请求时,如果当前利用率为 100%,则服务会立即返回 HTTP 429,响应retry-after-msretry-after标头指示等待的时间。
  2. 请求估算:对于每个传入的请求,服务会结合提示词令牌数(扣除所有已缓存的令牌)以及调用中指定的 max_tokens,来估算计算成本。 缓存令牌可享受 100% 折扣,且不计入利用率。 如果未指定 max_tokens,服务会估算一个值——当实际生成的令牌数少于估算值时,这可能导致并发数低于预期。 为了实现最高并发度,请将 max_tokens 设置得尽可能接近您的实际生成规模。
  3. 请求后更正:请求完成后,服务会使用实际令牌计数更正利用率估算值。 如果实际计算成本超过估计值,则会将差异添加到利用率;如果比较少,则减去差异。
  4. 持续消耗:利用率会持续消耗,其速率与已部署的 PTU 数量成正比。 部署配置的 PTU 越多,消耗得越快。

已接受的请求始终都能以可预测的延迟完成处理,因为系统会立即返回 429 响应,而不是将流量排队处理。

注释

在利用率达到 100% 之前会接受调用。 短时间内,略高于 100% 的突发流量可能是允许的,但从长期来看,您的流量利用率会被限制在 100%。

预配吞吐量利用率的漏桶算法的屏幕截图,显示请求如何增加利用率,同时容量根据部署的 PTU 数量消耗。

处理高资源利用率

当利用率达到 100%时,服务会立即返回 HTTP 429,并包含retry-afterretry-after-ms指示在接受下一个请求之前等待多长时间的响应标头。 此方法维护每调用延迟目标,同时让你控制如何处理高负载情况。

预配部署中的 429 不是服务错误;相反,这是一个流量管理信号。

收到 429 响应时该怎么办

响应包含 retry-after-msretry-after 标头,这些标头会告知你在下一次调用被接受之前需要等待多久。 如何处理 429 取决于应用程序要求:

  • 重定向到另一个部署或模型:此选项会产生最低的额外延迟,因为一收到 429 信号即可立即执行该操作。 溢出功能可自动将请求从预配部署重定向到标准部署的过程。
  • 使用响应标头中的等待时间重试:如果需要预配的部署并可以容忍添加的延迟,请等待指示的时间 retry-after-ms ,然后重试。 Azure OpenAI SDK 默认实现此重试行为。 你仍可能需要根据用例进行进一步优化。

并发调用限制

部署可以维持的并发调用数取决于每个调用的形状-提示大小、 max_tokens 值和类似的因素。 该服务在利用率达到 100% 之前会一直接受请求。 若要估计特定调用形状的最大并发调用数,请使用 Foundry 门户的“配额”页上的容量计算器。 如果模型生成的令牌数少于 max_tokens 值,则部署可以接受更多的并发请求。

修改客户端库中的重试逻辑

OpenAI SDK 默认会重试 429 响应,并遵循 retry-after 指定的时间。 可以使用 max_retries 选项配置或禁用重试行为:

import os
from openai import OpenAI

# Configure the default for all requests:
client = OpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),
    base_url="https://<myResourceName>.openai.azure.com/openai/v1/",
    max_retries=5, # default is 2
)

# Or, configure per-request:
client.with_options(max_retries=5).chat.completions.create(
    messages=[
        {
            "role": "user",
            "content": "When was Microsoft founded?",
        }
    ],
    model="gpt-5.1",
)

参考:Azure OpenAI 支持的编程语言

清理资源

每小时计费从创建预配的部署开始,并在删除部署时停止。 已删除资源上的部署在该资源被彻底清除之前仍会继续产生费用,因此在删除资源本身之前,请务必先删除所有部署。

彻底删除已预配的部署

若要彻底删除预配的部署,请执行以下操作:

  1. 在 Foundry 门户中,导航到资源并删除部署。
  2. 如果同时删除Azure资源,请先删除其所有部署,然后删除资源。
  3. 如果在上一步中删除了资源,请将其清除以确保计费停止。 有关说明,请参阅 恢复或清除已删除Azure AI 资源
  4. 转到 Azure 门户中的 Reservations 页面查看现有预留。 删除部署不会取消或更改任何 PTU 预留。 可以在Azure门户中取消或交换预留,但此操作可能会产生费用。 有关详细信息,请参阅 PTU 计费和成本管理