管理佈建部署 (傳統) 的溢位流量

目前正在觀看:Foundry(經典)入口版本 - 切換到新 Foundry 入口網站版本

Spillover 會自動將超額請求路由至對應的標準部署,藉此管理已佈建部署上的流量波動。 當您的佈建的部署完全使用且傳回非 200 回應 (例如 PTU 耗盡時的 429),溢出功能會將那些要求重新導向至標準部署,協助您減少流量暴增期間的中斷情況。 此選用功能可針對部署中的所有請求設定,或依請求管理。

先決條件

  • 一個 Azure 訂閱。 免費創建一個
  • 同一 Foundry 資源中的一個佈建的受控部署和一個標準部署。
  • Azure CLI 安裝以取得 REST API 範例,或是存取 Foundry 入口網站。
  • AZURE_OPENAI_ENDPOINT 環境變數設為你Azure OpenAI 端點的 URL。
  • 必須在 Foundry 資源上具有 Cognitive Services Contributor 角色或更高權限,才能建立或修改部署。

為佈建部署上的所有要求啟用溢位

首先,建立佈建的輸送量部署。 請參閱 使用 Foundry 入口網站進行部署

一旦你已經部署完成,請更新以啟用流量溢出,具體如下:

  1. 登入 Microsoft Foundry。 確保關閉New Foundry的開關。 這些步驟指的是經典版的 Foundry

  2. 選擇你部署模型所在區域的訂閱和 Foundry 資源。

  3. 在 Foundry 入口網站的左側導覽選單中,選取 Models + endpoints>模型部署

  4. 選擇部署。

  5. 在部署頁面選擇 編輯

  6. 更新部署以啟用 流量溢出

    要啟用溢出,您的帳戶必須至少有一個活躍的隨用付費部署,且該部署的模型和版本要與您目前配置的部署相符。

  7. 提交變更。

啟用特定推理請求的溢出功能

若要依每個請求選擇性啟用溢出,請將推論請求標頭設 x-ms-spillover-deployment 為溢出請求的標準部署目標。 若特定要求未設定 x-ms-spillover-deployment 標頭,則在發生非 200 回應時不會啟動溢出。 使用或省略此標頭可提供彈性,讓您控制指定工作負載或情境何時應該或不應該起始溢位。

curl $AZURE_OPENAI_ENDPOINT/openai/deployments/spillover-ptu-deployment/chat/completions?api-version=2024-10-21 \
  -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?"}]}'

成功請求會回傳 HTTP 狀態 200 並回應聊天完成。 若發生溢出,回應會包含 x-ms-spillover-from-deployment 標頭。

參考:建立聊天完成

如果透過該 spilloverDeploymentName 屬性啟用溢出功能,並在請求層級使用 x-ms-spillover-deployment 標頭啟用,系統會使用部署屬性的設定作為預設值。 如果你想確保 spillover 僅針對個別要求啟用,請不要在已佈建的部署上設定 spilloverDeploymentName 屬性,而僅在個別要求時依賴 x-ms-spillover-deployment 標頭。

辨識溢出請求

以下 HTTP 回應標頭表示特定請求溢出:

  • x-ms-spillover-from-deployment:包含 PTU 的部署名稱。 此標頭的存在表示該請求為溢出請求。
  • x-ms-deployment-name: 包含執行該請求的部署名稱。 若請求溢出,則部署名稱即為標準部署名稱。

對於溢出請求,若標準部署請求因任何原因失敗,原始 PTU 回應會回傳給呼叫者。 回應包含 x-ms-spillover-error 一個標頭,包含溢出請求的回應碼(例如 429500),讓呼叫者知道溢出失敗的原因。

監控溢出使用率

溢出依賴佈建的部署與標準部署的組合來管理流量超額,因此可在每個部署的部署層級分別進行監視。 要查看主配置部署與溢出標準部署處理的請求數量,請在 Azure 監視器 指標中啟用分割功能,查看每個部署處理的請求及其狀態碼。 同樣地,利用分割功能查看特定期間內主要配置部署處理的代幣數量與溢出標準部署的差異。

下列 Azure 監視器指標圖表提供一個範例,說明起始溢位時,主要佈建部署與溢位標準部署之間的要求分配。 要建立圖表,請前往 Azure 入口網站 的資源。

  1. 從左側導覽選單選擇 監控>指標

  2. 再加上 Azure OpenAI Requests 指標。

    Azure入口網站中顯示基本溢出範例指標的截圖。

  3. 選擇 套用分割,並將 ModelDeploymentName 分割與 StatusCode 分割套用到 Azure OpenAI Requests 指標。 這會顯示一個圖表,其中包含你的資源生成的回應碼:200(成功)和 429(請求過多)。

    截圖顯示在Azure入口網站中新增分割的選單。

    請務必在套用 ModelDeploymentName 分割時新增您要檢視的模型部署。

    一張顯示可用模型過濾器的截圖。

    以下範例展示了一個實例,當向已配置的吞吐量部署發送的請求激增時,會產生 429 錯誤代碼。 隨後不久即會發生溢位,要求開始送往用於溢位的隨用隨付部署,並為該部署產生 200 回應。

    一張顯示溢出效應視覺化指標的截圖。

    當要求送往隨用隨付部署時,在重新導向之前,已佈建部署仍會產生 429 回應碼。 一張顯示已配置部署回應代碼的截圖。

查看溢出指標

套用IsSpillover 分割可讓您檢視被重導向到溢出部署的要求。 承接上一個範例,您可以看到主要部署的 429 回應如何對應到溢位部署產生的 200 回應碼。

截圖顯示 Azure 入口網站中的溢出分隔。

何時啟用溢出

若要將已佈建部署的使用率最大化,請為所有全域與資料區域的已佈建部署啟用溢位。 透過溢出效應,服務能自動處理流量突發或波動。 當佈建部署已完全使用時,此功能可降低發生中斷的風險。 另外,溢出可依請求設定,提供不同情境與工作負載的彈性。 溢位也可搭配 Foundry Agent Service 使用。

溢出效應生效時

當您為部署啟用溢位,或針對指定推斷要求設定溢位時,若因下列其中一種情境而收到特定的非 200 回應碼,就會起始溢位:

  • 配置的吞吐量單元(PTU)已被完全使用,導致429回應碼。

  • 你發送一個很長的上下文標記請求,結果會產生 400 錯誤代碼。 例如,使用 gpt 4.1 串列模型時,PTU 只支援小於 128K 的上下文長度,並回傳 HTTP 400。

  • 伺服器在處理請求時會出錯,導致錯誤代碼 500503

當請求產生非200回應碼時,Azure OpenAI 會自動將你已配置部署的請求傳送到標準部署進行處理。

即使部分請求被路由到標準部署,服務仍會優先將請求送至已配置部署,然後再將超額請求送回標準部署。 這種優先順序可能會產生額外的延遲。

溢出成本

由於溢出結合配置與標準部署來管理流量波動,溢出計費包含兩個部分:

  • 對於佈建部署處理的任何要求,僅適用每小時佈建部署成本。 這些申請不會產生額外費用。

  • 對於路由至標準部署的任何要求,會依指定模型版本和部署類型的相關輸入詞元、快取詞元和輸出詞元費率計費。