Un tokenizador es el programa que convierte el texto en tokens antes de que un modelo de lenguaje lo lea, y que vuelve a armar texto con los tokens que el modelo responde. Usa un vocabulario fijo de pedazos aprendido de muchísimo texto. Cada familia de modelos tiene el suyo, por eso la misma frase no da igual en todos.
Desafortunadamente, no hay pan.
9 tokens
Ponlo a prueba
Una pregunta de la app. Elige una respuesta.
El mismo texto en inglés y en español, en el mismo modelo: ¿cuántos tokens?
Cuenta pedazos de texto, no ideas. Cada idioma se corta distinto, así que la misma idea puede ocupar más tokens en uno que en otro.
El tokenizador se armó con más texto de unos idiomas que de otros. Por eso la cuenta cambia al traducir, y con ella el costo.
En muchos modelos pasa al revés: el inglés tiene más palabras enteras en el vocabulario. Depende del tokenizador, no del largo de las palabras.
A grandes rasgos, muchos tokenizadores parten de las letras sueltas (o de los bytes) y recorren una montaña de texto buscando el par que más se repite junto. Si «q» y «u» aparecen pegadas todo el tiempo, «qu» pasa a ser una pieza nueva. Después «qu» y «e» forman «que», y así sigue, miles de veces, hasta llegar al tamaño de vocabulario elegido. A esta idea se la conoce como BPE (byte pair encoding) y hay variantes.
El resultado: lo que era frecuente en ese texto queda como una sola pieza, y lo raro se arma juntando varias. Cada pieza tiene un número, y eso es lo que de verdad recibe el modelo de lenguaje: una lista de números, no letras. Por eso a muchos modelos les cuesta contar cuántas «r» tiene una palabra: nunca vieron las letras por separado.
Por qué cada modelo corta distinto
Cada familia de modelos (GPT, Claude, Gemini) entrena su tokenizador con su propio texto, elige su tamaño de vocabulario (de decenas de miles a cientos de miles de piezas) y sus reglas para espacios, mayúsculas y números. Un tokenizador puede tratar «Hola», «hola» y « hola» como tres piezas distintas. Con los números pasa algo parecido: algunos los cortan en grupos fijos de cifras y otros como salga, así que «1.250.000» puede quedar partido de formas raras.
La consecuencia práctica: si cambias de modelo, cambia la cuenta de tokens del mismo texto, y con ella el costo y cuánto entra en la ventana de contexto. Un límite de «100.000 tokens» no dice lo mismo en dos modelos distintos.
Tildes, eñes y nombres propios
Las letras con tilde y la «ñ» aparecen menos que las letras sin marca en el texto con que se entrenan muchos tokenizadores, y a veces quedan como pieza aparte: una palabra como «canción» puede cortarse justo en la «ó». Los nombres de lugares y apellidos poco comunes, como «Ñuñoa» o «Chachapoyas», suelen partirse en varios pedazos. Los emojis también pueden ocupar más de un token cada uno.
Quitar las tildes para «ahorrar» es mala idea: la diferencia suele ser chica y el texto queda peor, a veces con otro sentido («papá» no es «papa»). Lo que sí conviene es saber que un texto con muchos nombres propios o emojis va a pesar más de lo que parece a simple vista.
Cómo contar tokens sin adivinar
Usa el tokenizador del modelo que vas a usar: muchos proveedores ofrecen un contador en su web o en su API, y la respuesta de la API suele informar cuántos tokens consumió cada consulta. Contar con el tokenizador de otro modelo te da un número parecido, no el real.
La regla de «unos 4 caracteres por token» se pensó para inglés; en español suele dar menos caracteres por token. Un método simple: toma 20 o 30 textos reales de tu app, cuéntalos y saca el promedio. Si da, por ejemplo, 3,2 caracteres por token, usa ese número para estimar, no el del inglés.