El precio de un idioma
Una misma frase puede producir hasta 15 veces más tokens según el idioma en que esté escrita. No es un detalle de estilo: es una decisión de ingeniería, con consecuencias medibles.
Hacer la misma pregunta a un modelo de lenguaje, en dos idiomas distintos, no cuesta lo mismo de calcular. No es una cuestión de longitud de las palabras ni de cortesía: es una diferencia medida, documentada, y viene de una decisión de ingeniería tomada mucho antes de que nadie hiciera ninguna pregunta.
En qué se convierte un texto antes de entrar en el modelo
Un modelo de lenguaje no lee palabras. Lee tokens: fragmentos de texto, más cortos que una palabra o a veces más largos, troceados por un programa llamado tokenizador antes de que el texto entre en el cálculo. El detalle de ese troceado depende de un vocabulario fijo, aprendido una vez para siempre sobre un corpus de textos muy grande. Cada palabra tiene su propio número de tokens, y ese número es lo que el modelo factura, en tiempo de cálculo y en espacio en su memoria de trabajo.
Un mismo contenido, sumas muy distintas
Un estudio de 2023 midió esa diferencia sobre un conjunto de tokenizadores realmente usados por los modelos de lenguaje. Su constatación: un mismo contenido, traducido a idiomas distintos, puede producir hasta 15 veces más tokens en el idioma más desfavorecido que en el más favorecido. Incluso los tokenizadores que trocean a nivel de carácter o de byte, que en teoría evitan ese problema, conservan una diferencia medida en más de 4 veces según los pares de idiomas.
15×
la diferencia de tokens medida para un mismo contenido, entre el idioma más favorecido y el menos favorecido, en los casos más desfavorables (Petrov et al., 2023).
Más tokens para decir lo mismo no es un detalle estético. Es más cálculo en cada respuesta, y por tanto más lentitud al generarla y más coste al hacerla funcionar en un servicio facturado por token. Es también una ventana de contexto, la memoria de trabajo limitada de un modelo, que se llena más rápido: para un mismo número de tokens autorizados, un texto en un idioma desfavorecido contiene menos contenido realmente útil.
Por qué esta decisión no es neutral
El método de troceado más extendido se llama BPE, byte pair encoding. No se inventó para el lenguaje. Philip Gage lo describe en 1994 como un método general de compresión de archivos informáticos: detecta el par de bytes más frecuente en unos datos, lo sustituye por un byte sin usar, y repite la operación hasta agotar la ganancia. Nada que ver, en origen, con una lengua humana.
En 2016, Rico Sennrich, Barry Haddow y Alexandra Birch retoman la idea para un problema preciso de traducción automática: ¿qué hacer con una palabra rara, ausente del vocabulario aprendido por un modelo? Su respuesta trocea la palabra en fragmentos más corrientes, ya conocidos por el modelo. El método funciona bien, y desde entonces lo retoma la casi totalidad de los grandes modelos de lenguaje.
Un vocabulario de subpalabras se aprende sobre un corpus, una vez, antes del entrenamiento del propio modelo. Un corpus mayoritariamente anglófono aprende un vocabulario optimizado para el inglés: los fragmentos más corrientes en ese idioma se convierten en tokens únicos, cortos, poco numerosos. Una palabra de un idioma menos representado en ese corpus acaba troceada en más fragmentos, simplemente porque sus propias repeticiones frecuentes no han tenido la misma oportunidad de ser vistas durante el aprendizaje del vocabulario. No es una propiedad del lenguaje. Es el rastro de un corpus.
Lo que eso cambia, concretamente
Un servicio facturado por token cuesta, para un contenido equivalente, más caro a quien escribe en un idioma desfavorecido por el tokenizador. La respuesta también tarda más en aparecer, puesto que un modelo produce sus tokens uno detrás de otro, a una velocidad más o menos constante: más tokens que producir, más espera. Y la ventana de contexto, ese número fijo de tokens que un modelo puede leer o escribir de golpe, contiene menos texto útil: un documento, un historial de conversación, una instrucción larga caben peor en ella.
Ninguno de estos efectos viene de que un idioma sea más complejo que otro. Vienen de un vocabulario aprendido una vez, sobre un corpus dado, nunca recalculado en función de quién lo usa después. Los autores del estudio de 2023 proponen una vía: concebir, desde el principio, tokenizadores que no favorezcan estructuralmente a un idioma más que a otro.
Fuentes
- Language Model Tokenizers Introduce Unfairness Between Languages Aleksandar Petrov, Emanuele La Malfa, Philip H. S. Torr, Adel Bibi, 2023.
- Neural Machine Translation of Rare Words with Subword Units Rico Sennrich, Barry Haddow, Alexandra Birch, 2016.
- A New Algorithm for Data Compression Philip Gage, 1994.
Este artículo se publica bajo licencia CC BY 4.0: cópielo, tradúzcalo, vuelva a publicarlo citando a la ODERSA.