分享方式:


開始在 Azure OpenAI 服務上使用佈建的部署

下列指南會逐步引導您完成使用 Azure OpenAI 服務資源建立佈建部署的主要步驟。 如需這裡所討論概念的更多詳細資料,請參閱:

必要條件

  • Azure 訂用帳戶 - 建立免費帳戶
  • Azure 參與者或認知服務參與者角色
  • Azure OpenAI Studio 的存取權

取得/驗證 PTU 配額可用性。

佈建輸送量部署是以佈建輸送量單位 (PTU) 為單位來調整大小。 PTU 配額會依區域授與訂用帳戶,並限制可在該區域中跨所有模型和版本部署的 PTU 總數。

建立新的部署需要可用 (未使用) 的配額,才能涵蓋所需的部署大小。 例如:如果訂用帳戶在美國中南部具有下列設定:

  • 總 PTU 配額 = 500 個 PTU
  • 部署:
    • 100 個 PTU:GPT-4o,2024-05-13
    • 100 個 PTU:GPT-4,0613

則會視為已使用 200 個 PTU 的配額,還有 300 個 PTU 可用來建立新的部署。

預設佈建和全域佈建配額會指派給數個區域中的所有訂用帳戶。 您可以瀏覽 Azure OpenAI Studio 中的 [配額] 刀鋒視窗,然後選取所需的訂用帳戶和區域,以檢視區域中可用的配額。 例如,下列螢幕擷取畫面顯示所選訂用帳戶在美國西部的配額限制為 500 個 PTU。 請注意,您可能會看到較低的可用預設配額值。

Azure OpenAI Studio 中可用配額的螢幕擷取畫面。

按一下 [使用量/限制] 資料行右邊的 [要求配額] 連結,即可要求額外配額 (此連結在上方螢幕擷取畫面的畫面外)。

建立 Azure OpenAI 資源

佈建和全域佈建的部署是透過 Azure 內的 Azure OpenAI 資源物件所建立。 在您想要建立部署的每個區域中,都必須有 Azure OpenAI 資源。 如有需要,請使用 Azure 入口網站在具有可用配額的區域中建立資源

注意

Azure OpenAI 資源可同時支援多種類型的 Azure OpenAI 部署。 您不需要為佈建或全域佈建部署提供新的資源。

建立佈建或全域佈建部署 - 有容量可用時

驗證配額之後,您就可以建立部署。 若要建立佈建的部署,您可以遵循下列步驟;所述的選項會反映螢幕擷取畫面中顯示的項目。

已佈建部署的 Azure OpenAI Studio 部署頁面螢幕擷取畫面。

  1. 登入 Azure OpenAI Studio

  2. 選擇針對已佈建和全域佈建部署啟用的訂用帳戶,然後在您擁有配額的區域中選取所需的資源。

  3. 在左側導覽的 [管理] 底下,選取 [部署]

  4. 選取 [建立新的部署],然後設定下欄欄位。 展開 [進階選項] 下拉式功能表。

  5. 填寫每個欄位中的值。 以下是範例:

欄位 描述 範例
選取模型 選擇您想要部署的特定模型。 GPT-4
模型版本 選擇要部署的模型版本。 0613
部署名稱 您的程式碼中會使用部署名稱,以透過用戶端程式庫和 REST API 來呼叫模型。 gpt-4
內容篩選 指定要套用至部署的篩選原則。 深入了解內容篩選的操作說明。 預設
部署類型 這會影響輸送量和效能。 為您的部署選擇 [佈建受控] 或 [全域佈建受控] Provisioned-Managed
佈建的輸送量單位 選擇您想要包含在部署中的輸送量。 100

需要注意的重要事項︰

  • 部署對話方塊包含提醒,指出您可以為 Azure OpenAI 佈建購買 Azure 保留,以取得期限承諾用量的大量折扣。

輸入部署設定後,請按一下 [確認定價] 以繼續操作。 如果您選擇按小時付費,則會出現定價確認對話方塊,顯示部署的定價,且沒有任何 Azure 保留提供期限折扣。

如果您不確定成本,請取消部署,並在了解已佈建部署的付款模型和基礎成本後繼續操作。 此步驟可防止付款發票上出現非預期的高昂費用。 自我學習的資源包括:

下圖顯示您將看到的定價確認。 顯示的價格僅供參考。

顯示定價確認畫面的螢幕擷取畫面。

