Inteligência Artificial
Um modelo de linguagem não entende: ele calcula o próximo token
Um modelo de linguagem não consulta uma enciclopédia nem raciocina em palavras. Ele executa uma sequência de operações matemáticas que termina em uma pergunta: qual é o próximo token?
1. O texto vira números
O texto é dividido em tokens: pedaços de palavra, palavras inteiras ou sinais de pontuação. Cada token corresponde a um número inteiro em uma tabela fixa (o vocabulário). Para o modelo, “O gato sentou no” é uma lista de inteiros.
2. Números viram vetores
Cada token é trocado por um vetor, uma lista de números reais chamada de embedding. Esses vetores são aprendidos no treinamento, e tokens usados em contextos parecidos tendem a ficar com vetores parecidos.
3. Camadas de álgebra linear
Os vetores passam por várias camadas. Em cada uma, o mecanismo de atenção combina informações de diferentes posições do texto, e multiplicações de matrizes transformam os vetores. Os números dentro dessas matrizes são os pesos do modelo.
4. A saída é uma distribuição de probabilidade
No final, o modelo produz uma pontuação para cada token do vocabulário. A função softmax converte essas pontuações em probabilidades que somam 1:
import math
def softmax(pontuacoes):
maior = max(pontuacoes) # evita números gigantes em exp()
exps = [math.exp(p - maior) for p in pontuacoes]
total = sum(exps)
return [e / total for e in exps]
print(softmax([2.0, 1.0, 0.1])) # aprox. [0.66, 0.24, 0.10]
5. Escolhe um token e repete
Um token é escolhido dessa distribuição (o mais provável ou sorteado conforme as probabilidades), acrescentado ao texto, e o processo recomeça. Um parágrafo inteiro é esse ciclo repetido centenas de vezes.
Cuidado com a conclusão. Dizer que o mecanismo é “prever o próximo token” descreve como o modelo gera texto. Isso, sozinho, não resolve a discussão sobre o que ele consegue fazer, nem se isso merece o nome de “entender”. É uma pergunta em aberto, e merece um texto só para ela.