Implementar modelos usando CLI do Azure e Bicep

Neste artigo, aprende como adicionar uma nova implementação de modelo a um endpoint da Foundry Models. A implementação está disponível para inferência no seu recurso Foundry quando especifica o nome da implementação nos seus pedidos.

Pré-requisitos

Para completar este artigo, precisa do seguinte:

  • Uma subscrição do Azure.

  • Um projeto da Foundry. Este tipo de projeto é gerido através de um recurso da Foundry. Se não tiver um projeto Foundry, veja Criar um projeto para Microsoft Foundry.

  • Permissões de controlo de acesso baseado em funções (RBAC) do Azure para criar e gerir implementações. Precisas do papel de Contribuidor de Serviços Cognitivos ou de permissões equivalentes para o recurso Foundry.

  • Modelos Foundry de parceiros e da comunidade requerem acesso ao Azure Marketplace. Certifique-se de que tem as permissões necessárias para aderir às ofertas de modelos. Os modelos Foundry vendidos pela Azure não têm este requisito.

  • Instale a CLI do Azure (versão 2.60 ou posterior). Os az cognitiveservices comandos usados neste artigo fazem parte da CLI central, pelo que não é necessária uma extensão adicional.

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

  • Identifique a seguinte informação:

    • O seu ID de subscrição Azure
    • Nome do recurso da tua Foundry
    • O grupo de recursos onde implementaste o recurso Foundry
  • O nome do modelo, fornecedor, versão e SKU que queres implementar. Utilize o portal Foundry ou a CLI do Azure para encontrar esta informação. Neste exemplo, implementa o seguinte modelo:

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

Permissões necessárias para subscrever modelos de parceiros e da comunidade

Modelos Foundry de parceiros e comunidade disponíveis para implementação (por exemplo, modelos Cohere) requerem Azure Marketplace. Os fornecedores de modelos definem os termos da licença e definem o preço de utilização dos seus modelos usando o Azure Marketplace.

Ao implementar modelos de terceiros, certifique-se de que tem as seguintes permissões na sua conta:

  • Sobre a subscrição do 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
  • Sobre o grupo de recursos — para criar e usar o recurso SaaS:
    • Microsoft.SaaS/resources/read
    • Microsoft.SaaS/resources/write

Os papéis incorporados Owner e Contributor incorporados na subscrição Azure incluem estas permissões. Se não tiver as permissões necessárias, peça ao administrador da subscrição que lhe atribua o papel de Contribuidor , ou crie um papel personalizado que inclua as ações listadas.

Para verificar as suas permissões, vá ao portal Azure, abra a sua subscrição, selecione controlo de acesso (IAM)>Verifique acesso e reveja as funções atribuídas.

Dica

Microsoft.SaaS/register/action é um registo único do fornecedor de recursos SaaS na subscrição. Após o registo, não é necessário repetir para cada implementação.

Adicionar o modelo

Para adicionar um modelo, identifique primeiro o modelo que pretende implementar. Consulte os modelos disponíveis da seguinte forma:

  1. Inicie sessão na sua subscrição do Azure.

    az login
    
  2. Se tiver mais do que uma subscrição, selecione a subscrição onde o seu recurso está localizado.

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

    accountName="<ai-services-resource-name>"
    resourceGroupName="<resource-group>"
    location="eastus2"
    
  4. Se ainda não criaste um recurso Foundry, cria 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 os modelos disponíveis para si e sob que SKU. Cada tipo de implementação é representado por um código SKU na CLI e ARM, e define como a infraestrutura do Azure processa os pedidos. Os modelos podem oferecer diferentes tipos de implementação. O comando seguinte lista todas as definições de modelos 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 as suas propriedades:

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

    Referência: az cognitiveservices account list-models

  6. Identifica o modelo que queres implementar. Precisa das propriedades name, format, version, e sku. A propriedade format indica o fornecedor que oferece o modelo. Dependendo do tipo de implantação, também podes precisar de capacidade.

  7. Adicione a implementação do modelo ao recurso. O exemplo seguinte acrescenta 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: implementação da conta az cognitiveservices

  8. Verifique se a implementação foi concluída com sucesso:

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

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

    Referência: az cognitiveservices account deployment show

Podes implementar o mesmo modelo várias vezes, se necessário, desde que lhe dês um nome de implementação diferente. Esta funcionalidade é útil se quiser testar diferentes configurações para um determinado modelo, incluindo filtros de conteúdo.

Adicionar o modelo

  1. Use o modelo ai-services-deployment-template.bicep para descrever as implementações do 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. Efetuar a implementaçã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 implementação foi concluída com sucesso:

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

    A saída deve mostrar "Succeeded".

Nota

As secções restantes deste artigo são idênticas tanto para as abordagens CLI como Bicep.

Utilize o modelo

Pode consumir modelos implementados usando os Endpoints for Foundry Models para o recurso. Quando construir o seu pedido, especifique o parâmetro model e insira o nome de implementação do modelo que criou. Pode obter programaticamente o URI do endpoint de inferência usando o seguinte código:

Ponto final de inferência

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

Para efetuar pedidos ao endpoint do Foundry Models com a API OpenAI v1, chame a rota /openai/v1/ no URL do endpoint, https://<resource-name>.openai.azure.com/openai/v1/, e passe o nome da implementação no campo model do pedido. A rota /openai/v1/ usa versão implícita, por isso, não é necessário passar um api-version.

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

Chaves de inferência

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

Gerir implementações

Use a CLI para visualizar todas as implementações disponíveis:

  1. Execute o seguinte comando para ver todas as implementaçõ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 implementaçã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 eliminar uma determinada implementação:

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

    Referência: az cognitiveservices account deployment delete

Resolução de problemas

Erro Causa Resolução
Quota ultrapassada A sua subscrição atingiu a quota de implementação para o SKU ou região selecionada. Verifique a sua quota no portal da Foundry ou peça um aumento através do suporte do Azure.
Autorização falhada A identidade utilizada não tem o papel exigido do RBAC. Atribuir o papel de Contribuinte de Serviços Cognitivos ao recurso Foundry.
Modelo não disponível O modelo não está disponível na sua região ou subscrição. Corre az cognitiveservices account list-models para verificar os modelos e regiões disponíveis.
Comando não reconhecido A sua versão do CLI do Azure está desatualizada. Atualize para a versão 2.60 ou posterior com az upgrade. Os az cognitiveservices comandos fazem parte da CLI central e não requerem uma extensão separada.