如何在經典版的託管運算部署中進行部署和推論

僅適用於:Foundry(經典)入口。 這篇文章無法在新的 Foundry 入口網站中提供。 了解更多關於新入口網站的資訊。

註

本文中的連結可能會開啟新版 Microsoft Foundry 文件的內容,而非您目前正在瀏覽的 Foundry(經典版)文件。

Microsoft Foundry 入口網站模型目錄提供超過 1,600 個模型,您可以透過管理運算(亦稱管理線上部署)部署,以便在生產環境中進行即時推論。 透過託管運算部署,你可以為大型語言模型提供可擴展且具備生產準備的基礎架構。

在本文中,你將學習如何部署使用受管理的運算部署選項,並對已部署的模型進行推論。

先決條件

  • 一個有有效付款方式的 Azure 訂閱。 免費或試用的 Azure 訂閱都無法使用。 如果你沒有Azure訂閱,建立付費Azure帳號。

  • 如果還沒有,就建立一個中心型專案。 欲了解更多資訊,請參閱 建立專案。

  • Foundry Models 來自合作夥伴和社群需要 Azure Marketplace 的存取權限,而由 Azure 銷售的 Foundry Models 則沒有這項要求。 請確保您的 Azure 訂閱擁有在 Azure Marketplace 中訂閱模型產品的權限。 更多資訊請參見 啟用Azure Marketplace購買。

  • Azure 角色型存取控制 (Azure RBAC) 可用來授與 Foundry 入口網站中各項作業的存取權限。 要執行本文中的步驟,你的使用者帳號必須在資源群組中被分配為 Azure AI 開發者角色。 欲了解更多資訊,請參閱 Foundry 入口網站中的角色基礎存取控制。

  • 在你的 Azure 訂閱中,配置虛擬機(VM)配額,以滿足執行模型所需特定虛擬機 SKU 的需求。 每次部署會依區域計算使用虛擬機核心配額。 欲了解更多資訊,請參閱 配額考量,包括配額要求及如何申請加薪。

  • 對於安裝 Python SDK 的部署:安裝 Python 3.8 或更新版本,包括 Azure Machine Learning SDK(azure-ai-ml)和 Azure Identity 函式庫(azure-identity)。

在型號目錄中找到你的型號

  1. 登入 Microsoft Foundry。 確定 新鑄造廠 的切換開關是關閉的。 這些步驟指的是Foundry(經典版)。
  2. 如果您還未進入您的專案,請選擇它。
  3. 從左側窗格選擇 型號目錄 。
  1. 在 部署選項 篩選中,選擇 「受管理運算」。

    提示

    因為你可以在 Microsoft Foundry 入口網站中自訂左側窗格,所以你可能會看到與這些步驟中顯示的不同物品。 如果你找不到你想要的,選擇 ⋯⋯更多選項 在左側窗格底部。

    模型目錄介面截圖,部署選項篩選面板開啟,左側顯示已選取的管理計算,右側則顯示可用模型卡片的網格。

  2. 選擇一個模型以開啟其模型卡。 在本文中,你使用模型 Phi-4。

部署模型

  1. 在模型頁面,選擇 「使用此模型」。 若所選模型僅能部署至受管理計算,此動作會開啟部署視窗。

  2. 或者,如果你選擇了同時支援其他部署選項的機型,就會進入「購買選項」視窗。 選擇「 管理運算 購買」選項以開啟部署視窗。

    • 在部署視窗中選擇勾選方塊以使用臨時共享配額。 若要部署到自架管理的運算系統,你的訂閱必須有足夠的配額。 如果你的配額不足,你可以透過選擇「我想要使用共享配額」選項,使用我們的臨時配額權限 ,我承認這個端點將在 168 小時內被刪除。
  3. 部署視窗會預先填入一些選擇和參數值。 你可以選擇保留或依照需要更改。 你也可以選擇現有的端點來部署,或建立一個新的端點。 在這個例子中,指定一個 1 實例數量,並建立一個新的端點來部署。

    部署設定對話框的截圖,顯示部署名稱、端點選擇、虛擬機器選擇及實例數欄位設為 1,底部有部署按鈕。

  4. 選擇 部署 以建立你的部署。 創建過程可能需要幾分鐘完成。 完成後,入口網站會開啟模型部署頁面。

    提示

    要查看已部署到你專案的端點,請到左側窗格的「我的資產」區塊,選擇 Models + 端點。

  5. 確認你的部署是否成功。 在部署細節頁面,檢查配置狀態是否顯示成功,部署狀態顯示健康。 如果你看到任何錯誤,請參考 故障排除 部分。

  6. 建立端點會使用金鑰認證來進行授權。 要取得與特定端點相關的金鑰,請依照以下步驟操作:

    1. 選擇部署,並記錄端點的目標 URI 與金鑰。
    2. 利用這些憑證呼叫部署並產生預測。

    目標URI遵循以下格式: https://<endpoint-name>.<region>.inference.ml.azure.com/score