如果您想要以程式設計方式建立部署,您可以使用下列 Azure CLI 命令來執行此動作。 若要指定部署類型,請根據預期的部署類型,將修改 sku-nameProvisionedManagedGlobalProvisionedManaged。 使用所需的佈建輸送量單位數目來更新 sku-capacity

az cognitiveservices account deployment create \
--name <myResourceName> \
--resource-group <myResourceGroupName> \
--deployment-name MyModel \
--model-name GPT-4 \
--model-version 0613  \
--model-format OpenAI \
--sku-capacity 100 \
--sku-name ProvisionedManaged

您也可以使用 REST、ARM 範本、Bicep 和 Terraform 來建立部署。 請參閱管理配額操作指南中的自動化部署一節,並將 sku.name 取代為 "ProvisionedManaged" 或 "GlobalProvisionedManaged" 而非 "Standard"。

建立佈建或全域佈建部署 - 無容量可用時

由於容量可用性的動態本質,您所選資源的區域可能沒有建立指定模型、版本和 PTU 數目部署的服務容量。

在此情況下,Azure OpenAI Studio 會引導您前往其他具有可用配額和容量的區域,以建立所需模型的部署。 如果發生此情況,部署對話方塊會如下所示:

Azure OpenAI Studio 部署頁面螢幕擷取畫面,用於沒有容量可用時的佈建部署。

注意事項:

  • 您會看到一則訊息,顯示您有許多 PTU 可用配額,以及目前可部署的 PTU 數目。
  • 如果您選取的 PTU 數目大於服務容量,則會出現一則訊息,提供選項讓您取得更多容量,以及一個按鈕讓您選取替代區域。 按一下 [查看其他區域] 按鈕會顯示對話方塊,列出您可以在其中建立部署的 Azure OpenAI 資源,以及您可以根據每個區域中的可用配額和服務容量建立的部署大小上限。

Azure OpenAI Studio 部署頁面的螢幕擷取畫面,用於選擇不同的資源和區域。

選取資源並按一下 [切換資源] 會導致部署對話方塊使用選取的資源重新顯示。 然後,您可以繼續在新的區域中建立部署。

選擇性地購買保留

建立部署之後,您可能想要透過 Azure 保留購買期限折扣。 Azure 保留可為想要使用部署不僅限於幾天的使用者,提供每小時費率的大量折扣。

如需購買模型和保留的詳細資訊,請參閱:

重要

模型部署的容量可用性是動態的,且在不同區域和模型間常會有變更。 為避免購買超出您所能使用的 PTU 保留,請先建立部署,再購買 Azure 保留,以涵蓋您已部署的 PTU。 此最佳做法可確保您可以充分利用保留折扣,並防止您購買無法使用的期間承諾用量。

進行第一個推斷呼叫

佈建部署的推斷程式碼與標準部署類型相同。 下列程式碼片段顯示向 GPT-4 模型發出的聊天完成呼叫。 如果這是您第一次以程式設計方式使用這些模型,建議您從我們的快速入門開始。 我們建議使用 1.0 版或更新版的 OpenAI 程式庫,因為這包含程式庫內的重試邏輯。

    #Note: The openai-python library support for Azure OpenAI is in preview. 
    import os
    from openai import AzureOpenAI

    client = AzureOpenAI(
        azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
        api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
        api_version="2024-02-01"
    )

    response = client.chat.completions.create(
        model="gpt-4", # model = "deployment_name".
        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 AI services support this too?"}
        ]
    )

    print(response.choices[0].message.content)

重要

在生產環境中,請使用安全的方式來儲存和存取您的認證,例如 Azure Key Vault。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。

了解預期的輸送量

您可以在端點上達成的輸送量是影響部署的 PTU 數目、輸入大小、輸出大小和呼叫率的一個因素。 並行呼叫數目和已處理的權杖總數可能會根據這些值而有所不同。 決定部署輸送量的建議方式如下:

  1. 使用容量計算機進行大小調整估計。 您可以在 Azure OpenAI Studio 中的 [配額] 頁面和 [佈建] 索引標籤下找到容量計算機。
  2. 使用實際流量工作負載對負載進行效能評定。 如需有關效能評定的詳細資訊,請參閱效能評定一節。

測量您的部署使用率

當您部署指定數目的佈建輸送量單位 (PTU) 時,該端點就可以使用一組推斷輸送量。 此輸送量的使用率是根據模型、模型版本呼叫率、提示大小、產生大小而建立的複雜公式。 為了簡化此計算,我們在 Azure 監視器中提供使用率計量。 在使用率上升超過 100% 之後,您的部署會在發生任何新的呼叫時傳回 429。 佈建使用率的定義如下:

