Jetons d'IA et mots : mesurer la requête avant d'estimer son coût
Un jeton est une unité d'un tokenizer donné, pas un nombre fixe de mots ou caractères. Pour le texte exact, utilisez le tokenizer et ses réglages correspondants. Pour une requête complète, incluez structure et outils puis comparez à l'utilisation renvoyée.
Dans ce guide
Compter les mots vérifie la longueur d'un article, pas précisément le contexte ni le coût d'une requête d'IA. Le même texte peut être découpé différemment et la requête dépasse souvent le dernier message.
Distinguez texte brut, requête complète et usage facturé. L'exemple local et la feuille de mesure n'inventent aucun compte exact pour un modèle non exécuté.
Séparer mots, caractères Unicode et jetons
Un mot peut devenir un jeton, plusieurs fragments ou des unités incluant espaces et ponctuation. Les approches par mots, caractères et sous-mots diffèrent. Langue, code, orthographe, espaces et vocabulaire influencent le découpage.
Le compte Unicode répond à une autre question. Un caractère peut nécessiter plusieurs unités de code ou octets, et un symbole visible plusieurs points de code. Aucune conversion universelle vers les jetons n'existe ; un ratio ne fait qu'approcher un échantillon précisé.
| Tâche | Mesure utile | Limite |
|---|---|---|
| Vérifier la longueur d'un article | Mots ou caractères Unicode | Ne détermine pas les jetons du modèle |
| Mesurer du texte avec un tokenizer | Identifiants de jetons et réglages associés | Peut omettre format de discussion et structure supplémentaire |
| Estimer une requête API structurée | Comptage officiel ou format exact | Peut différer de l'usage final |
| Rapprocher la facturation | Champs d'usage réels et règles actuelles | N'estime pas la requête d'un autre fournisseur |
Compter un échantillon local avec le bon tokenizer
Pour le format Hugging Face, chargez le bon tokenizer.json puis encodez un fichier UTF-8. Notez modèle, révision du fichier, version du paquet et jetons spéciaux. L'exemple utilise tokenizers 0.23.2, sans remplissage, troncature ni ajout de jetons spéciaux.
Prenez le fichier dans la distribution officielle du modèle. Le code ne télécharge pas de modèle, n'envoie pas le texte et ne reproduit pas une API conversationnelle complète. Le résultat n'est pertinent que si tokenizer et réglages correspondent à la question.
# Example environment: tokenizers==0.23.2
from pathlib import Path
from importlib.metadata import version
from tokenizers import Tokenizer
# Use the matching tokenizer.json already saved locally.
tokenizer = Tokenizer.from_file("tokenizer.json")
tokenizer.no_padding()
tokenizer.no_truncation()
text = Path("sample.txt").read_text(encoding="utf-8")
encoded = tokenizer.encode(text, add_special_tokens=False)
print("tokenizers version:", version("tokenizers"))
print("raw-text tokens:", len(encoded.ids))
# Record tokenizer identity/revision separately.
# This is not a complete chat-request or billing count.Inclure toute la requête dans le contexte
Une conversation peut ajouter instructions, historique, passages récupérés, outils et formatage. Les modèles de discussion insèrent des jetons de contrôle entre rôles et messages ; ne compter que le dernier paragraphe sous-estime l'entrée.
Utilisez le comptage officiel lorsqu'il existe et prend en charge vos entrées. Outils, images et documents peuvent limiter l'estimation ou nécessiter l'usage réel. Ne confiez pas secrets ou données sensibles à des compteurs inconnus : méthode locale et API distante impliquent des traitements différents.
Établir une comparaison reproductible
Choisissez messages courants, code, tableau et texte de chaque langue utilisée. Conservez les octets exacts pour ne pas changer sauts de ligne, ponctuation ou espaces entre essais.
Notez identifiant, révision, jetons spéciaux, compte brut et estimation complète disponible. Laissez les valeurs non mesurées plutôt que deviner. Les différences décrivent ces échantillons, pas la qualité linguistique des tokenizers.
| Échantillon | Tokenizer et révision | Compte du texte brut | Compte ou estimation de requête complète |
|---|---|---|---|
| Message d'assistance | Noter l'identifiant exact | Mesurer localement | Mesurer avec le format de requête pris en charge |
| Extrait de code | Noter l'identifiant exact | Mesurer localement | Mesurer avec le format de requête pris en charge |
| Passage dans une autre langue | Noter l'identifiant exact | Mesurer localement | Mesurer avec le format de requête pris en charge |
Réserver la sortie avant d'ajouter l'entrée
Dans l'exemple hypothétique, un contexte combiné de 32,000 réserve 4,000 à la sortie et 2,000 à une marge. Il reste 26,000 pour l'entrée mesurée. Si instructions, historique et outils prennent 8,000, le contenu récupéré dispose de 18,000.
Ces chiffres ne sont pas les caractéristiques actuelles d'un modèle. Contexte, sortie, raisonnement et outils peuvent être définis autrement. Vérifiez le contrat actuel et saisissez vos mesures. Tenir dans le contexte ne rend pas chaque passage utile.
Hypothetical planning budget:
32,000 combined context
− 4,000 output reserve
− 2,000 planning buffer
= 26,000 input budget
26,000 − 8,000 instructions/history/tools
= 18,000 available for retrieved contentComparer estimation, usage et coût
Après un petit test, conservez l'usage renvoyé et comparez-le à l'estimation de la même requête. Séparez entrée en cache, sortie, raisonnement et catégories documentées. Changer un ratio mots-jetons ne répare pas une définition d'outil oubliée.
Calculez le coût avec les comptes réels et les tarifs actuels fournis. Séparez entrée et sortie et gardez les unités, par exemple par million. Un budget reproductible dépend de mesures et tarifs déclarés, pas d'une conversion universelle de mots.
Questions fréquentes
Un jeton vaut-il toujours quatre caractères ?
Non. C'est au mieux une approximation pour certains textes et tokenizers. Langue, code, ponctuation, espaces et conception influencent le résultat.
Pourquoi mon compte local diffère-t-il de l'usage API ?
La requête ajoute format, instructions, historique, outils et autres entrées. Tokenizer et réglages peuvent aussi différer. Comparez la même requête complète et les définitions du fournisseur.
Le compteur de mots du site donne-t-il les jetons exacts ?
Non. Il mesure mots et caractères Unicode. Utilisez un tokenizer correspondant ou le comptage officiel puis les outils de coût et contexte avec ces mesures.
Sources et définitions
- Hugging Face LLM Course: Tokenizers
- Claude Platform: Token counting
- Hugging Face tokenizers 0.23.2: published Python package and API examples
- Hugging Face Transformers: Chat templates
Méthode vérifiée: