Implantar modelos usando CLI do Azure e Bicep

Neste artigo, você aprenderá a adicionar uma nova implantação de modelo a um ponto de extremidade do Foundry Models. A implantação está disponível para inferência no recurso Foundry quando você especifica o nome da implantação em suas solicitações.

Pré-requisitos

Para concluir este artigo, você precisa do seguinte:

  • Uma assinatura Azure.

  • Um projeto do Foundry. Esse tipo de projeto é gerenciado em um recurso do Foundry. Se você não tiver um projeto do Foundry, consulte Criar um projeto para Microsoft Foundry.

  • Permissões de controle de acesso baseado em função (RBAC) do Azure para criar e gerenciar implantações. Você precisa da função colaborador dos Serviços Cognitivos ou de permissões equivalentes para o recurso Foundry.

  • Modelos do Foundry de parceiros e da comunidade requerem acesso ao Azure Marketplace. Verifique se você tem as permissões necessárias para assinar os modelos oferecidos. Foundry Models vendidos pela Azure não têm esse requisito.

  • Instale o CLI do Azure (versão 2.60 ou posterior). Os az cognitiveservices comandos usados neste artigo fazem parte da CLI principal, portanto, nenhuma extensão extra é necessária.

  • Alguns comandos neste tutorial usam a jq ferramenta, que pode não estar instalada em seu sistema. Para obter instruções de instalação, consulte Baixar jq.

  • Identifique as seguintes informações:

    • Sua ID da assinatura Azure
    • Seu nome do recurso Foundry
    • O grupo de recursos em que você implantou o recurso Foundry
  • O nome do modelo, o provedor, a versão e a SKU que você deseja implantar. Use o portal do Foundry ou o CLI do Azure para encontrar essas informações. Neste exemplo, você implanta o seguinte modelo:

    • Nome do modelo: Phi-4-mini-instruct
    • Provedor: Microsoft
    • Versão: 1
    • Tipo de implantação: padrão global

Permissões necessárias para assinar os modelos de parceiros e comunidade

Modelos Foundry de parceiros e comunidade disponíveis para implantação (por exemplo, modelos Cohere) exigem Azure Marketplace. Os provedores de modelo definem os termos de licença e definem o preço para o uso de seus modelos usando Azure Marketplace.

Ao implantar modelos de terceiros, verifique se você tem as seguintes permissões em sua conta:

  • Na assinatura 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
  • No grupo de recursos, para criar e utilizar o recurso SaaS:
    • Microsoft.SaaS/resources/read
    • Microsoft.SaaS/resources/write

As funções internas Owner e Contributor na assinatura Azure incluem essas permissões. Se você não tiver as permissões necessárias, peça ao administrador da assinatura que lhe atribua a função colaborador ou crie uma função personalizada que inclua as ações listadas.

Para verificar suas permissões, acesse o portal do Azure, abra sua assinatura, selecione Controle de Acesso (IAM)>Verificar acesso e reveja seus papéis atribuídos.

Dica

Microsoft.SaaS/register/action é um registro único do provedor de recursos SaaS na assinatura. Após o registro, ele não precisa ser repetido para cada implantação.

Adicionar o modelo

