Partager via


Commencer à utiliser les déploiements provisionnés sur Azure OpenAI Service

Le guide suivant vous guide tout au long des étapes clés de la création d’un déploiement provisionné avec votre ressource Azure OpenAI Service. Pour plus d’informations sur les concepts abordés ici, consultez :

Prérequis

  • Un abonnement Azure - En créer un gratuitement
  • Rôle Contributeur Azure ou Contributeur Cognitive Services
  • Accès à Azure OpenAI Studio

Obtenir/vérifier la disponibilité du quota PTU

Les déploiements à débit provisionné sont dimensionnés en unités appelées unités de débit provisionné (PTU, Provisioned Throughput Unit). Le quota PTU est accordé à un abonnement au niveau régional et limite le nombre total de PTU pouvant être déployées dans cette région pour tous les modèles et toutes les versions.

La création d’un déploiement nécessite un quota disponible (inutilisé) pour couvrir la taille souhaitée du déploiement. Par exemple, si un abonnement présente les caractéristiques suivantes dans la région USA Centre Sud :

  • Quota PTU total = 500 PTU
  • Déploiements :
    • 100 PTU : GPT-4o, 2024-05-13
    • 100 PTU : GPT-4, 0613

200 PTU de quota sont alors considérées comme utilisées et 300 PTU sont disponibles pour créer des déploiements.

Une quantité par défaut de quota provisionné et global provisionné est affectée à tous les abonnements dans plusieurs régions. Pour consulter le quota disponible dans une région, accédez au panneau Quotas dans Azure OpenAI Studio et sélectionnez l’abonnement et la région souhaités. Par exemple, la capture d’écran ci-dessous montre une limite de quota de 500 PTU dans la région USA Ouest pour l’abonnement sélectionné. Notez que les quotas par défaut disponibles peuvent indiquer des valeurs inférieures.

Capture d’écran du quota disponible dans Azure OpenAI Studio.

Pour demander un quota supplémentaire, cliquez sur le lien Demander un quota à droite de la colonne Utilisation/Limite. (Ces options sont hors écran dans la capture d’écran ci-dessus).

Créer une ressource Azure OpenAI

Les déploiements provisionnés et globaux provisionnés sont créés via des objets de ressources Azure OpenAI dans Azure. Vous devez disposer d’une ressource Azure OpenAI dans chaque région où vous envisagez de créer un déploiement. Utilisez le portail Azure pour créer une ressource dans une région avec un quota disponible, si nécessaire.

Remarque

Les ressources Azure OpenAI peuvent prendre en charge plusieurs types de déploiements Azure OpenAI en même temps. Il n’est pas nécessaire de dédier de nouvelles ressources pour vos déploiements provisionnés ou provisionnés au global.

Créer votre déploiement provisionné ou provisionné au global : capacité disponible

Une fois que vous avez vérifié votre quota, vous pouvez créer un déploiement. Pour créer un déploiement provisionné, vous pouvez suivre les étapes suivantes ; les choix décrits reflètent les entrées affichées dans la capture d'écran.

Capture d’écran de la page de déploiement d’Azure OpenAI Studio pour un déploiement approvisionné.

  1. Connectez-vous à Azure OpenAI Studio

  2. Choisissez l'abonnement qui a été activé pour les déploiements provisionnés et provisionnés au global, et sélectionnez la ressource souhaitée dans une région où vous disposez du quota.

  3. Sous Gestion dans la navigation de gauche, sélectionnez Déploiements.

  4. Sélectionnez Créer un nouveau déploiement et configurez les champs suivants. Développez le menu déroulant Options avancées.

  5. Complétez les valeurs de chaque champ. Voici un exemple :

Champ Description Exemple
Sélectionner un modèle Choisissez le modèle spécifique que vous souhaitez déployer. GPT-4
Version du modèle Choisissez la version du modèle à déployer. 0613
Nom du déploiement Le nom du déploiement est utilisé dans votre code pour appeler le modèle à l’aide des bibliothèques clientes et les API REST. gpt-4
Filtre de contenu Spécifiez la stratégie de filtrage à appliquer au déploiement. Découvrez-en plus sur notre procédure de filtrage de contenu. Par défaut
Type de déploiement Cela a un impact sur le débit et la performance. Choisissez Géré-Provisionné ou Géré-Provisionné au Global pour votre déploiement provisionné Géré-Provisionné
Unités de débit approvisionnées Choisissez la quantité de débit que vous souhaitez inclure dans le déploiement. 100

