Explorador de tokenización BPE

Un modelo de lenguaje nunca ve tus letras. Ve tokens, elegidos por un vocabulario fijado mucho antes de que escribieras. Pega un texto y observa cómo ese vocabulario lo corta.

Cargando simulación interactiva...

El vocabulario es de otra persona, y ya está terminado 🖖

La lista de fusiones que usa esta página se construyó antes de que llegaras, a partir de la prosa en inglés de este sitio, y nada de lo que escribas la cambia. No es un atajo: es lo que es un tokenizador. El vocabulario queda fijado antes incluso de que empiece el entrenamiento de un modelo, y no puede crecer para acomodarte: una palabra que aquel corpus nunca contuvo no tiene entrada propia, por corriente que te resulte. Escribe un nombre, un término técnico o una palabra en otro idioma y observa cómo llega partida.

El espacio forma parte del token 🖖

Un token que empieza una palabra arrastra el espacio que lo precede, mostrado aquí como ␣. Así, «the» al principio de una línea y « the» en mitad de ella son dos entradas distintas del vocabulario, y un modelo tiene que aprender ambas. Por eso volver a ajustar los saltos de línea de un párrafo puede cambiar su número de tokens sin cambiar ni una letra, y por eso el texto pegado con espacios dobles o sangrías cuesta más de lo que parece.

El modelo no puede ver las letras dentro de un token 🖖

Un token llega al modelo como un único número. Aquí «strawberry» se convierte en ▁stra · w · ber · ry: cuatro números, y las tres erres de la palabra caen en tres de ellos distintos. Preguntar cuántas erres tiene obliga al modelo a mirar dentro de piezas que solo recibe enteras. Aun así suele acertar, porque ha leído la respuesta en alguna parte. Eso es memoria, no conteo, y por eso el fallo resulta tan extraño cuando ocurre.

Problema resuelto al detalle

  1. Compresión cuando sesenta y ocho caracteres pasan a ser trece tokens 5 pasos

    Sesenta y ocho caracteres se convierten en trece tokens. Calcule la compresión y determine qué representan realmente para un modelo esos cinco caracteres por token.

    1. Ambos recuentos conforman la medida completa: caracteres de entrada y tokens de salida.

    2. Su proporción es algo superior a cinco, lo cual es habitual en inglés con la codificación por pares de bytes: las palabras frecuentes sobreviven como tokens individuales y las raras se fragmentan.

    3. La comparación relevante es frente a la alternativa. Un modelo a nivel de byte lee el mismo texto como 68 tokens, más de cinco veces la longitud de la secuencia.

    4. Y la matriz de atención contiene n² elementos, así que multiplicar la longitud por 5,23 multiplica por 27 el trabajo correspondiente a esa parte. En el resto de la red, el coste crece linealmente con n y se reduce por un factor de 5,23. Que predomine uno u otro depende de la longitud del contexto: la atención solo pasa a dominar a partir de unos cuantos miles de tokens.

    5. Los trece tokens de este caso son distintos, lo que indica que el texto es breve y variado: no hay repeticiones que las fusiones puedan aprovechar más allá de lo que el vocabulario ya codifica.

    Respuesta

    La herramienta muestra 13 tokens para 68 caracteres: 5,23 caracteres por token. Esa compresión explica tanto la existencia de la tokenización como su importancia. Para una longitud de contexto fija, supone la diferencia entre cinco páginas de texto y una. También explica por qué un mismo modelo resulta más barato en inglés que en lenguas para las que no se diseñó el vocabulario. Las fusiones se aprendieron a partir de un corpus; por eso, una escritura poco representada en él tiende a fragmentarse hasta acercarse al nivel de los bytes y encarece ambos componentes del cálculo: el coste crece linealmente en toda la red y cuadráticamente en la atención. Pega un texto en otra lengua y observa cómo baja la proporción.

Ruta de aprendizaje

Cómo elige un LLM la siguiente palabra

Lleva a token-embeddings el vocabulario: el conjunto fijo de entradas a las que cualquier paso posterior puede asignar una probabilidad.

Referencias (2)

Problemas de ejemplo

  • Prosa en inglés - 68 caracteres se convierten en 13 tokens. Palabras frecuentes como «of» y «a» sobreviven enteras, mientras que «quickly» se parte después de «quick».
  • La misma frase, en alemán - 69 caracteres —uno más que la frase en inglés— se convierten en 36 tokens. El vocabulario se entrenó con inglés, y el alemán lo paga.
  • Palabras raras y largas - 52 caracteres se convierten en 23 tokens. «strawberry» llega en cuatro piezas, así que al modelo nunca se le muestran sus tres erres por separado.
  • Cifras y fechas - 50 caracteres se convierten en 31 tokens. Las cifras se parten según los pares que hubiera en el corpus, y por eso a un modelo le cuesta la aritmética con números largos.
  • Inglés, vocabulario pequeño - La misma frase en inglés del primer ejemplo, con 200 fusiones en lugar de 3000: 33 tokens en vez de 13.