Ir para o conteúdo

Encoder, Decoder e Encoder-Decoder

O Transformer original era um encoder-decoder. Em até cinco anos após sua publicação, a área já havia dividido aquela arquitetura única em três famílias — encoder-only, decoder-only e encoder-decoder — e um desses ramos, a linhagem decoder-only, passou a dominar a modelagem de linguagem em escala de fronteira. Este capítulo percorre essa tricotomia: estabelece a taxonomia clássica, acompanha o ramo encoder-only desde o BERT em 2018 até o ModernBERT em 2024, situa o T5 e o enquadramento text-to-text no lado encoder-decoder e encerra com a pergunta que entregamos ao Capítulo 8 — por que o decoder-only venceu.

O argumento tem dois fios. O primeiro é taxonômico: cada família arquitetural se associa naturalmente a um objetivo auto-supervisionado diferente, e a escolha do objetivo determina aquilo em que o modelo resultante será bom. O segundo é histórico: o BERT foi projetado em 2018 com os componentes que eram padrão na época — embeddings posicionais absolutos aprendíveis, post-LayerNorm, GeLU, WordPiece, attention bidirecional completa. Nos anos seguintes, cada um desses componentes foi substituído ou refinado em outras partes da pilha arquitetural. O ModernBERT é o que um Transformer encoder-only se torna depois que oito anos de atualizações acumuladas no nível dos componentes são reincorporadas.

Três paradigmas arquiteturais

A taxonomia agora é padrão. Os modelos encoder-only — BERT, RoBERTa, ModernBERT — produzem representações contextuais de uma sequência de entrada em uma única passagem bidirecional; cada posição atende a todas as outras posições, e a saída é uma sequência de vetores destinada a alimentar classificadores ou recuperadores downstream [src_001, src_003]. Os modelos decoder-only — a linhagem GPT e seus sucessores — produzem uma distribuição sobre o próximo token em cada posição sob uma máscara causal, de modo que cada posição atende apenas a si mesma e a tokens anteriores; cobrimos essa família em detalhe no Capítulo 8 [src_002, src_010]. Os modelos encoder-decoder — o Transformer original de Vaswani, o T5 — combinam os dois: um encoder produz representações contextuais da entrada, e um decoder gera uma sequência de saída de forma autorregressiva enquanto faz cross-attention sobre a saída do encoder [src_001, src_002, src_003]. O próprio artigo do BERT batiza as duas metades com o que se tornaram seus rótulos canônicos — um "Transformer encoder" para a versão bidirecional e um "Transformer decoder" para a versão que enxerga apenas o contexto à esquerda [src_014].

🔗 Conexão

O contraste bidirecional / causal apoia-se sobre o maquinário de máscaras de attention apresentado no Capítulo 1. cross-attention é o acoplamento encoder-decoder cuja mecânica é coberta em §"Encoder-decoder: o caminho do T5" mais abaixo.

🎯 Intuição

A tricotomia é mais fácil de ler a partir do que cada família consegue ver em cada posição:

  • Encoder-only: cada posição vê todas as outras posições (contexto bidirecional completo).
  • Decoder-only: cada posição vê apenas a si mesma e às posições anteriores (máscara causal triangular inferior).
  • Encoder-decoder: uma passagem do encoder lê a entrada de forma bidirecional, e em seguida o decoder gera da esquerda para a direita olhando para a saída do encoder via cross-attention.

A visibilidade em cada posição é o que determina qual loss o padrão de attention da arquitetura efetivamente torna tratável.

Cada paradigma se alinha a um objetivo auto-supervisionado diferente. Os modelos encoder-only se associam a objetivos de denoising — prever os tokens mascarados dado seu contexto bidirecional. Os modelos decoder-only se associam à predição do próximo token da esquerda para a direita, que é exatamente o que a máscara causal torna tratável. Os modelos encoder-decoder se associam ao denoising sequence-to-sequence — corromper a entrada e gerar o original a partir da representação do encoder. A arquitetura e o objetivo não são escolhas independentes; uma implica a outra.

No restante deste capítulo usamos \(T\) para o comprimento da sequência, \(B\) para o tamanho do batch, \(D\) para a dimensão oculta, \(h\) para o número de attention heads, \(d_h = D / h\) para a dimensão por head, \(V\) para o tamanho do vocabulário e \(L\) para o número de layers do Transformer. Esses são os mesmos símbolos usados no Capítulo 1.

💡 Resultado-chave

Cada arquitetura se associa ao objetivo cuja loss seu padrão de attention efetivamente torna tratável.

BERT: o encoder bidirecional

O BERT é uma pilha de \(L\) layers de encoder Transformer — self-attention bidirecional mais uma FFN posição a posição — treinado para preencher tokens mascarados. A arquitetura é convencional; a contribuição que importou foi o objetivo de pretraining, que tornou o contexto bidirecional tratável para aprendizado auto-supervisionado em escala [src_014].

🔗 Conexão

A "self-attention bidirecional" sobre a qual o bloco do BERT roda é o padrão de attention completo (sem máscara) apresentado no Capítulo 1; o contraste com a máscara causal triangular inferior usada pela linhagem GPT abaixo apoia-se no mesmo maquinário.

A representação de entrada é a soma de três embeddings aprendidos por token. Para um token na posição \(i\) no segmento \(s \in \{A, B\}\), o embedding de entrada é

\[ \mathbf{e}_i \;=\; \mathbf{w}_{x_i} \;+\; \mathbf{s}_s \;+\; \mathbf{p}_i \]

onde \(\mathbf{w}_{x_i}\) é o embedding de token WordPiece (WordPiece é um subword tokeniser — predecessor do BPE — que quebra palavras raras em pedaços menores extraídos de um vocabulário aprendido), \(\mathbf{s}_s\) é o embedding de segmento (um de dois vetores aprendidos que indicam a qual sentença o token pertence em um par), e \(\mathbf{p}_i\) é o embedding posicional absoluto aprendível — um vetor treinável separado para cada posição até um comprimento máximo fixo [src_014]. Voltaremos ao termo posicional em breve, porque essa única decisão de projeto é a coisa mais visível que a área substituiu ao seguir adiante. O vocabulário do BERT é WordPiece com 30.000 tokens, e o comprimento máximo de sequência é 512 [src_014].

Dois tokens reservados dão forma ao formato. O primeiro token de cada sequência é [CLS], cujo estado oculto final é tomado como representação agregada da entrada para tarefas de classificação; pares de sentenças são unidos por um token [SEP] e distinguidos pelo embedding de segmento [src_014].

O primeiro objetivo de pretraining é Masked Language Modeling (MLM). No treinamento, 15% dos tokens WordPiece são selecionados para masking. Dos tokens selecionados, 80% são substituídos pelo token especial [MASK], 10% são substituídos por um token aleatório do vocabulário e os 10% restantes são deixados inalterados; o modelo é treinado para prever o token original em cada posição selecionada [src_014]. Escrevendo \(\mathcal{M}\) para o conjunto de posições mascaradas e \(x_{-\mathcal{M}}\) para a entrada com essas posições substituídas segundo a regra 80/10/10, a perda do MLM é

\[ \mathcal{L}_{\text{MLM}} \;=\; \mathbb{E}_{x \sim \mathcal{D}} \left[ \sum_{i \in \mathcal{M}} -\log P(x_i \mid x_{-\mathcal{M}}) \right] \]

🤔 Pause e pense

A divisão 80/10/10 é incomum. Antes de seguir, você consegue dizer o que daria errado se o BERT simplesmente substituísse cada posição selecionada por [MASK]? (Não olhe adiante — escreva a resposta ou diga em voz alta.)

🎯 Intuição

O modelo vê a sentença com buracos perfurados nela, e é avaliado por quão bem preenche cada buraco. A divisão 80/10/10 é o que determina como esses buracos parecem: às vezes um [MASK] literal, às vezes uma palavra aleatória errada, às vezes o token original deixado no lugar. Calcula-se a média do log-loss por buraco.

onde o modelo produz \(P(x_i \mid x_{-\mathcal{M}})\) em cada posição mascarada passando o estado oculto da última camada pela matriz de embedding de tokens transposta e por um softmax sobre o vocabulário [src_014]. A divisão 80/10/10 não é apenas um detalhe. Substituir cada posição mascarada por [MASK] criaria uma incompatibilidade entre treino e teste, já que [MASK] nunca aparece no fine-tuning ou na inferência; as frações aleatória e inalterada forçam o modelo a continuar produzindo representações úteis para tokens que parecem não estar mascarados.

🔗 Conexão

