部署帶有託管運算的開源模型(預覽版)

Note

Foundry 中的管理運算目前處於預覽階段。 此預覽版本沒有服務等級協定,不建議將其用於生產工作負載。 某些功能可能不被支援或功能受限。 欲了解更多資訊,請參閱 Microsoft Azure 預覽版補充使用條款

Microsoft Foundry 的管理式運算部署(預覽版)在專用 GPU 容量上托管開源模型。 Microsoft 擁有 GPU 拓撲、執行時、容器映像與安全修補。 你可以選擇適合你工作負載的模型、部署範本、加速器家族和擴展行為。 本文將逐步介紹將開源模型部署到Microsoft Foundry中管理運算的端對端工作流程。

在本文中,您將學會如何:

  • 在型號目錄中選擇一個型號
  • 選擇部署範本
  • 請使用 Foundry 入口網站或 Python SDK 部署模型
  • 使用 OpenAI SDK 進行推論
  • 擴展並監控部署
  • 要求更多配額

關於 Foundry 中受管式運算部署的概述,包括模型實例、部署範本、執行時、加速器族、計費及目前限制,請參見 Managed compute in Microsoft Foundry (Preview)

Prerequisites

  • 有效的 Azure 訂用帳戶。 要建立一個帳號,請參考 Create your Azure free account

  • 訂閱中的一個資源群組,你可以在那裡建立資源。

  • 一個Microsoft Foundry 帳號(認知服務帳號類型AIServices)以及一個 Foundry 專案。 要建立一個,請參見 「建立鑄造廠專案」。

  • 下列 Azure 角色指派位於 Foundry 帳戶範圍內:

  • 您計劃部署的加速器系列 (A100、H100 或 MI300X) 在目標區域中已核准的受控計算配額。 管理計算配額與 Azure VM 配額是分開的。 請參閱本文末尾 的「請求更多配額 」。

  • SDK 與 CLI 範例的本地工具:

    pip install "azure-mgmt-cognitiveservices==15.0.0b2" azure-identity openai requests
    az login
    
  • Azure CLI 2.60或更高

Important

Foundry 中的管理運算目前處於 公開預覽階段。 API 名稱、SKU 名稱及支援區域可能會在正式上市前改變。 內建的內容過濾並非公開預覽版中管理計算資料路徑的一部分。 如果你需要請求層級或回應層級的過濾,請直接從應用程式呼叫 Azure AI 內容安全 APIS

在目錄中選擇一款型號

受控計算會從 Foundry 模型目錄中的 Hugging Face Collection 部署模型,並由 azure-huggingface 登錄提供服務。

  1. 登入 Microsoft Foundry。 確定 新鑄造廠 的開關是開啟的。 這些步驟指的是 Foundry (新版)
  2. 選擇您的訂閱與 Foundry 資源。
  3. 在右上角的導覽中選擇 「組裝 」,然後在左側窗格選擇 「模型 」。
  4. 請依 收藏篩選目錄。 選擇 Hugging Face。 你也可以用其他篩選器縮小你想部署的模型範圍(例如選擇像 Qwen 這樣的模型族群),或依照模式或任務來篩選。 你也可以用型號名稱搜尋。
  5. 選擇一張模型卡(例如 nvidia-nemotron-3-nano-30b-a3b-fp8)以開啟其詳細資訊。

模型卡顯示上游授權、模式、支援任務,以及為模型發布的部署範本。 如果你打算透過 Python SDK 或 REST 部署,而不是使用入口網站精靈,部署呼叫時需要輸入三個值。 您可以在 Foundry 入口網站找到以下數值:

  • 型號識別碼:該模型的完整合格登記資產識別碼。 可於型錄中的 型號卡 (從型號詳情欄複製)取得。 範例:

    azureml://registries/azure-huggingface/models/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8/versions/2
    
  • 部署範本 ID:識別模型的執行時、加速器族與數量,以及上下文長度。 可在你於模型卡上選取Deploy時開啟的部署精靈中使用。 選擇一個範本,並從精靈複製部署範本 ID。 範例:

    azureml://registries/azure-huggingface/deploymenttemplates/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8--nvidia-h100/labels/latest
    

    Note

    模型 ID 與部署範本 ID 必須相容;每個範本都會列出它所支援的模型版本。 入口網站精靈只會顯示你選擇模型的相容範本。 如果您使用程式碼部署,請確認兩個參考都會解析為 azure-huggingface 登錄中的有效登錄資產。

    欲了解更多部署範本,請參閱「管理計算概覽」文章中的 部署範本

  • 加速器類型:例如 H100_80GBA100_80GB、 或 MI_300_192GB。 會顯示在部署精靈中各範本的旁邊。

