共用方式為


使用程式碼部署 Microsoft Foundry 模型

備註

本文件指的是 Microsoft Foundry(經典版) 入口網站。

🔄如果你正在使用新的入口網站,請切換至 Microsoft Foundry(新版)文件

備註

本文件指的是 Microsoft Foundry(新) 入口網站。

這很重要

如果您目前使用 Azure AI Inference 測試版 SDK 搭配 Microsoft Foundry Models 或 Azure OpenAI 服務,我們強烈建議您轉換至普遍使用的 OpenAI/v1 API,該 API 採用 OpenAI 穩定的 SDK。

如需如何使用您選擇的程式設計語言的 SDK 移轉至 OpenAI/v1 API 的詳細資訊,請參閱 從 Azure AI 推斷 SDK 移轉至 OpenAI SDK

你可以決定並設定哪些模型可用於 Microsoft Foundry 資源推論。 當您設定模型時,您可以在請求中指定其模型名稱或部署名稱,以從中產生預測。 您不需要在程式碼中進行任何其他變更即可使用模型。

在本文中,您將學習如何在 Foundry Models 端點中新增模型。

先決條件

若要完成本文,您需要:

  • 安裝 Azure CLIcognitiveservices Foundry Tools 的擴充功能。

    az extension add -n cognitiveservices
    
  • 本指導教學中的某些命令使用該 jq 工具,該工具可能未安裝在您的系統上。 如需安裝指示,請參閱 下載 jq

  • 識別下列資訊:

    • 您的 Azure 訂用帳戶識別碼。

    • 你的鑄造工具資源名稱。

    • 你部署 Foundry Tools 資源的資源群組。

加入模型

若要新增模型,請先識別您要部署的模型。 您可以查詢可用的模型,如下所示:

  1. 登入 Azure 訂用帳戶。

    az login
    
  2. 如果您有多個訂用帳戶,請選取資源所在的訂用帳戶。

    az account set --subscription $subscriptionId
    
  3. 請設定以下環境變數,並標示你計畫使用的 Foundry 工具資源名稱及資源群組。

    accountName="<ai-services-resource-name>"
    resourceGroupName="<resource-group>"
    location="eastus2"
    
  4. 如果你還沒建立 Foundry Tools 帳號,就先建立一個。

    az cognitiveservices account create -n $accountName -g $resourceGroupName --custom-domain $accountName --location $location --kind AIServices --sku S0
    
  5. 檢查可提供給您的型號及其所屬 SKU。 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 }'
    
  6. 輸出如下所示:

    {
      "name": "Phi-3.5-vision-instruct",
      "format": "Microsoft",
      "version": "2",
      "sku": "GlobalStandard",
      "capacity": 1
    }
    
  7. 識別您想要部署的模型。 您需要屬性 nameformatversionsku。 屬性 format 表示提供模型的提供者。 根據部署類型,您可能還需要容量。

  8. 將模型部署新增至資源。 下列範例會新增 Phi-3.5-vision-instruct

    az cognitiveservices account deployment create \
        -n $accountName \
        -g $resourceGroupName \
        --deployment-name Phi-3.5-vision-instruct \
        --model-name Phi-3.5-vision-instruct \
        --model-version 2 \
        --model-format Microsoft \
        --sku-capacity 1 \
        --sku-name GlobalStandard
    
  9. 該模型已準備就緒。

您可以視需要多次部署相同的模型,只要它是在不同的部署名稱下即可。 如果您想要測試指定模型的不同組態,包括內容篩選器,此功能可能很有用。

使用該模型

已部署的模型可以透過資源的 Azure AI 模型的推斷端點取用。 建構要求時,請指出 參數 model ,並插入您已建立的模型部署名稱。 您可以使用下列程式代碼,以程式設計方式取得推斷端點的 URI:

推斷端點

az cognitiveservices account show  -n $accountName -g $resourceGroupName | jq '.properties.endpoints["Azure AI Model Inference API"]'

若要向 Microsoft Foundry Models 端點提出請求,請附加路由 models,例如 https://<resource>.services.ai.azure.com/models。 您可以在 Azure AI 模型推斷 API 參考頁面看到端點的 API 參考。

推理鍵

az cognitiveservices account keys list  -n $accountName -g $resourceGroupName

管理部署