O MLM tem um análogo cross-modal limpo: a família masked- autoencoder (MAE) para visão dissecada no Capítulo 6 substitui tokens mascarados por patches de imagem mascarados e reconstrói o conteúdo retido a partir do contexto visível — a mesma ideia de denoising transposta de texto para imagens.

O segundo objetivo de pretraining é Next Sentence Prediction (NSP). Para 50% dos pares de treino, a sentença B genuinamente segue a sentença A no corpus de origem; para os outros 50%, a sentença B é amostrada aleatoriamente de outro lugar. Um classificador binário sobre o estado oculto final de [CLS] prevê se B segue A [src_014]. O artigo original do BERT relata que NSP ajuda em Question Answering e Natural Language Inference, e o inclui na receita recomendada de pretraining [src_014].

🔄 Recapitulação

  • Complete a equação. Quais três embeddings aprendíveis são somados em cada posição para formar o embedding de entrada \(\mathbf{e}_i\) do BERT, e o que cada um representa?
  • Explique o porquê. Por que a regra 80/10/10 de substituição de máscaras substitui alguns tokens selecionados por palavras aleatórias e deixa outros inalterados, em vez de substituir cada posição selecionada por [MASK]?
  • Preveja. Suponha que um modelo sucessor descartasse o objetivo NSP por completo. Quais das escolhas de projeto do BERT você esperaria que se tornassem maquinário desperdiçado, e quais continuariam a pagar pelo seu custo?

O folclore do NSP

Um ano depois, o RoBERTa desmontou a receita do BERT hiperparâmetro por hiperparâmetro e perguntou quais escolhas de projeto realmente se pagavam. A descoberta principal para os nossos fins: o NSP não. Na ablação do RoBERTa, configurações que descartam o NSP e alimentam o modelo com sentenças contíguas amostradas de um único documento (DOC-SENTENCES) ou através das fronteiras de documento (FULL-SENTENCES) igualam ou levemente superam as pontuações em tarefas downstream em comparação ao baseline com NSP retido [src_015]. A leitura clínica é que o resultado positivo do NSP no BERT foi confundido pelo formato de entrada usado na ablação do NSP, e não pelo termo de perda em si.

O RoBERTa vai além. A mesma arquitetura encoder, treinada por mais tempo, em mais dados, com batches maiores e dynamic masking (re-amostragem das posições mascaradas a cada época, em contraste com as máscaras pré- computadas em tempo de pré-processamento do BERT) — e sem NSP — iguala ou supera os modelos pós-BERT que haviam sido publicados no ano intermediário [src_015]. A conclusão é dupla. Arquiteturalmente, o NSP era uma alegação portante que não se sustentou. Metodologicamente, o BERT original estava significativamente subtreinado, e uma fração substancial do gap entre o BERT-2018 e os "sucessores do BERT" era atribuível a compute e dados, e não a inovação arquitetural. As duas lições reaparecem ao longo do restante do livro.

🔗 Conexão

"O BERT estava significativamente subtreinado" é exatamente o conteúdo empírico do argumento de alocação compute-óptima que o Capítulo 9 desenvolve como as leis de escala da Chinchilla.

⚠️ Armadilha

O resultado positivo do NSP no BERT foi confundido pela escolha de formato de entrada na ablação do NSP (segment-pair vs. contíguo no documento), e não pelo termo de perda em si. Ler o artigo original como "NSP ajuda" sem ler a ablação do RoBERTa inverte a lição.

O folclore do absoluto aprendível

O mesmo padrão aparece no positional encoding do BERT, em um pavio mais longo. Embeddings posicionais absolutos aprendíveis — um vetor treinável separado para cada posição até um comprimento máximo fixo — eram um default razoável em 2018 e foram herdados de modelos sequenciais anteriores. Têm dois limites práticos que se tornaram rígidos à medida que as janelas de contexto cresceram. Primeiro, são presos a um comprimento máximo fixo: um modelo treinado com 512 vetores posicionais não tem nada significativo para colocar na posição 513. Segundo, não extrapolam bem: o embedding na posição 500 e na posição 501 são vetores aprendidos independentes, sem viés indutivo embutido de que devessem codificar informação relativa similar [src_002, src_016].

