Modelos Autorregressivos

O que são modelos autorregressivos?

Modelos autorregressivos (autoregressive, AR) são modelos generativos (generative models) que representam uma distribuição complexa ao prever uma sequência um passo por vez. Em IA, “passo” frequentemente significa:

  • Próximo token (next token) em texto/código (modelos de linguagem (language models))
  • Próxima amostra (next sample) em áudio (fala/música)
  • Próximo pixel (next pixel) (ou grupo de pixels) em imagens
  • Próximo ponto no tempo (next time point) em dados de séries temporais (time-series data)

A ideia definidora é simples:

Modelar a probabilidade de uma sequência inteira ao modelar repetidamente a probabilidade do próximo elemento condicionada a todos os elementos anteriores.

Esse enquadramento de “próximo passo (next-step)” é o motivo pelo qual modelos autorregressivos às vezes são chamados de modelos causais (causal) ou da esquerda para a direita (left-to-right).

A modelagem autorregressiva é uma abordagem central em IA generativa moderna: muitos modelos de linguagem de grande porte (large language models, LLMs) são decodificadores Transformer (Transformer decoders) autorregressivos (veja Arquitetura Transformer).

Fundamento teórico: a regra da cadeia da probabilidade

Dada uma sequência (x_{1:T} = (x_1, x_2, \dots, x_T)), a regra da cadeia (chain rule) permite fatorar a distribuição conjunta exatamente:

[ p(x_{1:T}) = \prod_{t=1}^{T} p(x_t \mid x_{1:t-1}) ]

Essa fatoração não é uma aproximação — ela é sempre válida. O desafio de modelagem é especificar (e aprender) cada distribuição condicional:

[ p_\theta(x_t \mid x_{<t}) ]

onde (\theta) são os parâmetros do modelo.

Por que isso é poderoso

  • Isso transforma “modelar uma distribuição conjunta complicada” em “resolver muitos problemas de predição condicional”.
  • Isso dá suporte naturalmente à geração condicional (conditional generation): forneça algum contexto (um prompt, observações anteriores, uma legenda de imagem) e gere continuações.

Saídas discretas vs. contínuas

Modelos autorregressivos podem produzir:

  • Tokens discretos (texto): a distribuição condicional normalmente é um softmax (softmax) sobre um vocabulário.
  • Valores contínuos (séries temporais): a distribuição condicional pode ser Gaussiana (Gaussian), densidade de mistura (mixture density), bins quantizados (quantized bins) etc.

Famílias comuns de modelos autorregressivos

Modelos AR clássicos de séries temporais (AR, ARMA, ARIMA)

Em estatística e processamento de sinais, um “modelo autorregressivo” frequentemente significa:

[ x_t = \sum_{i=1}^p \phi_i x_{t-i} + \epsilon_t ]

Isso é linear, com ruído Gaussiano (\epsilon_t). Esses modelos ainda são usados para previsão e interpretabilidade, mas modelos autorregressivos profundos modernos são muito mais flexíveis.

Modelos autorregressivos neurais

Redes neurais generalizam a distribuição condicional:

Exemplos bem conhecidos incluem:

  • WaveNet (áudio): autorregressivo sobre amostras da forma de onda
  • PixelRNN/PixelCNN (imagens): autorregressivo sobre pixels (ou grupos de pixels)
  • Modelos de linguagem de grande porte no estilo GPT (texto/código): autorregressivo sobre tokens

Objetivo de treinamento: máxima verossimilhança via predição do próximo passo

Modelos autorregressivos normalmente são treinados com estimação por máxima verossimilhança (maximum likelihood estimation, MLE) (veja Estimação por Máxima Verossimilhança). Para um conjunto de dados de sequências, maximizamos:

[ \sum_{t=1}^{T} \log p_\theta(x_t \mid x_{<t}) ]

Na prática, isso é equivalente a minimizar a perda de entropia cruzada (cross-entropy loss) entre a distribuição prevista do próximo token pelo modelo e o verdadeiro próximo token (veja Perda de Entropia Cruzada).

Forçamento do professor (teacher forcing)

Durante o treinamento, o modelo prevê (x_t) dado o prefixo de verdade de base (ground-truth prefix) (x_{<t}). Isso é chamado de forçamento do professor.

Propriedade-chave:

  • O treinamento pode ser paralelizado ao longo dos passos de tempo porque o prefixo de verdade de base é conhecido, mesmo que a geração seja sequencial.

Esse é um dos principais motivos pelos quais Transformers autorregressivos treinam de forma eficiente em GPUs/TPUs: você calcula perdas para todas as posições em uma sequência em uma única passagem forward usando mascaramento causal (causal masking).

Loop de treinamento prático (conceitual)

