Tokenización
El proceso de partir un texto en unidades más pequeñas —tokens, que pueden ser palabras completas, fragmentos de palabra o caracteres— para que un modelo pueda procesarlo numéricamente.
- Última revisión:
- Fuentes:
- 2 fuentes · 2 verificadas
Un modelo no lee "letras" ni "palabras" como las vemos nosotros: necesita una lista finita y fija de unidades discretas —un vocabulario— sobre la que aprender y calcular. La tokenización es el paso que convierte un texto crudo en una secuencia de esas unidades (tokens), cada una asociada a un número, antes de que el modelo haga cualquier otra cosa con él, incluida la creación de embeddings.
Partir el texto en palabras completas suena obvio, pero es frágil: ningún vocabulario de palabras enteras puede cubrir todas las palabras posibles de un idioma (nombres propios, errores de tipeo, neologismos, idiomas que forman palabras compuestas libremente), así que cada palabra nueva quedaría "desconocida" para el modelo. La solución que se impuso adapta un algoritmo de compresión de datos —Byte-Pair Encoding (BPE)— al lenguaje natural: Sennrich, Haddow y Birch (2015) mostraron que, en vez de un vocabulario de palabras completas, se puede construir uno de subpalabras frecuentes, fusionando de a poco los pares de símbolos que más se repiten en un corpus. Así, una palabra rara se arma combinando piezas más comunes en vez de tratarse como desconocida. SentencePiece (Kudo y Richardson, 2018) llevó la idea un paso más allá al tokenizar directamente sobre texto crudo sin asumir que las palabras vienen separadas por espacios, lo que lo volvió apto para idiomas que no separan palabras así, como el japonés o el chino.
En términos accesibles: antes de entrenar, se corre un algoritmo de tokenización sobre un corpus grande para construir un vocabulario fijo (típicamente decenas de miles de piezas); después, todo texto que entra o sale del modelo se parte según ese vocabulario. Una palabra común suele ser un solo token; una palabra rara o compuesta puede partirse en dos o tres piezas. Esto explica por qué un modelo "cuenta" el texto distinto a como lo contarías tú: el límite de contexto y el costo de una consulta se miden en tokens, no en palabras ni en caracteres.
Todo modelo de lenguaje grande tokeniza su entrada y su salida, y las diferencias entre tokenizadores tienen consecuencias prácticas: un mismo texto en un idioma poco representado en los datos de entrenamiento (como el español frente al inglés en muchos vocabularios) suele partirse en más tokens que su equivalente en inglés, lo que lo hace más caro de procesar y le deja menos espacio disponible en la ventana de contexto para la misma cantidad de contenido.
Esa desigualdad entre idiomas es un punto de discusión documentado: no es sólo una curiosidad técnica, es un costo real y desigual de acceso a la tecnología según el idioma del usuario. La tokenización también explica errores que a primera vista parecen absurdos: un modelo puede fallar en tareas letra por letra —como contar cuántas veces aparece una letra dentro de una palabra— precisamente porque no "ve" letras sueltas, sino tokens que agrupan varias de ellas.
¿Por qué te importa?
El costo de usar un modelo, cuánto texto le cabe en una conversación, e incluso ciertos errores extraños (como fallar al contar letras) vienen directamente de cómo se tokeniza el texto. Es la razón técnica detrás de límites que de otro modo parecen arbitrarios.
Ejemplos
- Byte-Pair Encoding (Sennrich et al., 2015), adoptado por GPT-2 (2019) y modelos posteriores de OpenAI.
- SentencePiece (Kudo y Richardson, 2018), usado en modelos como T5 y en varios modelos multilingües.
- El error, documentado y viralizado desde 2024, de modelos que fallan al contar cuántas veces aparece una letra dentro de una palabra, atribuible a cómo tokenizan el texto.
Términos relacionados
Debate y controversia
Se ha documentado que la tokenización trata de forma desigual a distintos idiomas y escrituras: textos en idiomas menos representados en los datos de entrenamiento suelen partirse en más tokens, lo que encarece y limita en la práctica su uso frente al inglés. También genera fallos contraintuitivos en tareas que requieren mirar letras sueltas dentro de una palabra.
Fuentes
Rico Sennrich, Barry Haddow, Alexandra Birch · 2015
WebFetch confirmó título y autores en arXiv 1508.07909 (2015, aceptado en ACL 2016); introduce BPE para tokenización de subpalabras.
Taku Kudo, John Richardson · 2018
WebFetch confirmó título y autores (Kudo, Richardson) en arXiv 1808.06226, 2018.