Distribuera modeller med Azure CLI och Bicep

I den här artikeln lär du dig hur du lägger till en ny modellimplementering till en Foundry Models-slutpunkt. Distributionen är tillgänglig för slutsatsdragning i din Foundry-resurs när du anger distributionsnamnet i dina begäranden.

Förutsättningar

För att slutföra den här artikeln behöver du följande:

  • En Azure-abonnemang.

  • Ett Foundry-projekt. Den här projekttypen hanteras under en Foundry-resurs. Om du inte har ett Foundry-projekt kan du läsa Skapa ett projekt för Microsoft Foundry.

  • Azure behörigheter för rollbaserad åtkomstkontroll (RBAC) för att skapa och hantera distributioner. Du behöver rollen Cognitive Services Contributor eller motsvarande behörigheter för resursen Foundry.

  • Foundry-modeller från partner och community kräver åtkomst till Azure Marketplace. Se till att du har de behörigheter som krävs för att prenumerera på modellerbjudanden. Foundry-modeller som säljs av Azure har inte det här kravet.

  • Installera Azure CLI (version 2.60 eller senare). Kommandona az cognitiveservices som används i den här artikeln är en del av kärn-CLI, så inget extra tillägg krävs.

  • Vissa kommandon i den här handledningen använder verktyget jq, vilket kanske inte är installerat på ditt system. Installationsinstruktioner finns i Ladda ned jq.

  • Identifiera följande information:

    • Ditt Azure prenumerations-ID
    • Namnet på din Foundry-resurs
    • Resursgruppen där du distribuerade Foundry-resursen
  • Modellnamnet, providern, versionen och SKU:n som du vill distribuera. Använd Foundry-portalen eller Azure CLI för att hitta den här informationen. I det här exemplet distribuerar du följande modell:

    • Modellnamn: Phi-4-mini-instruct
    • Provider: Microsoft
    • Version: 1
    • Distributionstyp: Global standard

Behörigheter som krävs för att prenumerera på modeller från partner och community

Foundry Models från partner och community som är tillgängliga för distribution (till exempel Cohere-modeller) kräver Azure Marketplace. Modellleverantörer definierar licensvillkoren och anger priset för användning av sina modeller med hjälp av Azure Marketplace.

När du distribuerar modeller från tredje part kontrollerar du att du har följande behörigheter i ditt konto:

  • I Azure-abonnemanget:
    • 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
  • I resursgruppen – för att skapa och använda SaaS-resursen:
    • Microsoft.SaaS/resources/read
    • Microsoft.SaaS/resources/write

Owner och Contributor inbyggda roller i Azure-prenumerationen innehåller dessa behörigheter. Om du inte har de behörigheter som krävs ber du prenumerationsadministratören att tilldela dig rollen Deltagare eller skapa en anpassad roll som innehåller de angivna åtgärderna.

Om du vill verifiera dina behörigheter går du till Azure-portalen, öppnar din prenumeration, väljer Access control (IAM)>Checka åtkomst och granska dina tilldelade roller.

Tips

Microsoft.SaaS/register/action är en engångsregistrering av SaaS-resursprovidern i prenumerationen. Efter registreringen behöver den inte upprepas för varje distribution.

Lägg till modellen

Om du vill lägga till en modell identifierar du först den modell som du vill distribuera. Fråga efter de tillgängliga modellerna så här:

  1. Logga in på din Azure-prenumeration.

    az login
    
  2. Om du har fler än en prenumeration väljer du den prenumeration där resursen finns.

    subscriptionId="<subscription-id>"
    az account set --subscription $subscriptionId
    
  3. Ange följande miljövariabler med namnet på den Foundry-resurs som du planerar att använda och resursgruppen.

    accountName="<ai-services-resource-name>"
    resourceGroupName="<resource-group>"
    location="eastus2"
    
  4. Om du inte har skapat en Foundry-resurs ännu skapar du en.

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

    Referens: az cognitiveservices account

  5. Kontrollera vilka modeller som är tillgängliga för dig och under vilken SKU. Varje distributionstyp representeras av en SKU-kod i CLI och ARM och definierar hur Azure infrastruktur bearbetar begäranden. Modeller kan erbjuda olika distributionstyper. Följande kommando visar alla tillgängliga modelldefinitioner:

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

    Utdata innehåller tillgängliga modeller med deras egenskaper:

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

    Referens: az cognitiveservices account list-models

  6. Identifiera den modell som du vill distribuera. Du behöver egenskaperna name, format, versionoch sku. Egenskapen format anger vilken leverantör som erbjuder modellen. Beroende på typen av distribution kan du också behöva kapacitet.

  7. Lägg till modelldistributionen i resursen. Följande exempel lägger till 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
    

    Referens: az cognitiveservices account deployment

  8. Kontrollera att distributionen har slutförts:

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

    Utdata ska visa "Succeeded". Modellen är redo att användas när försörjningen är klar.

    Referens: az cognitiveservices account deployment show

Du kan distribuera samma modell flera gånger om det behövs så länge du ger den ett annat distributionsnamn. Den här funktionen är användbar om du vill testa olika konfigurationer för en viss modell, inklusive innehållsfilter.

Lägg till modellen

  1. Använd mallen ai-services-deployment-template.bicep för att beskriva modelldistributioner:

    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. Kör utrullningen:

    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. Kontrollera att distributionen har slutförts:

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

    Utdata ska visa "Succeeded".

Observera

De återstående avsnitten i den här artikeln är identiska för både CLI- och Bicep-metoder.

Använd modellen

Du kan använda distribuerade modeller med hjälp av slutpunkterna för Foundry Models för resursen. När du skapar din begäran anger du parametern model och infogar det modelldistributionsnamn som du skapade. Du kan programmatiskt hämta URI:n för slutpunkten för slutsatsdragning med hjälp av följande kod:

Slutpunkt för slutsatsdragning

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

För att göra begäranden till slutpunkten Foundry Models med hjälp av OpenAI v1-API:et anropar du rutten /openai/v1/ på slutpunkts-URL:en https://<resource-name>.openai.azure.com/openai/v1/ och anger namnet på distributionen i fältet model i din begäran. Vägen /openai/v1/ använder implicit versionshantering, så att du inte skickar en api-version.

Se api-referensen Azure OpenAI v1 för alla åtgärder som stöds.

Slutsatsdragningsnycklar

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

Hantera distribueringar

Använd CLI för att visa alla tillgängliga distributioner:

  1. Kör följande kommando för att se alla aktiva distributioner:

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

    Referens: az cognitiveservices account deployment list

  2. Kör följande kommando för att se information om en viss distribution:

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

    Referens: az cognitiveservices account deployment show

  3. Kör följande kommando för att ta bort en viss distribution:

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

    Kommandoreferens: az cognitiveservices account deployment delete

Felsökning

Fel Orsak Upplösning
Kvoten har överskridits Din prenumeration nådde distributionskvoten för den valda SKU:n eller regionen. Kontrollera din kvot i Foundry-portalen eller begär en ökning via Azure support.
Auktoriseringen misslyckades Den identitet som används har inte den RBAC-roll som krävs. Tilldela rollen Cognitive Services Contributor för Foundry-resursen.
Modellen är inte tillgänglig Modellen är inte tillgänglig i din region eller prenumeration. Kör az cognitiveservices account list-models för att kontrollera tillgängliga modeller och regioner.
Kommandot känns inte igen Din Azure CLI är inaktuell. Uppdatera till version 2.60 eller senare med az upgrade. Kommandona az cognitiveservices är en del av kärn-CLI och kräver inget separat tillägg.