A substituição, coberta no Capítulo 2, é a RoPE — rotary position encoding — que codifica posição como uma rotação aplicada a vetores de query e key em pares de dimensões. RoPE tem a propriedade desejável de que o produto interno entre queries e keys rotacionados depende apenas do seu deslocamento relativo, o que confere um viés de posição relativa embutido sem um termo aditivo extra [src_002, src_016]. ALiBi, um esquema concorrente que adiciona uma penalidade linear aprendida aos scores de attention em função da distância, ocupa o mesmo nicho. Ambos os esquemas generalizam para comprimentos além do que foi visto no treinamento, com escolhas adequadas de frequência base ou esquema de extensão [src_002].

🔗 Conexão

O Capítulo 2 cobre a RoPE em detalhe — incluindo por que a frequência base define o comprimento de onda da rotação mais lenta, por que a ALiBi ocupa o mesmo nicho, e como os "esquemas de extensão" YaRN / NTK-aware permitem que a mesma codificação generalize além do comprimento de contexto de treinamento.

ModernBERT: o BERT que envelheceu bem

O ModernBERT, lançado no fim de 2024, é a arquitetura encoder-only reconstruída com os componentes que se tornaram padrão nos anos intermediários [src_016]. A alegação principal, explicitada no artigo do ModernBERT, não é que o projeto do BERT tenha ficado ruim. É que os defaults da área se moveram, e um modelo encoder-only que adota esses defaults é mais rápido, com contexto mais longo e mais forte em avaliações downstream do que o original.

A matriz de decisão é a maneira mais limpa de ler o espaço de projeto.

Dimensão BERT (2018) ModernBERT (2024)
Positional encoding Absoluto aprendível (somado aos embeddings de entrada) RoPE aplicada a Q/K, com frequências base separadas para layers globais e locais
Normalização Post-LayerNorm Pre-LayerNorm; termos de bias removidos; LayerNorm extra após a layer de embedding
Ativação da FFN GeLU GeGLU (uma variante Gated-Linear-Unit do GeLU)
Objetivo de pretraining MLM (15% de mask) + NSP MLM apenas, com taxa de mask maior, de 30%
Padrão de attention Bidirecional completo, em cada layer Alternado: attention local de janela deslizante (128 tokens) na maioria dos layers; attention global a cada terceiro layer
Comprimento máximo de sequência 512 tokens 8192 tokens nativamente (estendido a partir de 1024 durante o treinamento)
Tokenizador WordPiece, \(V = 30{,}000\) BPE OLMo modificado, \(V = 50{,}368\) (múltiplo de 64 para tiling de GPU)
Termos de bias Presentes em layers lineares e LayerNorm Removidos das layers lineares (exceto a layer linear final do decoder) e dos LayerNorms
Dados de pretraining Aproximadamente 3,3 bilhões de tokens (BooksCorpus + Wikipedia) 2 trilhões de tokens de texto multidomínio, incluindo código
Implementação de attention Era pré-FlashAttention FlashAttention-3 (global), FlashAttention-2 (local), com unpadding

Referências para a coluna do BERT: [src_014]. Referências para a coluna do ModernBERT: [src_016]. Unpadding na última linha é o truque da era FlashAttention de pular o cômputo sobre tokens de padding, remodelando um batch com padding em uma única sequência concatenada, com a forma original recuperada na saída.

Comentário por componente

Algumas dessas merecem comentário breve, porque codificam mudanças arquiteturais mais amplas na área.

A passagem de post-LayerNorm para pre-LayerNorm é uma história de estabilidade. Com post-LN, o LayerNorm é aplicado depois da soma residual, e em profundidade essa configuração é notoriamente frágil durante o treinamento. Pre-LN aplica a normalização antes da transformação não linear de cada sub-layer, deixando o residual stream intocado, o que é mais estável para pilhas profundas [src_016]. Tratamos disso em detalhe no Capítulo 3.

🔗 Conexão

O Capítulo 3 trata a transição post-LN → pre-LN, o upgrade GeLU → GeGLU, e o contraste de gating versus não-gating (com a fórmula da GLU \(\mathrm{GLU}(x) = (xW_1 + b_1) \odot \sigma(xW_2 + b_2)\)) diretamente; os comentários breves aqui apenas sinalizam quais dimensões o Cap.3 cobre.

A passagem de GeLU para GeGLU é a mesma transição de gating versus não-gating que aparece no lado decoder como SwiGLU; a FFN ganha um gate aprendido que multiplica a ativação, ao custo de expandir a projeção por um fator (gerenciado ajustando-se a dimensão intermediária da FFN) [src_016]. O artigo do ModernBERT escolhe especificamente GeGLU; SwiGLU é a escolha típica para a família moderna decoder-only que o Capítulo 8 disseca.

