Tokenización (NLP)

From Systems analysis wiki
Jump to navigation Jump to search

Tokenización en el contexto de los modelos de lenguaje grandes (LLM) es un proceso fundamental de preprocesamiento que consiste en dividir una secuencia de texto en unidades más pequeñas y manejables llamadas tokens. Estos tokens se convierten luego en identificadores numéricos que el modelo puede procesar. La tokenización es un primer paso de importancia crítica, ya que afecta directamente al rendimiento, la eficiencia, la equidad y la calidad de la comprensión del lenguaje del modelo.

Conceptos básicos

Token

Un token es una unidad discreta de texto que procesa un modelo de lenguaje. Dependiendo del método de tokenización elegido, un token puede representar:

  • Una palabra completa (por ejemplo, «gato»).
  • Una parte de una palabra o subpalabra (por ejemplo, «in-», «-vis-», «-ible»).
  • Un carácter individual (por ejemplo, «a», «b», «c»).
  • Un byte (en el caso de la tokenización a nivel de byte).

A cada token único se le asigna un número de índice específico del vocabulario del tokenizador.

Vocabulario del tokenizador

El vocabulario es el conjunto completo de todos los tokens posibles que el modelo puede reconocer. El tamaño del vocabulario es un hiperparámetro importante:

  • Un vocabulario grande permite representar más palabras completas, lo que mejora la comprensión y reduce la longitud de las secuencias, pero aumenta el tamaño del modelo y la complejidad del entrenamiento.
  • Un vocabulario pequeño es más compacto, pero requiere dividir palabras raras o complejas en un mayor número de subpalabras, lo que puede alargar las secuencias y dificultar la captura de la semántica.

El tamaño del vocabulario varía significativamente entre los modelos: desde ~50 000 tokens en GPT-2 hasta más de 100 000 en modelos modernos como GPT-4 (100 277) y LLaMA-3 (128 000).

Métodos principales de tokenización

Existen tres niveles principales de granularidad en la tokenización.

1. Tokenización a nivel de palabra (Word-level)

  • Principio: El texto se divide en palabras individuales basándose en delimitadores (espacios, signos de puntuación).
  • Ventajas: Es intuitivo; las secuencias de tokens son más cortas, lo que reduce la carga computacional.
  • Desventajas:
    • Problema de palabras desconocidas (Out-of-Vocabulary, OOV): El modelo no puede procesar palabras que no estaban en su vocabulario de entrenamiento, así como erratas y palabras nuevas.
    • Gran tamaño del vocabulario: Se requiere almacenar todas las palabras únicas, lo que es especialmente problemático para idiomas con una morfología rica.

2. Tokenización a nivel de carácter (Character-level)

  • Principio: El texto se divide en caracteres individuales.
  • Ventajas:
    • Sin problema de OOV: Cualquier palabra puede representarse como una secuencia de caracteres.
    • Vocabulario pequeño: Limitado al tamaño del alfabeto y los caracteres especiales.
  • Desventajas:
    • Secuencias largas: El texto se convierte en secuencias de tokens muy largas, lo que aumenta significativamente los costos computacionales.
    • Pérdida de semántica: Al modelo le resulta más difícil captar el significado, ya que opera con caracteres individuales en lugar de palabras completas.

3. Tokenización de subpalabras (Subword Tokenization)

Este es un enfoque intermedio y el más popular hoy en día, que combina las ventajas de los métodos anteriores.

  • Principio: Las palabras de uso frecuente se mantienen como tokens completos, mientras que las palabras raras o desconocidas se dividen en partes más pequeñas y significativas (subpalabras).
  • Ventajas:
    • Maneja eficazmente las palabras OOV y las variaciones morfológicas.
    • Tamaño de vocabulario controlable.
    • Captura la estructura morfológica de las palabras.
  • Algoritmos principales:
    • Byte Pair Encoding (BPE): Un algoritmo iterativo que comienza con un conjunto de caracteres y fusiona secuencialmente los pares que aparecen con más frecuencia en nuevos tokens. Se utiliza en los modelos GPT. El BPE a nivel de byte (Byte-level BPE), utilizado en GPT-2 y RoBERTa, trata las palabras como secuencias de bytes, lo que soluciona por completo el problema de OOV.
    • WordPiece: Un algoritmo similar a BPE, pero para fusionar pares, elige aquellos que maximizan la verosimilitud de los datos de entrenamiento. Se utiliza en los modelos BERT.
    • Unigram LM: A diferencia de BPE/WordPiece, este método comienza con un gran conjunto de subpalabras y lo reduce gradualmente, eliminando los tokens que menos afectan a la probabilidad general del corpus. Esto permite crear múltiples tokenizaciones probables para una misma palabra (regularización de subpalabras).
  • La herramienta SentencePiece: Una biblioteca de Google que implementa BPE y Unigram LM y procesa el texto como un flujo continuo de caracteres, lo que la hace universal para idiomas sin delimitadores de palabras explícitos (como el chino). Se utiliza en los modelos LLaMA y T5.