Para uma sequência tokenizada x de comprimento T:

  • entradas: x[0:T-1]
  • alvos: x[1:T]
# conceptual pseudocode
logits = model(x[0:T-1])         # predict distribution for each position
loss = cross_entropy(logits, x[1:T])
loss.backward()
optimizer.step()

Inferência (inference): gerando um passo por vez

No momento da geração, você não tem o próximo token de verdade de base. Você precisa amostrar (sample) (ou escolher) um token, anexá-lo e repetir:

[ x_t \sim p_\theta(\cdot \mid x_{<t}) ]

Estratégias de decodificação (decoding)

Métodos comuns de decodificação equilibram qualidade, diversidade e correção:

  • Decodificação gulosa (greedy decoding): escolhe o argmax a cada passo
    • Rápida, determinística, pode ser repetitiva ou ficar presa em continuações pouco informativas.
  • Busca em feixe (beam search) (comum em tradução) (veja Busca em Feixe)
    • Explora múltiplos candidatos; tende a favorecer saídas de alta verossimilhança, às vezes menos diversas.
  • Amostragem top-(k) (top-(k) sampling): amostra apenas entre os (k) tokens de maior probabilidade
    • Controla a aleatoriedade; (k) menor é mais conservador.
  • Amostragem de núcleo (nucleus sampling) (top-(p)): amostra do menor conjunto de tokens cuja probabilidade cumulativa é (p)
    • Adapta o tamanho do conjunto de candidatos à incerteza; amplamente usada em modelos de linguagem de grande porte.
  • Escalonamento de temperatura (temperature scaling): ajusta a nitidez da distribuição
    • (T < 1) torna as saídas mais determinísticas; (T > 1) aumenta a diversidade.

Um loop típico de decodificador no estilo de modelos de linguagem de grande porte:

tokens = prompt_tokens[:]
for _ in range(max_new_tokens):
    logits = model(tokens)                # logits for all positions
    next_logits = logits[-1]              # next-token logits
    next_token = sample(next_logits, top_p=0.9, temperature=0.8)
    tokens.append(next_token)

Considerações de velocidade: cache e decodificação especulativa

Como a geração é sequencial, a inferência pode ser um gargalo. Acelerações comuns incluem:

  • Cache de chaves/valores (KV caching): reutiliza tensores de chave/valor da atenção para tokens anteriores para evitar recomputar o prefixo completo a cada passo (padrão em decodificadores Transformer).
  • Decodificação especulativa (speculative decoding): usa um modelo pequeno de “rascunho” para propor múltiplos tokens e, em seguida, verificar com um modelo maior, reduzindo passos caros do modelo grande.
  • Quantização (quantization) e processamento em lote (batching): reduz computação por passo e atende múltiplas requisições com eficiência.

Exemplos práticos

Exemplo 1: um modelo simples de bigramas (próximo token)

Um modelo autorregressivo mínimo é um modelo de linguagem de bigramas (bigram language model):

[ p(x_t \mid x_{t-1}) ]

Ele ignora tudo exceto o token anterior.

from collections import Counter, defaultdict
import random

def train_bigram(sequences):
    counts = defaultdict(Counter)
    for seq in sequences:
        for a, b in zip(seq[:-1], seq[1:]):
            counts[a][b] += 1
    probs = {}
    for a, ctr in counts.items():
        total = sum(ctr.values())
        probs[a] = [(b, c/total) for b, c in ctr.items()]
    return probs

def sample_bigram(probs, start, steps=20):
    x = start
    out = [x]
    for _ in range(steps):
        dist = probs.get(x)
        if not dist:
            break
        r = random.random()
        s = 0.0
        for token, p in dist:
            s += p
            if r <= s:
                x = token
                break
        out.append(x)
    return out

Isso é muito mais fraco do que modelos autorregressivos neurais, mas ilustra o padrão central: prever o próximo dado o anterior e avançar iterativamente.

Exemplo 2: previsão autorregressiva para séries temporais

Um previsor autorregressivo profundo pode modelar:

[ p(x_t \mid x_{1:t-1}, \text{covariates}) ]

onde covariáveis (covariates) incluem dia da semana, feriados ou entradas futuras conhecidas. Durante a predição, o modelo realimenta seus próprios valores gerados (ou usa rollout probabilístico para estimar incerteza).

Casos de uso comuns:

  • previsão de demanda
  • detecção de anomalias (anomaly detection) (baixa verossimilhança sob o modelo)
  • previsão probabilística (probabilistic forecasting) com intervalos de previsão (prediction intervals)

Onde modelos autorregressivos são usados

Geração de texto e código