取用部署

建立部署後,請遵循以下步驟來加以取用:

  1. 在您的 Foundry 專案中,選取 [我的資產] 區段下的 [模型 + 端點]。
  2. 從 「模型部署」 標籤中選擇您的部署。
  3. 移至 [測試] 索引標籤以取得端點的範例推斷。
  4. 回到 「詳情 」標籤,複製部署的「目標 URI」,你可以用它來執行程式碼推論。
  5. 到部署的 Consume 標籤中尋找用於消費的程式碼範例。
  1. 從你選擇的模型詳情頁面複製型號 ID。 對於所選模型,情況如下: azureml://registries/azureml/models/Phi-4/versions/8。

部署模型

  1. 安裝 Azure Machine Learning SDK。

    pip install azure-ai-ml
    pip install azure-identity
    
  2. 用 Azure Machine Learning 認證並建立客戶端物件。 請將佔位符替換成你的訂閱 ID、資源群組名稱和 Foundry 專案名稱。

    from azure.ai.ml import MLClient
    from azure.identity import InteractiveBrowserCredential
    
    workspace_ml_client = MLClient(
        credential=InteractiveBrowserCredential(),
        subscription_id="your subscription ID goes here",
        resource_group_name="your resource group name goes here",
        workspace_name="your project name goes here",
    )
    

    這段程式碼透過互動式瀏覽器憑證與 Azure 進行驗證,並建立一個客戶端來與你的 Foundry 專案互動。 執行這段程式碼時,瀏覽器會開啟一個驗證視窗。

    參考資料:MLClient、 InteractiveBrowserCredential

  3. 建立一個端點。 對於管理式運算部署選項,你需要在模型部署前建立端點。 可以把端點想像成一個可以容納多個模型部署的容器。 端點名稱在某個區域內必須是唯一的,因此在此範例中,使用時間戳來建立唯一的端點名稱。

    import time, sys
    from azure.ai.ml.entities import (
        ManagedOnlineEndpoint,
        ManagedOnlineDeployment,
        ProbeSettings,
    )
    
    # Make the endpoint name unique
    timestamp = int(time.time())
    online_endpoint_name = "customize your endpoint name here" + str(timestamp)
    
    # Create an online endpoint
    endpoint = ManagedOnlineEndpoint(
        name=online_endpoint_name,
        auth_mode="key",
    )
    workspace_ml_client.online_endpoints.begin_create_or_update(endpoint).wait()
    

    此程式碼建立一個基於金鑰的受管理線上端點。 手術通常需時2至3分鐘。 完成後,你會有一個端點網址,可以部署模型。

    參考:ManagedOnlineEndpoint、online_endpoints.begin_create_or_update

  4. 建立部署。 將下一個程式碼中的型號 ID 替換為你從「 尋找你的模型」 目錄區塊中所選模型詳情頁複製的型號 ID。

    model_name = "azureml://registries/azureml/models/Phi-4/versions/8" 
    
    demo_deployment = ManagedOnlineDeployment(
        name="demo",
        endpoint_name=online_endpoint_name,
        model=model_name,
        instance_type="Standard_DS3_v2",
        instance_count=2,
        liveness_probe=ProbeSettings(
            failure_threshold=30,
            success_threshold=1,
            timeout=2,
            period=10,
            initial_delay=1000,
        ),
        readiness_probe=ProbeSettings(
            failure_threshold=10,
            success_threshold=1,
            timeout=10,
            period=10,
            initial_delay=1000,
        ),
    )
    workspace_ml_client.online_deployments.begin_create_or_update(demo_deployment).wait()
    endpoint.traffic = {"demo": 100}
    workspace_ml_client.online_endpoints.begin_create_or_update(endpoint).result()
    

    這段程式碼會將模型部署到你的端點,並有兩個Standard_DS3_v2虛擬實例。 部署包含存活與就緒探查,用於健康狀態監視。 本次部署的流量設定為 100%。 整個行動需要數分鐘才能完成。 完成後,你的模型即可接受推理請求。

    參考資料:ManagedOnlineDeployment、ProbeSettings、online_deployments.begin_create_or_update