Quelques points importants à prendre en considération :

  • La boîte de dialogue de déploiement contient un rappel indiquant que vous pouvez acheter une réservation Azure pour Azure OpenAI Provisioned afin d’obtenir une remise significative contre un engagement de durée.

Une fois que vous avez entré les paramètres de déploiement, cliquez sur Confirmer la tarification pour continuer. Une boîte de dialogue de confirmation de la tarification s’affiche pour indiquer le prix catalogue du déploiement si vous choisissez une facturation à l’heure sans opter pour une réservation Azure offrant une remise en fonction de la durée.

Si les coûts vous laissent perplexe, annulez le déploiement et procédez une fois que vous aurez compris le modèle de paiement et les coûts sous-jacents pour le déploiement provisionné. Cette étape peut empêcher l’apparition de frais élevés inattendus sur votre facture. Voici quelques ressources qui vous permettront de vous informer :

L’image ci-dessous montre la confirmation de la tarification affichée. Le prix indiqué est fourni à titre d’exemple uniquement.

Capture d’écran montrant l’écran de confirmation de la tarification.

Si vous souhaitez créer votre déploiement de manière programmatique, vous pouvez le faire à l'aide de la commande de l’interface de ligne de commande Azure suivante. Pour spécifier le type de déploiement, changez le sku-name en ProvisionedManaged ou GlobalProvisionedManaged en fonction du type de déploiement prévu. Mettez à jour le sku-capacity avec le nombre souhaité d’unités de débit approvisionnées.

az cognitiveservices account deployment create \
--name <myResourceName> \
--resource-group <myResourceGroupName> \
--deployment-name MyModel \
--model-name GPT-4 \
--model-version 0613  \
--model-format OpenAI \
--sku-capacity 100 \
--sku-name ProvisionedManaged

Vous pouvez également utiliser REST, un modèle ARM, Bicep et Terraform pour créer des déploiements. Consultez la section relative à l’automatisation des déploiements dans le guide pratique de gestion des quotas et remplacez la valeur « Standard » de sku.name par « ProvisionedManaged » ou « GlobalProvisionedManaged ».

Créer votre déploiement provisionné ou provisionné au global : capacité non disponible

En raison de la nature dynamique de la disponibilité de la capacité, il est possible que la région de votre ressource sélectionnée ne dispose pas de la capacité de service nécessaire pour créer le déploiement avec le modèle, la version et le nombre de PTU spécifiés.

Dans ce cas, Azure OpenAI Studio vous dirige vers d’autres régions avec un quota et une capacité disponibles pour créer un déploiement du modèle souhaité. Si cela se produit, la boîte de dialogue de déploiement se présente comme suit :

Capture d’écran de la page de déploiement Azure OpenAI Studio pour un déploiement provisionné sans capacité disponible.

Points à noter :

  • Un message s’affiche pour indiquer le nombre de PTU dans le quota disponible et le nombre de PTU pouvant actuellement être déployées.
  • Si vous sélectionnez un nombre de PTU supérieur à la capacité de service, un message s’affiche avec des options pour obtenir davantage de capacité ainsi qu’un bouton permettant de sélectionner une autre région. Cliquer sur le bouton Voir les autres régions pour afficher une boîte de dialogue indiquant la liste des ressources Azure OpenAI dans lesquelles vous pouvez créer un déploiement, ainsi que la taille maximale du déploiement qui peut être créé en fonction du quota disponible et de la capacité de service dans chaque région.

Capture d’écran de la page de déploiement d’Azure OpenAI Studio offrant la possibilité de choisir une autre ressource et une autre région.

Si vous sélectionnez une ressource et cliquez sur Changer de ressource, la boîte de dialogue du déploiement est actualisée avec la ressource sélectionnée. Vous pouvez ensuite procéder à la création de votre déploiement dans la nouvelle région.

Achat facultatif d’une réservation

Après la création de votre déploiement, vous pouvez acheter une remise sur la durée via une réservation Azure. Une réservation Azure peut offrir une remise substantielle sur le prix horaire pour les utilisateurs qui ont l’intention d’utiliser le déploiement au-delà de quelques jours.