Modelos de linguagem autorregressivos são a espinha dorsal de muitos sistemas modernos:

  • geração de texto aberta
  • autocompletar e síntese de código
  • assistentes de chat (com ajuste por instruções e camadas de alinhamento por cima)

Eles também são componentes-chave em pipelines de geração aumentada por recuperação (retrieval-augmented generation), onde o contexto recuperado é colocado no prefixo e o modelo gera a continuação.

Conceitos relacionados: Modelos de Linguagem, Tokenização.

Fala e áudio

Modelos de áudio autorregressivos (por exemplo, do tipo WaveNet) geram áudio de alta fidelidade, mas podem ser lentos devido à geração sequencial em nível de amostra. Muitos sistemas de produção migraram para geração de áudio paralela ou baseada em difusão por velocidade, mas métodos autorregressivos permanecem importantes histórica e conceitualmente.

Imagens

Modelos autorregressivos de imagem em nível de pixel podem atingir boas verossimilhanças, mas gerar imagens pixel a pixel normalmente é lento demais em altas resoluções. Como resultado, a geração de imagens em grande parte migrou para Modelos de Difusão e, em menor grau, para Modelos de Fluxo e Redes Adversariais Generativas (GANs), embora modelos autorregressivos ainda apareçam em:

  • modelos de imagem com latentes discretos (geram tokens em um livro de códigos aprendido (learned codebook))
  • modelos multimodais que geram tokens de imagem de forma autorregressiva

Tomada de decisão e modelagem de sequências

A modelagem autorregressiva também aparece em:

  • modelagem de sequências de ações e trajetórias
  • abordagens de “modelagem de sequência como” para controle (frequentemente adjacentes a Aprendizado por Reforço)

Pontos fortes de modelos autorregressivos

1) Verossimilhança exata e tratável

Por causa da fatoração em cadeia, modelos autorregressivos fornecem uma verossimilhança tratável (tractable likelihood):

[ \log p(x_{1:T}) = \sum_t \log p(x_t \mid x_{<t}) ]

Isso permite:

  • treinamento principiado via MLE
  • avaliação com métricas como log-verossimilhança negativa (negative log-likelihood) e perplexidade (perplexity) (para linguagem)

Em contraste, a verossimilhança não está diretamente disponível em Redes Adversariais Generativas (GANs) padrão, e é aproximada em Autoencoders Variacionais (VAEs) devido a limites variacionais (variational bounds).

2) Objetivo de treinamento estável

A predição do próximo token com entropia cruzada geralmente é estável e bem compreendida (veja Descida do Gradiente). Modelos de linguagem autorregressivos escalaram com sucesso porque:

  • o objetivo é simples
  • os gradientes são bem comportados em relação a configurações adversariais
  • os pipelines de dados são diretos

3) Condicionamento flexível e controlabilidade

Modelos autorregressivos podem condicionar em:

  • prompts (tokens de prefixo)
  • informação auxiliar (rótulos, tags de estilo)
  • saídas de um codificador em configurações sequência a sequência (sequence-to-sequence) (veja Modelos Sequência-a-Sequência)

Isso os torna versáteis para tradução, sumarização, sistemas aumentados por ferramentas e tarefas multimodais.

4) Forte coerência local

Como cada token é condicionado em todos os tokens anteriores, modelos autorregressivos são bons em:

  • gramática e sintaxe em texto
  • consistência local em áudio
  • padrões de curto alcance em séries temporais

Fraquezas e modos de falha

1) Geração sequencial lenta (gargalo de latência)

A desvantagem mais citada:

  • Você precisa gerar o token (t) antes do token (t+1).
  • Mesmo que cada passo seja rápido, saídas longas se acumulam.

Esse é um motivo-chave pelo qual famílias gerativas alternativas são populares para algumas modalidades:

2) Acúmulo de erros e viés de exposição

Durante o treinamento (forçamento do professor), o modelo vê prefixos verdadeiros. Durante a inferência, ele vê seus próprios tokens gerados. Erros podem se acumular:

  • um token levemente errado desloca o contexto
  • previsões posteriores derivam ainda mais (especialmente em rollouts longos)

Essa discrepância é frequentemente chamada de viés de exposição (exposure bias). Mitigações incluem:

  • melhores estratégias de decodificação (por exemplo, amostragem de núcleo vs gulosa)
  • ajuste fino com objetivos que incorporam prefixos gerados
  • ajuste fino no estilo de aprendizado por reforço para recompensas no nível da tarefa (comum em modelos de linguagem de grande porte alinhados)

3) Planejamento global limitado

Modelos autorregressivos escolhem um passo por vez. Mesmo que possam representar dependências longas (especialmente com Transformers), eles podem ter dificuldade com:

  • coerência de longo horizonte (consistência de enredo, raciocínio em múltiplos passos)
  • impor restrições globais (formato, comprimento, estrutura) sem mecanismos explícitos

