Editorial LLMs & Texto

MultiHashFormer: e se cada palavra fosse uma impressão digital?

Uma arquitetura propõe trocar a gigantesca tabela de vocabulário do transformer por assinaturas de hash — e promete crescer o vocabulário multilíngue sem inchar o modelo nem um parâmetro.

Ponto Zero ·

Todo modelo de linguagem carrega um peso invisível que ninguém comenta: a tabela de vocabulário. Antes de raciocinar sobre qualquer coisa, o modelo precisa traduzir texto em números — e guarda, para cada pedaço de palavra que conhece, um vetor próprio numa tabela enorme. Quanto mais idiomas e símbolos ele precisa cobrir, maior essa tabela fica. Em modelos multilíngues, ela sozinha pode responder por uma fatia desproporcional dos parâmetros, sem contribuir em nada para o raciocínio.

O MultiHashFormer, um dos papers em destaque no radar desta semana, faz uma pergunta provocadora: e se não houvesse tabela? E se, em vez de guardar um endereço para cada palavra, o modelo calculasse uma impressão digital de cada uma na hora?

O custo escondido do vocabulário

Para entender a proposta, vale lembrar como um modelo lê. O texto é quebrado em tokens — pedaços de palavra — e cada token vira um número que aponta para uma linha da tabela de embeddings, o vetor que representa aquele pedaço. Essa tabela é uma matriz: número de tokens conhecidos vezes a dimensão do modelo. Dobrar o vocabulário dobra essa matriz.

É por isso que cobrir bem dezenas de idiomas custa caro. Cada novo alfabeto, cada nova classe de símbolos, exige mais linhas na tabela — parâmetros que precisam ser armazenados, carregados e treinados, mas que não tornam o modelo mais inteligente, só mais abrangente. Há um limite incômodo nessa conta: você paga em tamanho para ter alcance.

A ideia: substituir a busca pelo cálculo

A aposta do MultiHashFormer é trocar uma busca por um cálculo. Em vez de procurar o vetor de um token numa tabela gigante, ele gera uma assinatura de hash — um conjunto de códigos derivados do próprio token — e processa essa assinatura por dois componentes acoplados ao transformer: um Hash Encoder, que transforma a assinatura na representação de entrada, e um Hash Decoder, que faz o caminho de volta na hora de prever a próxima palavra.

Um hash é uma função que converte qualquer entrada num código de tamanho fixo — a mesma ideia por trás das impressões digitais de arquivos. O risco clássico de hashing é a colisão: duas coisas diferentes recebendo o mesmo código, o que confundiria o modelo. O trabalho afirma usar múltiplas assinaturas justamente para evitar esse "muitos-para-um" — daí o "Multi" no nome. Várias impressões digitais combinadas tornam improvável que duas palavras distintas sejam confundidas.

  • Sem tabela de embeddings tradicional: tokens viram assinaturas de hash processadas por um Hash Encoder e um Hash Decoder.
  • Múltiplas assinaturas para evitar colisões — o problema de duas palavras receberem o mesmo código.
  • Avaliado em três escalas: 100M, 1B e 3B de parâmetros.
  • Relata superar transformers padrão "em múltiplos benchmarks" nessas escalas.
  • Promessa central: expandir o vocabulário multilíngue com custo de parâmetros constante.

O que se ganha — se funcionar

O prêmio prometido é elegante: vocabulário desacoplado do tamanho. Se o custo de adicionar idiomas deixa de ser linear na tabela de embeddings, um modelo pequeno pode, em tese, cobrir muito mais línguas sem engordar. Para o português e os demais idiomas que vivem fora do clube anglófono, isso importa — boa parte da desvantagem dos modelos em línguas "menores" começa justamente na fome de tokens que a tabela cobra.

O trabalho relata superar transformers padrão nas três escalas testadas, de 100 milhões a 3 bilhões de parâmetros. É um sinal encorajador de que a troca da busca pelo cálculo não sai cara em qualidade — pelo menos nesse intervalo.

Os porquês do ceticismo

Convém segurar o entusiasmo. Ideias de hashing para embeddings não são novas, e historicamente esbarram em dois muros: as colisões, que degradam a representação, e a dificuldade de treinar componentes que substituem a tabela sem perder a estabilidade. O MultiHashFormer diz contornar o primeiro com múltiplas assinaturas — mas a prova de que isso escala vem com tamanho, e 3B ainda é pequeno para os padrões atuais.

Há também o silêncio de sempre nos primeiros papers: faltam números independentes, falta saber em quais benchmarks exatamente a vantagem aparece e quão grande ela é, e falta o teste do uso real em muitos idiomas — que é onde a promessa de fato se realiza ou desmorona. Arquitetura elegante no papel é condição necessária, não suficiente.

O que fica

O MultiHashFormer é menos um produto e mais uma pergunta de arquitetura: precisamos mesmo guardar um endereço para cada palavra? Se a resposta for não — se uma impressão digital calculada na hora bastar —, abre-se um caminho para modelos que cobrem o mundo inteiro de idiomas sem pagar por isso em peso. É o tipo de aposta de base que raramente vira manchete, mas que, se vingar, muda silenciosamente o custo de fazer um modelo falar a sua língua.

Perguntas Frequentes

O que é a tabela de vocabulário de um modelo?

É a matriz que guarda um vetor (embedding) para cada token — pedaço de palavra — que o modelo conhece. Seu tamanho é o número de tokens vezes a dimensão do modelo, e cresce com a cobertura de idiomas e símbolos. Em modelos multilíngues, pode consumir uma fatia grande dos parâmetros sem ajudar no raciocínio.

O que é uma assinatura de hash, no contexto?

É um conjunto de códigos de tamanho fixo derivados do próprio token, como uma impressão digital. Em vez de buscar o vetor numa tabela, o modelo calcula essa assinatura na hora — substituindo armazenamento por computação.

O que é uma colisão e por que importa?

Colisão é quando duas entradas diferentes recebem o mesmo código de hash, o que confundiria o modelo. O MultiHashFormer usa múltiplas assinaturas combinadas para tornar improvável que duas palavras distintas sejam tratadas como iguais — daí o "Multi".

Por que isso pode beneficiar idiomas como o português?

Porque desacopla o vocabulário do tamanho do modelo. Se adicionar idiomas deixa de inflar a tabela de embeddings, um modelo pequeno pode cobrir muito mais línguas sem engordar — atacando parte da desvantagem que línguas fora do inglês sofrem na contagem de tokens.

compartilhar: