Gestion de jetons
Imaginez que vous obtenez un pic soudain de trafic vers votre API, peut-être qu’il y a une vente ou une autre raison. Pour éviter la consommation et les interruptions de service possibles, vous devez déterminer comment gérer cela.
Stratégie de limite de jetons Azure OpenAI
Comme mentionné au début de cette unité, un pic soudain est un événement que vous devez gérer. La bonne nouvelle est que Gestion des API Azure a une fonctionnalité appelée Stratégie de limite des jetons.
Cette stratégie permet aux clients de définir des limites sur la consommation de jetons, exprimées en jetons par minute (TPM), et garantit une utilisation équitable et efficace des ressources OpenAI.
Fonctionnalités clés
Les principales fonctionnalités de cette stratégie sont les suivantes :
- Contrôle précis : Les clients peuvent attribuer des limites basées sur des jetons sur différentes clés de compteur, telles que la clé d’abonnement ou l’adresse IP, en adaptant l’application aux cas d’usage spécifiques.
- Surveillance en temps réel : La stratégie s’appuie sur les métriques d’utilisation des jetons retournées par le point de terminaison OpenAI, ce qui permet une surveillance et une application précises des limites en temps réel.
- Pré-calcul des jetons : Il permet le précalcul des jetons d’invite côté Gestion des API Azure, réduisant ainsi les demandes inutiles adressées au serveur principal OpenAI si la limite est déjà dépassée.
- Personnalisation avancée : Les clients peuvent appliquer des en-têtes et des variables tels que des jetons consommés et des jetons restants dans les stratégies pour un meilleur contrôle et une personnalisation.
Comme vous pouvez le voir, il existe quelques fonctionnalités qui vous aident à gérer les coûts et grâce à la surveillance en temps réel, vous pouvez vous assurer que vous ne dépassez pas les limites.
Comment l’utiliser ?
Pour utiliser cette stratégie, vous devez l’ajouter au pipeline de traitement entrant de l’opération d’API. Voici comment procéder :
<azure-openai-token-limit counter-key="key value"
tokens-per-minute="number"
estimate-prompt-tokens="true | false"
retry-after-header-name="custom header name, replaces default 'Retry-After'"
retry-after-variable-name="policy expression variable name"
remaining-tokens-header-name="header name"
remaining-tokens-variable-name="policy expression variable name"
tokens-consumed-header-name="header name"
tokens-consumed-variable-name="policy expression variable name" />
Il existe quelques attributs que vous pouvez définir, mais les plus importants sont les suivants :
- counter-key : La clé à utiliser pour compter les jetons. Cette valeur peut être une clé d’abonnement ou une adresse IP.
- jetons par minute : Le nombre de jetons autorisés par minute.
- estimate-prompt-tokens : Indique s’il faut estimer les jetons d’invite ou non.
Stratégie de métrique d'émission de jetons Azure OpenAI
Cette stratégie répond au besoin de surveillance détaillée et d’analyse de l’utilisation des jetons dans les applications utilisant des modèles Azure OpenAI.
En fournissant des métriques complètes, elle aide les organisations à :
- Optimiser les allocation des ressources : comprenez et gérez efficacement la consommation de jetons.
- Améliorer la prise de décision : obtenez des insights sur les modèles d’utilisation pour prendre des décisions éclairées sur la mise à l’échelle et la gestion des ressources.
- Améliorer le monitoring des performances : suivez et analysez l’utilisation des jetons pour identifier et résoudre les problèmes potentiels de manière proactive
Comment utiliser la stratégie de métrique d’émission de jetons
Pour utiliser cette stratégie, vous devez l’ajouter au pipeline de traitement entrant de l’opération d’API. Voici comment l’encoder au format XML :
<azure-openai-emit-token-metric
namespace="metric namespace" >
<dimension name="dimension name" value="dimension value" />
...additional dimensions...
</azure-openai-emit-token-metric>
Voici un exemple utilisant plusieurs dimensions :
<policies>
<inbound>
<azure-openai-emit-token-metric
namespace="AzureOpenAI">
<dimension name="User ID" />
<dimension name="Client IP" value="@(context.Request.IpAddress)" />
<dimension name="API ID" />
</azure-openai-emit-token-metric>
</inbound>
<outbound>
</outbound>
</policies>
Dans l'exemple précédent :
- la stratégie est configurée pour émettre des métriques de jeton dans l’espace de noms AzureOpenAI avec des dimensions pour l’ID utilisateur, l’adresse IP cliente et l’ID d’API.
- La valeur de la dimension IP du client est définie sur l’adresse IP du client qui effectue la requête.
Imaginez maintenant que vous pouvez afficher ces métriques dans un tableau de bord et surveiller l’utilisation de votre API en temps réel. Par exemple, vous pouvez voir le nombre de jetons utilisés par un utilisateur spécifique ou le nombre de jetons utilisés par une API spécifique. Cette fonctionnalité puissante qui peut vous aider à optimiser vos ressources et à prendre des décisions éclairées sur la mise à l’échelle et la gestion des ressources.