Pour plus d’informations sur le modèle d’achat et les réservations, consultez :

Important

La disponibilité de la capacité pour les déploiements de modèles est dynamique et change fréquemment d’une région à l’autre et d’un modèle à l’autre. Pour vous empêcher d’acheter une réservation pour plus de PTU que vous ne pouvez en utiliser, créez d’abord des déploiements, puis achetez la réservation Azure pour couvrir les PTU que vous avez déployées. Cette bonne pratique garantit que vous pouvez tirer pleinement parti de la remise de réservation et vous évite d’acheter un engagement à terme que vous ne pouvez pas utiliser.

Passer vos premiers appels d’inférence

Le code d’inférence pour les déploiements provisionnés est le même que pour le type de déploiement standard. L'extrait de code suivant montre un appel de complétion de chat à un modèle GPT-4. Si c’est la première fois que vous utilisez ces modèles par programmation, nous vous recommandons de commencer par notre guide de démarrage rapide. Nous recommandons d'utiliser la bibliothèque OpenAI avec la version 1.0 ou supérieure, car elle inclut la logique de nouvelle tentative.

    #Note: The openai-python library support for Azure OpenAI is in preview. 
    import os
    from openai import AzureOpenAI

    client = AzureOpenAI(
        azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
        api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
        api_version="2024-02-01"
    )

    response = client.chat.completions.create(
        model="gpt-4", # model = "deployment_name".
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
            {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
            {"role": "user", "content": "Do other Azure AI services support this too?"}
        ]
    )

    print(response.choices[0].message.content)

Important

Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez l’article de sécurité Azure AI services.

Compréhension du débit attendu

Le débit que vous pouvez atteindre sur le point de terminaison dépend du nombre de PTU déployées, de la taille de l’entrée, de la taille de la sortie et du taux d’appel. Le nombre d'appels simultanés et le nombre total de jetons traités peuvent varier en fonction de ces valeurs. La méthode que nous recommandons pour déterminer le débit de votre déploiement est la suivante :

  1. Utilisez le calculateur de capacité pour une estimation de la taille. Vous pouvez trouver le calculateur de capacité dans Azure OpenAI Studio sous la page des quotas et l'onglet Provisionné.
  2. Étalonnez la charge à l'aide d'une charge de travail en trafic réel. Pour plus d’informations sur l’évaluation, consultez la section point de référence.

Mesurez l’utilisation de votre déploiement

Lorsque vous déployez un nombre spécifique d'unités de débit provisionnées (PTU), une quantité définie de débit d'inférence est mise à la disposition de ce point d'extrémité. L'utilisation de ce débit est une formule complexe basée sur le modèle, le taux d'appel modèle-version, la taille de l'invite, la taille de la génération. Pour simplifier ce calcul, nous fournissons une mesure d'utilisation dans Azure Monitor. Votre déploiement renvoie un 429 sur tous les nouveaux appels une fois que l'utilisation dépasse 100 %. L’utilisation provisionnée est définie comme suit :

Utilisation du déploiement des PTU = (PTU consommées au cours de la période) / (PTU déployées au cours de la période)

Vous trouverez la mesure d’utilisation dans la section Azure-Monitor de votre ressource. Pour accéder aux tableaux de bord de surveillance, connectez-vous à https://portal.azure.com, accédez à votre ressource OpenAI et sélectionnez la page Mesures dans le menu de gauche. Dans la page des métriques, sélectionnez la métrique « Utilisation managée approvisionnée V2 ». Si vous avez plus d'un déploiement dans la ressource, vous devez également diviser les valeurs pour chaque déploiement en cliquant sur le bouton « Appliquer la division ».

Capture d’écran de l’utilisation managée approvisionnée sur le panneau des métriques de la ressource dans le Portail Azure.

Pour plus d’informations sur la surveillance de vos déploiements, consultez la page Surveillance Azure OpenAI Service.

Gestion de l’utilisation élevée

