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.

      68 characters ⟶ 13 tokens68\ \text{characters}\ \longrightarrow\ 13\ \text{tokens}
    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.

      6813=5.23 characters per token\frac{68}{13}=5.23\ \text{characters per token}
    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.

      a byte-level model would emit 68 tokens for the same text\text{a byte-level model would emit }68\ \text{tokens for the same text}
    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.

      cost∝(tokens)2 for attention ⟹ (6813)2=27×\text{cost}\propto(\text{tokens})^2\ \text{for attention}\ \Longrightarrow\ \left(\frac{68}{13}\right)^2=27\times
    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.

      13 distinct of 13 ⟹ no token repeats here13\ \text{distinct of}\ 13\ \Longrightarrow\ \text{no token repeats here}

    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.

    5.23 chars/token: a 5× shorter sequence, and 27× less attention work5.23\ \text{chars/token}:\ \text{a}\ 5\times\ \text{shorter sequence, and}\ 27\times\ \text{less attention work}

Ruta de aprendizaje

Cómo elige un LLM la siguiente palabra

Referencias (2)