您可以使用 CLI 檢視所有可用的部署:

  1. 執行下列命令以檢視所有作用中的部署:

    az cognitiveservices account deployment list -n $accountName -g $resourceGroupName
    
  2. 您可以看到指定部署的詳細資料:

    az cognitiveservices account deployment show \
        --deployment-name "Phi-3.5-vision-instruct" \
        -n $accountName \
        -g $resourceGroupName
    
  3. 您可以刪除指定的部署,如下所示:

    az cognitiveservices account deployment delete \
        --deployment-name "Phi-3.5-vision-instruct" \
        -n $accountName \
        -g $resourceGroupName
    

你可以決定並設定哪些模型可用於 Microsoft Foundry 資源推論。 當您設定模型時,您可以在請求中指定其模型名稱或部署名稱,以從中產生預測。 您不需要在程式碼中進行任何其他變更即可使用模型。

在本文中,您將學習如何在 Foundry Models 端點中新增模型。

先決條件

若要完成本文,您需要:

  • 安裝 Azure CLI

  • 識別下列資訊:

    • 您的 Azure 訂用帳戶識別碼。

    • 您的 Microsoft Foundry 資源(前稱 Azure AI Services 資源)名稱。

    • 部署 Foundry 資源的資源群組。

    • 您要部署的模型名稱、提供者、版本和 SKU。 你可以使用 Foundry 入口網站或 Azure CLI 來查詢這些資訊。 在此範例中,您會部署下列模型:

      • 模型名稱:Phi-3.5-vision-instruct
      • 提供者Microsoft
      • 版本:2
      • 部署類型:全域標準

關於本教學課程

本文中的範例是以 Azure-Samples/azureai-model-inference-bicep 存放庫中所包含的程式代碼範例為基礎。 若要在本機執行命令,而不需要複製或貼上檔案內容,請使用下列命令來複製存放庫,並移至您程式代碼撰寫語言的資料夾:

git clone https://github.com/Azure-Samples/azureai-model-inference-bicep

此範例的檔案位於:

cd azureai-model-inference-bicep/infra

訂閱合作夥伴和社群的模型所需的權限

來自合作夥伴和社群的 Foundry 模型可供部署(例如 Cohere 模型),需要 Azure Marketplace。 模型提供者會定義授權條款,並使用 Azure Marketplace 設定其模型使用的價格。

部署第三方模型時,請確定您在帳戶中具有下列許可權:

  • 在 Azure 訂用帳戶上:
    • Microsoft.MarketplaceOrdering/agreements/offers/plans/read
    • Microsoft.MarketplaceOrdering/agreements/offers/plans/sign/action
    • Microsoft.MarketplaceOrdering/offerTypes/publishers/offers/plans/agreements/read
    • Microsoft.Marketplace/offerTypes/publishers/offers/plans/agreements/read
    • Microsoft.SaaS/register/action
  • 在資源群組上 - 以建立及使用 SaaS 資源:
    • Microsoft.SaaS/resources/read
    • Microsoft.SaaS/resources/write

新增模型

  1. 使用樣本 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
      }
    }
    
  2. 執行部署:

    RESOURCE_GROUP="<resource-group-name>"
    ACCOUNT_NAME="<azure-ai-model-inference-name>" 
    MODEL_NAME="Phi-3.5-vision-instruct"
    PROVIDER="Microsoft"
    VERSION=2
    
    az deployment group create \
        --resource-group $RESOURCE_GROUP \
        --template-file ai-services-deployment-template.bicep \
        --parameters accountName=$ACCOUNT_NAME modelName=$MODEL_NAME modelVersion=$VERSION modelPublisherFormat=$PROVIDER
    

使用該模型

已部署的模型可以透過資源的 Azure AI 模型的推斷端點取用。 建構要求時,請指出 參數 model ,並插入您已建立的模型部署名稱。 您可以使用下列程式代碼,以程式設計方式取得推斷端點的 URI:

推斷端點

az cognitiveservices account show  -n $accountName -g $resourceGroupName | jq '.properties.endpoints["Azure AI Model Inference API"]'

若要向 Foundry Models 端點提出請求,請附加路由 models,例如 https://<resource>.services.ai.azure.com/models。 您可以在 Azure AI 模型推斷 API 參考頁面看到端點的 API 參考。

推理鍵

az cognitiveservices account keys list  -n $accountName -g $resourceGroupName

後續步驟