Partage via


Gérer le quota d’Azure OpenAI Service

Le quota offre la flexibilité nécessaire pour gérer activement l’allocation des limites de débit entre les déploiements au sein de votre abonnement. Cet article décrit le processus de gestion de votre quota Azure OpenAI.

Prérequis

Important

L’affichage des quotas et le déploiement de modèles nécessitent le rôle Lecteur des utilisations cognitives . Ce rôle fournit l’accès minimal nécessaire pour afficher l’utilisation des quotas dans un abonnement Azure. Pour en savoir plus sur ce rôle et les autres rôles dont vous aurez besoin pour accéder à Azure OpenAI, consultez notre guide d’accès en fonction du rôle Azure (Azure RBAC).

Ce rôle se trouve dans le Portail Azure sous Contrôle d’accès aux abonnements>(IAM)>Ajouter une recherche d’attribution> de rôle pour Le Lecteur des utilisations cognitives. Ce rôle doit être appliqué au niveau de l’abonnement. Il n’existe pas au niveau des ressources.

Si vous ne souhaitez pas utiliser ce rôle, le rôle Lecteur de l’abonnement fournira un accès équivalent, mais il accordera également un accès en lecture au-delà de ce qui est nécessaire pour afficher le quota et le déploiement du modèle.

Présentation du quota

La fonctionnalité de quota d’Azure OpenAI permet d’attribuer des limites de débit à vos déploiements, jusqu’à une limite globale appelée « quota ». Le quota est attribué à votre abonnement par région, par modèle, en unités de jetons par minute (TPM). Lorsque vous intégrez un abonnement à Azure OpenAI, vous recevez le quota par défaut pour la plupart des modèles disponibles. Ensuite, vous allez affecter des TPM à chaque déploiement au fur et à mesure de leur création, et le quota disponible pour ce modèle sera réduit de cette quantité. Vous pouvez continuer à créer des déploiements et à leur affecter des TPM jusqu’à ce que vous atteigniez votre limite de quota. Lorsque cela se produit, vous pouvez uniquement créer des déploiements de ce modèle en réduisant les TPM affectés à d’autres déploiements du même modèle (ce qui libère des TPM pour que vous puissiez les utiliser) ou en demandant et en étant approuvé pour une augmentation du quota de modèle dans la région souhaitée.

Notes

Avec un quota de 240 000 TPM pour GPT-35-Turbo dans la région USA Est, un client peut créer un déploiement unique de 240 000 TPM, 2 déploiements de 120 000 TPM chacun, ou n’importe quel nombre de déploiements dans une ou plusieurs ressources Azure OpenAI à condition que le total des TPM soit moins de 240 000 dans cette région.

Lors de la création d’un déploiement, les TPM affectés sont directement mappés à la limite de débit de jetons par minute appliquée à ses demandes d’inférence. Une limite de débit en demandes par minute (RPM) est également appliquée. Sa valeur est définie proportionnellement à l’affectation de TPM à l’aide du ratio suivant :

6 RPM par 1 000 TPM.

La flexibilité de distribuer les TPM globalement au sein d’un abonnement et d’une région a permis à Azure OpenAI Service d’assouplir d’autres restrictions :

  • Le nombre maximal de ressources par région est augmenté à 30.
  • La limite de création d’un seul déploiement du même modèle dans une ressource a été supprimée.

Attribuer un quota

Lorsque vous créez un déploiement de modèle, vous avez la possibilité d’attribuer des jetons par minute (TPM) à ce déploiement. Les TPM peuvent être modifiés par incréments de 1 000 et sont mappés aux limites de débit TPM et RPM appliquées à votre déploiement, comme indiqué ci-dessus.

Pour créer un déploiement à partir d’Azure AI Studio, sous Gestion, sélectionnez Déploiements>Créer un déploiement.

L’option permettant de définir les TPM se trouve sous la liste déroulante Options avancées :

Screenshot of the deployment UI of Azure AI Studio

Après le déploiement, vous pouvez ajuster votre allocation de TPM en sélectionnant Modifier le déploiement sousGestion>Déploiements dans Azure AI Studio. Vous pouvez également modifier cette sélection dans la nouvelle expérience de gestion des quotas sous Gestion>Quotas.

Important

Les quotas et les limites sont susceptibles de changer. Pour plus d’informations à jour, consultez notre article sur les quotas et limites.

Paramètres spécifiques au modèle

Les différents déploiements de modèles, également appelés classes de modèle, ont des valeurs TPM maximales uniques que vous pouvez désormais contrôler. Cela représente la quantité maximale de TPM qui peut être allouée à ce type de déploiement de modèle dans une région donnée. Bien que chaque type de modèle représente sa propre classe de modèle unique, la valeur maximale de TPM n’est actuellement différente que pour certaines classes de modèle :

  • GPT-4
  • GPT-4-32K
  • Text-Davinci-003

Toutes les autres classes de modèle ont une valeur TPM maximale commune.

Notes

L’allocation de jetons par minute (TPM) de quota n’est pas liée à la limite maximale de jetons d’entrée d’un modèle. Les limites de jeton d’entrée de modèle sont définies dans la table des modèles et ne sont pas affectées par les modifications apportées au module de TPM.

Afficher et demander un quota

Pour obtenir une vue d’ensemble de vos allocations de quota entre les déploiements dans une région donnée, sélectionnezGestion>Quota dans Azure AI Studio :

Screenshot of the quota UI of Azure AI Studio

  • Nom du quota : il existe une valeur de quota par région pour chaque type de modèle. Le quota couvre toutes les versions de ce modèle. Le nom du quota peut être développé dans l’interface utilisateur pour afficher les déploiements qui utilisent ce quota.
  • Déploiement : déploiements de modèles divisés par classe de modèle.
  • Utilisation/Limite : pour le nom du quota, cela indique la quantité de quota utilisée par les déploiements et le quota total approuvé pour cet abonnement et cette région. Cette quantité de quota utilisée est également représentée dans le graphique à barres.
  • Quota de demandes : l’icône de ce champ accède à un formulaire dans lequel les demandes d’augmentation du quota peuvent être envoyées.

Migration de déploiements existants

Dans le cadre de la transition vers le nouveau système de quota et l’allocation basée sur les TPM, tous les déploiements de modèles Azure OpenAI existants ont été automatiquement migrés pour utiliser le quota. Dans les cas où l’allocation TPM/RPM existante dépasse les valeurs par défaut en raison de précédentes augmentations de la limite de débit personnalisée, des TPM équivalents ont été affectés aux déploiements impactés.

Présentation des limites de débit

L’affectation de TPM à un déploiement définit les limites de débit de jetons par minute (TPM) et de demandes par minute (RPM) pour le déploiement, comme décrit ci-dessus. Les limites de débit TPM sont basées sur l’estimation du nombre maximal de jetons à traiter par une demande au moment de sa réception. Il n’est pas identique au nombre de jetons utilisé pour la facturation, qui est calculé une fois que tout le traitement est terminé.

À mesure que chaque demande est reçue, Azure OpenAI calcule une estimation du nombre maximal de jetons traités qui inclut les éléments suivants :

  • Texte d’invite et nombre
  • Paramètre max_tokens
  • Paramètre best_of

À mesure que les demandes entrent dans le point de terminaison de déploiement, l’estimation du nombre maximal de jetons traités est ajoutée au décompte des jetons de toutes les demandes qui est réinitialisé chaque minute. Si, à un moment quelconque, au cours de cette minute, la valeur limite de débit TPM est atteinte, les demandes supplémentaires recevront un code de réponse 429 jusqu’à ce que le compteur soit réinitialisé.

Les limites de débit RPM sont basées sur le nombre de demandes reçues au fil du temps. La limite de débit s’attend à ce que les demandes soient réparties uniformément sur une période d’une minute. Si ce flux moyen n’est pas maintenu, les demandes peuvent recevoir une réponse 429, même si la limite n’est pas atteinte lorsqu’elle est mesurée au cours d’une minute. Pour implémenter ce comportement, Azure OpenAI Service évalue le débit de demandes entrantes sur une courte période de temps, généralement de 1 ou 10 secondes. Si le nombre de demandes reçues pendant cette période dépasse ce qui est attendu à la limite RPM définie, les nouvelles demandes recevront un code de réponse 429 jusqu’à la prochaine période d’évaluation. Par exemple, si Azure OpenAI surveille le débit de demandes à intervalles de 1 seconde, la limitation du débit se produit pour un déploiement de 600 RPM si plus de 10 demandes sont reçues pendant chaque période de 1 seconde (600 demandes par minute = 10 demandes par seconde).

Meilleures pratiques en matière de limite de débit

Pour réduire les problèmes liés aux limites du débit, il est judicieux d’utiliser les techniques suivantes :

  • Définissez max_tokens et best_of sur les valeurs minimales qui correspondent aux besoins de votre scénario. Par exemple, ne définissez pas une grande valeur de jetons maximum si vous vous attendez à un petit nombre de réponses.
  • Utilisez la gestion des quotas pour augmenter les TPM sur les déploiements à trafic élevé et les réduire sur les déploiements dont les besoins sont limités.
  • Implémentez une logique de nouvelle tentative dans votre application.
  • Évitez les variations nettes de la charge de travail. Augmentez graduellement la charge de travail.
  • Testez différents modèles d’augmentation de la charge.

