Antes de um modelo de linguagem poder ler o que quer que seja, o texto precisa de ser dividido em partes que possa contar. Estas partes são tokens, e a tokenização é o processo de divisão. Um token pode ser uma palavra inteira, um fragmento como "ndo" ou "pré", um sinal de pontuação ou até um único caractere. O modelo nunca vê o texto em bruto; vê uma sequência de IDs inteiros mapeados para esses tokens.
Diferentes métodos apresentam diferentes vantagens e desvantagens. A tokenização ao nível da palavra preserva o significado, mas resulta em milhões de palavras raras e apresenta dificuldades com gralhas. A tokenização ao nível do caractere possui um vocabulário muito pequeno, mas produz sequências muito longas. Os métodos de subpalavras, como a codificação de pares de bytes, situam-se entre estes dois extremos: começam com caracteres e combinam repetidamente os pares mais frequentes até atingir o tamanho de vocabulário desejado.
Por que razão isso importa
- O tamanho do vocabulário determina a tabela de incorporação do modelo e o espaço de memória necessário para a sua utilização.
- A contagem de tokens define a janela de contexto e o custo de cada chamada de API.
- A tokenização inadequada divide as palavras de formas que prejudicam o desempenho multilingue.
- As línguas com alfabetos não latinos geralmente precisam de muito mais tokens por frase.
Uma frase em inglês pode utilizar 20 tokens; a mesma frase em tailandês ou hindi pode exigir 60 ou mais num tokenizador com foco no Ocidente. Este desequilíbrio afeta a velocidade, o preço e a precisão para milhares de milhões de falantes.
Comments
No comments yet. Be the first to share a thought.
Leave a comment