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

为已预配的部署管理流量并实现溢出(预览版)

溢出通过将超额部分路由到相应的标准部署来管理预配部署的流量波动。 溢出是一项可选功能,可为给定部署上的所有请求设置,也可以按请求进行管理。 启用溢出后,Azure AI Foundry 模型中的 Azure OpenAI 会将任何超额流量从预配部署发送到标准部署进行处理。

先决条件

  • 要用作主部署的全局预配部署或数据区域预配部署。

  • 要用作溢出部署的全局或数据区域标准部署。

  • 预配部署和标准部署必须位于同一 Azure OpenAI 资源中,才有资格进行溢出。

  • 标准部署的数据处理级别必须与预配的部署相匹配(例如,全局预配部署必须与全局标准溢出部署一起使用)。

何时在预配置的部署上启用溢出

若要最大限度地利用预配的部署,建议为所有全局和数据区域预配部署启用溢出。 通过溢出,流量的突发或波动可由服务自动管理。 此功能可降低完全利用预配部署时遇到中断的风险。 或者,溢出是按请求配置的,可以跨不同的方案和工作负荷提供灵活性。

溢出何时生效?

为部署启用溢出或为给定推理请求配置溢出时,当收到给定推理请求的非 200 响应代码时,将启动溢出。 当请求生成非 200 响应代码时,Azure OpenAI 会自动将请求从已配置的部署发送到标准部署进行处理。 即使请求的子集路由到标准部署,服务也会优先将请求发送到预配的部署,然后再将任何超额请求发送到标准部署。

溢出如何影响成本?

由于溢出使用预配部署和标准部署的组合来管理流量波动,因此溢出计费涉及两个组件:

  • 对于通过预配部署处理的任何请求,仅应用每小时预配部署的费用。 这些请求不会产生额外的费用。

  • 对于路由到标准部署的任何请求,请求按关联的输入令牌、缓存令牌和指定模型版本和部署类型的输出令牌费率计费。

如何启用溢出

可以使用部署属性为预配部署上的所有请求启用溢出功能,也可以使用请求标头按请求进行管理。 以下部分说明如何为每个方案配置溢出。

为预配部署上的所有请求启用溢出

若要为预配部署上的所有请求启用溢出,请将部署属性 spilloverDeploymentName 设置为溢出请求的标准部署目标。 可以在创建新预配部署期间设置此属性,也可以添加到现有预配部署。 spilloverDeploymentName属性需要设置为与预配部署相同的 Azure OpenAI 资源中的标准部署的名称。

curl -X PUT https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-temp/providers/Microsoft.CognitiveServices/accounts/docs-openai-test-001/deployments/spillover-ptu-deployment?api-version=2024-10-01 \
  -H "Content-Type: application/json" \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
  -d '{"sku":{"name":"GlobalProvisionedManaged","capacity":100},"properties": {"spilloverDeploymentName": "spillover-standard-deployment", "model":{"format": "OpenAI","name": "gpt-4o-mini","version": "2024-07-18"}}}'

为选择性推理请求启用溢出功能

若要选择性地按请求启用溢出,请将 x-ms-spillover-deployment 推理请求标头设置为溢出请求的标准部署目标。 如果未在给定请求上设置 x-ms-spillover-deployment 标头,则会在响应非 200 时启动溢出。 此标头的使用或遗漏可以灵活地控制何时应或不应为给定工作负载或方案启动溢出。

curl $AZURE_OPENAI_ENDPOINT/openai/deployments/spillover-ptu-deployment/chat/completions?api-version=2025-02-01-preview \
  -H "Content-Type: application/json" \
  -H "x-ms-spillover-deployment: spillover-standard-deployment" \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
  -d '{"messages":[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},{"role": "user", "content": "Do other Azure services support this too?"}]}'

注释

如果通过使用 spilloverDeploymentName 属性为部署启用了溢出功能,并且在请求级别通过 x-ms-spillover-deployment 标头启用溢出功能,则系统将默认采用部署属性的设置。 如果想确保仅在单个请求上启用溢出,请不要在预配的部署上设置 spilloverDeploymentName 属性,并且仅依赖于每个请求的 x-ms-spillover-deployment 标头。

如何监视溢出使用情况?

由于溢出功能依赖于预配部署和标准部署的组合来管理流量超额,因此可以在每个部署的部署级别进行监视。 若要查看主要预配部署与溢出标准部署上处理的请求数,请应用 Azure Monitor 指标中的拆分功能,以查看每个部署处理的请求及其各自的状态代码。 同样,拆分功能可用于查看在给定时间段内主要预配部署处理的令牌数量与溢出标准部署处理的数量。 有关 Azure OpenAI 中的可观测性的详细信息,请查看 Monitor Azure OpenAI 文档。

以下 Azure Monitor 指标图表提供了在启动溢出时在主要预配部署与溢出标准部署之间拆分请求的示例。 如图表所示,对于预配部署(“gpt-4o-ptu”)具有非 200 响应代码的请求,都有一个响应代码为 200 的相应请求在溢出标准部署(“gpt-4o-paygo-spillover”)上,这表示这些超额请求已被路由到溢出标准部署进行成功处理。 Azure Monitor 图表显示预配部署到标准部署的溢出请求。

另请参阅