PTU 部署使用率 = (時間週期中所耗用的 PTU) / (在時間週期中部署的 PTU)

您可以在資源的 Azure-Monitor 區段中找到使用率量值。 若要存取監視儀表板,請登入 https://portal.azure.com,移至您的 Azure OpenAI 資源,然後從左側導覽中選取 [計量] 頁面。 在 [計量] 頁面上,選取 [佈建受控使用率 V2] 量值。 如果您在資源中有多個部署,請同時按一下 [套用分割] 按鈕來依據每個部署分割值。

Azure 入口網站中資源計量刀鋒視窗上 provisioned managed 使用率的螢幕擷取畫面。

如需監視部署的詳細資訊,請參閱監視 Azure OpenAI 服務頁面。

處理高使用率

佈建的部署提供您已配置的計算容量,用於執行指定的模型。 Azure 監視器中的「Provisioned-Managed 使用率」計量會以一分鐘為增量單位來測量部署的使用率。 Provisioned-Managed 部署也會進行最佳化,讓接受的呼叫會以一致的「每次呼叫延遲上限」來處理。 當工作負載超過其配置的容量時,服務會傳回 429 HTTP 狀態碼,直到使用率降至 100% 以下為止。 重試前的時間會在 retry-afterretry-after-ms 回應標頭中提供,這些標頭分別提供以秒和以毫秒為單位的時間。 此方法會維護「每次呼叫延遲」目標,同時讓開發人員控制如何處理高負載的情況,例如重試或轉移至另一個體驗/端點。

當我收到 429 回應時,該怎麼辦?

429 回應表示呼叫時完全取用已配置的 PTU。 回應包含 retry-after-msretry-after 標頭,用於告知您可接受下一個呼叫之前須等待的時間。 選擇處理 429 回應的方式取決於您的應用程式需求。 以下是一些考量:

  • 如果您能夠接受較長的每次呼叫延遲,請實作用戶端重試邏輯以等候 retry-after-ms 時間並重試。 此方法可讓您將部署的輸送量最大化。 Microsoft 提供的用戶端 SDK 已使用合理的預設值來處理此情況。 您可能仍需要根據使用案例進行進一步調整。
  • 請考慮將流量重新導向至其他模型、部署或體驗。 此方法是最低延遲解決方案,因為只要收到 429 訊號,就可以採取此動作。 當推送至高使用率時,429 訊號並不是非預期的錯誤回應,而是設計用來管理佇列和佈建部署高負載的一部分。

修改用戶端程式庫內的重試邏輯

Azure OpenAI SDK 預設會重試 429 回應,並且在用戶端幕後重試 (最多至重試次數上限)。 程式庫會遵循 retry-after 時間。 您也可以修改重試行為,以更符合您的體驗。 以下是 Python 程式庫的範例。

您可以使用 max_retries 選項來設定或停用重試設定:

from openai import AzureOpenAI

# Configure the default for all requests:
client = AzureOpenAI(
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),
    api_version="2024-02-01",
    max_retries=5,# default is 2
)

# Or, configure per-request:
client.with_options(max_retries=5).chat.completions.create(
    model="gpt-4", # model = "deployment_name".
    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 AI services support this too?"}
    ]
)

執行效能評定

執行個體的確切效能和輸送量功能取決於您提出的要求種類和確切的工作負載。 判斷工作負載輸送量的最佳方式是在您自己的資料上執行效能評定。

為了協助您完成這項工作,效能評定工具可讓您輕鬆地在部署上執行效能評定。 此工具隨附數個可能預先設定的工作負載圖形,並輸出關鍵效能計量。 深入了解 GitHub 存放庫中的工具和組態設定:https://aka.ms/aoai/benchmarking

我們建議使用下列工作負載:

  1. 使用容量計算機預估輸送量 PTU。
  2. 執行具有此流量圖形的效能評定達一段較長的時間 (10+ 分鐘),以觀察處於穩定狀態的結果。
  3. 從效能評定工具和 Azure 監視器中觀察使用率、權杖處理和呼叫率的值。
  4. 使用用戶端實作,以您自己的流量圖形和工作負載執行效能評定。 請務必使用 Azure OpenAI 用戶端程式庫或自訂邏輯來實作重試邏輯。

後續步驟