Wdrażanie modeli przy użyciu Azure CLI i Bicep

W tym artykule dowiesz się, jak dodać nowe wdrożenie modelu do punktu końcowego Foundry Models. Wdrożenie jest dostępne do przeprowadzania wnioskowania w zasobie Foundry podczas określania nazwy wdrożenia w żądaniach.

Wymagania wstępne

Do ukończenia tego artykułu potrzebne są następujące elementy:

  • Subskrypcja Azure.

  • Projekt Foundry. Ten typ projektu jest zarządzany w ramach zasobu Foundry. Jeśli nie masz projektu Foundry, zobacz Tworzenie projektu dla Microsoft Foundry.

  • Uprawnienia Azure RBAC (Role-Based Access Control) do tworzenia i zarządzania wdrożeniami. Potrzebujesz roli Współautor usług Cognitive Services lub równoważnych uprawnień dla zasobu Foundry.

  • Modele odlewni od partnerów i społeczności wymagają dostępu do Azure Marketplace. Upewnij się, że masz uprawnienia wymagane do subskrybowania ofert modeli. Modele Foundry oferowane przez platformę Azure nie podlegają temu wymogowi.

  • Zainstaluj Azure CLI (wersja 2.60 lub nowsza). Polecenia az cognitiveservices używane w tym artykule są częścią podstawowego interfejsu wiersza polecenia, więc żadne dodatkowe rozszerzenie nie jest wymagane.

  • Niektóre polecenia w tym samouczku używają narzędzia jq, które może nie być zainstalowane w twoim systemie. Aby uzyskać instrukcje dotyczące instalacji, zobacz Pobieranie jqpliku .

  • Zidentyfikuj następujące informacje:

    • Identyfikator subskrypcji Azure
    • Nazwa zasobu usługi Foundry
    • Grupa zasobów, w której wdrożono zasób Foundry
  • Nazwa modelu, dostawca, wersja i jednostka SKU, którą chcesz wdrożyć. Użyj portalu Foundry lub Azure CLI, aby znaleźć te informacje. W tym przykładzie wdrożysz następujący model:

    • Nazwa modelu: Phi-4-mini-instruct
    • Dostawca: Microsoft
    • Wersja: 1
    • Typ wdrożenia: Globalny standard

Uprawnienia wymagane do subskrybowania modeli od partnerów i społeczności

Modele Foundry od partnerów i społeczności dostępne do wdrożenia (na przykład modele Cohere) wymagają usługi Azure Marketplace. Dostawcy modeli definiują postanowienia licencyjne i określają cenę użycia swoich modeli przy użyciu Azure Marketplace.

Podczas wdrażania modeli innych firm upewnij się, że masz następujące uprawnienia na koncie:

  • W subskrypcji 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
  • W grupie zasobów — aby utworzyć zasób SaaS i użyć go:
    • Microsoft.SaaS/resources/read
    • Microsoft.SaaS/resources/write

Owner i Contributor wbudowane role w subskrypcji Azure obejmują te uprawnienia. Jeśli nie masz wymaganych uprawnień, poproś administratora subskrypcji o przypisanie Ci roli Współautor lub utworzenie roli niestandardowej zawierającej wymienione akcje.

Aby zweryfikować swoje uprawnienia, przejdź do portalu Azure otwórz subskrypcję, wybierz pozycję Kontrola dostępu (IAM)>Check access i przejrzyj przypisane role.

Wskazówka

Microsoft.SaaS/register/action jest jednorazową rejestracją dostawcy zasobów SaaS w ramach subskrypcji. Po rejestracji nie trzeba powtarzać jej dla każdego wdrożenia.

Dodawanie modelu

