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
Pour toute tâche qui nécessite l’affichage du quota disponible, nous vous recommandons d’utiliser le rôle Lecteur d’utilisation de Cognitive Services. 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, sélectionnez Déploiements>Déployer un modèle>Déployer un modèle de base>Sélectionner un modèle>Confirmer.
Après le déploiement, vous pouvez ajuster votre allocation TPM en sélectionnant et en modifiant votre modèle dans la page Déploiements dans Azure AI Studio. Vous pouvez également modifier ce paramètre à partir de la page Gestion>Quota de modèle
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.
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 :
- Déploiement : déploiements de modèles divisés par classe de modèle.
- Type de 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.
- Allocation de quota: 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.
- Demander un quota: l’icône 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é.
Important
Le nombre de jetons utilisé dans le calcul de la limite de débit est une estimation basée en partie sur le nombre de caractères de la demande d’API. L'estimation des jetons de la limite de débit n'est pas la même que le calcul des jetons utilisé pour facturer/déterminer qu'une demande est inférieure à la limite de jetons d'entrée d'un modèle. En raison de la nature approximative du calcul des jetons de la limite de débit, on peut s'attendre à ce qu'une limite de débit soit déclenchée avant ce qui pourrait être attendu par rapport à une mesure exacte du nombre de jetons pour chaque demande.
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
2023-05-01
Spécification Swagger
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
2023-05-01
Spécification Swagger
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
- Pour passer en revue les valeurs par défaut des quotas pour Azure OpenAI, consulter l’article sur les limites et quotas