部署模型

  1. 在模型卡上選擇 部署 以開啟部署精靈。

  2. 請指定一個 部署名稱。 部署名稱是您的應用程式在進行推論時傳入 model 欄位的名稱——請選擇一個穩定且便於應用程式使用的名稱(例如 nemotron-3-nano-30b)。

  3. 部署類型(全域受管理運算)會在部署精靈中預先選擇。

  4. 選擇符合你工作負載的 部署範本 。 例如,H100 單加速器範本,成本最低且上下文長度適中;若提示超過單一加速器上下文限制,則可選擇雙加速器範本。

  5. 選擇加速H100_80GB,例如 。

  6. 模型實例 設定為( 1 或如果你測量過工作負載,則設定更高)。 模型實例 會決定受控運算資源的規模,並且是部署 SKU 上的 capacity 值。 每個實例會消耗模板定義的加速器數量;例如,一個模板指定每個實例使用一個 H100,容量為 2,則共用兩個 H100 加速器。

    Tip

    先從第一次部署開始 capacity: 1 ,然後在測量工作負載後再擴充容量。 請參閱「 管理與擴展部署 」以了解如何提升容量。

  7. 勾選核取方塊以確認部署費用。

  8. 請選擇 部署。 配置通常需要 10 到 15 分鐘。

驗證部署

當模型已在 Foundry 端點後方上線時,部署詳細資料頁面會從 Creating 更新為 Succeeded。 您可以查看部署的詳細資訊,包括配置狀態、部署類型,以及您在建立部署時所做的其他選擇。

傳送測試要求

部署準備好後,在 Foundry Playground 進行互動測試。

  1. 選取 Playground 分頁,從部署詳細資料頁面切換至該分頁。
  2. 發送一個提示來測試部署。

監控部署情況

受管理的運算部署會在與其他 Foundry 部署相同的 Azure 監視器 表面上發出指標。 在 Foundry 入口網站的部署詳細資料頁面中,監視索引標籤會顯示:

  • 依 HTTP 狀態碼分組請求數量。
  • 反應時間百分位數(第50頁、第90頁、第99頁)。
  • 對於對話補全模型:輸入和輸出詞元計數、第一個詞元時間 (TTFT) 百分位數,以及詞元間解碼時間百分位數。

若要進行更深入的分析或警示,請在 Azure 入口網站開啟部署,並在 Monitoring 下使用 Metrics,繪製相同指標、依部署分組並設定警示。 系統會依部署自動產生計費標籤。 透過部署標籤篩選成本管理,將支出歸因於特定的受管理運算部署。 如需詳細資訊,請參閱Microsoft Foundry 的成本規劃與管理

刪除部署

刪除部署後,系統會釋放已分配的加速器資源,並立即停止計費。 若要刪除部署:

  1. 請前往 Foundry 入口網站的部署清單。
  2. 選取部署名稱旁邊的選項按鈕。
  3. 在右側窗格中,選取 [刪除]

要求更多配額

受管理的運算配額會透過 Foundry 配額流程,按區域中各加速器系列授予,且與 Azure VM 配額分開。 現有的 Azure VM 配額無法套用到受管理的運算部署。

如需申請更多配額:

  1. 在右上角的導覽中選擇 「管理 」,然後在左側窗格選擇 「配額 」。
  2. 選擇 「受管運算 」分頁。表格列出依加速器家族與區域分組的當前配置。
  3. 請在右上角選擇 「請求配額 」。
  4. 在申請表中,選擇加速器家族(A100、H100 或 MI300X)、目標區域及所請求的配額。 提交申請。

已核准的配額變更最多可能需要 15 分鐘才會生效。 請重新整理 配額 頁面以驗證更新後的分配。 欲了解更多配額概念,請參閱 資源配額管理與增加

請使用以下 Python 腳本部署模型。 請將佔位符替換成你自己的訂閱 ID、資源群組、Foundry 帳號名稱和部署名稱。

Tip

先從第一次部署開始 capacity: 1 ,然後在測量工作負載後再擴充容量。 請參閱「 管理與擴展部署 」以了解如何提升容量。

from azure.identity import DefaultAzureCredential
from azure.mgmt.cognitiveservices import CognitiveServicesManagementClient

SUBSCRIPTION_ID  = "<your-subscription-id>"
RESOURCE_GROUP   = "<your-resource-group>"
ACCOUNT_NAME     = "<your-foundry-account>"
DEPLOYMENT_NAME  = "nemotron-3-nano-30b"

MODEL = "azureml://registries/azure-huggingface/models/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8/versions/2"
TEMPLATE = "azureml://registries/azure-huggingface/deploymenttemplates/nvidia--nvidia-nemotron-3-nano-30b-a3b-fp8--nvidia-h100/labels/latest"

client = CognitiveServicesManagementClient(
    DefaultAzureCredential(), SUBSCRIPTION_ID
)

deployment = client.managed_compute_deployments.begin_create_or_update(
    resource_group_name=RESOURCE_GROUP,
    account_name=ACCOUNT_NAME,
    deployment_name=DEPLOYMENT_NAME,
    resource={
        "sku": {"name": "GlobalManagedCompute", "capacity": 1},
        "properties": {
            "model": MODEL,
            "deploymentTemplate": TEMPLATE,
            "acceleratorType": "H100_80GB",
            "versionUpgradeOption": "OnceNewDefaultVersionAvailable",
        },
    },
).result()  # blocks until terminal state (~10–15 min)

print(f"State: {deployment.properties.provisioning_state}")
print(f"ID:    {deployment.id}")

驗證部署

建立部署後,請先確認其運作正常,再將流量導向該部署。

d = client.managed_compute_deployments.get(
    resource_group_name=RESOURCE_GROUP,
    account_name=ACCOUNT_NAME,
    deployment_name=DEPLOYMENT_NAME,
)

print(f"State:        {d.properties.provisioning_state}")    # expect: Succeeded
print(f"Model:        {d.properties.model}")
print(f"Template:     {d.properties.deployment_template}")
print(f"Accelerator:  {d.properties.accelerator_type}")
print(f"Capacity:     {d.sku.capacity}")

尋找:

  • provisioningState: Succeeded 代表部署已啟動。
  • acceleratorType 與你要求的金額相符。
  • sku.capacity 與你要求的實例數量相符。

如果 provisioningStateFailed,請參見 故障排除

傳送測試要求

受管理的運算部署可透過統一的 Foundry 端點存取:

https://<account>.services.ai.azure.com/openai/v1/

model請求主體中的欄位會取用你指定的部署名稱,而不是型號 ID。

from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import OpenAI

ACCOUNT_NAME    = "<your-foundry-account>"
DEPLOYMENT_NAME = "nemotron-3-nano-30b"

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(),
    "https://cognitiveservices.azure.com/.default",
)

client = OpenAI(
    base_url=f"https://{ACCOUNT_NAME}.services.ai.azure.com/openai/v1",
    api_key="placeholder",  # required by OpenAI SDK; overridden by Authorization header
    default_headers={"Authorization": f"Bearer {token_provider()}"},
)

resp = client.chat.completions.create(
    model=DEPLOYMENT_NAME,
    messages=[{"role": "user", "content": "What is the capital of France?"}],
)

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

使用 Microsoft Entra ID 呼叫部署需要在 Foundry 帳號上啟用 Azure AI User 角色。

管理與擴展部署

由於受管理的運算部署是以模型為中心,部署的規模是透過改變模型實例數量來進行,而非透過節點大小來擴展。

變更容量

d = client.managed_compute_deployments.get(
    RESOURCE_GROUP, ACCOUNT_NAME, DEPLOYMENT_NAME
)
d.sku.capacity = 3