Aby dodać model, najpierw zidentyfikuj model, który chcesz wdrożyć. Wykonaj zapytanie dotyczące dostępnych modeli w następujący sposób:

  1. Zaloguj się do subskrypcji Azure.

    az login
    
  2. Jeśli masz więcej niż jedną subskrypcję, wybierz subskrypcję, w której znajduje się zasób.

    subscriptionId="<subscription-id>"
    az account set --subscription $subscriptionId
    
  3. Ustaw następujące zmienne środowiskowe o nazwie zasobu Foundry, którego chcesz użyć, i grupy zasobów.

    accountName="<ai-services-resource-name>"
    resourceGroupName="<resource-group>"
    location="eastus2"
    
  4. Jeśli jeszcze nie utworzono zasobu foundry, utwórz go.

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

    Odniesienie: az cognitiveservices account

  5. Sprawdź, które modele są dostępne dla Ciebie i w ramach której jednostki SKU. Każdy typ wdrożenia jest reprezentowany przez kod SKU w interfejsie CLI i ARM oraz określa, w jaki sposób infrastruktura Azure przetwarza żądania. Modele mogą oferować różne typy wdrożeń. Następujące polecenie wyświetla listę wszystkich dostępnych definicji modelu:

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

    Dane wyjściowe zawierają dostępne modele z ich właściwościami:

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

    Referencja: az cognitiveservices account list-models

  6. Zidentyfikuj model, który chcesz wdrożyć. Potrzebne są właściwości name, , formatversioni sku. Właściwość format wskazuje dostawcę oferującego model. W zależności od typu wdrożenia może być również potrzebna pojemność.

  7. Dodaj wdrożenie modelu do zasobu. W poniższym przykładzie dodano 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
    

    Dokumentacja: az cognitiveservices account deployment

  8. Sprawdź, czy wdrożenie zostało ukończone pomyślnie:

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

    Dane wyjściowe powinny wyświetlać wartość "Succeeded". Model jest gotowy do użycia po zakończeniu aprowizacji.

    Odniesienie: az cognitiveservices account deployment show

Ten sam model można wdrożyć wiele razy, jeśli jest to konieczne, o ile nadasz mu inną nazwę wdrożenia. Ta funkcja jest przydatna, jeśli chcesz przetestować różne konfiguracje dla danego modelu, w tym filtry zawartości.

Dodawanie modelu

  1. Użyj szablonu ai-services-deployment-template.bicep , aby opisać wdrożenia modelu:

    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. Uruchom wdrożenie:

    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. Sprawdź, czy wdrożenie zostało ukończone pomyślnie:

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

    Dane wyjściowe powinny wyświetlać wartość "Succeeded".

Uwaga

Pozostałe sekcje tego artykułu są takie same zarówno dla podejścia CLI, jak i Bicep.

Korzystanie z modelu

Możesz korzystać z wdrożonych modeli za pomocą punktów końcowych dla modeli Foundry w ramach zasobu. Podczas konstruowania żądania określ parametr model i wstaw utworzoną nazwę wdrożenia modelu. Identyfikator URI punktu końcowego wnioskowania można uzyskać programowo przy użyciu następującego kodu:

Punkt końcowy wnioskowania

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

Aby wysyłać żądania do punktu końcowego Foundry Models przy użyciu interfejsu API OpenAI v1, wywołaj trasę /openai/v1/ pod adresem URL punktu końcowego https://<resource-name>.openai.azure.com/openai/v1/ i przekaż nazwę wdrożenia w polu model żądania. Trasa /openai/v1/ używa wersjonowania niejawnego, więc nie przekazujesz parametru api-version.

Zobacz dokumentację interfejsu API platformy Azure OpenAI w wersji 1, aby zapoznać się ze wszystkimi obsługiwanymi operacjami.

Klucze wnioskowania

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

Zarządzanie wdrożeniami

Użyj interfejsu wiersza polecenia, aby wyświetlić wszystkie dostępne wdrożenia:

  1. Uruchom następujące polecenie, aby wyświetlić wszystkie aktywne wdrożenia:

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

    Dokumentacja: az cognitiveservices account deployment list

  2. Uruchom następujące polecenie, aby wyświetlić szczegóły danego wdrożenia:

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

    Odniesienie: az cognitiveservices account deployment show

  3. Uruchom następujące polecenie, aby usunąć dane wdrożenie:

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

    Dokumentacja: az cognitiveservices account deployment delete

Rozwiązywanie problemów

Błąd Przyczyna Rozdzielczość
Przekroczono limit przydziału Twoja subskrypcja osiągnęła limit przydziału wdrożenia dla wybranego produktu lub regionu. Sprawdź limit przydziału w portalu Foundry lub zażądaj zwiększenia limitu przydziału za pośrednictwem pomoc techniczna platformy Azure.
Autoryzacja nie powiodła się Użyta tożsamość nie ma wymaganej roli w RBAC. Przypisz rolę Współautor usług Cognitive Services w zasobie Foundry.
Model jest niedostępny Model nie jest dostępny w Twoim regionie ani w ramach Twojej subskrypcji. Uruchom az cognitiveservices account list-models aby sprawdzić dostępne modele i regiony.
Nie rozpoznano polecenia Twoja Azure CLI jest nieaktualna. Przeprowadź aktualizację do wersji 2.60 lub nowszej za pomocą polecenia az upgrade. Polecenia az cognitiveservices są częścią podstawowego interfejsu wiersza polecenia i nie wymagają oddzielnego rozszerzenia.