在本文中,您將學習如何在 Foundry Models 端點新增模型部署。 當您在要求中指定部署名稱時,該部署即可在您的 Foundry 資源中用於推斷。
先決條件
要完成這篇文章,你需要以下條件:
一個 Azure 訂閱。
一個鑄造廠的專案。 此專案類型由 Foundry 資源管理。 如果你沒有 Foundry 專案,請參考 為 Microsoft Foundry 建立專案。
Azure 角色基礎存取控制(RBAC)權限用於建立和管理部署。 你需要擁有 Cognitive Services Contributor 角色或等同於此角色的 Foundry 資源權限。
合作夥伴和社群提供的 Foundry 模型需要存取 Azure Marketplace。 確保你擁有 訂閱模型產品的權限。 由 Azure 銷售的 Foundry 模型沒有這項要求。
安裝 Azure CLI(版本 2.60 或更新版本)。
az cognitiveservices本文所用的指令是核心 CLI 的一部分,因此不需要額外的擴充。這個教學中有些指令會使用這個
jq工具,但你的系統可能沒有安裝這個工具。 安裝說明請參見 下載jq。請確認以下資訊:
- 您的 Azure 訂閱 ID
- 你的鑄造資源名稱
- 你部署 Foundry 資源的資源群組
你想部署的型號名稱、提供者、版本和 SKU。 請使用 Foundry 入口網站或 Azure CLI 來查詢這些資訊。 在此範例中,你部署的模型如下:
-
型號名稱:
Phi-4-mini-instruct -
Provider:
Microsoft -
版本:
1 - 部署類型:全球標準
-
型號名稱:
訂閱模型需合作夥伴與社群授權
合作夥伴及社群提供的 Foundry 模型(例如 Cohere 模型)可供部署,這需要使用 Azure Marketplace。 模型提供者定義授權條款,並透過 Azure Marketplace 設定使用模型的價格。
部署第三方模型時,請確保你的帳號具備以下權限:
- 關於 Azure 訂閱:
Microsoft.MarketplaceOrdering/agreements/offers/plans/readMicrosoft.MarketplaceOrdering/agreements/offers/plans/sign/actionMicrosoft.MarketplaceOrdering/offerTypes/publishers/offers/plans/agreements/readMicrosoft.Marketplace/offerTypes/publishers/offers/plans/agreements/readMicrosoft.SaaS/register/action
- 關於資源群組——建立並使用 SaaS 資源:
Microsoft.SaaS/resources/readMicrosoft.SaaS/resources/write
Azure訂閱上的 Owner 和 Contributor 角色包含這些權限。 如果你沒有所需的權限,請你的訂閱管理員指派你貢獻 者 角色,或建立包含上述動作的 自訂角色 。
要驗證您的權限,請前往 Azure 入口網站,開啟您的訂閱,選擇 存取控制(IAM)>Check access,並檢視您所分配的角色。
提示
Microsoft.SaaS/register/action 是在訂用帳戶上對 SaaS 資源提供者進行的一次性註冊。 註冊後,不需要每次部署都重複。
新增模型
要新增模型,首先要確定你想部署的模型。 查詢可用模型如下:
登入你的 Azure 訂閱。
az login如果你有多個訂閱,請選擇你資源所在的訂閱。
subscriptionId="<subscription-id>" az account set --subscription $subscriptionId請設定以下環境變數,並標示你計畫使用的 Foundry 資源名稱及資源群組。
accountName="<ai-services-resource-name>" resourceGroupName="<resource-group>" location="eastus2"如果你還沒建立 Foundry 資源,就先建立一個。
az cognitiveservices account create -n $accountName -g $resourceGroupName --custom-domain $accountName --location $location --kind AIServices --sku S0查看你有哪些型號可用,以及屬於哪個 SKU。 每種部署類型都以 CLI 和 ARM 中的 SKU 程式碼表示,並定義 Azure 基礎架構如何處理請求。 不同型號可能提供不同的部署類型。 以下指令列出所有可用的模型定義:
az cognitiveservices account list-models \ -n $accountName \ -g $resourceGroupName \ | jq '.[] | { name: .name, format: .format, version: .version, sku: .skus[0].name, capacity: .skus[0].capacity.default }'輸出包含可用模型及其特性:
{ "name": "Phi-4-mini-instruct", "format": "Microsoft", "version": "1", "sku": "GlobalStandard", "capacity": 1000 }確定你想部署的模型。 你需要
name、format、version和sku的性質。 該屬性format指示提供模型的供應商。 根據部署類型,你可能還需要產能。將模型的部署加入到資源中。 以下範例補充
Phi-4-mini-instruct:az cognitiveservices account deployment create \ -n $accountName \ -g $resourceGroupName \ --deployment-name Phi-4-mini-instruct \ --model-name Phi-4-mini-instruct \ --model-version 1 \ --model-format Microsoft \ --sku-capacity 1 \ --sku-name GlobalStandard確認部署是否成功完成:
az cognitiveservices account deployment show \ --deployment-name Phi-4-mini-instruct \ -n $accountName \ -g $resourceGroupName \ | jq '.properties.provisioningState'輸出應該會顯示
"Succeeded"。 模型在配置完成後即可使用。Reference: az cognitiveservices account deployment show
如果需要,你可以多次部署同一個模型,只要你給它不同的部署名稱。 此功能適用於想測試特定模型不同配置(包括內容過濾器)時。
新增模型
使用範本
ai-services-deployment-template.bicep來描述模型部署:ai-services-deployment-template.bicep
@description('Name of the Azure AI services account') param accountName string @description('Name of the model to deploy') param modelName string @description('Version of the model to deploy') param modelVersion string @allowed([ 'AI21 Labs' 'Cohere' 'Core42' 'DeepSeek' 'xAI' 'Meta' 'Microsoft' 'Mistral AI' 'OpenAI' ]) @description('Model provider') param modelPublisherFormat string @allowed([ 'GlobalStandard' 'DataZoneStandard' 'Standard' 'GlobalProvisioned' 'Provisioned' ]) @description('Model deployment SKU name') param skuName string = 'GlobalStandard' @description('Content filter policy name') param contentFilterPolicyName string = 'Microsoft.DefaultV2' @description('Model deployment capacity') param capacity int = 1 resource modelDeployment 'Microsoft.CognitiveServices/accounts/deployments@2024-04-01-preview' = { name: '${accountName}/${modelName}' sku: { name: skuName capacity: capacity } properties: { model: { format: modelPublisherFormat name: modelName version: modelVersion } raiPolicyName: contentFilterPolicyName == null ? 'Microsoft.Nill' : contentFilterPolicyName } }執行部署:
resourceGroupName="<resource-group-name>" accountName="<ai-services-resource-name>" modelName="Phi-4-mini-instruct" provider="Microsoft" version=1 az deployment group create \ --resource-group $resourceGroupName \ --template-file ai-services-deployment-template.bicep \ --parameters accountName=$accountName modelName=$modelName modelVersion=$version modelPublisherFormat=$provider確認部署是否成功完成:
az cognitiveservices account deployment show \ --deployment-name $modelName \ -n $accountName \ -g $resourceGroupName \ | jq '.properties.provisioningState'輸出應該會顯示
"Succeeded"。
註
本文其餘各節對於 CLI 和 Bicep 這兩種作法都相同。
使用這個模型
您可以針對資源使用 Foundry 模型的端點,來取用已部署的模型。 當你建構請求時,指定參數 model 並插入你建立的模型部署名稱。 你可以透過以下程式碼程式化取得推論端點的 URI:
推論端點
az cognitiveservices account show -n $accountName -g $resourceGroupName | jq '.properties.endpoints["Azure OpenAI Legacy API - Latest moniker"]'
要使用 OpenAI v1 API 向 Foundry Models 端點提出請求,請在端點 URL 上呼叫 /openai/v1/ 路由, https://<resource-name>.openai.azure.com/openai/v1/ 並在請求欄位中傳遞部署名稱 model 。 路由 /openai/v1/ 採用隱式版本控制,所以你不會傳遞 api-version.
請參閱 Azure OpenAI v1 API 參考資料以了解所有支援的操作。
推論鍵
az cognitiveservices account keys list -n $accountName -g $resourceGroupName
管理部署
使用 CLI 查看所有可用的部署:
執行以下指令即可查看所有正在部署的狀態:
az cognitiveservices account deployment list -n $accountName -g $resourceGroupName執行以下指令以查看特定部署的細節:
az cognitiveservices account deployment show \ --deployment-name "Phi-4-mini-instruct" \ -n $accountName \ -g $resourceGroupNameReference: az cognitiveservices account deployment show
執行以下指令刪除特定的部署:
az cognitiveservices account deployment delete \ --deployment-name "Phi-4-mini-instruct" \ -n $accountName \ -g $resourceGroupName
故障排除
| 錯誤 | 成因 | 解決方法 |
|---|---|---|
| 配額超標 | 您的訂閱已達到所選 SKU 或區域的部署配額。 | 請在 Foundry 入口網站查詢你的配額,或透過 Azure 支援 申請增加。 |
| 授權失敗 | 使用的識別沒有必要的 RBAC 角色。 | 在 Foundry 資源中指定認知 服務貢獻 者角色。 |
| 型號未提供 | 這個模型在你的地區或訂閱中都無法使用。 | 執行 az cognitiveservices account list-models 查看可用的模型和地區。 |
| 無法辨識命令 | 你的 Azure CLI 已經過時了。 | 使用az upgrade更新至 2.60 或更新版本。 這些 az cognitiveservices 指令是核心 CLI 的一部分,不需要另外的擴充功能。 |