O padrão alternado de attention local-global é o delta arquitetural substantivo. A maioria dos layers do ModernBERT usa attention local com janela deslizante de 128 tokens; a cada terceiro layer há um layer de attention global, que mistura informação por toda a sequência. Isso mantém o cômputo de attention mais próximo de linear no comprimento da sequência, preservando a mistura de longo alcance que torna úteis os contextos de 8192 tokens [src_016]. Os dois modos de attention usam frequências base de RoPE diferentes porque seus alcances efetivos de posição relativa diferem.

A mudança na taxa de mask — 15% no BERT, 30% no ModernBERT — é pequena na tabela mas digna de nota. A taxa de mask mais alta dá mais supervisão por sequência de treinamento, e o artigo do ModernBERT a considera preferível empiricamente; a taxa original de 15% foi ela mesma uma escolha de hiperparâmetro, e não um ótimo derivado [src_016, src_014]. NSP é descartado, como prenunciado pelo RoBERTa.

O enquadramento importa. O ModernBERT não inventou nenhum desses componentes; ele consolidou melhorias que haviam sido validadas em outros lugares — no RoBERTa, na linhagem decoder-only, em trabalhos sobre FlashAttention — e mostrou que elas se compõem em uma melhoria de Pareto sobre o projeto encoder de 2018 (melhor em todos os eixos simultaneamente — velocidade, comprimento de contexto e acurácia em tarefas downstream — sem trade-off) [src_016].

💡 Resultado-chave

O ModernBERT não inventou nenhum componente isolado; ele compôs oito anos de atualizações da era decoder-side e FlashAttention dentro do stack encoder-only e mostrou que elas geram uma melhoria de Pareto sobre o projeto de 2018.

🔄 Recapitulação

  • Compare. No positional encoding e no padrão de attention, o que mudou entre o BERT-2018 e o ModernBERT-2024, e o que permaneceu igual?
  • Explique o porquê. Por que a mudança de post-LayerNorm para pre-LayerNorm é uma história de estabilidade, e por que isso importa mais em profundidade?
  • Preveja. Suponha que o ModernBERT substituísse seu padrão alternado local-global por sliding-window local em todos os layers. Qual de seus benefícios principais você esperaria perder primeiro?

Encoder-decoder: o caminho do T5

O terceiro ramo é o encoder-decoder, a arquitetura do Transformer original. T5 — Text-to-Text Transfer Transformer — é a sua instanciação canônica de 2020 [src_002, src_003]. Duas ideias importam.

A primeira é um enquadramento unificado text-to-text. T5 trata cada tarefa de NLP — classificação, question answering, tradução, sumarização — como um problema text-to-text. A entrada é um prompt textual que inclui um prefixo de tarefa; a saída é uma resposta textual; o mesmo modelo encoder-decoder lida com todas elas [src_003]. Esse enquadramento acaba antecipando o paradigma de modelo único com prompting que os modelos decoder-only mais tarde levaram à conclusão lógica em escala, mas o T5 o implementa com um backbone encoder-decoder.

A segunda é o objetivo de pretraining de span corruption. Em vez de mascarar tokens individuais (estilo BERT) ou prever o próximo token (estilo GPT), o T5 mascara spans contíguos da entrada — comprimento médio em torno de três tokens — substituindo cada span mascarado por um único token sentinela. O decoder é treinado para gerar uma sequência que lista cada sentinela seguida pelos tokens originais do span correspondente [src_003, src_002]. O encoder vê uma entrada corrompida; o decoder reconstrói o que foi removido. Esse objetivo fica entre os extremos do BERT e do GPT: é denoising como o BERT, mas pede geração autorregressiva como o GPT.

🤔 Pause e pense

Considere a entrada the cat sat on the mat. Suponha que os spans selecionados para masking sejam cat (comprimento 1) e on the (comprimento 2). Antes de ler o exemplo trabalhado abaixo, você consegue escrever como devem ficar a entrada do encoder e o alvo do decoder, incluindo onde vão os tokens sentinela? (Não olhe adiante — escreva primeiro.)

🎯 Intuição

