Modelos de linguagem grande baseados em decodificador: um guia completo
Grandes Modelos de Linguagem (LLMs) revolucionaram o campo do processamento de linguagem pure (PNL), demonstrando capacidades notáveis na geração de texto semelhante ao humano, respondendo a perguntas e auxiliando em uma ampla gama de tarefas relacionadas à linguagem. No centro destes modelos poderosos está a arquitetura de transformador somente decodificadoruma variante da arquitetura authentic do transformador proposta no artigo seminal “Atenção é tudo que você precisa”Por Vaswani et al.
Neste guia abrangente, exploraremos o funcionamento interno dos LLMs baseados em decodificadores, investigando os blocos de construção fundamentais, as inovações arquitetônicas e os detalhes de implementação que impulsionaram esses modelos para a vanguarda da pesquisa e das aplicações de PNL.
A arquitetura do Transformer: uma atualização
Antes de mergulhar nas especificidades dos LLMs baseados em decodificadores, é essencial revisitar a arquitetura do transformador, a base sobre a qual esses modelos são construídos. O transformador introduziu uma nova abordagem para modelagem de sequência, contando apenas com mecanismos de atenção para capturar dependências de longo alcance nos dados, sem a necessidade de camadas recorrentes ou convolucionais.
A arquitetura authentic 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. Esta arquitetura foi inicialmente projetada para tarefas de tradução automática, onde o codificador processa a frase de entrada no idioma de origem e o decodificador gera a frase correspondente no idioma de destino.
Autoatenção: a chave para o sucesso do Transformer
No coração do transformador está o mecanismo de autoatenção, uma técnica poderosa que permite ao modelo pesar 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 autoatenção permite que o modelo seize dependências entre qualquer par de tokens, independentemente de sua posição na sequência.
A operação de autoatenção 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 (Okay), e valores (V). Essas projeções são obtidas multiplicando a entrada pelas matrizes de peso aprendidas.
- Cálculo da pontuação de atenção: para cada posição na sequência de entrada, as pontuações de atenção são calculadas considerando o produto escalar entre o vetor de consulta correspondente e todos os vetores-chave. Essas pontuações representam a relevância de cada posição para a posição atual que está 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 multicabeças, uma variante do mecanismo de autoatenção, permite que o modelo seize diferentes tipos de relacionamentos calculando pontuações de atenção em vários “cabeças”em paralelo, cada um com seu próprio conjunto de projeções de consulta, chave e valor.
Variantes e configurações arquitetônicas
Embora os princípios básicos dos LLMs baseados em decodificadores permaneçam consistentes, os pesquisadores exploraram várias variantes e configurações arquitetônicas para melhorar o desempenho, a eficiência e as capacidades de generalização. Nesta seção, nos aprofundaremos nas diferentes opções arquitetônicas e suas implicações.
Tipos de arquitetura
LLMs baseados em decodificador podem ser amplamente classificados em três tipos principais: codificador-decodificador, decodificador causal e decodificador de prefixo. Cada tipo de arquitetura exibe padrões de atenção distintos, conforme ilustrado na Figura 1.
Arquitetura do codificador-decodificador
Baseada no modelo vanilla Transformer, a arquitetura codificador-decodificador consiste em duas pilhas: um codificador e um decodificador. O codificador usa camadas empilhadas de autoatenção com vários cabeçotes para codificar a sequência de entrada e gerar representações latentes. O decodificador então realiza atenção cruzada nessas representações para gerar a sequência alvo. Embora eficazes em várias tarefas de PNL, poucos LLMs, como o Flan-T5, adotam essa arquitetura.
Arquitetura do decodificador causal
A arquitetura do decodificador causal incorpora uma máscara de atenção unidirecional, permitindo que cada token de entrada atenda apenas aos tokens anteriores e a si mesmo. Os tokens de entrada e saída são processados no mesmo decodificador. Modelos notáveis como GPT-1, GPT-2 e GPT-3 são construídos nesta arquitetura, com GPT-3 apresentando notáveis capacidades de aprendizagem no contexto. Muitos LLMs, incluindo OPT, BLOOM e Gopher, adotaram amplamente decodificadores causais.
Arquitetura do decodificador de prefixo
Também conhecida como decodificador não causal, a arquitetura do decodificador de prefixo modifica o mecanismo de mascaramento dos decodificadores causais para permitir atenção bidirecional sobre tokens de prefixo e atenção unidirecional em tokens gerados. Assim como a arquitetura codificador-decodificador, os decodificadores de prefixo podem codificar a sequência de prefixo bidirecionalmente e prever tokens de saída de forma autorregressiva 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 de mistura de especialistas (MoE), que ativa esparsamente um subconjunto de pesos de rede neural para cada entrada. Esta abordagem foi empregada em modelos como Change Transformer e GLaM, com o aumento do número de especialistas ou o tamanho whole dos parâmetros mostrando melhorias significativas de desempenho.
Transformador somente decodificador: abraçando a natureza autoregressiva
Embora a arquitetura authentic do transformador tenha sido projetada para tarefas sequência a sequência, como tradução automática, muitas tarefas de PNL, como modelagem de linguagem e geração de texto, podem ser enquadradas como problemas autorregressivos, onde o modelo gera um token por vez, condicionado ao tokens gerados anteriormente.
Digite o transformador somente decodificador, uma variante simplificada da arquitetura do transformador que retém apenas o componente decodificador. Esta arquitetura é particularmente adequada para tarefas autorregressivas, pois gera tokens de saída um por um, aproveitando os tokens gerados anteriormente como contexto de entrada.
A principal diferença entre o transformador somente decodificador e o decodificador do transformador authentic está no mecanismo de autoatenção. Na configuração somente decodificador, a operação de autoatenção é modificada para evitar que o modelo atenda a tokens futuros, uma propriedade conhecida como causalidade. Isso é conseguido por meio de uma técnica chamada “autoatenção mascarada”, em que as pontuações de atenção correspondentes às posições futuras são definidas como infinito negativo, mascarando-as efetivamente durante a etapa de normalização softmax.
Componentes arquitetônicos de LLMs baseados em decodificador
Embora os princípios básicos de autoatenção e autoatenção mascarada permaneçam os mesmos, os LLMs modernos baseados em decodificadores introduziram várias inovações arquitetônicas para melhorar o desempenho, a eficiência e as capacidades de generalização. Vamos explorar alguns dos principais componentes e técnicas empregadas em LLMs de última geração.
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é caracteres individuais, dependendo da estratégia de tokenização empregada. Técnicas populares de tokenização para LLMs incluem Byte-Pair Encoding (BPE), SentencePiece e WordPiece. Esses métodos visam encontrar um equilíbrio entre 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ções 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 processo de treinamento e capturam relacionamentos semânticos e sintáticos entre tokens.
Incorporações posicionais: Os modelos de transformadores processam toda a sequência de entrada simultaneamente, sem a noção inerente de posições de token presentes em modelos recorrentes. Para incorporar informações posicionais, embeddings posicionais são adicionados aos embeddings de tokens, permitindo ao modelo distinguir entre tokens com base em suas posições na sequência. Os primeiros LLMs usavam embeddings posicionais fixos baseados em funções sinusoidais, enquanto modelos mais recentes exploraram embeddings posicionais que podem ser aprendidos ou técnicas alternativas de codificação posicional, como embeddings posicionais rotativos.
Blocos de atenção com múltiplas cabeças
Os principais blocos de construção dos LLMs baseados em decodificador são camadas de atenção com múltiplas cabeças, que executam a operação de autoatenção mascarada descrita anteriormente. Essas camadas são empilhadas diversas vezes, com cada camada atendendo à saída da camada anterior, permitindo que o modelo seize dependências e representações cada vez mais complexas.
Atenção Chefes: cada camada de atenção com vários cabeçalhos consiste em vários “cabeças de atenção”, cada um com seu próprio conjunto de projeções de consulta, chave e valor. Isso permite que o modelo atenda a diferentes aspectos da entrada simultaneamente, capturando diversos relacionamentos e padrões.
Conexões residuais e normalização de camadas: Para facilitar o treinamento de redes profundas e mitigar o problema do gradiente de fuga, os LLMs baseados em decodificadores 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 da camada ajuda a estabilizar as ativações e gradientes, melhorando ainda mais a estabilidade e o desempenho do treinamento.
Camadas de feedforward
Além das camadas de atenção com múltiplas cabeças, os LLMs baseados em decodificadores incorporam camadas feed-forward, que aplicam uma rede neural feed-forward simples 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 feed-forward pode impactar significativamente o desempenho do modelo. Embora os LLMs anteriores dependessem da ativação ReLU amplamente utilizada, modelos mais recentes adotaram funções de ativação mais sofisticadas, como a Unidade Linear de Erro Gaussiano (GELU) ou a ativação SwiGLU, que mostraram desempenho melhorado.
Atenção escassa e transformadores eficientes
Embora o mecanismo de autoatenção seja poderoso, ele apresenta uma complexidade computacional quadrática em relação ao comprimento da sequência, tornando-o computacionalmente caro para sequências longas. Para enfrentar este desafio, diversas técnicas foram propostas para reduzir os requisitos computacionais e de memória da autoatenção, permitindo o processamento eficiente de sequências mais longas.
Atenção escassa: 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, mantendo um desempenho razoável.
Atenção à janela deslizante: Introduzido no modelo Mistral 7B, a atenção da janela deslizante (SWA) é uma técnica simples, mas eficaz, que restringe a capacidade de atenção de cada token a um tamanho de janela fixo. Essa abordagem aproveita a capacidade das camadas transformadoras de transmitir informações através de múltiplas camadas, aumentando efetivamente a capacidade de atenção sem a complexidade quadrática da autoatenção whole.
Cache de buffer contínuo: Para reduzir ainda mais os requisitos de memória, especialmente para sequências longas, o modelo Mistral 7B emprega um cache de buffer contínuo. Esta técnica armazena e reutiliza os vetores de chave e valor computados para um tamanho de janela fixo, evitando cálculos redundantes e minimizando o uso de memória.
Atenção à consulta agrupada: Introduzido no modelo LLaMA 2, a atenção de consulta agrupada (GQA) é uma variante do mecanismo de atenção de múltiplas consultas que divide os cabeçalhos de atenção em grupos, cada grupo compartilhando uma chave comum e uma matriz de valor. Essa abordagem atinge um equilíbrio entre a eficiência da atenção multiconsulta e o desempenho da autoatenção padrão, proporcionando melhores tempos de inferência e mantendo resultados de alta qualidade.