Tokenización en LLM multimodales

En los modelos multimodales, que trabajan no solo con texto, la tokenización se extiende a otros tipos de datos:

  • Tokenización visual: Las imágenes se dividen en pequeños parches (por ejemplo, 16x16 píxeles), que luego se convierten en vectores-tokens, de forma análoga a los tokens de texto.
  • Tokenización de audio: Las señales de audio continuas se convierten en una secuencia de tokens discretos, que representan fragmentos cortos de sonido.
  • Enfoque unificado (TEAL): Un concepto donde los datos de cualquier modalidad se tokenizan primero con un tokenizador apropiado, y luego sus embeddings se procesan en un único espacio conjunto.

Problemas y limitaciones

La tokenización, a pesar de su importancia, es fuente de muchos problemas en el funcionamiento de los LLM:

  • Inconsistencia y sensibilidad: Pequeños cambios en los datos de entrada (una errata, el uso de mayúsculas/minúsculas, un espacio al final) pueden cambiar drásticamente la tokenización, lo que lleva a un comportamiento impredecible del modelo.
  • Problemas multilingües: Un vocabulario único para muchos idiomas a menudo resulta ineficaz para idiomas con pocos recursos o morfológicamente ricos, lo que resulta en secuencias de tokens demasiado largas.
  • Impacto en el razonamiento: La división ilógica de números (por ejemplo, «25,000» en «25», «,», «000») o símbolos dificulta la realización de tareas aritméticas y simbólicas.
  • Tokens de falla (Glitch Tokens): Tokens anómalos o raros de los datos de entrenamiento (por ejemplo, nombres de usuario de Reddit) que pueden provocar un comportamiento impredecible o malicioso del modelo.

Panorama en evolución y direcciones futuras

La investigación en el campo de la tokenización se está desarrollando activamente en las siguientes direcciones:

  • Modelos sin tokenizador: Desarrollo de modelos (CANINE, ByT5) que operan directamente a nivel de bytes o caracteres para eliminar por completo el paso de tokenización explícita y sus problemas asociados.
  • Tokenización adaptativa y entrenable: Creación de tokenizadores que pueden adaptarse dinámicamente al idioma, dominio o incluso al texto de entrada específico, o que se entrenan conjuntamente con el modelo principal.
  • Enfoques con orientación cognitiva: Desarrollo de métodos inspirados en la ciencia cognitiva sobre el procesamiento del lenguaje humano (por ejemplo, el «Principio del mínimo esfuerzo») para crear tokenizaciones con más sentido semántico.

Enlaces

Literatura

  • Schuster, M.; Nakajima, K. (2012). Japanese and Korean Voice Search. PDF.
  • Sennrich, R.; Haddow, B.; Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. arXiv:1508.07909.
  • Kudo, T.; Richardson, J. (2018). SentencePiece: A Simple and Language-Independent Subword Tokenizer and Detokenizer for Neural Text Processing. arXiv:1808.06226.
  • Kudo, T. (2018). Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates. arXiv:1804.10959.
  • Song, X. et al. (2021). Fast WordPiece Tokenization. ACL-Anthology.
  • Mielke, S. J.; Dalmia, S.; Cotterell, R. (2021). A Brief History of Open-Vocabulary Modeling and Tokenization in NLP. arXiv:2112.10508.
  • Xue, J. et al. (2022). ByT5: Towards a Token-Free Future with Pre-trained Byte-to-Byte Models. arXiv:2105.13626.
  • Clark, J. H. et al. (2022). CANINE: Pre-Training an Efficient Tokenization-Free Encoder for Language Representation. arXiv:2103.06874.
  • Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). Tokenization Impacts Multilingual Language Modeling. arXiv:2305.17179.
  • Pourmostafa Roshan Sharami, J.; Shterionov, D.; Spronck, P. (2023). A Systematic Analysis of Vocabulary and BPE Settings for Optimal Fine-Tuning of NMT. arXiv:2303.00722.
  • Batsuren, K. et al. (2024). Evaluating Subword Tokenization: Alien Subword Composition and OOV Generalization Challenge. arXiv:2404.13292.
  • Chai, Y. et al. (2024). Tokenization Falling Short: On Subword Robustness in Large Language Models. arXiv:2406.11687.