Explorador de tokenização BPE

Um modelo de linguagem nunca vê as suas letras. Vê tokens, escolhidos por um vocabulário fixado muito antes de escrever. Cole texto e observe esse vocabulário a cortá-lo.

A carregar a simulação interativa...

O vocabulário é de outra pessoa, e já está terminado 🖖

A lista de fusões que esta página usa foi construída antes de aqui chegar, a partir da prosa inglesa deste site, e nada do que escrever a altera. Não é um atalho: é assim que um tokenizador funciona. O vocabulário fica fixado antes mesmo de começar o treino de um modelo, e não pode crescer para o acomodar: uma palavra que aquele corpus nunca conteve não tem entrada própria, por mais banal que lhe pareça. Escreva um nome, um termo técnico ou uma palavra noutra língua e veja-a chegar aos pedaços.

O espaço faz parte do token 🖖

Um token que inicia uma palavra transporta o espaço que o precede, aqui mostrado como ␣. Assim, «the» no início de uma linha e o mesmo precedido de um espaço a meio dela são duas entradas distintas do vocabulário, e um modelo tem de aprender ambas. É por isso que mudar as quebras de linha de um parágrafo pode alterar a sua contagem de tokens sem mudar uma única letra, e por isso que texto colado com espaços duplos ou indentação custa mais do que parece.

O modelo não consegue ver as letras dentro de um token 🖖

Um token chega ao modelo como um único número. Aqui «strawberry» torna-se ▁stra · w · ber · ry — quatro números, e os três erres da palavra caem em três deles diferentes. Perguntar quantos erres tem obriga o modelo a olhar para dentro de pedaços que só recebe inteiros. Ainda assim acerta muitas vezes, por ter lido a resposta algures. Isso é memória, não contagem, e é o que torna a falha tão estranha quando acontece.

Problema resolvido na íntegra

  1. Compressão quando sessenta e oito caracteres passam a treze tokens 5 passos

    Sessenta e oito carateres tornam-se treze tokens. Calcule a compressão e, em seguida, determine o valor real desses cinco carateres por token para um modelo.

    1. As duas contagens constituem a medição completa: carateres à entrada, tokens à saída.

    2. A sua razão é ligeiramente superior a cinco, o que é típico do inglês com a codificação por pares de bytes — as palavras comuns sobrevivem como tokens únicos e as raras fragmentam-se.

    3. A comparação que importa é com a alternativa. Um modelo ao nível dos bytes lê o mesmo texto como 68 tokens, mais de cinco vezes o comprimento da sequência.

    4. E a matriz de atenção contém n² entradas, pelo que multiplicar o comprimento por 5,23 multiplica por 27 essa parcela do cálculo. No resto da rede, a complexidade é linear em n e diminui por um fator de 5,23. Qual das duas parcelas predomina depende do comprimento do contexto: a atenção só passa a dominar depois de alguns milhares de tokens.

    5. Todos os treze tokens aqui são distintos, o que indica que o texto é curto e variado — não há repetição para as junções explorarem além do que o vocabulário já codifica.

    Resposta

    A ferramenta apresenta 13 tokens para 68 caracteres, ou seja, 5,23 caracteres por token. É essa compressão que justifica a tokenização e faz dela muito mais do que um pormenor: para um comprimento de contexto fixo, corresponde à diferença entre cinco páginas de texto e uma. Também explica por que razão o mesmo modelo custa menos em inglês do que em línguas para as quais o vocabulário não foi concebido. As fusões foram aprendidas a partir de um corpus; por isso, um sistema de escrita pouco representado tende a fragmentar-se até ao nível dos bytes, aumentando o custo de ambas as formas, linearmente em toda a rede e quadraticamente na atenção. Cole um texto noutra língua e observe a razão diminuir.

Percurso de aprendizagem

Como um LLM escolhe a palavra seguinte

Conduz a token-embeddings o vocabulário — o conjunto fixo de entradas às quais tudo o que se segue pode sequer atribuir uma probabilidade.

Referências (2)

Problemas de exemplo

  • Prosa inglesa - 68 caracteres tornam-se 13 tokens. Palavras frequentes como «of» e «a» sobrevivem inteiras, enquanto «quickly» se parte depois de «quick».
  • A mesma frase, em alemão - 69 caracteres — mais um do que a frase inglesa — tornam-se 36 tokens. O vocabulário foi treinado em inglês, e o alemão paga por isso.
  • Palavras raras e longas - 52 caracteres tornam-se 23 tokens. «strawberry» chega em quatro pedaços, pelo que os seus três erres nunca são mostrados separadamente ao modelo.
  • Algarismos e datas - 50 caracteres tornam-se 31 tokens. Os algarismos são partidos segundo os pares que calhou existirem no corpus, e é por isso que a aritmética com números longos custa a um modelo.
  • Inglês, vocabulário pequeno - A mesma frase inglesa do primeiro exemplo, com 200 fusões em vez de 3000: 33 tokens em vez de 13.