Qué es un token
Un modelo de lenguaje nunca ve letras ni palabras. Antes de que le llegue cualquier texto, un tokenizador corta el texto en fragmentos extraídos de un vocabulario fijo y reemplaza cada fragmento con su número en dicho vocabulario. El modelo lee una secuencia de esos números y escribe su respuesta también en forma de números, que el tokenizador vuelve a convertir en texto.
How2437␣do466␣I314␣reset13259␣my616␣password9206?30Los vocabularios actuales contienen desde decenas de miles hasta unos pocos cientos de miles de entradas. Las palabras frecuentes obtienen su propia entrada, generalmente con el espacio anterior adjunto. Las palabras menos frecuentes se forman a partir de fragmentos más pequeños: un nombre de producto inusual podría convertirse en cuatro o cinco tokens.
Cómo se construyen los tokenizadores: codificación de pares de bytes
La mayoría de los tokenizadores actuales utilizan una forma de codificación de pares de bytes (BPE), adaptada para modelos de lenguaje por Sennrich, Haddow y Birch. El vocabulario se aprende de una gran muestra de texto antes de que se entrene el propio modelo:
- Comience desde las unidades más pequeñas: caracteres individuales o los 256 bytes posibles.
- Cuente cada par de unidades vecinas en la muestra y encuentre el par más frecuente.
- Fusione ese par en una nueva unidad y añádala al vocabulario.
- Repita hasta que el vocabulario alcance su tamaño objetivo.
El vocabulario termina gastando sus entradas en lo que sea que fuera común en esa muestra. Las versiones a nivel de bytes parten de bytes en lugar de caracteres, por lo que cualquier entrada — cualquier idioma, emoji o símbolo suelto — aún puede codificarse, solo que de manera menos eficiente cuando es inusual.
- La muestra contiene “walking”, “talking” y “making” muchas veces. Al principio, cada una se divide en caracteres:
w a l k i n g. iseguida denes el par más frecuente, por lo que se convierte en una unidad:w a l k in g.- Ahora
inseguida deges el par más frecuente:w a l k ing. - Después de decenas de miles de fusiones, es probable que una palabra frecuente como “walking” sea un solo token, mientras que una rara como “unwalkable” todavía se construya a partir de varias piezas.
Por qué el mismo texto da recuentos diferentes
| Tipo de texto | Comportamiento típico |
|---|---|
| Inglés cotidiano | Aproximadamente 4 caracteres, o ¾ de palabra, por token |
| Números, identificadores y fechas | Divididos en fragmentos cortos: 2024-03-17 puede ocupar cinco o más tokens |
| Código y JSON | Los corchetes, las comillas y la sangría cuestan tokens |
| Otros idiomas | A menudo más tokens para el mismo significado; un estudio de 2023 midió diferencias de hasta 15 veces para el mismo texto traducido |
| Nombres raros y jerga | Divididos en varios fragmentos de subpalabras |
Cada familia de modelos entrena su propio tokenizador, por lo que un documento que tiene 1000 tokens para un modelo podría tener 1150 para otro. Cualquier recuento realizado con un tokenizador diferente, o estimado a partir del número de caracteres, es una aproximación.
Por qué es importante para el entrenamiento
- Coste. El entrenamiento se factura por token procesado, y el uso por token de entrada y de salida.
- Límites. La ventana de contexto y el límite de entrenamiento por ejemplo se cuentan en tokens, no en mensajes ni en palabras.
- Debilidades inusuales. Un modelo percibe "strawberry" como unos pocos tokens, no como diez letras, razón por la cual contar letras o invertir una palabra le resulta sorprendentemente difícil.
Errores comunes
- Tratar un token como una palabra al estimar costes o límites.
- Asumir que un recuento realizado para un modelo se aplica a otro.
- Presupuestar datos que no están en inglés utilizando proporciones de caracteres por token del inglés.
- Olvidar que el formato — JSON, marcado, identificadores largos — también consume tokens.
Referencias y lecturas adicionales
Las fuentes externas se abren en una pestaña nueva.
- 01Neural Machine Translation of Rare Words with Subword UnitsSennrich, Haddow & Birch, 2016 · arXiv · arxiv.orgEl artículo que introdujo la tokenización BPE en el PLN.
- 02Byte-Pair Encoding tokenizationHugging Face LLM Course · huggingface.coEl entrenamiento BPE explicado paso a paso, con código.
- 03Language Model Tokenizers Introduce Unfairness Between LanguagesPetrov et al., 2023 · arXiv · arxiv.orgCuánto más cuesta el mismo contenido en algunos idiomas.
- 04openai/tiktokenOpenAI · GitHub · github.comUn tokenizador BPE muy utilizado que puede ejecutar para contar los tokens usted mismo.
- 05Understand and count tokensGemini API docs · ai.google.devLa explicación de otro proveedor sobre los tokens y cómo contarlos.