Tokenizar: unidades y enfoques
Páginas de este taller
Dos preguntas para clasificar un tokenizador
Tokenizar es partir el texto en unidades. Un tokenizador se describe bien con dos preguntas: qué unidad produce y cómo decide dónde cortar.
Qué unidad produce
| Unidad | Ejemplo con golondrinas | Ventajas | Inconvenientes |
|---|---|---|---|
| Palabra | golondrinas |
Unidades con sentido para un lector | Vocabulario enorme; cualquier palabra no vista queda como desconocida |
| Carácter | g o l o n… |
Vocabulario mínimo; nada es desconocido | Secuencias muy largas; cada pieza dice muy poco |
| Subpalabra | gol ond r inas |
Equilibrio: lo frecuente va entero, lo raro se trocea | Los cortes son estadísticos, no morfológicos |
| Byte | Los bytes UTF-8 de cada letra | Cubre cualquier texto y lengua, emojis incluidos | Las letras con tilde ocupan dos bytes; por sí solo, secuencias aún más largas |
En la práctica, los modelos actuales combinan las dos últimas: parten de bytes y los fusionan en subpalabras (byte-level BPE, el de GPT).
Cómo decide dónde cortar
Por reglas. Alguien escribe a mano dónde se corta: espacios, signos de puntuación y una lista de excepciones (Sr., EE. UU., 10:30). Es lo que hacen NLTK y spaCy. Es predecible, rápido y fácil de corregir, pero cada lengua necesita sus reglas y siempre aparecen casos no previstos: en la página anterior, NLTK dejaba pegado ¡Qué porque no separa la exclamación de apertura del español.
Aprendido de un corpus. El vocabulario se construye automáticamente a partir de un corpus grande. Las tres familias más usadas:
- BPE (byte pair encoding): empieza con caracteres o bytes y va fusionando el par de símbolos adyacentes más frecuente, una y otra vez, hasta llegar al tamaño de vocabulario fijado. Lo usan GPT, Llama y la mayoría de modelos actuales.
- WordPiece: fusiona también por pares, pero elige el par que aparece junto más de lo que cabría esperar por la frecuencia de sus partes. Es el de BERT.
- Unigram: hace el camino inverso. Empieza con un vocabulario muy grande y va eliminando las piezas que menos falta hacen para describir el corpus. Lo usan T5 y otros modelos, casi siempre a través de SentencePiece.
SentencePiece no es un cuarto algoritmo, sino una librería que aplica BPE o Unigram directamente sobre el texto en bruto y trata el espacio como un símbolo más (▁). Por eso sirve también para lenguas que no separan las palabras con espacios, como el chino o el japonés.
Aunque se llame «aprendido», no hay una red neuronal decidiendo cada corte: el vocabulario se aprende una vez, con estadística sobre el corpus, y después se aplica igual a cualquier texto.
Salida real
La misma frase con el tokenizador de GPT-4o
Él no sabía que el Sr. Pérez llegaría a Bogotá a las 10:30. ¡Qué sorpresa!
24 tokens. «Él» con mayúscula se parte en «É» + «l», mientras que «Bogotá» y «sorpresa» van enteras: lo frecuente en su corpus va entero, lo raro se trocea.
La idea: Un modelo como GPT-4o no pasa a minúsculas ni lematiza: recibe el texto tal cual, con mayúsculas, tildes y puntuación, y lo parte en subpalabras.
Dos tareas que se confunden con tokenizar
- Segmentar oraciones es un paso previo y distinto: decidir dónde acaba una oración, con el problema de las abreviaturas y los números.
- Detectar expresiones multipalabra (sin embargo, a pesar de, carta blanca) a veces se llama «tokenización por frases», pero no es una técnica de tokenización estándar. Es un paso posterior: se tokeniza por palabras y después se unen las secuencias que funcionan como una sola unidad, por ejemplo buscando n-gramas que aparecen juntos más de lo esperable.
Cómo se parte una frase real con el tokenizador de un modelo, y por qué eso importa para el coste por lengua, lo cuenta Fundamentos técnicos.