Modelos e plataformas de IA
Modelos de Linguagem Grande Baseados em Decodificador: Um Guia Completo
Modelos de Linguagem Grande (LLMs) revolucionaram o campo do processamento de linguagem natural (NLP) demonstrando capacidades notáveis em gerar texto semelhante ao humano, responder a perguntas e auxiliar em uma ampla gama de tarefas relacionadas à linguagem. No núcleo desses modelos poderosos está a arquitetura de transformador apenas decodificador, uma variante da arquitetura de transformador original proposta no artigo seminal “Attention is All You Need” por Vaswani et al.
Neste guia abrangente, exploraremos o funcionamento interno dos LLMs baseados em decodificador, mergulhando nos blocos de construção fundamentais, inovações arquiteturais e detalhes de implementação que impulsionaram esses modelos para o centro das pesquisas e aplicações de NLP.
A Arquitetura do Transformador: Um Refresco
Antes de mergulhar nos detalhes dos LLMs baseados em decodificador, é essencial revisitar a arquitetura do transformador, a base sobre a qual esses modelos são construídos. O transformador introduziu uma abordagem nova para modelagem de sequência, confiando apenas em mecanismos de atenção para capturar dependências de longo alcance nos dados, sem a necessidade de camadas recorrentes ou convolucionais.
A arquitetura original do transformador consiste em dois componentes principais: um codificador e um decodificador. O codificador processa a sequência de entrada e gera uma representação contextualizada, que é então consumida pelo decodificador para produzir a sequência de saída. Essa arquitetura foi inicialmente projetada para tarefas de tradução de máquina, onde o codificador processa a sentença de entrada na língua de origem e o decodificador gera a sentença correspondente na língua de destino.
Atenção Auto-Dirigida: A Chave para o Sucesso do Transformador
No coração do transformador está o mecanismo de atenção auto-dirigida, uma técnica poderosa que permite ao modelo ponderar e agregar informações de diferentes posições na sequência de entrada. Ao contrário dos modelos de sequência tradicionais, que processam tokens de entrada sequencialmente, a atenção auto-dirigida permite que o modelo capture dependências entre qualquer par de tokens, independentemente de sua posição na sequência.
A operação de atenção auto-dirigida pode ser dividida em três etapas principais:
- Projeções de Consulta, Chave e Valor: A sequência de entrada é projetada em três representações separadas: consultas (Q), chaves (K) e valores (V). Essas projeções são obtidas multiplicando a entrada com matrizes de peso aprendidas.
- Cálculo de Pontuações de Atenção: Para cada posição na sequência de entrada, pontuações de atenção são calculadas tomando o produto escalar entre o vetor de consulta correspondente e todos os vetores de chave. Essas pontuações representam a relevância de cada posição para a posição atual sendo processada.
- Soma Ponderada de Valores: As pontuações de atenção são normalizadas usando uma função softmax, e os pesos de atenção resultantes são usados para calcular uma soma ponderada dos vetores de valor, produzindo a representação de saída para a posição atual.
A atenção multi-cabeça, uma variante do mecanismo de atenção auto-dirigida, permite que o modelo capture diferentes tipos de relacionamentos calculando pontuações de atenção em múltiplas “cabeças” em paralelo, cada uma com seu próprio conjunto de projeções de consulta, chave e valor.
Variantes e Configurações Arquiteturais
Embora os princípios básicos dos LLMs baseados em decodificador sejam consistentes, os pesquisadores exploraram várias variantes e configurações arquiteturais para melhorar o desempenho, a eficiência e as capacidades de generalização. Nesta seção, mergulharemos nas diferentes escolhas arquiteturais e suas implicações.
Tipos de Arquitetura
Os LLMs baseados em decodificador podem ser amplamente classificados em três principais tipos: codificador-decodificador, decodificador causal e decodificador de prefixo. Cada tipo de arquitetura exibe padrões de atenção distintos.
Arquitetura Codificador-Decodificador
Com base no modelo de transformador vanilla, a arquitetura codificador-decodificador consiste em duas pilhas: um codificador e um decodificador. O codificador usa camadas de atenção auto-dirigida empilhadas para codificar a sequência de entrada e gerar representações contextualizadas. O decodificador então realiza atenção cruzada nessas representações para gerar a sequência de saída. Embora eficaz em várias tarefas de NLP, poucos LLMs, como Flan-T5, adotam essa arquitetura.
Arquitetura Decodificador Causal
A arquitetura decodificador causal incorpora uma máscara de atenção unidirecional, permitindo que cada token de entrada atenda apenas a tokens passados e a si mesmo. Tanto os tokens de entrada quanto os tokens de saída são processados dentro do mesmo decodificador. Modelos notáveis como GPT-1, GPT-2 e GPT-3 são construídos sobre essa arquitetura, com o GPT-3 demonstrando capacidades notáveis de aprendizado em contexto. Muitos LLMs, incluindo OPT, BLOOM e Gopher, adotaram amplamente decodificadores causais.
Arquitetura Decodificador de Prefixo
Também conhecida como arquitetura decodificador não causal, a arquitetura decodificador de prefixo modifica o mecanismo de mascaramento dos decodificadores causais para permitir atenção bidirecional sobre tokens de prefixo e atenção unidirecional sobre tokens gerados. Como a arquitetura codificador-decodificador, os decodificadores de prefixo podem codificar a sequência de prefixo bidirecionalmente e prever tokens de saída autoregressivamente usando parâmetros compartilhados. LLMs baseados em decodificadores de prefixo incluem GLM130B e U-PaLM.
Todos os três tipos de arquitetura podem ser estendidos usando a técnica de escalonamento mixture-of-experts (MoE), que ativa esparsamente um subconjunto de pesos da rede neural para cada entrada. Essa abordagem foi empregada em modelos como Switch Transformer e GLaM, com o aumento do número de especialistas ou do tamanho total de parâmetros mostrando melhorias significativas no desempenho.
Transformador Apenas Decodificador: Abraçando a Natureza Autoregressiva
Embora a arquitetura original do transformador tenha sido projetada para tarefas de sequência-para-sequência, como tradução de máquina, muitas tarefas de NLP, como modelagem de linguagem e geração de texto, podem ser enquadradas como problemas autoregressivos, onde o modelo gera um token de cada vez, condicionado aos tokens previamente gerados.
Entre com o transformador apenas decodificador, uma variante simplificada da arquitetura do transformador que retém apenas o componente decodificador. Essa arquitetura é particularmente adequada para tarefas autoregressivas, pois gera tokens de saída um a um, aproveitando os tokens previamente gerados como contexto de entrada.
A principal diferença entre o transformador apenas decodificador e o decodificador original do transformador reside no mecanismo de atenção auto-dirigida. No contexto apenas decodificador, a operação de atenção auto-dirigida é modificada para evitar que o modelo atenda a tokens futuros, uma propriedade conhecida como causalidade. Isso é alcançado por meio de uma técnica chamada “atenção auto-dirigida mascarada”, onde as pontuações de atenção correspondentes a posições futuras são definidas como negativo infinito, efetivamente mascarando-as durante a normalização softmax.
Componentes Arquiteturais dos LLMs Baseados em Decodificador
Embora os princípios básicos da atenção auto-dirigida e da atenção auto-dirigida mascarada permaneçam os mesmos, os LLMs baseados em decodificador modernos introduziram várias inovações arquiteturais para melhorar o desempenho, a eficiência e as capacidades de generalização. Vamos explorar alguns dos principais componentes e técnicas empregadas nos LLMs de ponta.
Representação de Entrada
Antes de processar a sequência de entrada, os LLMs baseados em decodificador empregam técnicas de tokenização e incorporação para converter o texto bruto em uma representação numérica adequada para o modelo.
Tokenização: O processo de tokenização converte o texto de entrada em uma sequência de tokens, que podem ser palavras, subpalavras ou até mesmo caracteres individuais, dependendo da estratégia de tokenização empregada. Técnicas de tokenização populares para LLMs incluem Codificação de Pares de Bytes (BPE), SentencePiece e WordPiece. Esses métodos visam equilibrar o tamanho do vocabulário e a granularidade da representação, permitindo que o modelo lide com palavras raras ou fora do vocabulário de forma eficaz.
Incorporação de Token: Após a tokenização, cada token é mapeado para uma representação vetorial densa chamada incorporação de token. Essas incorporações são aprendidas durante o treinamento e capturam relações semânticas e sintáticas entre tokens.
Incorporação Posicional: Os modelos de transformador processam a sequência de entrada inteira simultaneamente, carecendo da noção inerente de posição de token presente em modelos recorrentes. Para incorporar informações posicionais, incorporações posicionais são adicionadas às incorporações de token, permitindo que o modelo distinga entre tokens com base em suas posições na sequência. LLMs iniciais usavam incorporações posicionais fixas baseadas em funções sinusoidais, enquanto modelos mais recentes exploraram incorporações posicionais aprendidas ou técnicas de codificação posicional alternativas, como incorporações posicionais rotativas.
Blocos de Atenção Multi-Cabeça
Os blocos de construção básicos dos LLMs baseados em decodificador são as camadas de atenção multi-cabeça, que realizam a operação de atenção auto-dirigida mascarada descrita anteriormente. Essas camadas são empilhadas várias vezes, com cada camada atendendo à saída da camada anterior, permitindo que o modelo capture dependências e representações cada vez mais complexas.
Cabeças de Atenção: Cada camada de atenção multi-cabeça consiste em múltiplas “cabeças de atenção“, cada uma com seu próprio conjunto de projeções de consulta, chave e valor. Isso permite que o modelo atenda a diferentes aspectos da sequência de entrada simultaneamente, capturando relacionamentos e padrões diversificados.
Conexões Residuais e Normalização de Camada: Para facilitar o treinamento de redes profundas e mitigar o problema do gradiente desvanecente, os LLMs baseados em decodificador empregam conexões residuais e técnicas de normalização de camada. As conexões residuais adicionam a entrada de uma camada à sua saída, permitindo que os gradientes fluam mais facilmente durante a retropropagação. A normalização de camada ajuda a estabilizar as ativações e gradientes, melhorando ainda mais a estabilidade e o desempenho do treinamento.
Camadas de Alimentação Direta
Além das camadas de atenção multi-cabeça, os LLMs baseados em decodificador incorporam camadas de alimentação direta, que aplicam uma rede neural simples de alimentação direta a cada posição na sequência. Essas camadas introduzem não linearidades e permitem que o modelo aprenda representações mais complexas.
Funções de Ativação: A escolha da função de ativação nas camadas de alimentação direta pode impactar significativamente o desempenho do modelo. Enquanto LLMs iniciais confiavam na amplamente utilizada ativação ReLU, modelos mais recentes adotaram funções de ativação mais sofisticadas, como a Unidade de Erro Gaussiana Linear (GELU) ou a ativação SwiGLU, que demonstraram melhor desempenho.
Atenção Esparsa e Transformadores Eficientes
Embora o mecanismo de atenção auto-dirigida seja poderoso, ele vem com uma complexidade computacional quadrática em relação ao comprimento da sequência, tornando-o computacionalmente caro para sequências longas. Para abordar esse desafio, várias técnicas foram propostas para reduzir os requisitos computacionais e de memória da atenção auto-dirigida, permitindo o processamento eficiente de sequências mais longas.
Atenção Esparsa: Técnicas de atenção esparsa, como a empregada no modelo GPT-3, atendem seletivamente a um subconjunto de posições na sequência de entrada, em vez de calcular pontuações de atenção para todas as posições. Isso pode reduzir significativamente a complexidade computacional enquanto mantém um desempenho razoável.
Atenção de Janela Deslizante: Introduzida no modelo Mistral 7B, a atenção de janela deslizante (SWA) é uma técnica simples, mas eficaz, que restringe o alcance de atenção de cada token a um tamanho de janela fixo. Essa abordagem aproveita a capacidade das camadas de transformador de transmitir informações através de múltiplas camadas, efetivamente aumentando o alcance de atenção sem a complexidade quadrática da atenção auto-dirigida completa.
Cache de Buffer Rolante: Para reduzir ainda mais os requisitos de memória, especialmente para sequências longas, o modelo Mistral 7B emprega um cache de buffer rolante. Essa técnica armazena e reutiliza os vetores de chave e valor calculados para um tamanho de janela fixo, evitando cálculos redundantes e minimizando o uso de memória.
Atenção de Consulta Agrupada: Introduzida no modelo LLaMA 2, a atenção de consulta agrupada (GQA) é uma variante do mecanismo de atenção multi-consulta que divide as cabeças de atenção em grupos, cada um compartilhando uma matriz de chave e valor comum. Essa abordagem equilibra a eficiência da atenção multi-consulta e o desempenho da atenção auto-dirigida padrão, proporcionando tempos de inferência melhorados enquanto mantém resultados de alta qualidade.
















