
Tokenizer do Claude teria só ~15 mil entradas, e isso intriga
Um vocabulário surpreendentemente pequeno
O entusiasta de tokenizadores Sander Land reproduziu algo muito próximo do tokenizador atual do Claude, que aparenta ter somente cerca de 15 mil entradas. O número intriga porque a tendência geral no setor parecia caminhar na direção oposta: o Qwen 3.8, um lançamento forte, tem cerca de 250 mil tokens em seu vocabulário, e a impressão predominante era que, nesse campo, quanto maior, melhor.
Segundo o que Land consegue estimar, o movimento foi de cortes sucessivos: de cerca de 50 mil entradas de vocabulário no Claude 3 para cerca de 16 mil hoje. Custe o que custar o gargalo do gradiente, a Anthropic, em linhas gerais, não está pagando esse preço.
A teoria do gargalo na softmax
Uma teoria para o tamanho reduzido diz que a Anthropic estaria trabalhando para contornar um gargalo causado pela última camada de softmax. Há um artigo relativamente recente sobre o tema, “Lost in Backpropagation: The LM Head is a Gradient Bottleneck”; ainda assim, se essa for a razão, o pessoal da Throppy já conheceria o assunto havia bem mais tempo.
A ideia básica é a seguinte: ao fim da passagem direta, o modelo projeta seu espaço latente, de dimensão D, para um espaço de vocabulário muito maior, de dimensão V, para escolher um token. Na Qwen, o modelo principal de 2,4 trilhões de parâmetros tem tamanho oculto (D) de 8.192 e um V correspondente às 250 mil entradas. Durante o treinamento, compara-se a distribuição prevista com o token correto: se o modelo acerta com confiança, a perda é pequena; se erra com confiança, ela é grande. Essa perda se propaga por todas as 250 mil entradas e, de lá, para as 8 mil entradas da dimensão oculta. Essa compressão limita quanta informação consegue retornar à rede. Os autores mostram que a variação nos logits tem posto (rank) de no máximo 2D; se V for muito maior que D, há perda de informação. Em suas palavras, demonstra-se empírica e teoricamente que o gargalo do softmax induz compressão com perdas durante a retropropagação.
O fenômeno não é totalmente óbvio. A distribuição correta tem largura de uma única entrada, e a dimensão oculta representa bem isso. Mas, em um lote amplo, aparecem todos os tipos de próximos tokens possíveis: os sinais são esparsos, porém não de baixo posto - com exemplos suficientes, praticamente todo token já foi, em algum momento, “o próximo token”. O sinal de aprendizado chega, portanto, com a largura do vocabulário inteiro, e o modelo amostra dele um subconjunto aleatório de tamanho D. Isso não é um problema em si: seria possível aprender o mapeamento, mas nada no processo incentiva particularmente que ele seja aprendido.
Benefícios e o preço da troca
Independentemente de essa ser ou não a razão do vocabulário pequeno, fica uma questão: como eles conseguem fazer isso funcionar? Há ganhos práticos. Não é preciso recorrer a núcleos chunked CE engenhosos, já que não existe projeção para um espaço grande e faminto por memória, e não surgem glitch tokens no estilo solidgoldmagikarp, porque todos os tokens recebem treinamento.
Tokens raros e outros idiomas não estão sendo ignorados: usam-se tokens de subpalavras e, no pior caso, fallbacks para UTF-8. O custo é que cada trecho de texto exige mais tokens e mais custo de atenção. Nos testes de Land, aparenta ser apenas 1,2 a 2 vezes mais tokens. Não é de graça: encolher o tokenizador realmente custa mais execução e mais dinheiro, mas a troca presumivelmente compensa.