Arquitetura Transformer e Mecanismo de Atenção: Análise Técnica
Introduzida pela Google no artigo de 2017 "Attention Is All You Need", a arquitetura Transformer forma a espinha dorsal da inteligência artificial moderna. Todos os principais modelos de linguagem, como GPT, Claude e Gemini, são construídos sobre essa arquitetura.
Antes dos Transformers: Limitações de RNN e LSTM
Antes da era dos transformers, tarefas de PLN dependiam de Redes Neurais Recorrentes (RNN) e redes Long Short-Term Memory (LSTM):
Problemas de RNN/LSTM:
- Requisito de processamento sequencial → Paralelização é impossível.
- Desvanecimento/explosão de gradientes em sequências longas.
- Dificuldade em aprender dependências de longo alcance.
- Tempos de treinamento muito longos.
Mecanismo de Self-Attention
Self-attention é um mecanismo que calcula a relação entre cada elemento em uma sequência e todos os outros elementos.
Formulação Matemática
Attention(Q, K, V) = softmax(QK^T / √d_k) × V
Parâmetros:
- Q (Query): O vetor de consulta.
- K (Key): O vetor-chave a ser comparado.
- V (Value): O vetor de informação real.
- d_k: A dimensão do vetor Key.
Cálculo Passo a Passo
- Projeção: Entrada → matrizes Q, K, V
1Q = X × W_Q 2K = X × W_K 3V = X × W_V
- Scores de Atenção: Produto escalar de Q e K
scores = Q × K^T
- Escalonamento: Divisão por √d_k para estabilidade do gradiente
scaled_scores = scores / √d_k
- Softmax: Conversão em uma distribuição de probabilidade
attention_weights = softmax(scaled_scores)
- Soma Ponderada: Multiplicação com Value
output = attention_weights × V
Multi-Head Attention
Em vez de um único head de atenção, múltiplos heads paralelos são utilizados:
1MultiHead(Q, K, V) = Concat(head_1, ..., head_h) × W_O 2 3where head_i = Attention(QW_Q^i, KW_K^i, VW_V^i)
Vantagens do Multi-Head Attention
- Aprendizado em diferentes subespaços de representação.
- Captura de vários tipos de relações contextuais.
- Extração de características mais rica.
Configurações Típicas:
- GPT-3: 96 heads de atenção, d_model = 12288.
- GPT-4: Estimado acima de 120 heads.
Positional Encoding
Como Transformers processam dados em paralelo, informações posicionais são adicionadas para preservar o contexto sequencial:
Positional Encoding Sinusoidal
PE(pos, 2i) = sin(pos / 10000^(2i/d_model)) PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))
Rotary Positional Embedding (RoPE)
Um método mais avançado usado em modelos modernos:
f(x, pos) = x × e^(i × pos × θ)
Vantagens do RoPE:
- Codifica naturalmente informações de posição relativa.
- Melhor capacidade de extrapolação para sequências longas.
- Usado em modelos como GPT-NeoX, LLaMA e Mistral.
Feed-Forward Network
Uma camada MLP que segue cada camada de atenção:
FFN(x) = GELU(xW_1 + b_1)W_2 + b_2
Dimensões Típicas:
- d_model = 4096.
- d_ff = 4 × d_model = 16384.
Funções de Ativação
- ReLU: Clássica e simples.
- GELU: Preferida em modelos tipo GPT.
- SwiGLU: Usada em modelos LLaMA e PaLM.
Layer Normalization
Crucial para a estabilidade do treinamento:
Pre-LN vs Post-LN
Post-LN (Original):
x = x + Attention(LayerNorm(x))
Pre-LN (Moderno):
x = LayerNorm(x + Attention(x))
Pre-LN oferece treinamento mais estável e se tornou o padrão da indústria atualmente.
Arquiteturas Encoder vs Decoder
Encoder-Only (estilo BERT)
- Atenção bidirecional.
- Usado para Classificação, NER e similaridade semântica.
- Masked Language Modeling.
Decoder-Only (estilo GPT)
- Atenção causal/autoregressiva.
- Usado para geração de texto e chat.
- Previsão do próximo token.
Encoder-Decoder (T5, BART)
- Tarefas sequência para sequência.
- Tradução e sumarização.
Causal Masking
Mascaramento de tokens futuros em modelos decoders:
mask = triu(ones(seq_len, seq_len), diagonal=1) masked_scores = scores + mask × (-inf)
Isso garante que o modelo só observe tokens anteriores durante a geração.
Otimização de KV-Cache
Para evitar cálculos redundantes durante a inferência:
1Step 1: Calculate K_1, V_1 → save to cache 2Step 2: Calculate K_2, V_2 → K = [K_1, K_2], V = [V_1, V_2] 3Step n: Calculate only for the new token, retrieve old values from cache
Economia de Memória: O(n²) → O(n) para etapas de processamento.
Flash Attention
Uma implementação de atenção eficiente em memória:
Problemas da Atenção Padrão:
- Uso de memória O(n²).
- Gargalo de HBM (high bandwidth memory).
Solução Flash Attention:
- Tiling: Divisão da atenção em blocos.
- Online Softmax: Cálculo incremental.
- I/O Aware: Otimização da hierarquia de memória da GPU.
Resultado: Aceleração de 2-4x, economia de 5-20% de memória.
Variantes de Atenção Esparsa
Reduzindo a complexidade da atenção para contextos longos:
Atenção Local
Foco apenas em tokens próximos.
Atenção Dilatada
Aplicação de atenção em intervalos específicos.
Padrão Longformer
Combinação de atenção Local + Global.
Variantes Modernas de Transformers
| Modelo | Característica | Tamanho de Contexto |
|---|---|---|
| GPT-4 | MoE, long context | 128K |
| Claude 3 | Constitutional AI | 200K |
| Gemini 1.5 | Sparse MoE | 1M |
| Mistral | Sliding window | 32K |
Conclusão
A arquitetura Transformer é o bloco de construção fundamental da IA moderna. Seu mecanismo de self-attention, capacidade de processamento paralelo e habilidade de aprender dependências de longo alcance tornaram essa arquitetura revolucionária.
Na Veni AI, utilizamos de forma eficaz modelos baseados em transformers em nossas soluções corporativas. Entre em contato conosco para consultoria técnica.
