Surveillez l'utilisation de vos jetons en comptant les jetons avant de lancer l'inférence - Amazon Bedrock

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Surveillez l'utilisation de vos jetons en comptant les jetons avant de lancer l'inférence

Lorsque vous exécutez l'inférence de modèles, le nombre de jetons que vous envoyez en entrée contribue au coût de la demande et au quota de jetons que vous pouvez utiliser par minute et par jour. L'CountTokensAPI vous aide à estimer l'utilisation des jetons avant d'envoyer des demandes aux modèles de base en renvoyant le nombre de jetons qui serait utilisé si la même entrée était envoyée au modèle dans une demande d'inférence.

Note

L'utilisation de CountTokensl'API n'entraîne aucun frais.

Le comptage des jetons est spécifique au modèle, car les différents modèles utilisent des stratégies de tokenisation différentes. Le nombre de jetons renvoyé par cette opération correspondra au nombre de jetons qui serait facturé si la même entrée était envoyée au modèle pour exécuter l'inférence.

Vous pouvez utiliser l'CountTokensAPI pour effectuer les opérations suivantes :

  • Estimez les coûts avant d'envoyer des demandes d'inférence.

  • Optimisez les instructions pour les adapter aux limites des jetons.

  • Planifiez l'utilisation des jetons dans vos applications.

Modèles et régions pris en charge pour le comptage des jetons

L'API Count Tokens est prise en charge dans les régions suivantes (pour plus d'informations sur les régions prises en charge dans Amazon Bedrock, consultez la section Points de terminaison et quotas Amazon Bedrock) :

  • USA Est (Virginie du Nord)

  • USA Est (Ohio)

  • USA Ouest (Oregon)

  • Asie Pacifique (Tokyo)

  • Asie-Pacifique (Mumbai)

  • Asie-Pacifique (Singapour)

  • Asie-Pacifique (Sydney)

  • Europe (Francfort)

  • Europe (Zurich)

  • Europe (Irlande)

  • Europe (Londres)

  • Amérique du Sud (São Paulo)

L'API Count Tokens est prise en charge pour les modèles de base suivants (pour savoir quelles régions prennent en charge chaque modèle, reportez-vous àModèles de fondation pris en charge dans Amazon Bedrock) :

  • Anthropic Claude 3.5 Haiku

  • Anthropic Claude 3.5 Sonnet v2

  • Anthropic Claude 3.5 Sonnet

  • Anthropic Claude 3.7 Sonnet

  • Anthropic Claude Opus 4

  • Anthropic Claude Sonnet 4

Compter les jetons dans une demande

Pour compter le nombre de jetons d'entrée dans une demande d'inférence, envoyez une CountTokensdemande avec un point de terminaison Amazon Bedrock, spécifiez le modèle dans l'en-tête et l'entrée pour laquelle compter les jetons dans le body champ. La valeur du body champ varie selon que vous comptez les jetons d'entrée pour une demande InvokeModelou pour une requête Converse :

  • Pour une InvokeModel demande, le format de body est une chaîne représentant un objet JSON dont le format dépend du modèle que vous spécifiez.

  • Pour une Converse demande, le format de body est un objet JSON spécifiant les system invites messages et incluses dans la conversation.

Essayez un exemple

Les exemples de cette section vous permettent de compter les jetons pour une Converse demande InvokeModel et avec AnthropicClaude 3 Haiku.

Prérequis
  • Vous avez téléchargé AWS SDK pour Python (Boto3) et votre configuration est configurée de telle sorte que vos informations d'identification et votre AWS région par défaut soient automatiquement reconnues.

  • Votre identité IAM est autorisée à effectuer les actions suivantes (pour plus d'informations, consultez Action, ressources et clés de condition pour Amazon Bedrock) :

    • bedrock : CountTokens — Permet l'utilisation de. CountTokens

    • bedrock : InvokeModel — Permet l'utilisation de InvokeModel etConverse. Doit être limité àarn:${Partition}:bedrock:${Region}::foundation-model/anthropic.claude-3-haiku-20240307-v1:0, au minimum.

Pour essayer de compter les jetons pour une InvokeModelrequête, exécutez le code Python suivant :

import boto3 import json bedrock_runtime = boto3.client("bedrock-runtime") input_to_count = json.dumps({ "anthropic_version": "bedrock-2023-05-31", "max_tokens": 500, "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }) response = bedrock_runtime.count_tokens( modelId="anthropic.claude-3-5-haiku-20241022-v1:0", input={ "invokeModel": { "body": input_to_count } } ) print(response["inputTokens"])

Pour essayer de compter les jetons pour une requête Converse, exécutez le code Python suivant :

import boto3 import json bedrock_runtime = boto3.client("bedrock-runtime") input_to_count = { "messages": [ { "role": "user", "content": [ { "text": "What is the capital of France?" } ] }, { "role": "assistant", "content": [ { "text": "The capital of France is Paris." } ] }, { "role": "user", "content": [ { "text": "What is its population?" } ] } ], "system": [ { "text": "You're an expert in geography." } ] } response = bedrock_runtime.count_tokens( modelId="anthropic.claude-3-5-haiku-20241022-v1:0", input={ "converse": input_to_count } ) print(response["inputTokens"])