Um exemplo concreto torna a transformação visível. Considere a entrada the cat sat on the mat. Suponha dois spans selecionados: sat (um token) e the mat (dois tokens). Cada span mascarado é substituído por um sentinela novo:

  • Entrada do encoder: the cat <X> on <Y>
  • Alvo do decoder: <X> sat <Y> the mat <Z>

O decoder gera a reconstrução prefixada por sentinelas de forma autorregressiva, e o <Z> final marca o fim da sequência. Os sentinelas são o que permite que uma única saída de comprimento variável descreva múltiplos buracos de comprimento variável.

A avaliação honesta em 2026 é que o T5 era excelente em 2020, e a área ainda assim migrou para longe dele. Em 2022, modelos decoder-only com in-context learning haviam efetivamente subsumido a maioria dos casos de uso do T5 — tradução, sumarização, classificação — sem necessitar do aparato de pretraining encoder-decoder. O caminho de inferência também é mais simples no decoder-only: um único KV-cache de causal-attention, sem passagem do encoder para gerenciar separadamente. Não relitigamos isso aqui; a próxima seção esboça o porquê em três linhas, e o Capítulo 8 preenche os detalhes arquiteturais.

🔗 Conexão

cross-attention — o acoplamento encoder-decoder invocado pela primeira vez em §"Três paradigmas arquiteturais" — é o mecanismo cuja mecânica a descrição de span corruption acima utiliza; o KV-cache referenciado na sentença de fechamento é dissecado no Capítulo 4, onde é o objeto de memória central da decodificação autorregressiva.

Por que o decoder-only venceu

Três razões, todas emergindo no início dos anos 2020, explicam a migração para o decoder-only como o default para a modelagem de linguagem de propósito geral. O argumento empírico para essa escolha arquitetural foi construído em uma comparação direta controlada por Wang et al. (2022), que cruzaram três arquiteturas (causal decoder-only, non-causal decoder-only — um prefix-LM com attention bidirecional sobre um prefixo e cauda de geração com causal-attention, coberto como variante no Capítulo 8 — e encoder-decoder) com dois objetivos de pretraining (modelagem autorregressiva de linguagem e masked language modelling / span corruption); após pretraining puramente não supervisionado, a combinação causal decoder-only + autoregressive-LM produziu a generalização zero-shot mais forte, o que é a âncora empírica por trás da aposta arquitetural no estilo GPT [src_051].

Primeiro, prompting zero-shot e in-context learning emergiram como propriedades de modelos decoder-only escalados além de um limiar crítico. A demonstração do GPT-3 mostrou que um modelo decoder-only suficientemente grande, treinado puramente com predição do próximo token, podia executar uma ampla gama de tarefas no momento da inferência condicionando-se a poucos exemplos no prompt, sem atualizações de parâmetros [src_037]. Tratamos disso no Capítulo 8, porque é o comportamento qualitativo que torna a pilha moderna decoder-only digna de se montar.

🔗 Conexão

O Capítulo 8 disseca a pilha moderna decoder-only — incluindo como o prompting zero-shot e o in-context learning emergem com a escala, e os sucessores por componente (RMSNorm, SwiGLU, GQA, KV-cache) que a §"Olhando adiante" de fechamento prenuncia.

Segundo, pretraining em uma única etapa. Modelos decoder-only são treinados com um único objetivo de modelagem causal de linguagem em uma única passagem direta autorregressiva; o pretraining encoder-decoder exige coreografar duas redes, um objetivo explícito de corrupção e reconstrução, e um caminho de cross-attention. Com compute constante, a receita mais simples escala de forma mais limpa.

Terceiro, simplicidade operacional na inferência. Um modelo decoder-only serve um prompt fluindo tokens a partir de uma única pilha causal com um único KV-cache; sem passagem do encoder para gerenciar, sem estado separado do decoder além do próprio KV-cache. Desempacotamos o pipeline de inferência no Capítulo 8.

💡 Resultado-chave

A comparação controlada de Wang et al., somada à emergência de zero-shot/ICL, somada à simplicidade operacional na inferência, explica em conjunto por que a combinação causal-LM com decoder-only se tornou o default de fronteira — mas apenas para geração de propósito geral.

