Assistentes de conversa baseados em inteligência artificial já fazem parte do dia a dia, e muita gente se pergunta como eles “sabem” o que escrever. Não há mágica: por trás de cada resposta existe uma quantidade enorme de contas, e as ideias centrais são as mesmas que aparecem no ensino médio e no começo da faculdade. Probabilidade condicional, função exponencial, logaritmo e notação científica. Este texto usa o assunto como pretexto para revisar exatamente essas quatro ferramentas, com números simples e inventados só para o exemplo.

A ideia central: prever a próxima palavra

Um modelo de linguagem recebe um trecho de texto e responde a uma pergunta bem específica: qual é a chance de cada palavra do vocabulário ser a próxima? Se o texto é “o céu está”, palavras como “azul” ou “nublado” devem receber probabilidade alta, e “parafuso” deve receber probabilidade quase zero.

Em linguagem matemática, isso é uma probabilidade condicional: a probabilidade do evento “a próxima palavra é ww” sabendo que o contexto anterior já aconteceu. Escrevemos P(wcontexto)P(w \mid \text{contexto}). A barra vertical se lê “dado que”. Para que isso seja uma distribuição de probabilidade válida, duas condições precisam valer: cada valor fica entre 0 e 1, e a soma sobre todas as palavras possíveis dá exatamente 1.

Softmax: de pontuações quaisquer a probabilidades

Internamente, o modelo não produz probabilidades prontas. Ele produz uma pontuação para cada palavra, um número real qualquer, que pode ser negativo, zero ou maior que 1. Para transformar essas pontuações em probabilidades, usa-se a função softmax:

P(wi)=ezijezjP(w_i)=\frac{e^{z_i}}{\sum_{j} e^{z_j}}
Softmax: a exponencial deixa tudo positivo e a divisão pela soma faz o total dar 1.

Repare no papel da função exponencial. Como exe^{x} é sempre positivo, nenhuma probabilidade sai negativa. E como a exponencial é crescente, quem tem pontuação maior continua com probabilidade maior; a ordem é preservada. Além disso, a exponencial amplifica diferenças: uma pontuação só 1 unidade maior vira um valor cerca de 2,718 vezes maior, porque essa é a razão ez+1/ez=ee^{z+1}/e^{z}=e. Dividir cada termo pela soma de todos é a mesma normalização que você faz ao transformar frequências em porcentagens.

−2−101230510152025pontuaçãoe^xe^x
A exponencial é sempre positiva e crescente: cada unidade a mais de pontuação multiplica o valor por cerca de 2,718. Por isso a ordem se mantém e as diferenças são ampliadas.

Exemplo resolvido: três palavras candidatas

Suponha um vocabulário de brinquedo com só três palavras candidatas depois de “o céu está”: “azul” com pontuação 2, “nublado” com pontuação 1 e “parafuso” com pontuação 0.

Calculando a softmax passo a passo
  1. e27,389,e12,718,e0=1\displaystyle e^{2}\approx 7{,}389,\quad e^{1}\approx 2{,}718,\quad e^{0}=1 Calcule a exponencial de cada pontuação. Use e ≈ 2,718.
  2. 7,389+2,718+1=11,107\displaystyle 7{,}389+2{,}718+1=11{,}107 Some os três valores para obter o denominador.
  3. e2e2+e1+e07,38911,1070,665\displaystyle \frac{e^{2}}{e^{2}+e^{1}+e^{0}}\approx\frac{7{,}389}{11{,}107}\approx 0{,}665 Divida cada exponencial pela soma. Para "azul":
  4. 2,71811,1070,245,111,1070,090\displaystyle \frac{2{,}718}{11{,}107}\approx 0{,}245,\qquad \frac{1}{11{,}107}\approx 0{,}090 Faça o mesmo para as outras duas palavras.
  5. 0,665+0,245+0,090=1,000\displaystyle 0{,}665+0{,}245+0{,}090=1{,}000 Verificação: some as três probabilidades. O resultado precisa ser 1 (a diferença mínima vem só do arredondamento).

Resultado: cerca de 66,5% para “azul”, 24,5% para “nublado” e 9% para “parafuso”. Note que a pontuação 0 não virou probabilidade 0, porque e0=1e^{0}=1. É por isso que um modelo real atribui a palavras absurdas uma probabilidade pequena, mas nunca exatamente nula.

66,5%azul24,5%nublado9%parafuso
Softmax de pontuações 2, 1 e 0: cerca de 66,5% para azul, 24,5% para nublado e 9% para parafuso. Nenhuma barra chega a zero.

A probabilidade de uma frase inteira

Gerar uma frase é repetir o processo palavra por palavra. Pela regra do produto da probabilidade condicional, a chance de uma sequência inteira é o produto das chances de cada passo, sempre condicionadas ao que veio antes:

P(w1,w2,,wn)=P(w1)P(w2w1)P(wnw1,,wn1)P(w_1,w_2,\dots,w_n)=P(w_1)\cdot P(w_2\mid w_1)\cdots P(w_n\mid w_1,\dots,w_{n-1})
Regra da cadeia: cada fator depende de todas as palavras anteriores.