對部署進行推論

  1. 你需要範例 JSON 資料來測試推論。 在你的工作目錄中建立一個檔案, sample_score.json 內容如下:

    {
      "inputs": {
        "question": [
          "Where do I live?",
          "Where do I live?",
          "What's my name?",
          "Which name is also used to describe the Amazon rainforest in English?"
        ],
        "context": [
          "My name is Wolfgang and I live in Berlin",
          "My name is Sarah and I live in London",
          "My name is Clara and I live in Berkeley.",
          "The Amazon rainforest (Portuguese: Floresta Amaz\u00f4nica or Amaz\u00f4nia; Spanish: Selva Amaz\u00f3nica, Amazon\u00eda or usually Amazonia; French: For\u00eat amazonienne; Dutch: Amazoneregenwoud), also known in English as Amazonia or the Amazon Jungle, is a moist broadleaf forest that covers most of the Amazon basin of South America. This basin encompasses 7,000,000 square kilometres (2,700,000 sq mi), of which 5,500,000 square kilometres (2,100,000 sq mi) are covered by the rainforest. This region includes territory belonging to nine nations. The majority of the forest is contained within Brazil, with 60% of the rainforest, followed by Peru with 13%, Colombia with 10%, and with minor amounts in Venezuela, Ecuador, Bolivia, Guyana, Suriname and French Guiana. States or departments in four nations contain \"Amazonas\" in their names. The Amazon represents over half of the planet's remaining rainforests, and comprises the largest and most biodiverse tract of tropical rainforest in the world, with an estimated 390 billion individual trees divided into 16,000 species."
        ]
      }
    }
    
  2. 使用sample_score.json進行推理。 根據你儲存範例 JSON 檔案的位置,在下一段程式碼中更改評分檔案的位置。

    import json
    
    scoring_file = "./sample_score.json" 
    response = workspace_ml_client.online_endpoints.invoke(
        endpoint_name=online_endpoint_name,
        deployment_name="demo",
        request_file=scoring_file,
    )
    response_json = json.loads(response)
    print(json.dumps(response_json, indent=2))
    

    這段程式碼會將範例問題和上下文傳送到你部署的模型,並列印答案。 模型透過從提供的上下文中擷取相關文字來進行問答。 預期輸出包括每題的答案文字及信心分數。

    參考資料:online_endpoints.invoke

設定自動縮放

要設定部署的自動擴展,請依照以下步驟操作:

  1. 登入 Azure 入口網站。
  2. 在 AI 專案的資源群組中找到你剛部署的模型的 Azure 資源類型 Machine learning online deployment。
  3. 從左側窗格選擇設定>縮放。
  4. 選擇 自訂自動縮放 並設定自動縮放設定。 欲了解更多自動擴展的資訊,請參閱Azure Machine Learning文件中的 自動擴展線上端點。

刪除部署

要在 Foundry 入口網站刪除部署,請在部署詳情頁面頂方面板選擇 「刪除部署 」。

配額考量

要部署並執行即時端點的推論,你會消耗 Azure 依區域分配給訂閱的虛擬機(VM)核心配額。 當你註冊 Foundry 時,你會獲得該地區多個虛擬機家族的預設虛擬機配額。 你可以持續建立部署,直到達到配額上限。 一旦達成,你就可以申請增加配額。

故障排除

本節提供您在部署受管理計算模型時可能遇到的常見問題解決方案。

部署因超出配額而失敗

問題: 建立部署時會收到一個錯誤,顯示配額不足。

解決方案:

  • 請在 Azure 入口網站的訂閱配額設定中查看你目前的配額使用情況
  • 透過 Azure 入口網站申請針對你需要的特定虛擬機 SKU 增加配額
  • 考慮使用有空配額的其他虛擬機 SKU。
  • 請參閱使用 Azure Machine Learning 管理和提高資源配額以獲取詳細指南

呼叫端點時的認證錯誤

問題: 當你呼叫已部署端時,會收到認證錯誤(401 未授權)。

解決方案:

  • 請確認你使用的是正確的端點 URI 和從部署細節頁面的認證金鑰
  • 檢查該金鑰是否自你複製後沒有被重新生成
  • 確保你的 Azure RBAC 權限沒有變動
  • 對於 SDK 呼叫,請確認你的憑證物件是否正確初始化

部署佈建失敗或逾時

問題:部署長時間停留在佈建狀態,或因逾時而失敗。

解決方案:

  • 請查看 Foundry 入口網站的部署日誌,查看特定錯誤訊息
  • 確認你的中樞的管理網路設定是否允許存取所需資源
  • 確保型號ID正確且該型號仍在目錄中
  • 試著用不同的虛擬機 SKU 部署,或減少實例數量

模型會回傳意外或錯誤的回應

問題: 部署的模型會回應,但會回傳意想不到的結果。

解決方案:

  • 確認你的輸入資料格式是否符合模型的預期結構
  • 請查閱模型卡文件中的輸入/輸出規格
  • 使用模型文件中提供的樣本資料進行測試
  • 請在 Foundry 入口網站的測試標籤中檢視請求與回應

如需更多故障排除協助,請參閱「 線上端點部署故障排除」。

  • 了解更多在Foundry可以做些什麼
  • 在 Azure AI 常見問題文章