Previsão do Próximo Token (Next-Token Prediction)
Mecanismo fundamental dos modelos de linguagem de grande porte autorregressivos (LLMs). Cálculo de logits, função Softmax, impacto da temperatura e amostragem (Top-P/Top-K). Explicação de por que a geração de texto é um processo sequencial O(N) e como visualizar as probabilidades via API.
1. Visão geral do conceito e essência matemática
Ao observar uma IA projetando uma arquitetura de microsserviços ou compondo um poema, é fácil acreditar que surgiu dentro do computador uma consciência com seu próprio monólogo interno.
No entanto, no nível computacional, por baixo dos panos de qualquer LLM autoregressiva (GPT-4o, Claude 3.7, Llama 3.3, DeepSeek R1), executa-se um único ciclo iterativo:
$$P(W) = \prod_{t=1}^{T} P(w_t \mid w_1, w_2, \dots, w_{t-1})$$
- Ler a sequência de entrada de tokens $w_1, \dots, w_{t-1}$.
- Passar os vetores pelas camadas do Transformer (Self-Attention + MLP).
- Calcular uma pontuação numérica (Logit) para cada um dos 128.000 tokens no vocabulário.
- Aplicar Softmax e algoritmos de amostragem (Temperature, Top-P), selecionando um token $w_t$.
- Adicionar $w_t$ ao contexto e repetir o passo.
Modelo mental: não se trata de um oráculo que conhece previamente a conclusão final, mas sim de um gerador estatístico de trajetória que dá um passo e só então vê onde pisar em seguida.
┌─────────────────────────────────────────────────────────────┐
│ CONVEYOR MATEMÁTICO DE UM PASSO │
├─────────────────────────────────────────────────────────────┤
│ 1. Contexto de entrada: «Kiev — capital» │
│ Vetorização dos tokens ➔ Passagem pelas camadas do │
│ Transformer │
├─────────────────────────────────────────────────────────────┤
│ 2. Camada de saída (Unembedding): 128 000 logits │
│ • Token " da Ucrânia" ➔ Logit: +14.2 │
│ • Token " antiga" ➔ Logit: +8.1 │
│ • Token " da França" ➔ Logit: -4.5 │
├─────────────────────────────────────────────────────────────┤
│ 3. Normalização Softmax(Logits / Temperatura): │
│ • " da Ucrânia" ➔ 94.2% │
│ • " antiga" ➔ 5.1% │
│ • " da França" ➔ 0.0001% │
├─────────────────────────────────────────────────────────────┤
│ 4. Amostragem: seleção do token " da Ucrânia" │
│ Novo contexto: «Kiev — capital da Ucrânia» ➔ Próximo │
│ passo │
└─────────────────────────────────────────────────────────────┘
2. Implementação de sampling em Python e inspeção via CLI
Veja como fica o cálculo das probabilidades do próximo token em Python, considerando a temperatura:
import numpy as np
def compute_next_token_probs(logits: np.ndarray, temperature: float = 0.7) -> np.ndarray:
# 1. Масштабування температурою
scaled = logits / max(temperature, 1e-4)
# 2. Стабільний Softmax (віднімання максимуму для запобігання overflow)
exp_logits = np.exp(scaled - np.max(scaled))
probs = exp_logits / np.sum(exp_logits)
return probs
# Приклад виклику: 4 можливі токени
mock_logits = np.array([12.5, 9.1, 4.0, 1.2])
print("Ймовірності токенів:", np.round(compute_next_token_probs(mock_logits, temperature=0.7), 4))
Como visualizar as probabilidades brutas dos tokens via cURL no terminal:
Você pode solicitar à API que retorne as log-probabilidades exatas (logprobs) para ver as alternativas consideradas pelo modelo:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4o-mini",
"messages": [{"role": "user", "content": "Столиця Франції — це"}],
"max_tokens": 1,
"logprobs": true,
"top_logprobs": 3
}'
Na resposta JSON, o parâmetro top_logprobs mostrará as pontuações matemáticas precisas para opções como Paris, cidade, etc.
3. Por que o Next-Token leva a alucinações e como mitigar isso
Como o modelo gera texto localmente "aqui e agora", ele tende a cair em armadilhas estatísticas:
- Erro de Compromisso Precoce (Early Commitment): Se nas duas primeiras palavras o modelo escolheu aleatoriamente um token ruim, todos os tokens subsequentes tentarão justificar essa escolha errada em vez de admitir o erro.
- Impossibilidade de Retorno (No Backtracking): A inferência padrão não pode apagar uma palavra já gerada.
- Por que modelos de raciocínio (Reasoning Models / DeepSeek R1 / o3) funcionam melhor: Eles utilizam cadeias de pensamento (
<thought>...</thought>), onde, antes de fornecer a resposta final, geram centenas de tokens de análise interna e autoverificação.
4. Conclusão prática para o desenvolvedor
Lembre-se do pipeline autoregressivo:
- Prompts como "Pense antes de responder" ou "Detalhe passo a passo" funcionam não porque a IA se torna mais atenta, mas porque você a força a gerar tokens de raciocínio que fisicamente se tornam o contexto de entrada para o token final da resposta correta!
FAQ: Previsão do Próximo Token (Next-Token Prediction)
Termos relacionados
Tokens Explained Simply (How Many Words in a Token)
The basic unit of text measurement in language models. An explanation of how words are broken down into tokens, why this impacts request costs, and why Ukrainian words consume more tokens than English ones.
Temperatura de Geração (Controle Criativo e Aleatoriedade)
Parâmetro numérico fundamental para a geração de texto (geralmente variando de 0.0 a 1.0 ou 2.0). Define o grau de imprevisibilidade na seleção do próximo token: desde uma matemática determinística rigorosa até um voo livre da imaginação.
Arquitetura Transformer
Uma arquitetura de redes neurais apresentada por pesquisadores do Google em 2017 no artigo \"Attention Is All You Need\". É a base de todos os modelos linguísticos modernos (GPT, Claude, Gemini, Llama), que substituiu as lentas redes recorrentes e aprendeu a processar todo o texto simultaneamente.
KV Cache (Key-Value Cache)
Otimização de memória em modelos Transformer que armazena os vetores de chave e valor (Keys and Values) dos tokens já processados na memória rápida da GPU. Permite gerar cada próxima palavra instantaneamente, mas cresce rapidamente em tamanho a cada nova mensagem no chat.