Suponha uma frase de quatro palavras em que o modelo deu, a cada passo, as probabilidades 0,5, 0,4, 0,2 e 0,1. A probabilidade da frase é 0,50,40,20,1=0,0040{,}5 \cdot 0{,}4 \cdot 0{,}2 \cdot 0{,}1 = 0{,}004, ou seja, 0,4%. Com só quatro palavras o número já caiu bastante. Agora imagine uma resposta de 50 palavras em que cada passo tem probabilidade 0,1: o produto é 0,150=10500{,}1^{50}=10^{-50}. Um computador comum representa números com precisão limitada, e valores tão pequenos podem ser arredondados para zero, o chamado underflow.

0123400,20,40,60,81palavrasprobabilidadeP acumulada
Probabilidade acumulada da frase: 1, depois 0,5, 0,2, 0,04 e 0,004 após multiplicar 0,5, 0,4, 0,2 e 0,1. Com poucas palavras o produto já despenca.

Por que o logaritmo entra em cena

A saída é trabalhar com log-probabilidades. A propriedade que resolve tudo é log(ab)=loga+logb\log(a\cdot b)=\log a+\log b. Aplicando o logaritmo à regra da cadeia, o produto vira soma:

logP(w1,,wn)=k=1nlogP(wkw1,,wk1)\log P(w_1,\dots,w_n)=\sum_{k=1}^{n}\log P(w_k\mid w_1,\dots,w_{k-1})
Log-probabilidade da frase: soma dos logaritmos de cada passo.
Verificando com o exemplo das quatro palavras (logaritmo na base 10)
  1. log0,50,301, log0,40,398, log0,20,699, log0,1=1\displaystyle \log 0{,}5\approx -0{,}301,\ \log 0{,}4\approx -0{,}398,\ \log 0{,}2\approx -0{,}699,\ \log 0{,}1=-1 Calcule o logaritmo de cada fator.
  2. 0,3010,3980,6991=2,398\displaystyle -0{,}301-0{,}398-0{,}699-1=-2{,}398 Some os valores.
  3. 102,3980,004\displaystyle 10^{-2{,}398}\approx 0{,}004 Volte da escala logarítmica elevando 10 ao resultado e compare com o produto direto.

Bateu: 0,004 nos dois caminhos. No caso das 50 palavras, em vez de guardar 105010^{-50}, guardamos só o número 50-50, que qualquer computador representa sem esforço. Como o logaritmo é crescente, a frase com maior log-probabilidade é também a de maior probabilidade, então comparar frases continua possível. Na prática os modelos costumam usar o logaritmo natural, mas a lógica é idêntica em qualquer base.

Ordem de grandeza e notação científica

Quando se fala do tamanho desses modelos, aparecem números como “bilhões de parâmetros” ou vocabulários de dezenas de milhares de palavras. A ferramenta para ler isso é a notação científica: um bilhão é 10910^{9}, um trilhão é 101210^{12}. A ordem de grandeza de um número é, grosso modo, a parte inteira do seu logaritmo na base 10. Dizer que um modelo hipotético A tem 10910^{9} parâmetros e um modelo B tem 101110^{11} significa que B é duas ordens de grandeza maior, ou seja, 100 vezes maior, e não “2 vezes maior”. Pensar em expoentes evita esse tipo de confusão.

Erros comuns

  • Achar que softmax é só dividir pela soma. Sem a exponencial, pontuações negativas gerariam “probabilidades” negativas.
  • Somar probabilidades de passos seguidos. Eventos em sequência se combinam por multiplicação; soma é para eventos mutuamente exclusivos.
  • Esquecer que log-probabilidades são negativas. Como toda probabilidade está entre 0 e 1, seu logaritmo é menor ou igual a zero. Quanto mais perto de zero, mais provável.
  • Confundir ordem de grandeza com multiplicação simples. De 10910^{9} para 101210^{12} não é “3 vezes mais”, é 1.000 vezes mais.
  • Tratar probabilidade alta como certeza. Uma palavra com 66,5% de chance ainda deixa 33,5% para as outras.

Perguntas frequentes

A softmax sempre gera números entre 0 e 1?

Sim. Cada termo é positivo e é dividido por uma soma que o inclui, então fica estritamente entre 0 e 1 quando há mais de uma palavra, e a soma de todos dá 1.

Por que usar e e não outra base na exponencial?

Qualquer base maior que 1 funcionaria. A base e é a preferida porque sua derivada é ela mesma, o que simplifica muito as contas de treinamento.

O logaritmo muda qual frase é a mais provável?

Não. O logaritmo é uma função crescente, então preserva a ordem: se uma probabilidade é maior que outra, o logaritmo dela também é.

Preciso saber cálculo para entender isso?

Para o que foi mostrado aqui, não. Basta probabilidade condicional, propriedades de potências e de logaritmos, conteúdos de ensino médio.