Tokenization
La tokenización divide texto, imágenes o audio en tokens que un modelo transforma en embeddings. Abarca BPE y otros métodos de subsegmentación de palabras, los fragmentos de imagen y el coste de los tokens.
La tokenización es el proceso que convierte la entrada sin procesar en una secuencia de tokens, las unidades discretas que lee un modelo, y asigna a cada token un identificador entero de un vocabulario fijo. Un tokenizador de texto convierte «El autobús se ha detenido» en cuatro identificadores, y el modelo busca un vector embedding para cada uno; por tanto, el tokenizador determina qué considera una unidad un modelo de lenguaje grande (LLM). Los tokens también son la unidad de la ventana de contexto de un modelo, de la latencia de inferencia durante la generación de texto y de los precios de la API. La misma idea se extiende más allá del texto: un transformer de visión (ViT) divide una imagen en parches, y los modelos de voz dividen el audio en fragmentos cortos.
Cómo funciona la tokenización de subpalabras#
Los primeros métodos de procesamiento del lenguaje natural (NLP) dividían el texto por espacios y signos de puntuación, lo que dejaba fuera del vocabulario las palabras nuevas o poco frecuentes, mientras que la tokenización a nivel de carácter generaba secuencias muy largas. Los transformers modernos utilizan tokenizadores de subpalabras que mantienen intactas las palabras frecuentes y dividen las poco frecuentes en fragmentos reutilizables. La codificación por pares de bytes (BPE), adaptada para la traducción automática por Sennrich et al. en 2015, aprende el vocabulario a partir de un corpus de entrenamiento: parte de caracteres o bytes individuales y fusiona repetidamente el par adyacente más frecuente para crear un token nuevo, hasta alcanzar el tamaño de vocabulario deseado. Para codificar texto nuevo, reproduce en orden las fusiones aprendidas.
La BPE a nivel de bytes, utilizada desde GPT-2, parte de los 256 valores de byte posibles, por lo que puede codificar cualquier cadena, emoji o archivo de código sin necesitar un token desconocido. Otros algoritmos eligen sus fragmentos de otra forma. WordPiece, utilizado por BERT, fusiona el par que más aumenta la verosimilitud de los datos de entrenamiento, y el método Unigram de la biblioteca SentencePiece de Google parte de un vocabulario candidato extenso y lo reduce, tratando el espacio como un símbolo normal para que un mismo tokenizador funcione con idiomas que se escriben sin espacios. Los vocabularios han ido creciendo: BERT utiliza 30 522 tokens, GPT-2 y GPT-3 utilizan 50 257, Llama 3 utiliza 128 256 y o200k_base de OpenAI utiliza unos 200 000. La biblioteca tiktoken de OpenAI compara los vocabularios más antiguo y más reciente:
import tiktoken
# Byte-level BPE vocabularies from GPT-2 (2019) and GPT-4o (2024)
for name in ["gpt2", "o200k_base"]:
encoding = tiktoken.get_encoding(name)
print(f"{name}: {encoding.n_vocab:,} tokens in the vocabulary")
for text in ["Ultralytics YOLO26 detects buses.", "バスが止まった。"]:
ids = encoding.encode(text)
# Decode each ID on its own to see where the tokenizer split the text
pieces = [encoding.decode([i]) for i in ids]
print(f" {len(ids)} tokens: {pieces}")El vocabulario de GPT-2 utiliza 11 tokens para la frase en inglés y divide «Ultralytics» en Ult, ral, y y tics, mientras que o200k_base solo necesita 9. Para la frase japonesa «the bus stopped», GPT-2 necesita 9 tokens y divide el carácter 止 en dos tokens a nivel de byte, cada uno de los cuales se decodifica por separado como el carácter de sustitución �, mientras que o200k_base necesita 7.
Tokenización y términos relacionados#
- Token: La unidad que produce la tokenización, como una palabra, una subpalabra, un byte, un parche de imagen o un fragmento de audio.
- Embeddings: Los vectores aprendidos que un modelo busca para cada identificador de token, entrenados junto con el resto de la red sobre un vocabulario fijado previamente por el tokenizador.
- Segmentación de palabras en el NLP clásico: Bibliotecas como spaCy y NLTK dividen el texto en palabras y signos de puntuación para analizarlos y etiquetarlos; a menudo, después se aplican procesos de stemming o lematización para el análisis lingüístico.
- Tokenización en seguridad de los datos: En los pagos y la protección de datos, la tokenización sustituye un valor sensible, como el número de una tarjeta, por un sustituto aleatorio almacenado en una bóveda protegida.
Por qué importan los recuentos de tokens#
En los textos en inglés, los tokenizadores de OpenAI procesan de media unos cuatro caracteres por token, pero otros idiomas y el código pueden necesitar muchos más. Petrov et al. (2023) observaron que la longitud tokenizada de un mismo texto traducido a distintos idiomas puede variar hasta 15 veces, lo que eleva los costes de la API y reduce el contexto utilizable para esos idiomas. Los límites entre tokens también determinan lo que puede ver un modelo. Un LLM que lee «strawberry» como unos pocos tokens de varias letras no puede ver directamente sus letras, y o200k_base divide «3.14159» en 3, ., 141 y 59, lo que dificulta la aritmética a nivel de dígito. Los diseños que no usan tokenizador, como el Byte Latent Transformer de Meta, evitan un vocabulario fijo agrupando bytes sin procesar en bloques cuyo tamaño depende de lo predecible que sea el siguiente byte.
Tokenización de imágenes, audio y vídeo#
Un ViT divide una imagen en bloques de tamaño fijo, de modo que una imagen de 224×224 se convierte en 196 tokens de bloque con bloques de 16×16 píxeles; cada uno se aplana y se proyecta linealmente en un embedding antes de la autoatención. Los modelos de visión y lenguaje (VLM) pasan los embeddings de los bloques a un LLM junto con los tokens de texto, así que una mayor resolución de imagen implica más tokens por solicitud. Los generadores de imágenes suelen utilizar en su lugar tokens visuales discretos: un libro de códigos de cuantización vectorial sustituye cada bloque por el ID de su vector de código más cercano, lo que permite que los modelos visuales autorregresivos generen imágenes token a token, como si fueran texto, y la fusión de tokens reduce el recuento en secuencias largas de imágenes y vídeo al combinar tokens similares.
Los modelos de visión también tokenizan texto. Cuando YOLOE-26 recibe nombres de clases mediante set_classes, Ultralytics procesa cada nombre con el tokenizador BPE a nivel de byte de CLIP, con relleno o truncamiento hasta 77 tokens, y el codificador de texto MobileCLIP2 de Apple convierte el resultado en el embedding con el que el cabezal de detección compara las regiones de la imagen. En el reconocimiento del habla, Whisper de OpenAI convierte cada ventana de audio de 30 segundos en tramas de espectrograma log-Mel, que su codificador procesa como una secuencia de 1.500 posiciones.










