Modellen implementeren met behulp van Azure CLI en Bicep

In dit artikel leert u hoe u een nieuwe modelimplementatie toevoegt aan een Foundry Models-eindpunt. De implementatie is beschikbaar voor deductie in uw Foundry-resource wanneer u de implementatienaam in uw aanvragen opgeeft.

Voorwaarden

U hebt het volgende nodig om dit artikel te voltooien:

  • Een Azure-abonnement.

  • Een Foundry-project. Dit projecttype wordt beheerd onder een Foundry-resource. Als u geen Foundry-project hebt, raadpleegt u Maak een project voor Microsoft Foundry.

  • Azure RBAC-machtigingen (op rollen gebaseerd toegangsbeheer) voor het maken en beheren van implementaties. U hebt de rol Cognitive Services-inzender of gelijkwaardige machtigingen voor de Foundry-resource nodig.

  • Foundry-modellen van partners en de gemeenschap vereisen toegang tot Azure Marketplace. Zorg ervoor dat u over de vereiste machtigingen beschikt om u te abonneren op modelaanbiedingen. Foundry Models die door Azure worden verkocht hebben deze vereiste niet.

  • Installeer de Azure CLI (versie 2.60 of hoger). De az cognitiveservices opdrachten die in dit artikel worden gebruikt, maken deel uit van de kern-CLI, dus er is geen extra extensie vereist.

  • Sommige opdrachten in deze zelfstudie gebruiken het jq hulpprogramma, dat mogelijk niet op uw systeem is geïnstalleerd. Zie Downloaden jqvoor installatie-instructies.

  • Identificeer de volgende informatie:

    • Uw Azure-abonnements-id
    • De naam van uw Foundry-resource
    • De resourcegroep waar u de Foundry-resource hebt geïmplementeerd
  • De modelnaam, provider, versie en SKU die u wilt implementeren. Gebruik de Foundry-portal of de Azure CLI om deze informatie te vinden. In dit voorbeeld implementeert u het volgende model:

    • Modelnaam: Phi-4-mini-instruct
    • Provider: Microsoft
    • Versie: 1
    • Implementatietype: Algemene standaard

Vereiste machtigingen voor het abonneren op modellen van partners en community's

Foundry-modellen van partners en de community beschikbaar voor implementatie (bijvoorbeeld Cohere-modellen) vereisen Azure Marketplace. Modelproviders definiëren de licentievoorwaarden en stellen de prijs in voor het gebruik van hun modellen met behulp van Azure Marketplace.

Zorg ervoor dat u bij het implementeren van modellen van derden de volgende machtigingen in uw account hebt:

  • Op het Azure-abonnement:
    • 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
  • In de resourcegroep: om de SaaS-resource te maken en te gebruiken:
    • Microsoft.SaaS/resources/read
    • Microsoft.SaaS/resources/write

De Owner en Contributor ingebouwde rollen voor het Azure-abonnement bevatten deze machtigingen. Als u niet over de vereiste machtigingen beschikt, vraagt u de abonnementsbeheerder om u de rol Inzender toe te wijzen of maakt u een aangepaste rol die de vermelde acties bevat.

Als u uw machtigingen wilt controleren, gaat u naar de Azure-portal, opent u uw abonnement, selecteert u Access-besturingselement (IAM)>Controletoegang en controleert u de toegewezen rollen.

Tip

Microsoft.SaaS/register/action is een eenmalige registratie van de SaaS-resourceprovider bij het abonnement. Na de registratie hoeft deze niet voor elke implementatie te worden herhaald.

Het model toevoegen

Als u een model wilt toevoegen, moet u eerst het model identificeren dat u wilt implementeren. Voer als volgt een query uit op de beschikbare modellen:

  1. Meld u aan bij uw Azure-abonnement.

    az login
    
  2. Als u meer dan één abonnement hebt, selecteert u het abonnement waarin uw resource zich bevindt.

    subscriptionId="<subscription-id>"
    az account set --subscription $subscriptionId
    
  3. Stel de volgende omgevingsvariabelen in met de naam van de Foundry-resource die u wilt gebruiken en resourcegroep.

    accountName="<ai-services-resource-name>"
    resourceGroupName="<resource-group>"
    location="eastus2"
    
  4. Als u nog geen Foundry-resource hebt gemaakt, maakt u er een.

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

    Referentie: az cognitiveservices account

  5. Controleer welke modellen beschikbaar zijn voor u en onder welke SKU. Elk implementatietype wordt vertegenwoordigd door een SKU-code in de CLI en ARM en definieert hoe Azure infrastructuur aanvragen verwerkt. Modellen bieden mogelijk verschillende implementatietypen. Met de volgende opdracht worden alle modeldefinities weergegeven die beschikbaar zijn:

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

    De uitvoer bevat beschikbare modellen met hun eigenschappen:

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

    Naslaginformatie: az cognitiveservices account list-models

  6. Identificeer het model dat u wilt implementeren. U hebt de eigenschappen name, format, version en sku. De eigenschap format geeft de provider aan die het model aanbiedt. Afhankelijk van het type implementatie hebt u mogelijk ook capaciteit nodig.

  7. Voeg de modelimplementatie toe aan de resource. In het volgende voorbeeld wordt het volgende toegevoegd 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
    

    Naslagwerk: az cognitiveservices account deployment

  8. Controleer of de implementatie is voltooid:

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

    De uitvoer zou "Succeeded" moeten weergeven. Het model is klaar voor gebruik nadat het inrichten is voltooid.

    Naslaginformatie: az cognitiveservices account deployment show

U kunt hetzelfde model meerdere keren implementeren als dat nodig is, zolang u het een andere implementatienaam geeft. Deze mogelijkheid is handig als u verschillende configuraties voor een bepaald model wilt testen, inclusief inhoudsfilters.

Het model toevoegen

  1. Gebruik de sjabloon ai-services-deployment-template.bicep om modelimplementaties te beschrijven:

    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. Voer de implementatie uit:

    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. Controleer of de implementatie is voltooid:

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

    De uitvoer zou "Succeeded" moeten weergeven.

Opmerking

De resterende secties in dit artikel zijn identiek voor de CLI en Bicep benaderingen.

Het model gebruiken

U kunt geïmplementeerde modellen gebruiken via de eindpunten voor Foundry-modellen voor de resource. Wanneer u uw aanvraag maakt, geeft u de parameter model op en voegt u de naam van de modelimplementatie in die u hebt gemaakt. U kunt de URI voor het deductie-eindpunt programmatisch ophalen met behulp van de volgende code:

Inference-eindpunt

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

Als u aanvragen wilt indienen bij het eindpunt Foundry Models met behulp van de OpenAI v1-API, roept u de /openai/v1/ route aan op de eindpunt-URL https://<resource-name>.openai.azure.com/openai/v1/ en geeft u de implementatienaam door in het model veld van uw aanvraag. De /openai/v1/-route gebruikt impliciete versiebepaling, dus u geeft geen api-version mee.

Zie de Azure OpenAI v1 API-verwijzing voor alle ondersteunde bewerkingen.

Deductiesleutels

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

Implementaties beheren

Gebruik de CLI om alle beschikbare implementaties weer te geven:

  1. Voer de volgende opdracht uit om alle actieve implementaties weer te geven:

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

    Verwijzing: az cognitiveservices account deployment list

  2. Voer de volgende opdracht uit om de details van een bepaalde implementatie te bekijken:

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

    Naslaginformatie: az cognitiveservices account deployment show

  3. Voer de volgende opdracht uit om een bepaalde implementatie te verwijderen:

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

    Naslaginformatie: az cognitiveservices account deployment delete

Probleemoplossing

Fout Oorzaak Resolutie
Quotum overschreden Uw abonnement heeft het implementatiequotum bereikt voor de geselecteerde SKU of regio. Controleer uw quotum in de Foundry-portal of vraag een verhoging aan via ondersteuning voor Azure.
Autorisatie is mislukt De gebruikte identiteit heeft niet de vereiste RBAC-rol. Wijs de rol Cognitive Services-inzender toe aan de Foundry-resource.
Model niet beschikbaar Het model is niet beschikbaar in uw regio of abonnement. Voer deze opdracht uit az cognitiveservices account list-models om beschikbare modellen en regio's te controleren.
Opdracht wordt niet herkend Uw Azure CLI is verouderd. Bijwerken naar versie 2.60 of hoger met az upgrade. De az cognitiveservices opdrachten maken deel uit van de kern-CLI en vereisen geen afzonderlijke extensie.