O enquadramento não deve ser triunfalista. Decoder-only é o default correto em escala de fronteira para geração de propósito geral; não é um veredito universal. Modelos encoder-only permanecem genuinamente competitivos — frequentemente dominantes — em recuperação, classificação e tarefas de embedding em que o contexto bidirecional é o ponto e a geração não é necessária, e em que latência e custo de servir importam [src_016]. O ModernBERT foi projetado precisamente para essas tarefas, e compete contra baselines encoder-only, não contra modelos de linguagem decoder-only de fronteira. Modelos encoder-decoder mantêm um nicho em tradução e em tarefas de geração estruturada nas quais entrada e saída são claramente separadas e a bidirecionalidade do encoder é útil.

🔄 Recapitulação

  • Complete. Das três razões dadas para a ascensão do decoder-only (zero-shot/ICL, pretraining em uma única etapa, simplicidade na inferência), qual delas a comparação controlada de Wang et al. efetivamente ancora empiricamente?
  • Compare. Nomeie uma tarefa em que encoder-only ainda é o default correto e uma em que encoder-decoder mantém um nicho, com uma razão de uma linha para cada.
  • Preveja. Suponha que uma comparação controlada da era de 2024 fosse refeita com a receita de pretraining atual (compute muito maior, dados pós-2022). Qual das três razões você esperaria que ganhasse força e qual você esperaria que enfraquecesse?

Olhando adiante

O Capítulo 8 toma o ramo decoder-only e disseca como é por dentro um modelo de fronteira de 2024-2025 — Llama-3, DeepSeek-V3, as famílias Qwen e Gemma. Os componentes apresentados de passagem aqui (RoPE em §7.4, GeGLU e pre-LayerNorm na tabela do ModernBERT, padrões alternados de attention) reaparecem lá em suas encarnações do lado decoder: RoPE em Q e K, RMSNorm em vez de LayerNorm, SwiGLU em vez de GeGLU, GQA para a variante de attention e um pipeline de inferência que coloca o KV-cache em primeiro plano como objeto central de memória. O mesmo movimento histórico que produziu o ModernBERT — manter o diagrama de blocos original, substituir cada componente pelo seu sucessor de oito anos depois — é o movimento que produziu o LLM moderno decoder-only. O próximo capítulo mostra o que surge quando se faz isso na linhagem GPT.

Referências

  • src_001 — Bishop, C. M. & Bishop, H. Deep Learning: Foundations and Concepts. Springer, 2024. https://www.bishopbook.com/
  • src_002 — Xiao, T. & Zhu, J. Foundations of Large Language Models. arXiv:2501.09223v2, 2025. https://arxiv.org/pdf/2501.09223
  • src_003 — Jurafsky, D. & Martin, J. H. Speech and Language Processing, 3rd ed. (rolling, January 2026 release). https://web.stanford.edu/~jurafsky/slp3/
  • src_010 — Raschka, S. Build a Large Language Model (From Scratch). Manning, 2024. https://github.com/rasbt/LLMs-from-scratch
  • src_014 — Devlin, J., Chang, M.-W., Lee, K. & Toutanova, K. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805, 2018. https://arxiv.org/pdf/1810.04805
  • src_015 — Liu, Y., Ott, M., Goyal, N., Du, J., Joshi, M., Chen, D., Levy, O., Lewis, M., Zettlemoyer, L. & Stoyanov, V. RoBERTa: A Robustly Optimized BERT Pretraining Approach. arXiv:1907.11692,
  • https://arxiv.org/pdf/1907.11692
  • src_016 — Warner, B., Chaffin, A., Clavié, B., Weller, O., Hallström, O., Taghadouini, S., Gallagher, A., Biswas, R., Ladhak, F., Aarsen, T., Cooper, N., Adams, G., Howard, J. & Poli, I. Smarter, Better, Faster, Longer: A Modern Bidirectional Encoder for Fast, Memory Efficient, and Long Context Finetuning and Inference (ModernBERT). arXiv:2412.13663, 2024. https://arxiv.org/pdf/2412.13663
  • src_037 — Brown, T. et al. Language Models are Few-Shot Learners. arXiv:2005.14165, 2020. (Cited via Chapter 8; introduced here for the in-context-learning argument.)
  • src_051 — Thomas Wang, Adam Roberts, Daniel Hesslow, Teven Le Scao, Hyung Won Chung, Iz Beltagy, Julien Launay, and Colin Raffel. What Language Model Architecture and Pretraining Objective Works Best for Zero-Shot Generalization? In Proceedings of the 39th International Conference on Machine Learning (ICML 2022), 2022. https://arxiv.org/pdf/2204.05832