Distribuições, softmax, temperatura, top-k, top-p, entropia e perplexidade. O módulo que converte parâmetros de API em objetos matemáticos que você entende de verdade.
Este é o módulo de retorno imediato. Ao terminá-lo, todo parâmetro que você mexe em uma chamada de API deixa de ser tentativa e erro e passa a ser uma decisão sobre a forma de uma distribuição de probabilidade.
1. Distribuição de probabilidade
Uma distribuição de probabilidade sobre um conjunto de opções é uma lista de números não negativos que soma exatamente um. Cada número diz o quanto aquela opção é provável.
Um LLM, a cada passo, produz uma distribuição sobre todo o vocabulário, que costuma ter dezenas ou centenas de milhares de entradas. É essa a saída bruta do modelo: não um token, mas uma opinião completa sobre todos os tokens possíveis.
Escolher qual token de fato sai dessa distribuição é uma decisão separada, e é onde temperatura, top-k e top-p entram. O modelo propõe, a estratégia de amostragem dispõe.
2. Probabilidade condicional e o que um LLM realmente modela
A notação P de A dado B, escrita com uma barra vertical, é a probabilidade de A acontecer sabendo que B aconteceu. É a operação mais importante do módulo.
Um modelo de linguagem é, por definição, um estimador de P do próximo token dado todos os tokens anteriores. Nada mais. Toda a impressão de raciocínio, estilo e conhecimento emerge de repetir essa estimativa token após token.
Isso explica um comportamento observado todo dia: mudar as primeiras palavras de um prompt muda tudo o que vem depois, porque tudo o que vem depois está condicionado nelas.
A probabilidade do token na posição t dado todos os tokens anteriores. Esta linha é a definição inteira do que um modelo de linguagem faz.
3. Softmax: de logits para probabilidades
A última camada do modelo produz logits, que são números reais quaisquer, positivos ou negativos, sem restrição. Eles medem preferência bruta, não probabilidade.
O softmax faz a conversão em dois movimentos. Primeiro aplica exponencial a cada logit, o que torna todos positivos e amplifica as diferenças, porque a exponencial cresce muito mais rápido para valores maiores. Depois divide cada resultado pela soma de todos, o que força o total a valer exatamente um.
O detalhe crucial é a amplificação. Uma diferença de dois pontos entre logits vira uma razão de aproximadamente sete vezes entre as probabilidades, porque e elevado a dois é cerca de 7,4. O softmax não preserva proporções, ele as exagera de forma controlada.
O softmax do vetor z na posição i é e elevado a z índice i, dividido pela soma de e elevado a z índice j sobre todos os j.
Softmax de três logits, à mão
Logits 2,0, 1,0 e 0,1. Exponenciais: aproximadamente 7,39, 2,72 e 1,11. Soma: 11,22. Probabilidades: 0,659, 0,242 e 0,099. Confira que somam um. Repare que uma diferença de um ponto nos logits virou quase o triplo de probabilidade.
4. Temperatura: dividir antes de exponenciar
A temperatura, T, entra dividindo os logits antes do softmax. É uma única divisão, e ela reorganiza toda a distribuição.
Com T menor que um, os logits são multiplicados por um fator maior que um, as diferenças aumentam, e a distribuição fica mais pontuda: o token mais provável domina ainda mais. Com T maior que um, os logits encolhem, as diferenças diminuem, e a distribuição achata: tokens improváveis ganham chance real. No limite de T tendendo a zero, a distribuição vira uma escolha determinística do maior logit.
Por isso a palavra criatividade é enganosa. A temperatura não adiciona ideia nenhuma ao modelo. Ela apenas redistribui probabilidade das opções mais prováveis para as menos prováveis, e a impressão de originalidade vem de o modelo passar a escolher com mais frequência caminhos que ele mesmo considera menos prováveis.
O softmax com temperatura divide cada logit por T antes de exponenciar. T menor que um afia a distribuição, T maior que um a achata.
Os mesmos logits, três temperaturas
Logits 2,0, 1,0 e 0,1. Com T igual a 0,5, as probabilidades ficam aproximadamente 0,84, 0,11 e 0,05. Com T igual a 1, ficam 0,66, 0,24 e 0,10. Com T igual a 2, ficam 0,48, 0,29 e 0,23. O laboratório deste módulo deixa você mexer no controle e ver as barras responderem em tempo real.
5. Top-k e top-p: cortar antes de sortear
Temperatura deforma a distribuição inteira. Top-k e top-p fazem outra coisa: eles a truncam, eliminando opções antes do sorteio.
Top-k mantém apenas os k tokens de maior probabilidade e renormaliza o que sobrou para somar um. É um corte de tamanho fixo, insensível ao formato da distribuição.
Top-p, também chamado de amostragem por núcleo, ordena os tokens do mais para o menos provável e vai acumulando até a soma passar de p. Só esses entram no sorteio. É um corte adaptativo: quando o modelo está confiante, poucos tokens já ultrapassam p e o corte é agressivo; quando está incerto, muitos tokens são necessários e o corte é generoso.
É por isso que top-p costuma ser preferido na prática. Ele respeita a confiança do próprio modelo em vez de impor um número fixo.
6. Entropia, cross-entropy e perplexidade
A entropia mede a incerteza de uma distribuição. É zero quando uma opção tem probabilidade um e todas as outras zero, e é máxima quando todas são igualmente prováveis. Em termos práticos: entropia alta significa que o modelo não sabe bem o que vem a seguir.
A cross-entropy compara duas distribuições, a verdadeira e a prevista, e mede o custo de usar a prevista no lugar da verdadeira. É exatamente a função de perda usada para treinar modelos de linguagem: para cada posição, o modelo é penalizado pelo logaritmo negativo da probabilidade que atribuiu ao token que de fato apareceu.
A perplexidade é a exponencial da cross-entropy média, e existe para dar uma leitura intuitiva. Uma perplexidade de dez significa que o modelo está, em média, tão incerto quanto alguém escolhendo entre dez opções igualmente prováveis. Quanto menor, melhor o modelo prevê o texto.
A entropia de p é menos o somatório de p índice i vezes o logaritmo de p índice i.
A cross-entropy é menos a soma do valor verdadeiro vezes o log do previsto, e a perplexidade é a exponencial dessa perda média.
Exercícios
Tente responder antes de abrir.
1. Calcule o softmax de (1,0; 1,0; 1,0) sem fazer contas pesadas.
Logits iguais produzem exponenciais iguais, então cada probabilidade é um terço, aproximadamente 0,333. Distribuição uniforme, entropia máxima para três opções.
2. Com T tendendo a zero, o que acontece com a saída do modelo?
A distribuição colapsa em uma escolha determinística: o token de maior logit recebe probabilidade praticamente um. É o comportamento chamado greedy.
3. Explique a diferença de comportamento entre top-k igual a 50 e top-p igual a 0,9 quando o modelo está muito confiante.
Top-k mantém cinquenta candidatos independentemente da confiança, incluindo muitos absurdos com probabilidade quase nula. Top-p percebe que dois ou três tokens já somam noventa por cento e corta o resto, ficando muito mais restritivo justamente onde faz sentido.
4. Um modelo atribui probabilidade 0,01 ao token que apareceu. Qual a contribuição dessa posição para a perda?
Menos o logaritmo natural de 0,01, ou seja aproximadamente 4,6. É uma penalização alta, como deve ser: o modelo estava errado com confiança.
5. Perplexidade 1 significa o quê?
Que a cross-entropy é zero, ou seja o modelo atribuiu probabilidade um ao token correto em todas as posições. É previsão perfeita, algo que na prática só acontece em texto memorizado.
Por que o softmax usa exponencial e não simplesmente divide cada logit pela soma dos logits?
Por dois motivos práticos. Primeiro, logits podem ser negativos, e dividir números negativos pela soma produziria probabilidades negativas, o que não existe. Segundo, a exponencial amplifica diferenças de forma controlada, transformando uma vantagem de um ponto em um fator de aproximadamente 2,718 na probabilidade. Uma normalização linear preservaria as proporções originais, e o modelo perderia a capacidade de expressar confiança forte.
Temperatura zero é a mesma coisa que temperatura 0,01?
Na prática quase sempre sim, mas não pela definição. Temperatura zero literal dividiria por zero, o que não está definido, então as bibliotecas tratam esse caso escolhendo diretamente o maior logit, comportamento chamado de greedy. Com 0,01 a fórmula continua valendo, só que as diferenças de logit são multiplicadas por cem e a probabilidade do favorito fica indistinguível de um. O resultado observável é o mesmo em quase todos os casos, mas o caminho matemático é diferente.
Se eu subir muito a temperatura, o modelo fica criativo mesmo?
Ele fica menos previsível, o que não é a mesma coisa. A temperatura não acrescenta nenhuma ideia ao modelo, ela apenas transfere massa de probabilidade das opções que o modelo considera boas para as que ele considera ruins. O texto resultante tende a soar mais surpreendente porque caminhos improváveis passam a ser escolhidos com mais frequência, e a partir de certo ponto isso degrada em incoerência. O lema do módulo resume bem: temperatura não é criatividade, é achatamento.
Qual a diferença prática entre mexer na temperatura e mexer no top-p?
Temperatura deforma a distribuição inteira sem eliminar ninguém: todos os tokens continuam podendo sair, com probabilidades redistribuídas. Top-p trunca, ou seja elimina candidatos antes do sorteio e renormaliza o que sobrou. Por isso os dois se combinam bem: a temperatura ajusta o quanto o modelo se compromete com o favorito, e o top-p garante que a cauda absurda nunca entre no sorteio, independentemente de como a distribuição foi deformada.
Por que top-p é chamado de amostragem por núcleo?
Porque o conjunto de tokens que sobrevive ao corte é chamado de núcleo da distribuição: é o menor grupo de tokens de maior probabilidade cuja massa acumulada já ultrapassa o limiar p. O tamanho desse núcleo varia a cada passo de geração, conforme o modelo esteja mais ou menos confiante. O nome em inglês, nucleus sampling, vem do artigo que propôs a técnica.
Posso usar top-k e top-p ao mesmo tempo?
Pode, e várias APIs aplicam os dois em sequência. O efeito é o de um teto duplo: o corte mais restritivo dos dois é o que vale naquele passo. Na prática, muita gente mantém top-k como uma trava de segurança larga, por exemplo cinquenta, e deixa o top-p fazer o trabalho fino. Vale conferir na documentação da API a ordem em que os cortes são aplicados, porque ela muda o resultado.
Logit é a mesma coisa que probabilidade?
Não. Logit é um número real qualquer, positivo ou negativo, sem limite superior ou inferior, e mede preferência bruta. Probabilidade vive entre zero e um, e o conjunto delas precisa somar exatamente um. O softmax é a ponte entre as duas escalas. Uma consequência útil: somar a mesma constante a todos os logits não muda nenhuma probabilidade, porque a constante se cancela entre numerador e denominador.
O que significa dizer que o modelo estima a probabilidade do próximo token dado o contexto?
Significa que, a cada passo, o modelo recebe a sequência inteira já escrita e devolve uma distribuição sobre todo o vocabulário, dizendo o quanto cada token possível se encaixa como continuação. Nada além disso é produzido pelo modelo. A impressão de raciocínio e estilo emerge de repetir essa estimativa token após token, sempre com a saída anterior incorporada ao condicionamento. É por isso que mudar as primeiras palavras de um prompt muda tudo o que vem depois.
Entropia alta é ruim?
Depende de onde ela aparece. Entropia alta na distribuição de saída significa que o modelo está genuinamente indeciso naquela posição, o que é ruim se o texto exigia uma resposta única e certa, e perfeitamente saudável se a posição admite muitas continuações válidas. O que costuma ser realmente ruim é entropia baixa com o token errado, ou seja confiança alta em uma previsão equivocada, porque é exatamente isso que a perda penaliza com mais força.
Nats ou bits: qual base de logaritmo eu devo usar?
As duas medem a mesma coisa em unidades diferentes, e a conversão é uma divisão por 0,693. Use logaritmo natural, ou nats, quando for calcular perplexidade com a exponencial natural, que é o padrão em modelos de linguagem. Use base dois, ou bits, quando quiser a leitura de quantas perguntas de sim ou não seriam necessárias, tradição mais comum na teoria da informação clássica. O importante é não misturar as duas na mesma conta.
Como a cross-entropy vira perda de treino na prática?
Para cada posição do texto de treino existe um token que realmente apareceu. A distribuição verdadeira é então um vetor com um no lugar desse token e zero em todos os outros, e o somatório da cross-entropy colapsa em um único termo: menos o logaritmo da probabilidade que o modelo atribuiu ao token correto. A perda do lote é a média desses valores. Quanto mais probabilidade o modelo tiver dado ao token certo, menor a perda.
Perplexidade 20 é melhor ou pior que perplexidade 8?
Pior. Perplexidade é a exponencial da cross-entropy média, e ela responde a uma pergunta: entre quantas opções igualmente prováveis o modelo está hesitando, em média. Vinte significa hesitação equivalente a vinte alternativas, oito significa hesitação equivalente a oito. Uma ressalva importante: perplexidade só é comparável entre modelos que usam o mesmo tokenizador e o mesmo conjunto de texto, porque mudar a tokenização muda o número sem que o modelo tenha melhorado.
Por que somar uma constante a todos os logits não muda nada?
Porque a exponencial transforma soma em produto: somar c a cada logit multiplica cada exponencial pelo mesmo fator, e esse fator aparece tanto no numerador quanto no denominador, cancelando-se. Essa propriedade não é curiosidade, ela é usada em toda implementação séria: subtrai-se o maior logit de todos antes de exponenciar, para evitar que a exponencial estoure o limite numérico do computador. O resultado é idêntico e o cálculo fica estável.
Se dois logits são iguais, o que acontece com as probabilidades deles?
Ficam exatamente iguais, porque o softmax depende apenas do valor de cada logit e do denominador comum, que é o mesmo para todos. Se todos os logits do vocabulário forem iguais, a distribuição vira uniforme e a entropia atinge o máximo possível para aquele tamanho de vocabulário. Esse é o estado de um modelo que não aprendeu nada: opinião nula sobre qual token vem a seguir.
Uma distribuição pode ter probabilidade exatamente zero em algum token?
Pelo softmax puro, não. A exponencial de qualquer número real é sempre positiva, então todo token do vocabulário recebe alguma massa, por menor que seja. O zero só aparece de duas formas: por truncamento, quando top-k ou top-p descartam o token antes do sorteio, ou por máscara, quando o logit recebe menos infinito e a exponencial vai a zero. Guarde isso, porque a máscara causal do módulo seguinte usa exatamente esse mecanismo.
Como eu escolho temperatura e top-p para uma tarefa real?
Comece pela pergunta de qual é o custo de uma saída inesperada. Para extração de dados, classificação e código, a saída certa é única, então temperatura baixa, perto de zero, e top-p apertado entregam previsibilidade. Para redação, brainstorm e variação de texto, uma temperatura perto de um com top-p em torno de 0,9 deixa o modelo transitar por caminhos alternativos sem cair na cauda absurda. Mexa em um parâmetro de cada vez, porque os efeitos se sobrepõem e ficam impossíveis de atribuir se mudarem juntos.
Checkpoint
Oitenta por cento de acerto libera o módulo seguinte.
1. O que define uma distribuição de probabilidade válida?
Todos os valores não negativos e soma exatamente igual a um.
2. Descreva os dois passos do softmax e o que cada um garante.
Exponenciar garante positividade e amplifica diferenças; dividir pela soma garante que o total seja um.
3. T igual a 0,3 produz que efeito na distribuição?
Afia a distribuição, concentrando probabilidade nos tokens de maior logit e tornando a saída mais previsível.
4. Por que top-p é adaptativo e top-k não?
Top-p corta por massa de probabilidade acumulada, então o número de candidatos varia com a confiança do modelo. Top-k corta por contagem fixa, ignorando o formato da distribuição.
5. Relacione cross-entropy e perplexidade.
A perplexidade é a exponencial da cross-entropy média, e traduz a perda para o número equivalente de opções igualmente prováveis entre as quais o modelo hesita.
Bibliografia
Probabilidade: um curso moderno com aplicaçõesSheldon Ross, edição brasileira, BookmanCapítulos de axiomas de probabilidade, probabilidade condicional e variáveis aleatórias discretasTexto clássico e bem escrito, com exercícios resolvidos. Cubra apenas o discreto; o contínuo não é necessário para esta trilha.
Elements of Information TheoryThomas M. Cover e Joy A. Thomas, 2ª edição, Wiley, 2006Capítulo 2, Entropy, Relative Entropy and Mutual InformationA fonte primária de entropia e cross-entropy. Leia as primeiras seções do capítulo 2 e pare; o resto é além do escopo.
Mathematics for Machine LearningDeisenroth, Faisal e Ong, Cambridge University Press, 2020, livro abertoCapítulo 6, Probability and DistributionsAmarra probabilidade à notação de aprendizado de máquina, com o softmax já no contexto certo.