client.managed_compute_deployments.begin_create_or_update(
    resource_group_name=RESOURCE_GROUP,
    account_name=ACCOUNT_NAME,
    deployment_name=DEPLOYMENT_NAME,
    resource=d,
).result()

取得執行階段和模型更新

在部署時將 versionUpgradeOption 設為 OnceNewDefaultVersionAvailable,可讓該部署在 Microsoft 發布新的預設模型和執行階段版本時自動採用它們。 執行時修補程式與 CVE 修正會自動套用於即時客戶部署;你不會重新部署模型來接收它們。

監控部署情況

受管理的運算部署會在與其他 Foundry 部署相同的 Azure 監視器 表面上發出指標。 如需更深入的分析或警示,請在 Azure 入口網站開啟部署,並在 Monitoring 下使用 Metrics來繪製如下指標:

  • 依 HTTP 狀態碼分組請求數量。
  • 反應時間百分位數(第50頁、第90頁、第99頁)。
  • 對於對話補全模型:輸入和輸出詞元計數、第一個詞元時間 (TTFT) 百分位數,以及詞元間解碼時間百分位數。

你也可以依部署分組並設定警示。 系統會依部署自動產生計費標籤。 透過部署標籤篩選成本管理,將支出歸因於特定的受管理運算部署。 如需詳細資訊,請參閱Microsoft Foundry 的成本規劃與管理

刪除部署

刪除部署後,系統會釋放已分配的加速器資源,並立即停止計費。 若要刪除部署:

client.managed_compute_deployments.begin_delete(
    resource_group_name=RESOURCE_GROUP,
    account_name=ACCOUNT_NAME,
    deployment_name=DEPLOYMENT_NAME,
).result()

存取控制摘要

Action 最低角色
建立、更新或刪除一個受管理的運算部署 Foundry 帳戶上的 Cognitive Services Contributor (或 Foundry Owner / Foundry Account Owner)
讀取部署或列出部署 認知服務使用者、Foundry 使用者、Foundry 專案經理,或上述任何角色
用 Microsoft Entra ID 呼叫部署 Foundry 帳戶上的 Foundry User
用 API 金鑰呼叫部署 帳號金鑰(通話本身不需要 Azure 角色;金鑰擷取需要讀取權限)

關於完整的Azure資源提供者操作清單、角色到權限矩陣,以及與標準部署的比較,請參見 Microsoft Foundry 的 角色基礎存取控制 — 受管理的計算控制平面操作

Troubleshooting

provisioningState: Failed

確認所請求的加速器家族已在目標區域核准配額,且所選部署範本列出該加速器家族。 模型與部署範本不匹配,例如為不同模型版本發布的範本,是常見原因。 確認兩個參考都會解析為 azure-huggingface 登錄中的有效登錄資產。

建立時出現 "Quota exceeded"

Foundry 帳戶在該區域中的受管理運算配額,不足以支援所要求的加速器系列。 請求更多配額。 Azure VM 配額不適用於受管理運算。

該地區的「容量不足」

該區域未回報所需加速器家族的容量。 試試不同的家族(例如部署在 MI300X 而不是 H100)、選擇每個實例加速器較少的模板,或鎖定不同區域。 像 MI300X 這類較大記憶體系列通常能容納無法放進 A100 的型號。

來自 /openai/v1/ 路由的 404

如果對 https://<account>.services.ai.azure.com/openai/v1/chat/completions 發出的聊天完成要求傳回 404,請確認:

  • 請求主體中的部署名稱與你建立的部署名稱相符。
  • 部署的 provisioningStateSucceeded
  • 模型的執行階段會公開對話補全。 某些執行階段 (例如用於內嵌的 TEI) 不會公開對話補全路由;請改用模型卡上記錄的路由。

部署停留在 Creating 超過 20 分鐘

有些較大型模型需要比一般10至15分鐘更長的時間。 如果 20 分鐘後 provisioningState 仍為 Creating,請查看 Foundry 入口網站中的部署詳細資料頁面,確認是否有作業狀態訊息,並確認基礎區域未發生劣化。 如果部署停留在 Creating 超過 30 分鐘且沒有操作訊息,請將其刪除後再重試。 佈建在部署名稱上具有等冪性。