Para adicionar um modelo, primeiro identifique o modelo que você deseja implantar. Consulte os modelos disponíveis da seguinte maneira:

  1. Entre em sua assinatura Azure.

    az login
    
  2. Se você tiver mais de uma assinatura, selecione a assinatura em que o recurso está localizado.

    subscriptionId="<subscription-id>"
    az account set --subscription $subscriptionId
    
  3. Defina as variáveis de ambiente a seguir com o nome do recurso Foundry que você planeja usar e o grupo de recursos.

    accountName="<ai-services-resource-name>"
    resourceGroupName="<resource-group>"
    location="eastus2"
    
  4. Se você ainda não criou um recurso do Foundry, crie um.

    az cognitiveservices account create -n $accountName -g $resourceGroupName --custom-domain $accountName --location $location --kind AIServices --sku S0
    

    Referência: az cognitiveservices account

  5. Verifique quais modelos estão disponíveis para você e em qual SKU. Cada tipo de implantação é representado por um código SKU na CLI e no ARM, e define como a infraestrutura do Azure processa solicitações. Os modelos podem oferecer diferentes tipos de implantação. O comando a seguir lista todas as definições de modelo disponíveis:

    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 }'
    

    A saída inclui modelos disponíveis com suas propriedades:

    {
      "name": "Phi-4-mini-instruct",
      "format": "Microsoft",
      "version": "1",
      "sku": "GlobalStandard",
      "capacity": 1000
    }
    

    Referência: az cognitiveservices account list-models

  6. Identifique o modelo que você deseja implantar. Você precisa das propriedades name, formate versionsku. A propriedade format indica o provedor que oferece o modelo. Dependendo do tipo de implantação, você também pode precisar de capacidade.

  7. Adicione a implantação de modelo ao recurso. O exemplo a seguir adiciona 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
    

    Referência: az cognitiveservices account deployment

  8. Verifique se a implantação foi concluída com êxito:

    az cognitiveservices account deployment show \
        --deployment-name Phi-4-mini-instruct \
        -n $accountName \
        -g $resourceGroupName \
    | jq '.properties.provisioningState'
    

    A saída deve ser exibida "Succeeded". O modelo está pronto para ser usado após a conclusão do provisionamento.

    Referência: az cognitiveservices account deployment show

Você pode implantar o mesmo modelo várias vezes, se necessário, desde que dê a ele um nome de implantação diferente. Essa funcionalidade será útil se você quiser testar configurações diferentes para um determinado modelo, incluindo filtros de conteúdo.

Adicionar o modelo

  1. Use o modelo ai-services-deployment-template.bicep para descrever implantações de modelo:

    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. Execute a implantação:

    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
    
  3. Verifique se a implantação foi concluída com êxito:

    az cognitiveservices account deployment show \
        --deployment-name $modelName \
        -n $accountName \
        -g $resourceGroupName \
    | jq '.properties.provisioningState'
    

    A saída deve ser exibida "Succeeded".

Nota

As seções restantes neste artigo são idênticas para ambas as abordagens: a CLI e o Bicep.

Usar o modelo

Você pode consumir modelos implantados usando os Pontos de Extremidade para Modelos do Foundry para o recurso. Ao construir sua solicitação, especifique o parâmetro model e insira o nome de implantação do modelo que você criou. Você pode obter programaticamente o URI para o ponto de extremidade de inferência usando o seguinte código:

Ponto de extremidade de inferência

az cognitiveservices account show  -n $accountName -g $resourceGroupName | jq '.properties.endpoints["Azure OpenAI Legacy API - Latest moniker"]'

Para fazer solicitações ao endpoint do Foundry Models usando a API OpenAI v1, chame a rota /openai/v1/ na URL do endpoint, https://<resource-name>.openai.azure.com/openai/v1/, e passe o nome da implantação no campo model da solicitação. A rota /openai/v1/ usa versionamento implícito, então você não precisa passar um api-version.

Consulte a referência da API Azure OpenAI v1 para todas as operações com suporte.

Chaves de inferência

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

Gerenciar implantações

Use a CLI para exibir todas as implantações disponíveis:

  1. Execute o seguinte comando para ver todas as implantações ativas:

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

    Referência: az cognitiveservices account deployment list

  2. Execute o seguinte comando para ver os detalhes de uma determinada implantação:

    az cognitiveservices account deployment show \
        --deployment-name "Phi-4-mini-instruct" \
        -n $accountName \
        -g $resourceGroupName
    

    Referência: az cognitiveservices account deployment show

  3. Execute o seguinte comando para excluir uma determinada implantação:

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

    Referência: az cognitiveservices account deployment delete

Solucionando problemas

Erro Causa Resolução
Cota excedida Sua assinatura atingiu a cota de implantação da SKU ou região selecionada. Verifique sua cota no portal do Foundry ou solicite um aumento por meio de Suporte do Azure.
Falha na autorização A identidade utilizada não tem a função RBAC necessária. Atribua a função Colaborador dos Serviços Cognitivos no recurso Foundry.
Modelo não disponível O modelo não está disponível em sua região ou assinatura. Execute az cognitiveservices account list-models para verificar os modelos e regiões disponíveis.
Comando não reconhecido Sua CLI do Azure está desatualizada. Atualizar para a versão 2.60 ou posterior com az upgrade. Os az cognitiveservices comandos fazem parte da CLI principal e não exigem uma extensão separada.