Compteur de Tokens Gratuit pour GPT-4, ChatGPT et Modèles d'IA
Compteur de tokens précis utilisant la bibliothèque tiktoken d'OpenAI. Comptez les tokens pour les modèles GPT-4, ChatGPT et GPT-3. Gérez les coûts d'API et optimisez les invites d'IA instantanément.
Compteur de Jetons
Entrée invalide
Documentation
Qu’est-ce qu’un compteur de jetons ?
Un compteur de jetons mesure en combien de jetons un texte est découpé lorsqu’un modèle de langage d’IA le lit. Les jetons sont les petits morceaux de texte, comme des mots entiers, des parties de mots ou des signes de ponctuation, que des modèles tels que GPT-4 traitent au lieu des lettres brutes. Cet outil utilise tiktoken, le tokeniseur BPE open source publié par OpenAI pour ses modèles, de sorte que les décomptes correspondent à ce que produiraient les modèles OpenAI qui utilisent le même encodage.
Comment fonctionne la tokenisation
Un tokeniseur ne se contente pas de compter les mots. Il fait passer le texte dans un algorithme appelé encodage par paires d’octets (BPE, pour byte pair encoding). L’algorithme part des octets individuels du texte et fusionne de façon répétée la paire adjacente la plus fréquente en un nouveau jeton, à partir de motifs appris sur un vaste corpus de textes pendant l’entraînement. Le résultat est un vocabulaire fixe de dizaines de milliers de morceaux courants : des mots courts entiers, des fragments de mots fréquents et des caractères isolés pour tout ce qui est rare.
Pour cette raison, un mot anglais correspond souvent à un seul jeton, mais les mots plus longs ou inhabituels peuvent être scindés en deux jetons ou plus. Les espaces sont généralement attachés au début du jeton suivant plutôt que comptés seuls, et les signes de ponctuation forment en général leurs propres jetons.
Encodages pris en charge par cet outil
Tiktoken propose plusieurs encodages, chacun associé à une famille de modèles OpenAI. Cet outil en prend en charge quatre :
| Encodage | Utilisé par | Taille approximative du vocabulaire |
|---|---|---|
o200k_base | GPT-4o, GPT-4.1, GPT-5, o1, o3, o4-mini | environ 200 000 jetons |
cl100k_base | GPT-4, GPT-3.5 Turbo, modèles text-embedding-3 | environ 100 000 jetons |
p50k_base | text-davinci-002, text-davinci-003 et modèles Codex | environ 50 000 jetons |
r50k_base | Modèles GPT-3 d’origine, tels que davinci | environ 50 000 jetons |
La table des modèles de tiktoken associe les modèles ci-dessus à ces encodages. GPT-4o, GPT-4.1, GPT-5 et les modèles de la série o utilisent o200k_base. GPT-4 et GPT-3.5 Turbo utilisent cl100k_base. L’outil indique les modèles correspondants à côté de chaque option. cl100k_base est sélectionné par défaut.
Les définitions des encodages attribuent 50 257 jetons à r50k_base et 50 281 à p50k_base. Un même texte peut produire un nombre de jetons différent selon l’encodage, car chacun a été entraîné sur des textes différents et fusionne les caractères différemment.
Comment calculer un nombre de jetons
Il n’existe pas de formule arithmétique simple pour transformer un nombre de caractères ou de mots en nombre de jetons, car les fusions du BPE dépendent du texte précis et du vocabulaire entraîné. La seule méthode exacte consiste à faire passer le texte dans le tokeniseur lui-même :
- Choisissez l’encodage qui correspond au modèle visé.
- Fournissez le texte au tokeniseur de cet encodage.
- Comptez la liste d’identifiants de jetons obtenue. La longueur de cette liste est le nombre de jetons.
À titre d’estimation approximative, la documentation de tiktoken indique que chaque jeton correspond en moyenne à environ 4 octets de texte. Pour de l’anglais simple, un octet équivaut à un caractère, soit environ quatre caractères par jeton. Ce n’est qu’un repère. Les nombres, le code, les textes non anglais et les orthographes inhabituelles peuvent fortement modifier ce rapport.
Exemple détaillé
Prenons la phrase :
« Tokenization splits text into pieces. »
Avec l’encodage cl100k_base, tiktoken la découpe en 7 jetons :
Token, ization, splits, text, into, pieces, .
Remarquez que « Tokenization » lui-même se scinde en deux jetons, « Token » et « ization », tandis que tous les autres mots restent entiers. Le point final forme son propre jeton. C’est pourquoi une phrase de 37 caractères comptant 5 mots produit 7 jetons plutôt que 5. Dans cet exemple, o200k_base, p50k_base et r50k_base donnent les mêmes 7 jetons.
Les encodages diffèrent davantage sur les textes hors anglais. Le OpenAI Cookbook les compare sur l’expression japonaise « お誕生日おめでとう » (« joyeux anniversaire »). Il compte 14 jetons avec r50k_base et p50k_base, 9 avec cl100k_base et 8 avec o200k_base.
Pourquoi le nombre de jetons compte
Les fournisseurs d’IA facturent l’utilisation de l’API au jeton, en comptant à la fois le texte envoyé et le texte généré en réponse ; un nombre de jetons permet donc de prévoir le coût avant l’envoi d’une requête. Chaque modèle a aussi une longueur de contexte maximale, c’est-à-dire une limite du nombre de jetons que peuvent contenir ensemble une requête et sa réponse. Cette limite varie selon le modèle et change à mesure que les fournisseurs publient de nouvelles versions ; mieux vaut donc la vérifier dans la documentation actuelle du modèle utilisé plutôt que de la supposer de mémoire.
Questions fréquentes
Qu’est-ce qu’un jeton dans les modèles de langage d’IA ? Un jeton est un morceau de texte qu’un modèle de langage lit comme une seule unité. Il peut s’agir d’un mot court entier, d’une partie d’un mot plus long, d’un signe de ponctuation ou d’une espace attachée au mot suivant.
Pourquoi des encodages différents donnent-ils des nombres de jetons différents pour le même texte ? Chaque encodage a été entraîné sur son propre échantillon de textes et a construit son propre vocabulaire de morceaux courants. Un mot assez fréquent pour former un seul jeton dans un vocabulaire peut ne pas l’être dans un autre, et il est alors découpé différemment.
La ponctuation compte-t-elle comme un jeton ? Oui. Les signes de ponctuation sont généralement comptés comme des jetons à part entière, ou parfois fusionnés avec le caractère voisin, selon la fréquence à laquelle cette combinaison est apparue pendant l’entraînement du tokeniseur.
Un jeton est-il la même chose qu’un mot ? Non. Les mots courts et fréquents ne forment généralement qu’un jeton chacun. Les mots plus longs ou moins fréquents, ainsi que la plupart des mots hors anglais, se scindent souvent en deux jetons ou plus.
Quelle est la précision de cet outil ? Il compte les jetons avec la bibliothèque tiktoken d’OpenAI elle-même, de sorte que le décompte est exact pour l’encodage choisi. Il ne correspond à un modèle OpenAI que si ce modèle utilise le même encodage.
Quel encodage faut-il sélectionner ?
Celui qu’utilise le modèle visé. Pour GPT-4o, GPT-4.1, GPT-5 et les modèles de la série o, il s’agit de o200k_base. Pour GPT-4 et GPT-3.5 Turbo, il s’agit de cl100k_base.
Cet outil peut-il compter les jetons de modèles autres que ceux d’OpenAI ? Il utilise les encodages de tiktoken, conçus pour les modèles d’OpenAI. D’autres fournisseurs, comme Anthropic ou Google, utilisent leurs propres tokeniseurs, qui peuvent produire des décomptes différents pour le même texte.
Références
- OpenAI. tiktoken (README). tiktoken sur GitHub — un tokeniseur BPE destiné aux modèles d’OpenAI ; en moyenne, chaque jeton correspond à environ 4 octets.
- OpenAI. tiktoken/_educational.py. Code BPE pédagogique de tiktoken — l’entraînement du BPE part d’octets isolés et transforme de façon répétée la paire la plus fréquente en un nouveau jeton.
- OpenAI. tiktoken/model.py. Table de correspondance modèle-encodage de tiktoken — quels modèles OpenAI utilisent
cl100k_base,p50k_base,r50k_baseeto200k_base. - OpenAI. tiktoken_ext/openai_public.py. Définitions des encodages de tiktoken — tailles de vocabulaire de
r50k_base(50 257) et dep50k_base(50 281). - OpenAI. How to count tokens with tiktoken, OpenAI Cookbook. Notebook OpenAI Cookbook —
compare_encodings("お誕生日おめでとう")donne 14 jetons pourr50k_baseetp50k_base, 9 pourcl100k_baseet 8 pouro200k_base.