Esta é uma tradução automática; o artigo original em inglês é a versão de referência. Ler o original

Por que razão um modelo de linguagem tem dificuldade em contar as letras de uma palavra

A white paneled robot counts on its fingers while blank glowing jigsaw pieces float in front of it, fusing into fewer and larger pieces.

A palavra «strawberry» chega ao GPT-4 em três partes — str, aw, berry. As letras já desapareceram antes de o modelo ter lido o que quer que seja.

WHAT YOU TYPEstrawberry3 × rWHAT THE MODEL RECEIVESstrawberry3 OPAQUE IDs
Envia letras. O modelo recebe três identificadores opacos. Os «r» nunca estiveram na entrada que ele viu.

Pergunte a um modelo de linguagem quantas vezes a letra «r» surge em «strawberry» e é bem provável que responda duas. Isto costuma ser encarado como prova de uma profunda deficiência. No entanto, assemelha-se mais a pedir a alguém que conte as pinceladas de uma palavra que apenas ouviu ser pronunciada.

O que o modelo realmente recebe

Antes de qualquer modelo ver texto, esse texto é dividido em tokens. Não em letras, não em palavras — em blocos escolhidos por um algoritmo que analisou um vasto corpus e fundiu os pares adjacentes que ocorriam com maior frequência, repetidamente, até obter um vocabulário de dezenas de milhares de elementos.

As palavras comuns acabam por constituir um único token. As mais raras são divididas, e o local onde essas divisões ocorrem é determinado por estatísticas do corpus, e não pelo significado ou pela ortografia. A palavra «strawberry» pode chegar em dois ou três blocos, e a perceção que o modelo tem dela resume-se a esses blocos como símbolos atómicos — cada um deles um índice arbitrário num vocabulário, sem mais estrutura interna ao dispor do modelo do que a que tem um número de porta.

Portanto, as letras simplesmente não estão lá. Um modelo pode aprender factos sobre a ortografia — que certos tokens tendem a coocorrer com certas afirmações acerca de letras —, mas está a raciocinar a partir de referências indiretas sobre a sua própria entrada, e não a partir da entrada em si. Pode observar esta divisão a acontecer no Tokenizer. O seu vocabulário teve origem nos textos deste próprio sítio e não numa recolha da Web, pelo que divide «strawberry» em quatro partes, enquanto o do GPT divide em três.

O que mais isto explica

Aritmética com números longos. Os números também são tokenizados, e nem sempre dígito a dígito. Um número pode ser dividido em blocos que atravessam as ordens decimais, pelo que um modelo a efetuar aritmética em coluna trabalha com segmentos que não coincidem com as colunas. Um desempenho que se degrada acentuadamente com a contagem de dígitos é um indício de que o problema reside na representação.

Rimas, anagramas, acrósticos. Qualquer tarefa definida com base em letras e não no significado esbarra no mesmo obstáculo.

Custos e limites de contexto noutras línguas que não o inglês. Os tokenizadores são treinados em corpora esmagadoramente em inglês, pelo que o inglês beneficia de tokens eficientes e as outras línguas ficam fragmentadas em mais partes por palavra. A mesma frase numa língua com menor representação pode consumir várias vezes mais tokens, o que significa que o seu processamento é mais caro e consome uma fatia maior de uma janela de contexto fixa. Trata-se de uma questão de equidade oculta numa etapa de pré-processamento.

Os tokens não são o único local onde reside a surpresa

O significado é geométrico. As palavras convertem-se em vetores, e a proximidade nesse espaço é aprendida a partir da coocorrência: o que surge perto do quê. É por isso que os modelos captam tão bem as associações e herdam os enviesamentos dos textos com que foram treinados: se uma palavra surge com frequência perto de outras no corpus, ficará posicionada junto a elas nesse espaço, e nada no mecanismo distingue um facto de um estereótipo. A ferramenta Token Embeddings cria uma versão reduzida desse espaço para que possa observar de que é feita essa geometria.

O resultado é amostrado, não escolhido. O modelo gera uma distribuição de probabilidades sobre o token seguinte, e algo tem de selecionar um. Se baixar a temperatura, o modelo escolherá sempre a opção mais provável, tornando-se repetitivo e previsível. Se a subir, optará com maior frequência por opções de baixa probabilidade, tornando-se inventivo e pouco fiável. Grande parte do que é descrito como a «criatividade» de um modelo resume-se a um parâmetro de amostragem. As alucinações não: um modelo com temperatura zero continua a inventar factos, e o amostrador apenas altera a frequência com que isso acontece. O Temperature Sampling apresenta a distribuição e a seleção lado a lado.

De que camada provém um comportamento

Isto transforma um mistério numa especificação. «O modelo não é fiável» não permite agir. Mas «o modelo não consegue ver letras, pelo que as tarefas de ortografia e de contagem de carateres devem ser encaminhadas para código» já permite. O mesmo se aplica a «esta língua consome três vezes mais tokens, logo é necessário orçamentar em conformidade» e a «este resultado foi amostrado a uma temperatura que não produzirá resultados reproduzíveis».

Quase todas as decisões práticas sobre a boa utilização destes sistemas decorrem de saber de que camada provém um dado comportamento: do tokenizador, da geometria dos embeddings ou do amostrador. Nenhuma das três constitui inteligência, e todas as três são passíveis de inspeção.

Como é construído o vocabulário

O método habitual é o byte pair encoding, e é mais simples do que a sua reputação faz crer. Começa-se com cada caráter como um token individual. Contam-se todos os pares adjacentes ao longo do corpus, encontra-se o par mais frequente e funde-se num novo token único. Repete-se o processo algumas dezenas de milhares de vezes.

O que surge não é uma análise linguística. É uma classificação por frequências. As palavras comuns da língua inglesa sobrevivem inteiras porque eram frequentes no corpus; a morfologia só é captada onde por acaso coincide com a frequência. O tokenizador não tem qualquer noção de que «running» contém «run»; só o representará dessa forma se essa divisão tiver vencido na contagem.

O vocabulário é o fóssil de um corpus específico num dado momento. Se alterar o texto de treino, os pontos de divisão mudam. Dois modelos com tokenizadores distintos não discordam apenas quanto aos resultados; discordam quanto àquilo que a entrada é.

Por que razão não é simples de resolver

A resposta óbvia seria fornecer carateres ao modelo em vez disso. Alguns modelos fazem-no, mas a troca não é gratuita.

Os tokens existem para encurtar a sequência. Uma página em inglês tem talvez 250 tokens ou 1 200 carateres, e o custo do mecanismo de atenção cresce com o quadrado do comprimento da sequência; por isso, trabalhar com carateres custa aproximadamente vinte vezes mais capacidade computacional para o mesmo excerto. A tokenização é uma etapa de compressão e está sujeita exatamente ao compromisso descrito no compression article: obtêm-se sequências mais curtas abdicando do acesso à estrutura abaixo do token.

Trata-se, portanto, de uma troca deliberada da visibilidade ao nível dos carateres pela redução do comprimento da sequência, realizada antes de o modelo ver o que quer que seja — e as suas consequências recaem precisamente onde o detalhe ao nível dos carateres era fundamental.

Um truque de compressão de 1994

Este método de divisão tem uma história curiosa. O byte pair encoding foi publicado por Philip Gage em 1994 como um algoritmo de compressão de dados, numa revista de programação, destinado a reduzir o tamanho de ficheiros. A sua regra consistia em encontrar o par de bytes adjacente mais frequente e substituí-lo por um byte que não estivesse em uso, repetindo de seguida o processo.

Em 2016, Sennrich, Haddow e Birch adaptaram-no para a tradução automática, não para comprimir o que quer que fosse, mas para construir um vocabulário capaz de representar palavras raras através de fragmentos, em vez de desistir delas.

Assim, um truque de compressão com trinta anos, concebido quando a grande preocupação era o espaço em disco, decide aquilo que os maiores modelos da atualidade são capazes de perceber.