Técnicas como decodificação restrita (constrained decoding), tokens de planejamento (planning tokens) ou verificadores externos (external verifiers) frequentemente são usadas para ajudar.

4) Restrições da janela de contexto e custo computacional

Condicionar em um prefixo longo pode ser caro:

  • o custo de atenção (attention cost) cresce com o comprimento do contexto (para Transformers padrão)
  • contextos longos aumentam memória e tempo de inferência

Isso leva a preocupações práticas sobre:

  • recuperação (retrieval) e sumarização (summarization) do histórico
  • variantes arquiteturais para contextos longos

5) Verossimilhança ≠ qualidade perceptual

Especialmente em imagens/áudio, alta verossimilhança nem sempre se alinha ao julgamento humano. Modelos autorregressivos de pixels podem ser “bons estimadores de densidade (density estimators)” e ainda assim não corresponder à qualidade subjetiva ou à velocidade de abordagens de difusão ou GAN.

Modelos autorregressivos no panorama mais amplo de modelagem generativa

Modelos autorregressivos são um de vários paradigmas gerativos importantes cobertos em modelagem generativa:

  • Modelos de Difusão: desruído iterativo; fortes para imagens/áudio; frequentemente mais lentos do que GANs, mas paralelos ao longo das dimensões
  • Modelos de Fluxo: transformações invertíveis; verossimilhança exata; podem amostrar rapidamente, mas com restrições arquiteturais
  • Redes Adversariais Generativas (GANs): treinamento adversarial; amostragem rápida; instabilidade de treinamento e riscos de colapso de modos (mode collapse)
  • Autoencoders Variacionais (VAEs): modelos de variáveis latentes (latent-variable models); amostragem eficiente; podem trocar nitidez (sharpness) por cobertura (coverage) dependendo da configuração

Uma regra prática (rule of thumb) útil:

  • Autoregressivo: ótima verossimilhança e forte modelagem passo a passo; amostragem lenta
  • Difusão: excelente qualidade perceptual; iterativa, mas não estritamente token a token
  • GAN: amostragem muito rápida; mais difícil de treinar/avaliar probabilisticamente
  • VAE/Fluxo: modelagem probabilística estruturada; compensações diferentes em fidelidade vs. restrições

Dicas práticas e escolhas de projeto

Tokenização e representação importam

Modelos autorregressivos operam sobre um “passo” escolhido:

  • texto: tokens de subpalavras (veja Tokenização)
  • imagens: pixels, patches (patches) ou códigos discretos aprendidos
  • áudio: amostras brutas vs quadros vs codecs aprendidos (codecs)

Escolher a granularidade (granularity) correta pode afetar drasticamente:

  • comprimento da sequência (e, portanto, velocidade)
  • dificuldade de modelagem
  • qualidade de saída

Decodificação faz parte do comportamento do modelo

Dois sistemas com parâmetros treinados idênticos podem se comportar de maneira muito diferente sob decodificações diferentes:

  • decodificação gulosa pode ser repetitiva
  • alta temperatura pode se tornar incoerente
  • amostragem de núcleo frequentemente dá um equilíbrio melhor entre realismo e diversidade

Em produção, a política de decodificação (decoding policy) é um “botão” central para qualidade e segurança (safety).

A avaliação deve corresponder ao caso de uso

  • Para pesquisa em modelagem de linguagem: perplexidade / log-verossimilhança negativa são comuns.
  • Para qualidade de geração: avaliação humana (human eval), taxas de sucesso em tarefas (task success rates) e métricas de domínio (domain metrics) frequentemente importam mais.
  • Para previsão: calibração (calibration) e regras de pontuação (scoring rules) probabilísticas (por exemplo, CRPS) são relevantes.

Resumo

Modelos autorregressivos geram sequências ao prever repetidamente o próximo elemento condicionado aos elementos anteriores, aproveitando a regra da cadeia para fornecer verossimilhança tratável e um objetivo de treinamento direto (predição do próximo passo com entropia cruzada). Eles sustentam muitos sistemas modernos de linguagem e geração de sequências devido à sua estabilidade, escalabilidade e condicionamento flexível.

Sua principal desvantagem é a geração sequencial, que aumenta a latência e pode causar acúmulo de erros durante rollouts longos. Como resultado, modelos autorregressivos coexistem com outras abordagens gerativas — como Modelos de Difusão, Redes Adversariais Generativas (GANs), Autoencoders Variacionais (VAEs) e Modelos de Fluxo —, cada uma oferecendo compensações diferentes em velocidade, fidelidade e complexidade de treinamento.