Aperçu
Les tokens sont les unités que les modèles d’OpenAI utilisent 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 aussi sur la façon dont le texte est divisé en tokens.
Le nombre de tokens n’est pas le même que le nombre de mots. Un même texte peut produire différents nombres de tokens selon le modèle, son encodage et la langue.
Comprendre comment le texte devient des tokens
Lorsque vous envoyez du texte à un modèle :
Le texte est divisé en tokens.
Le modèle traite ces tokens.
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 s’affichent pas dans le texte de la réponse.
Utiliser des estimations approximatives pour le texte anglais
Ces estimations peuvent vous aider à évaluer la taille d’un texte anglais :
1 token équivaut à environ 4 caractères.
1 token équivaut à environ trois quarts de mot.
100 tokens équivalent à environ 75 mots.
Il s’agit d’estimations, et non de décomptes exacts. La longueur des phrases et des paragraphes varie, et d’autres langues peuvent présenter des relations différentes entre les caractères, les mots et les tokens.
Tenir compte des espaces et des majuscules
Un mot peut être divisé en différents tokens selon son orthographe, l’emploi des majuscules et le texte qui l’entoure.
Par exemple, rouge, Rouge et rouge ne contiennent pas un texte identique : le dernier exemple commence par une espace. Un encodage peut les représenter différemment.
Les identifiants de tokens dépendent aussi 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égorie | Description |
| Tokens d’entrée | Tokens fournis au modèle dans une requête. On les appelle aussi tokens d’invite. |
| Tokens de sortie | Tokens générés par le modèle. Chat Completions les appelle des tokens de complétion. |
| Tokens d’entrée mis en cache | Tokens d’entrée réutilisés grâce à la mise en cache des invites. Leur tarification peut différer de celle des tokens d’entrée non mis en cache. |
| Tokens de raisonnement | Tokens 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 comptent dans l’utilisation de sortie et sont facturés comme des tokens de sortie.
Une courte réponse visible peut donc utiliser plus de tokens que son texte affiché ne le laisse croire.
Compter les tokens avant d’envoyer une requête
Compter le texte brut
Utilisez le Tokeniseur 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 du texte brut n’inclut pas nécessairement tous les tokens d’une requête d’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 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, comme 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 données d’utilisation. Les noms de 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 de la diffusion en continu, consultez : Examiner 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 ses fenêtres contextuelles et sa sortie maximale. Ces limites peuvent varier d’un modèle à l’autre.
Les fenêtres contextuelles limitent les 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 l’invite.
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 sur les modèles pour le modèle que vous utilisez.
Comprendre la tarification des tokens
Pour la tarification de l’API fondé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 différentes unités de facturation.
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 pour accomplir votre tâche. Un prix inférieur par million de tokens ne donne pas nécessairement un coût total inférieur : les modèles peuvent tokeniser le même texte différemment et produire différentes quantités de sortie ou de raisonnement.
Testez des tâches représentatives plutôt que de comparer uniquement la longueur des réponses visibles.
Tenir compte des complétions multiples
Lorsqu’un point de terminaison et un modèle prennent en charge la génération de plusieurs complétions, ces complétions supplémentaires utilisent aussi des tokens.
Pour Chat Completions, définir n à une valeur supérieure à 1 génère plusieurs choix. Les tokens générés pour tous 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 à chaque point de terminaison. Ne supposez pas que n ou best_of est pris en charge par une autre API ou un autre modèle.
