Em Produção · AI · Fundamentos
Tokens são compressão: o que Shannon explica sobre a sua conta de IA
Por que alguns prompts custam o dobro de outros, explicado por um gigabyte de 1s e uma frase sobre um incêndio.
Toda fatura de LLM é uma contagem de tokens, de entrada e de saída. Os times olham para ela como olham para a conta de celular: um número que sobe. É mais interessante do que isso. Uma contagem de tokens mede o quanto o seu texto é surpreendente.
Comece com um arquivo em que todo byte é 1. Faça ele ter um gigabyte. Quanta informação tem ali? Quase nenhuma. Se você sabe que é tudo 1, só precisa do tamanho. Dado e informação são coisas diferentes. Ou pegue a frase “Vi um incêndio e tinha fogo.” Todo incêndio tem fogo; a segunda metade pode sair e nada se perde. Informação é surpresa.
Um tokenizador trabalha em cima dessa ideia. Antes de o modelo ler qualquer coisa, o texto é comprimido em tokens, pedaços de um dicionário aprendido com os dados de treino. Pedaços frequentes ganham um token só. Os raros são soletrados em vários. Por isso a conta acompanha a surpresa, não o tamanho. Experimente:
Carregando a figura interativa…
Versão estática: “euameiela” tem 9 caracteres, 72 bits armazenados e 21,775 bits de informação (2,419 por caractere).
A aritmética de “euameiela”
Rode a figura com “euameiela”. Nove caracteres, 72 bits em disco e só uns 21,8 bits de informação, 2,419 bits por caractere. Cerca de 70% do espaço desperdiçado. Um código de prefixo feito à mão, um bit para o “e” frequente e códigos maiores para as letras raras, espreme tudo em 22 bits. Não dá para ir abaixo disso: bits são inteiros e a entropia é o piso.
O byte-pair encoding é o mesmo truque em escala. Em vez de dar ao “e” um código curto, ele dá a pedaços comuns de texto um token só. Agora cole um UUID, um base64 ou um JSON minificado na caixa acima. A entropia por caractere sobe, as palavras deixam de parecer palavras e a contagem de tokens passa na frente da de caracteres.
O idioma também pesa. Com dados de treino majoritariamente em inglês, uma frase em inglês costuma custar menos tokens do que a mesma frase em português. Os dois exemplos mostram isso.
O que eu faço com isso: trato IDs, hashes e JSON ruidoso nos prompts como a parte cara que eles são. Meço com o tokenizador do próprio provedor em cada idioma que atendemos. E tudo o que vai em toda requisição é cacheado, encurtado ou removido, porque é uma linha no orçamento, leia alguém ou não.