Como o texto vira as peças que um modelo lê.

SRC·04 Source
O modelo nunca vê uma letra. Nem uma palavra.

O modelo nunca vê uma letra. Nem uma palavra.

Antes de 'pensar' um único pensamento, sua frase é estilhaçada em pedaços — e cada pedaço vira um número simples. O mundo inteiro do modelo é esse fluxo de inteiros: não letras, não palavras, mas tokens. Tudo o que ele sabe sobre linguagem, ele sabe sobre essas peças.
Por que não dar só palavras a ele? Ou letras?

Por que não dar só palavras a ele? Ou letras?

Duas escolhas óbvias, ambas furadas. Uma casa para cada palavra significa um dicionário sem fim — e ainda assim ele tropeça no primeiro nome, erro de digitação ou emoji que nunca viu. Indo pro outro lado, uma letra de cada vez, e uma frase curta incha pra cem passos quase vazios. Como picar legumes: deixe-os inteiros e não cozinham por dentro; triture-os até virar purê e você perdeu o prato. O corte certo fica no meio.
A solução: dividir em <em>peças</em>, não em palavras ou letras.

A solução: dividir em peças, não em palavras ou letras.

Mantenha inteiras as palavras comuns; quebre as raras em partes reutilizáveis. Assim 'tokenization' se divide em 'token' + 'ization' — e esse 'ization' reaparece em 'civilization,' 'organization.' Alguns milhares de partes padrão conseguem soletrar quase tudo. Como peças de montar: você nunca molda uma peça nova para cada forma — encaixa as que já tem.
De onde vêm as peças? Da ganância, uma fusão de cada vez.

De onde vêm as peças? Da ganância, uma fusão de cada vez.

(x,y)  =  argmax(x,y)count(x,y)(x,y)^{\star} \;=\; \arg\max_{(x,y)} \, \mathrm{count}(x,y)
Comece pelos caracteres crus. Varra uma montanha de texto, ache o par vizinho mais frequente e funda-o numa peça nova. Depois repita — milhares de vezes. 't'+'h' viram 'th'; mais tarde 'th'+'e' viram 'the.' Em palavras simples: os dois símbolos vistos lado a lado com mais frequência ficam colados, de novo e de novo, até você ter seu vocabulário. Como a solda de forja de um ferreiro: as duas barras que você pega juntas vez após vez, no fim você martela numa só — e nunca mais junta à mão.
Cada peça pronta é só um número.

Cada peça pronta é só um número.

ids=[id(t)  :  ttokens],id(t){0,1,,V1}\text{ids} = \big[\, \mathrm{id}(t) \;:\; t \in \text{tokens} \,\big], \quad \mathrm{id}(t) \in \{0, 1, \dots, V-1\}
Uma rede faz contas, e você não pode multiplicar 'cat.' Então cada peça do vocabulário ganha um ID fixo — um número de linha entre V. Sua frase vira uma curta lista de inteiros, e isso é tudo o que entra. Em palavras simples: uma tabela congelada troca cada pedaço pelo seu número. Como numa chapelaria: você entrega seu casaco, pega uma ficha numerada, e dali em diante todos lidam só com fichas — nunca com casacos.
É por isso que ele não consegue contar os r de 'strawberry.'

É por isso que ele não consegue contar os r de 'strawberry.'

As peças ignoram as junções que importam pra nós. 'strawberry' chega como dois ou três blocos, nunca como dez letras separadas — então o modelo simplesmente não consegue ver os três r para contá-los. Um espaço no início já faz de ' dog' um token diferente de 'dog.' Ele lê em blocos, nunca em letras. Como um mosaico de perto: dá pra ler a imagem inteira, mas cada tessela é um bloco maciço de cor — pergunte qual letra se esconde dentro de uma tessela, e não há nenhuma.
Então um token é o verdadeiro alfabeto do modelo — um código aprendido.

Então um token é o verdadeiro alfabeto do modelo — um código aprendido.

tokenscharacters4(English, on average)\text{tokens} \approx \dfrac{\text{characters}}{4} \quad (\text{English, on average})
Junte tudo: o vocabulário — muitas vezes de 50.000 a 100.000 peças — é um código de compressão, construído uma vez e congelado. Texto comum recebe um token curto; texto raro é soletrado com vários. Em palavras simples: em média, cerca de quatro caracteres em inglês se dobram em um único token. Comprimento de contexto, velocidade, custo — tudo é contado em tokens, não em palavras. O modelo não lê inglês; ele lê esse código que o inglês atravessa. Como enfardar feno: a palha solta é infinita, então você a prensa em fardos apertados — e aí conta, carrega e cobra o campo inteiro em fardos, não em talos.
🌱 Ele nunca encontra uma palavra. Só as peças que escolhemos por ele.

🌱 Ele nunca encontra uma palavra. Só as peças que escolhemos por ele.

Seu mundo inteiro é feito de cem mil fragmentos, fixados no lugar antes mesmo de ele aprender a pensar. Ele nunca encontra uma letra, nunca encontra uma palavra inteira — só esses pedaços, e os números por trás deles. Então, quando ele nos lê, está lendo a nossa língua? Ou um dialeto privado, costurado de fragmentos, que as nossas palavras apenas atravessam de passagem?
toque →deslize ↑ para maisdeslize ↓ para sair