Déployer des modèles à l’aide de Azure CLI et de Bicep

Dans cet article, vous apprendrez comment ajouter un nouveau modèle de déploiement à un point de terminaison Foundry Models. Le déploiement est disponible pour l’inférence dans votre ressource Foundry lorsque vous spécifiez le nom de déploiement dans vos demandes.

Conditions préalables

Pour terminer cet article, vous avez besoin des éléments suivants :

  • Un abonnement Azure.

  • Un projet nommé Foundry. Ce type de projet est géré sous une ressource Foundry. Si vous n'avez pas de projet Foundry, consultez Créer un projet pour Microsoft Foundry.

  • Autorisations de contrôle d’accès en fonction du rôle (RBAC) Azure pour créer et gérer des déploiements. Vous avez besoin du rôle Contributeur Cognitive Services ou des autorisations équivalentes pour la ressource Foundry.

  • Les modèles Foundry des partenaires et de la communauté nécessitent l’accès à Place de marché Azure. Vérifiez que vous disposez des autorisations requises pour vous abonner aux offres de modèle. Les modèles Foundry proposés par Azure n'ont pas cette contrainte.

  • Installez le Azure CLI (version 2.60 ou ultérieure). Les az cognitiveservices commandes utilisées dans cet article font partie de l’interface CLI principale. Par conséquent, aucune extension supplémentaire n’est requise.

  • Certaines commandes de ce didacticiel utilisent l’outil jq , qui peut ne pas être installé sur votre système. Pour obtenir des instructions d’installation, consultez Télécharger jq.

  • Identifiez les informations suivantes :

    • VOTRE ID d’abonnement Azure
    • Nom de votre ressource Foundry
    • Groupe de ressources où vous avez déployé la ressource Foundry
  • Nom du modèle, fournisseur, version et référence SKU que vous souhaitez déployer. Utilisez le portail Foundry ou le Azure CLI pour trouver ces informations. Dans cet exemple, vous déployez le modèle suivant :

    • Nom du modèle : Phi-4-mini-instruct
    • Provider : Microsoft
    • Version : 1
    • Type de déploiement : Standard global

Autorisations requises pour s’abonner aux modèles des partenaires et de la communauté

Modèles Foundry de partenaires et de la communauté disponibles pour le déploiement (par exemple, les modèles Cohere) nécessitent Place de marché Azure. Les fournisseurs de modèles définissent les termes du contrat de licence et définissent le prix d’utilisation de leurs modèles à l’aide de Place de marché Azure.

Lors du déploiement de modèles tiers, vérifiez que vous disposez des autorisations suivantes dans votre compte :

  • Dans l’abonnement 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
  • Sur le groupe de ressources, pour créer et utiliser la ressource SaaS :
    • Microsoft.SaaS/resources/read
    • Microsoft.SaaS/resources/write

Les rôles intégrés Owner et Contributor intégrés sur l’abonnement Azure incluent ces autorisations. Si vous n’avez pas les autorisations requises, demandez à votre administrateur d’abonnement de vous affecter le rôle Contributeur ou de créer un rôle personnalisé qui inclut les actions répertoriées.

Pour vérifier vos autorisations, accédez au portail Azure, ouvrez votre abonnement, sélectionnez Access control (IAM)>Check access et passez en revue vos rôles attribués.

Conseil

Microsoft.SaaS/register/action est une inscription ponctuelle du fournisseur de ressources SaaS sur l’abonnement. Après l’inscription, il n’est pas nécessaire de répéter chaque déploiement.

Ajouter le modèle

