Tokenización
Proceso de dividir texto en unidades discretas (tokens) que los modelos de lenguaje pueden procesar numéricamente, fundamental para cómo los LLMs entienden y generan texto.
¿Qué es?
La tokenización es el proceso de convertir texto en una secuencia de tokens — unidades discretas que el modelo puede procesar. Los LLMs no ven caracteres ni palabras directamente; ven IDs numéricos que representan tokens de su vocabulario.
¿Por qué no usar palabras?
- Vocabulario infinito: nuevas palabras, nombres propios, errores tipográficos
- Idiomas: cada idioma tendría vocabulario diferente
- Eficiencia: palabras raras desperdiciarían espacio en el vocabulario
Algoritmos principales
BPE (Byte Pair Encoding)
El más común. Comienza con caracteres individuales y fusiona iterativamente los pares más frecuentes:
"lower" → ["low", "er"]
"lowest" → ["low", "est"]
Usado por: GPT, Llama, Mistral.
WordPiece
Similar a BPE pero optimiza por likelihood del modelo de lenguaje. Usa prefijo ## para subpalabras:
"tokenization" → ["token", "##ization"]
Usado por: BERT, modelos de Google.
SentencePiece
Trata el texto como secuencia de bytes, sin preprocesamiento. Útil para idiomas sin espacios claros entre palabras.
Implicaciones prácticas
- Costo: se cobra por token, no por palabra. «Tokenización» puede ser 1-3 tokens según el modelo
- Contexto: la ventana de contexto se mide en tokens
- Idiomas: español y otros idiomas con palabras más largas usan más tokens que inglés
- Código: símbolos y sintaxis pueden tokenizarse de formas inesperadas
- Números: los modelos tokenizaron números de formas que dificultan aritmética
Herramientas
- tiktoken — Tokenizador de OpenAI
- tokenizers — Biblioteca de Hugging Face
- Playgrounds de cada proveedor suelen mostrar conteo de tokens
Ejemplo
Texto: "Los modelos de lenguaje son fascinantes"
GPT-4 tokens: ["Los", " modelos", " de", " lenguaje", " son", " fascin", "antes"]
= 7 tokens
Texto: "Language models are fascinating"
GPT-4 tokens: ["Language", " models", " are", " fascinating"]
= 4 tokens
El mismo concepto usa ~75% más tokens en español.
¿Por qué importa?
La tokenización determina cómo un modelo «ve» el texto. Un tokenizador ineficiente desperdicia contexto en tokens redundantes, aumenta costos y degrada la calidad en idiomas no ingleses. Entender cómo funciona permite optimizar prompts, estimar costos con precisión y diagnosticar comportamientos inesperados del modelo.
Referencias
- Neural Machine Translation of Rare Words with Subword Units — Sennrich et al., 2015. Paper original de BPE para NLP.
- SentencePiece — Kudo & Richardson, 2018.