Les déploiements provisionnés vous permettent de disposer d'une capacité de calcul allouée pour l'exécution d'un modèle donné. L'indicateur « Utilisation gérée provisionnée » dans Azure Monitor mesure l'utilisation du déploiement par incréments d'une minute. Les déploiements gérés provisionnés sont également optimisés pour que les appels acceptés soient traités avec une latence maximale constante par appel. Lorsque la charge de travail dépasse la capacité allouée, le service renvoie un code d'état HTTP 429 jusqu'à ce que l'utilisation descende en dessous de 100 %. Heure avant la nouvelle tentative est fournie dans les en-têtes de réponse retry-after et retry-after-ms qui fournissent respectivement la durée en secondes et en millisecondes. Cette approche permet de maintenir les objectifs de latence par appel tout en donnant au développeur le contrôle sur la manière de gérer les situations de forte charge ; par exemple, réessayer ou détourner vers une autre expérience/un autre point de terminaison.

Que dois-je faire lorsque je reçois une réponse 429 ?

Une réponse 429 indique que les processeurs alloués sont entièrement consommés au moment de l’appel. La réponse inclut les en-têtes retry-after-ms et retry-after qui vous indiquent le temps d’attente avant l’acceptation de l’appel suivant. La façon dont vous choisissez de traiter une réponse 429 dépend des exigences de votre application. Voici quelques éléments à prendre en compte :

  • Si vous êtes d’accord avec des latences plus longues par appel, implémentez la logique de nouvelle tentative côté client pour attendre le temps retry-after-ms et réessayer. Cette approche permet de maximiser le débit du déploiement. Les SDK clients fournis par Microsoft le gèrent déjà avec des valeurs par défaut raisonnables. Il se peut que vous ayez encore besoin d’ajustements supplémentaires en fonction de vos cas d’utilisation.
  • Envisagez de rediriger le trafic vers d’autres modèles, déploiements ou expériences. Cette approche est la solution la moins lente car cette action peut être entreprise dès que vous recevez le signal 429. Le signal 429 n'est pas une réponse d'erreur inattendue en cas d'utilisation élevée, mais fait partie de la conception de la gestion des files d'attente et des charges élevées pour les déploiements provisionnés.

Modification de la logique de nouvelle tentative dans les bibliothèques du client

Les SDK Azure OpenAI tentent 429 réponses par défaut et en coulisses dans le client (jusqu'au nombre maximum de tentatives). Les bibliothèques respectent le temps retry-after. Vous pouvez également modifier le comportement de nouvelle tentative pour qu’il corresponde mieux à votre expérience. Voici un exemple avec la bibliothèque python.

Vous pouvez utiliser l’option max_retries pour configurer ou désactiver les paramètres de nouvelle tentative :

from openai import AzureOpenAI

# Configure the default for all requests:
client = AzureOpenAI(
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),
    api_version="2024-02-01",
    max_retries=5,# default is 2
)

# Or, configure per-request:
client.with_options(max_retries=5).chat.completions.create(
    model="gpt-4", # model = "deployment_name".
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
        {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
        {"role": "user", "content": "Do other Azure AI services support this too?"}
    ]
)

Exécuter un point de référence

Les performances et le débit exacts de votre instance dépendent du type de requêtes que vous effectuez et de la charge de travail exacte. La meilleure façon de déterminer le débit de votre charge de travail est d'effectuer une analyse comparative sur vos propres données.

Pour vous aider dans cette tâche, l'outil d'analyse comparative permet d'effectuer facilement des analyses comparatives de votre déploiement. L'outil est livré avec plusieurs formes de charge de travail préconfigurées et fournit des mesures de performance clés. En savoir plus sur les paramètres d’outil et de configuration dans notre dépôt GitHub : https://aka.ms/aoai/benchmarking.

Nous vous recommandons le flux de travail suivant :

  1. Estimez vos unités de débit à l’aide de la calculatrice de capacité.
  2. Exécutez un point de référence avec cette forme de trafic pendant une période prolongée (plus de 10 minutes) afin d'observer les résultats dans un état stable.
  3. Observez l'utilisation, les jetons traités et les valeurs du taux d'appel à partir de l'outil de référence et d'Azure Monitor.
  4. Exécutez un point de référence avec votre propre forme de trafic et vos propres charges de travail en utilisant l'implémentation de votre client. Veillez à implémenter une logique de nouvelle tentative à l’aide d’une logique personnalisée ou d’une bibliothèque de client Azure OpenAI.

Étapes suivantes