Pour ajouter un modèle, identifiez d’abord le modèle que vous souhaitez déployer. Interrogez les modèles disponibles comme suit :

  1. Connectez-vous à votre abonnement Azure.

    az login
    
  2. Si vous avez plusieurs abonnements, sélectionnez l’abonnement où se trouve votre ressource.

    subscriptionId="<subscription-id>"
    az account set --subscription $subscriptionId
    
  3. Définissez les variables d’environnement suivantes avec le nom de la ressource Foundry que vous envisagez d’utiliser et de groupe de ressources.

    accountName="<ai-services-resource-name>"
    resourceGroupName="<resource-group>"
    location="eastus2"
    
  4. Si vous n’avez pas encore créé de ressource Foundry, créez-en une.

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

    Référence : az cognitiveservices account

  5. Vérifiez quels modèles sont disponibles et sous quelle référence SKU. Chaque type de déploiement est représenté par un code de référence SKU dans l’interface CLI et ARM, et définit comment Azure’infrastructure traite les requêtes. Les modèles peuvent offrir différents types de déploiement. La commande suivante répertorie toutes les définitions de modèle disponibles :

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

    La sortie inclut des modèles disponibles avec leurs propriétés :

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

    Référence : az cognitiveservices account list-models

  6. Identifiez le modèle que vous souhaitez déployer. Vous avez besoin des propriétés name, format, versionet sku. La propriété format indique le fournisseur offrant le modèle. Selon le type de déploiement, vous pouvez également avoir besoin de capacité.

  7. Ajoutez le déploiement du modèle à la ressource. L’exemple suivant ajoute 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
    

    Référence : déploiement de compte az cognitiveservices

  8. Vérifiez que le déploiement s’est terminé correctement :

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

    La sortie doit s’afficher "Succeeded". Le modèle est prêt à être utilisé une fois l’approvisionnement terminé.

    Référence : az cognitiveservices account deployment show

Vous pouvez déployer le même modèle plusieurs fois si nécessaire tant que vous lui donnez un autre nom de déploiement. Cette fonctionnalité est utile si vous souhaitez tester différentes configurations pour un modèle donné, y compris les filtres de contenu.

Ajouter le modèle

  1. Utilisez le modèle ai-services-deployment-template.bicep pour décrire les déploiements de modèles :

    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. Exécutez le déploiement :

    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. Vérifiez que le déploiement s’est terminé correctement :

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

    La sortie doit s’afficher "Succeeded".

Note

Les sections restantes de cet article sont identiques pour les approches CLI et Bicep.

Utiliser le modèle

Vous pouvez utiliser les modèles déployés à l’aide des points de terminaison pour les modèles Foundry avec la ressource Lorsque vous construisez votre demande, spécifiez le paramètre model et insérez le nom de déploiement du modèle que vous avez créé. Vous pouvez obtenir par programme l’URI du point de terminaison d’inférence à l’aide du code suivant :

Point de terminaison d’inférence

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

Pour effectuer des requêtes vers le point de terminaison Foundry Models à l’aide de l’API OpenAI v1, appelez la route /openai/v1/ sur l’URL du point de terminaison, https://<resource-name>.openai.azure.com/openai/v1/ et indiquez le nom du déploiement dans le champ model de votre requête. La route /openai/v1/ utilise le versionnement implicite, vous n’avez donc pas à passer de api-version.

Consultez la documentation de référence de l’API Azure OpenAI v1 pour connaître toutes les opérations prises en charge.

Touches d’inférence

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

Gérer les déploiements

Utilisez l’interface CLI pour afficher tous les déploiements disponibles :

  1. Exécutez la commande suivante pour afficher tous les déploiements actifs :

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

    Référence : az cognitiveservices account deployment list

  2. Exécutez la commande suivante pour afficher les détails d’un déploiement donné :

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

    Référence : az cognitiveservices account deployment show

  3. Exécutez la commande suivante pour supprimer un déploiement donné :

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

    Référence : az cognitiveservices account deployment delete

Dépannage

Erreur Cause Résolution
Quota dépassé Votre abonnement a atteint le quota de déploiement pour la référence SKU ou la région sélectionnée. Vérifiez votre quota dans le portail Foundry ou demandez une augmentation via support Azure.
Échec de l’autorisation L’identité utilisée n’a pas le rôle RBAC requis. Attribuez le rôle Contributeur Cognitive Services sur la ressource Foundry.
Modèle non disponible Le modèle n’est pas disponible dans votre région ou abonnement. Exécutez az cognitiveservices account list-models pour vérifier les modèles et régions disponibles.
Commande non reconnue Votre Azure CLI est obsolète. Effectuez une mise à jour vers la version 2.60 ou ultérieure avec az upgrade. Les az cognitiveservices commandes font partie de l’interface CLI principale et ne nécessitent pas d’extension distincte.