Codificación por pares de bytes: mira cómo un modelo trocea el texto en tokens
Escribe algo de texto y desliza de caracteres a palabras. Esto es la codificación por pares de bytes, la forma exacta en que los modelos tipo GPT convierten lo que escribes en los tokens que leen.
Esta semana la máquina aprende a leer. No el significado, eso viene después, sino el primer paso en bruto: trocear tu texto en tokens. Todo chatbot hace esto antes que nada, y explica muchas de sus rarezas, como que cuente mal las letras o que unas palabras cuesten más que otras.
El gadget de abajo es un tokenizador de codificación por pares de bytes (BPE), el esquema detrás de los modelos tipo GPT. Escribe algo de texto y arrastra el control de Fusiones (o pulsa Animar).
Mira qué pasa:
- Con 0 fusiones, cada carácter es su propio token. «the» son tres tokens: t, h, e. El número de tokens es igual al de caracteres.
- Cada fusión busca el par adyacente más frecuente de tu texto y lo une en un token nuevo. Primero quizá «t» y «h» se vuelven «th», luego «th» y «e» se vuelven «the».
- A medida que se acumulan las fusiones, las letras frecuentes crecen en subpalabras y palabras enteras, y el número de tokens baja. La lista de fusiones es el comienzo de un vocabulario.
Por qué los modelos leen trozos, no letras ni palabras
Un modelo necesita un vocabulario fijo de trozos. Las letras mantienen el vocabulario diminuto pero hacen las secuencias dolorosamente largas; las palabras enteras acortan las secuencias pero el vocabulario explota y cada errata se vuelve desconocida. BPE parte la diferencia: las palabras frecuentes se vuelven tokens únicos, mientras que las raras o nuevas se rompen en trozos familiares. Por eso «the» es un token pero un nombre extraño puede ser cinco.
Esta es, literalmente, la capa de entrada de un gran modelo de lenguaje. Antes de que el transformer piense nada, antes de que GPT-3 o ChatGPT prediga su siguiente token, el texto se convierte en trozos como estos. Por eso también se cobra por token y se cuentan tokens, no palabras: aquí el token es la verdadera unidad del procesamiento del lenguaje natural.
Escribe tu propio nombre, o una palabra larga y rara, y mira en cuántos trozos se parte.
¿Te perdiste las ediciones anteriores? Entrena un perceptrón, mira balbucear a una cadena de Markov, pierde contra el tres en raya invencible, enseña a un filtro a ver bordes o mira a un agente aprender de la recompensa.