Automatiser le déploiement

Cette section contient de brefs exemples de modèles pour vous aider à commencer à créer par programme des déploiements qui utilisent le quota pour définir des limites de débit TPM. Avec l’introduction du quota, vous devez utiliser la version 2023-05-01 de l’API pour les activités liées à la gestion des ressources. Cette version de l’API est uniquement destinée à la gestion de vos ressources et n’a pas d’impact sur la version de l’API utilisée pour les appels d’inférence tels que les achèvements, les achèvements de conversation, l’incorporation, la génération d’images, etc.

Déploiement

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/deployments/{deploymentName}?api-version=2023-05-01

Paramètres de chemin d’accès

Paramètre Type Requis ? Description
accountName string Obligatoire Nom de votre ressource Azure OpenAI.
deploymentName string Obligatoire Nom de déploiement choisi lorsque vous avez déployé un modèle existant ou nom que vous souhaitez donner à un nouveau modèle de déploiement.
resourceGroupName string Obligatoire Nom du groupe de ressources associé pour ce modèle de déploiement.
subscriptionId string Obligatoire ID d’abonnement de l’abonnement associé.
api-version string Obligatoire Version de l’API à utiliser pour cette opération. Cela suit le format AAAA-MM-JJ.

Versions prises en charge

Corps de la demande

Il s’agit uniquement d’un sous-ensemble des paramètres disponibles du corps de la demande. Pour obtenir la liste complète des paramètres, consultez la documentation de référence sur l’API REST.

Paramètre Type Description
sku Sku Définition du modèle de ressource représentant la référence SKU.
capacité entier Représente la part de quota que vous affectez à ce déploiement. Une valeur de 1 équivaut à 1 000 jetons par minute (TPM). Une valeur de 10 équivaut à 10 000 jetons par minute (TPM).

Exemple de requête

curl -X PUT https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-temp/providers/Microsoft.CognitiveServices/accounts/docs-openai-test-001/deployments/gpt-35-turbo-test-deployment?api-version=2023-05-01 \
  -H "Content-Type: application/json" \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
  -d '{"sku":{"name":"Standard","capacity":10},"properties": {"model": {"format": "OpenAI","name": "gpt-35-turbo","version": "0613"}}}'

Notes

Il existe plusieurs façons de générer un jeton d’autorisation. La méthode la plus simple pour le test initial consiste à lancer le service Cloud Shell à partir du Portail Azure. Exécutez ensuite az account get-access-token. Vous pouvez utiliser ce jeton comme jeton d’autorisation temporaire pour le test d’API.

Pour plus d’informations, consultez la documentation de référence de l’API REST pour les utilisations et le déploiement.

Utilisation

Pour interroger l’utilisation de votre quota dans une région donnée, pour un abonnement spécifique

GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/locations/{location}/usages?api-version=2023-05-01

Paramètres de chemin d’accès

Paramètre Type Requis ? Description
subscriptionId string Obligatoire ID d’abonnement de l’abonnement associé.
location string Requis Emplacement pour afficher l’utilisation, par exemple : eastus
api-version string Obligatoire Version de l’API à utiliser pour cette opération. Cela suit le format AAAA-MM-JJ.

Versions prises en charge

Exemple de requête

curl -X GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.CognitiveServices/locations/eastus/usages?api-version=2023-05-01 \
  -H "Content-Type: application/json" \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' 

Suppression de ressources

Lorsqu’une tentative de suppression d’une ressource Azure OpenAI est effectuée à partir du Portail Azure si des déploiements sont toujours présents, la suppression est bloquée jusqu’à ce que les déploiements associés soient supprimés. La suppression des déploiements permet d’abord de libérer correctement les allocations de quota afin de pouvoir être utilisées sur de nouveaux déploiements.

Toutefois, si vous supprimez une ressource à l’aide de l’API REST ou d’une autre méthode programmatique, cela évite d’avoir à supprimer d’abord les déploiements. Lorsque cela se produit, l’allocation de quota associée reste indisponible pour l’affecter à un nouveau déploiement pendant 48 heures jusqu’à ce que la ressource soit vidée. Pour déclencher un vidage immédiat d’une ressource supprimée afin de libérer le quota, suivez les instructions sur le vidage d’une ressource supprimée.

Étapes suivantes