你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用代码部署 Microsoft Foundry 模型

注释

本文档引用 Microsoft Foundry (经典) 门户。

🔄 如果你使用的是新门户,请切换到 Microsoft Foundry(新)文档

注释

本文档指的是 Microsoft Foundry(新) 门户网站。

重要

如果当前将 Azure AI 推理 beta SDK 与 Microsoft Foundry 模型或 Azure OpenAI 服务配合使用,强烈建议过渡到正式版 OpenAI/v1 API,该 API 使用 OpenAI 稳定 SDK。

有关如何使用所选编程语言中的 SDK 迁移到 OpenAI/v1 API 的详细信息,请参阅 从 Azure AI 推理 SDK 迁移到 OpenAI SDK

可以决定和配置哪些模型可用于Microsoft Foundry 资源中的推理。 配置模型时,可以通过在请求中指定模型名称或部署名称来生成预测。 无需在代码中进行任何其他更改才能使用该模型。

本文介绍如何向 Foundry 模型终结点添加新模型。

先决条件

若要完成本文,需要做好以下准备:

  • 安装 Azure CLIcognitiveservices 的 Foundry 工具扩展。

    az extension add -n cognitiveservices
    
  • 本教程中的某些命令使用 jq 该工具,该工具可能未安装在系统上。 有关安装说明,请参阅下载 jq

  • 标识以下信息:

    • Azure 订阅 ID。

    • Foundry Tools 资源名称。

    • 在其中部署 Foundry Tools 资源的资源组。

添加模型

若要添加模型,请先标识要部署的模型。 可以按如下所示的方法查询可用模型:

  1. 登录到 Azure 订阅。

    az login
    
  2. 如果有多个订阅,请选择资源所在的订阅。

    az account set --subscription $subscriptionId
    
  3. 用计划使用的 Foundry Tools 资源名称和资源组设置以下环境变量。

    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,例如 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 模型终结点添加新模型。

先决条件

若要完成本文,需要做好以下准备:

  • 安装 Azure CLI

  • 标识以下信息:

    • Azure 订阅 ID。

    • Microsoft Foundry 资源(原称 Azure AI 服务资源)名称。

    • 在其中部署 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 市场的价格。

部署第三方模型时,请确保帐户中具有以下权限:

  • 关于 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,例如 https://<resource>.services.ai.azure.com/models。 可以在 Azure AI 模型推理 API 参考页中查看终结点的 API 参考。

推理密钥

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

后续步骤