OpenAI
Cette page a été traduite automatiquement. Afficher l’article original en anglais.

Comprendre et compter les tokens

Découvrez comment les tokens d’entrée, de sortie, mis en cache et de raisonnement influent sur l’utilisation de l’API, les limites des modèles et les coûts.

Dernière mise à jour : 5 days ago

Présentation

Les tokens sont les unités utilisées par les modèles OpenAI pour traiter le texte. Un token peut représenter un caractère, une partie de mot, un mot entier ou un signe de ponctuation. Les espaces influent également sur la division du texte en tokens.

Le nombre de tokens n’est pas identique au nombre de mots. Un même texte peut produire un nombre de tokens différent selon le modèle, son encodage et la langue.

Comprendre comment le texte devient des tokens

Lorsque vous envoyez du texte à un modèle :

  1. Le texte est divisé en tokens.

  2. Le modèle traite ces tokens.

  3. Le modèle génère des tokens de sortie. Ceux-ci peuvent inclure le texte que vous recevez et, pour les modèles de raisonnement, des tokens de raisonnement internes qui ne sont pas affichés dans la réponse.

Utiliser des estimations approximatives pour le texte anglais

Ces estimations peuvent vous aider à évaluer la longueur d’un texte anglais :

  • 1 token correspond à environ 4 caractères.

  • 1 token correspond à environ trois quarts de mot.

  • 100 tokens correspondent à environ 75 mots.

Il s’agit d’estimations, et non de valeurs exactes. La longueur des phrases et des paragraphes varie, et les rapports entre caractères, mots et tokens peuvent être différents dans d’autres langues.

Tenir compte des espaces et des majuscules

Un mot peut être divisé en différents tokens selon son orthographe, ses majuscules et le texte qui l’entoure.

Par exemple, rouge, Rouge et rouge ne contiennent pas un texte identique : le dernier exemple comporte une espace initiale. Un encodage peut les représenter différemment.

Les identifiants de tokens dépendent également de l’encodage. Ne supposez pas qu’un exemple d’identifiant de token s’applique à tous les modèles.

Distinguer les tokens d’entrée et de sortie

CatégorieDescription
Tokens d’entréeTokens fournis au modèle dans une requête. Ils sont également appelés tokens de prompt.
Tokens de sortieTokens générés par le modèle. Chat Completions les appelle des tokens de complétion.
Tokens d’entrée mis en cacheTokens d’entrée réutilisés grâce à la mise en cache des prompts. Leur tarification peut différer de celle des tokens d’entrée non mis en cache.
Tokens de raisonnementTokens qu’un modèle de raisonnement utilise en interne avant de produire sa réponse visible.

Les tokens de raisonnement ne sont pas visibles dans le texte de la réponse, mais ils sont comptabilisés dans l’utilisation de sortie et facturés comme des tokens de sortie.

Une réponse visible courte peut donc utiliser plus de tokens que son texte affiché ne le laisse penser.

Compter les tokens avant d’envoyer une requête

Compter les tokens du texte brut

Utilisez le Tokenizer pour voir comment le texte est divisé en tokens.

Pour tokeniser du texte brut par programmation, utilisez tiktoken. Sélectionnez l’encodage de votre modèle cible, par exemple avec tiktoken.encoding_for_model(model).

Le nombre de tokens d’un texte brut n’inclut pas nécessairement tous les tokens d’une requête API. La structure des messages, les outils, les schémas, les images et les fichiers peuvent influer sur le nombre total de tokens d’entrée.

Compter les tokens d’une entrée Responses complète

Pour une entrée complète de l’API Responses, utilisez l’API de comptage des tokens d’entrée.

Elle accepte les formats d’entrée de Responses, notamment les messages, les images, les fichiers, les outils et les conversations. Son décompte inclut les tokens de mise en forme utilisés pour structurer la requête, tels que les rôles et les limites des messages.

Le nombre de tokens d’entrée ne permet pas de prévoir combien de tokens de sortie le modèle générera.

Vérifier l’utilisation réelle des tokens

Après une requête, consultez ses informations d’utilisation. Les noms des champs varient selon le point de terminaison :

  • Chat Completions indique prompt_tokens, completion_tokens et total_tokens.

  • Responses indique input_tokens, output_tokens et total_tokens.

Vous pouvez aussi consulter l’activité au fil du temps dans le tableau de bord d’utilisation. Pour obtenir des instructions, notamment sur l’utilisation en streaming, consultez : Consulter l’utilisation et les coûts de l’API.

Respecter les limites du modèle

Consultez la documentation de votre modèle pour connaître sa fenêtre de contexte et sa sortie maximale. Ces limites peuvent varier d’un modèle à l’autre.

La fenêtre de contexte limite le nombre de tokens qu’un modèle peut traiter dans une requête. Les modèles ont également une limite de sortie. Pour les modèles de raisonnement, prévoyez de l’espace pour les tokens de raisonnement ainsi que pour la réponse visible.

Si votre entrée est trop volumineuse, vous pouvez :

  • Raccourcir ou reformuler le prompt.

  • Supprimer le contexte inutile ou répété.

  • Diviser les entrées volumineuses en parties plus petites.

  • Résumer ou prétraiter le texte avant de l’envoyer.

Utilisez le paramètre de tokens de sortie pris en charge par votre point de terminaison et votre modèle. Chat Completions utilise max_completion_tokens ; Responses utilise max_output_tokens.

Ces limites de taille des requêtes sont distinctes des limites de débit de l’API et des limites mensuelles d’utilisation ou de dépenses. Consultez la documentation des modèles pour le modèle que vous utilisez.

Comprendre la tarification des tokens

Pour la tarification de l’API basée sur les tokens, le tarif dépend du modèle et de la catégorie de tokens. Les tokens d’entrée, d’entrée mise en cache et de sortie peuvent avoir des prix différents. D’autres fonctionnalités de l’API peuvent utiliser des unités de facturation différentes.

Consultez la page de tarification de l’API pour connaître les tarifs actuels.

Lorsque vous comparez des modèles, tenez compte du nombre total de tokens et du coût nécessaires à l’exécution de votre tâche. Un prix inférieur par million de tokens n’entraîne pas nécessairement un coût total inférieur : les modèles peuvent tokeniser le même texte différemment et générer des volumes de sortie ou de raisonnement différents.

Testez des tâches représentatives au lieu de comparer uniquement la longueur de la réponse visible.

Tenir compte des complétions multiples

Lorsqu’un point de terminaison et un modèle permettent de générer plusieurs complétions, ces complétions supplémentaires utilisent également des tokens.

Pour Chat Completions, définir n sur une valeur supérieure à 1 génère plusieurs choix. Les tokens générés pour l’ensemble de ces choix vous sont facturés.

Pour l’ancienne API Completions, best_of peut générer des candidats qui ne sont pas tous renvoyés. Par exemple, best_of = 3 peut générer jusqu’à 3 × max_tokens tokens de complétion parmi tous les candidats.

Ces paramètres sont propres au point de terminaison. Ne supposez pas que n ou best_of est pris en charge par une autre API ou un autre modèle.

Cet article vous a-t-il été utile ?