O que é um mecanismo de atenção?

Autores

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

O que é um mecanismo de atenção?

Um mecanismo de atenção é uma técnica de aprendizado de máquina que direciona modelos de deep learning para priorizar (ou atender) às partes mais relevantes dos dados de entrada. A inovação nos mecanismos de atenção possibilitou a arquitetura de transformação, que resultou nos modernos grandes modelos de linguagem (LLMs), impulsionando aplicações populares como o ChatGPT.

Como o nome sugere, os mecanismos de atenção são inspirados na capacidade dos seres humanos (e de outros animais) de se concentrar seletivamente em detalhes relevantes e ignorar os menos importantes no momento. Ter acesso a toda a informação, focando apenas nas partes mais relevantes, ajuda a garantir que nenhum detalhe significativo seja perdido, ao mesmo tempo em que permite um uso eficiente da memória e do tempo.

Do ponto de vista matemático, um mecanismo de atenção calcula pesos de atenção, que refletem a importância relativa de cada parte de uma sequência de input para a tarefa em questão. Em seguida, aplica esses pesos para aumentar (ou reduzir) a influência de cada parte do input, de acordo com sua importância. Um modelo de atenção, ou seja, um modelo de inteligência artificial que emprega um mecanismo de atenção, é treinado para atribuir pesos de atenção precisos por meio de aprendizado supervisionado ou aprendizado autossupervisionado em um grande conjunto de dados.

Os mecanismos de atenção foram introduzidos originalmente por Bahdanau et al. em 2014 como uma técnica para lidar com as limitações dos modelos de rede neural recorrente (RNN), que eram o estado da arte na época para tradução automática. Pesquisas subsequentes integraram mecanismos de atenção às redes neurais convolucionais (CNNs), utilizadas em tarefas como legendagem de imagens e resposta a perguntas visuais.

Em 2017, o artigo seminal "Attention is All You Need" introduziu o modelo de transformador, que eliminou completamente o uso de recorrência e convoluções, utilizando apenas camadas de atenção e camadas feedforward padrão. A arquitetura de transformação tornou-se desde então a base dos modelos mais avançados que impulsionam a era atual da IA generativa.

Embora os mecanismos de atenção sejam amplamente associados a LLMs usados em tarefas de processamento de linguagem natural (NLP), como resumo, resposta a perguntas, geração de texto e análise de sentimento, modelos baseados em atenção também são amplamente utilizados em outros domínios. Modelos de difusão de ponta para geração de imagens frequentemente incorporam um mecanismo de atenção. No campo da visão computacional, os transformadores de visão (ViTs) alcançaram resultados superiores em tarefas como detecção de objetos,1 segmentação de imagens2 e resposta a perguntas visuais.3

As mais recentes tendências em IA, trazidas a você por especialistas

Receba insights selecionados sobre as notícias mais importantes (e intrigantes) sobre IA. Inscreva-se no nosso boletim informativo semanal Think. Consulte a Declaração de privacidade da IBM.

Agradecemos a você! Você se inscreveu.

Sua assinatura será entregue em inglês. Você encontrará um link para cancelar a assinatura em cada boletim informativo. Você pode gerenciar suas assinaturas ou cancelar a assinatura aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.

Por que os mecanismos de atenção são importantes?

Modelos de transformadores e os mecanismos de atenção que os impulsionam atingiram resultados de ponta em praticamente todos os subdomínios do deep learning. A natureza dos mecanismos de atenção oferece vantagens significativas em relação aos mecanismos de convolução utilizados em redes neurais convolucionais (CNNs) e aos loops recorrentes empregados em redes neurais recorrentes (RNNs).

  • Flexibilidade temporal: o processamento de dados sequenciais pelas RNNs é inerentemente serializado, o que significa que cada etapa da sequência é processada individualmente e em uma ordem específica. Isso dificulta a identificação de correlações (chamadas de dependências na ciência de dados) que tenham muitas etapas intermediárias. Já os mecanismos de atenção podem examinar toda a sequência simultaneamente e decidir a ordem de foco nos diferentes passos.

  • Flexibilidade espacial: CNNs são inerentemente locais, utilizando convoluções para processar subconjuntos menores dos dados de input, um de cada vez. Isso dificulta a identificação de dependências distantes, como correlações entre palavras (em textos) ou pixels (em imagens) que não estejam próximos entre si. Os mecanismos de atenção não possuem essa limitação, pois processam os dados de maneira totalmente diferente.

  • Paralelização: a natureza dos mecanismos de atenção permite que muitas operações computacionais sejam realizadas simultaneamente, em vez de maneira sequencial. Isso possibilita um alto grau de computação paralela, aproveitando o poder e a velocidade oferecidos pelas GPUs.

Para entender como os mecanismos de atenção funcionam no deep learning e por que ajudaram a impulsionar a revolução da IA generativa, é importante primeiro compreender por que a atenção foi introduzida: para aprimorar os modelos Seq2Seq baseados em RNNs usados na tradução automática.
 

Como o Seq2Seq funciona sem mecanismos de atenção

RNNs são redes neurais com loops recorrentes que fornecem um equivalente de "memória", permitindo o processamento de dados sequenciais. As RNNs são redes neurais com loops recorrentes que fornecem um equivalente de "memória", permitindo o processamento de dados sequenciais. Após cada etapa, o estado resultante da rede (chamado de estado oculto) é reintroduzido no loop junto com o próximo vetor de input.

As RNNs rapidamente sofrem com gradientes que desaparecem ou explodem durante o treinamento. Isso tornou as RNNs impraticáveis para muitas tarefas de processamento de linguagem natural, pois limitou significativamente o comprimento das sentenças de input que elas podiam processar.4 Essas limitações foram parcialmente mitigadas por uma arquitetura aprimorada de RNN chamada redes de memória de longo curto prazo (LSTMs), que adicionam mecanismos de controle para preservar a "memória de longo prazo".

Antes da introdução da atenção, o modelo Seq2Seq era o ápice para tradução automática. O Seq2Seq usa duas LSTMs em uma arquitetura de codificador-decodificador.

  • O primeiro LSTM, o codificador, processa a frase de origem passo a passo e, em seguida, produz o estado oculto da última etapa de tempo. Essa saída, chamada de vetor de contexto, codifica toda a frase como um único embedding de vetores. Para permitir que o Seq2Seq lide de forma flexível com frases contendo diferentes números de palavras, o vetor de contexto tem sempre o mesmo tamanho.

  • A segunda LSTM, o decodificador, recebe o vetor de incorporação gerado pelo codificador como seu input inicial e o decodifica, palavra por palavra, para um segundo idioma.

Codificar sequências de input em um número fixo de dimensões permitiu que o Seq2Seq processasse sequências de diferentes comprimentos, mas também introduziu falhas importantes:

  • Representa sequências longas ou complexas com o mesmo nível de detalhe que frases mais curtas e simples. Isso cria um gargalo de informação para sequências mais longas e desperdiça recursos para sequências mais curtas.

  • Esse vetor representa apenas o estado oculto final da rede de codificador. Em teoria, cada estado oculto subsequente deveria conter informações do estado oculto anterior, que, por sua vez, contém informações da etapa de tempo anterior, e assim sucessivamente, até a primeira etapa. Na prática, o vetor de contexto inevitavelmente “esquece” informações de etapas de tempo iniciais, dificultando o desempenho do modelo em sequências mais longas.
     

Como os mecanismos de atenção melhoraram o Seq2Seq

Bahdanau et al. propuseram um mecanismo de atenção em seu artigo de 2014, "Neural Machine Translation by Jointly Learning to Align and Translate", para melhorar a comunicação entre o codificador e o decodificador e eliminar esse gargalo de informação.

Em vez de transmitir ao decoder apenas o estado oculto final do codificador (o vetor de contexto), o modelo deles passou todos os estados ocultos do codificador para o decodificador. O próprio mecanismo de atenção foi utilizado para determinar qual estado oculto (ou seja, qual palavra da sentença original) era mais relevante em cada etapa da tradução feita pelo decodificador.

"Isso libera o modelo da necessidade de codificar uma sentença inteira de origem em um vetor de comprimento fixo e também permite que o modelo se concentre apenas nas informações relevantes para a geração da próxima palavra de destino", explicou o artigo. "Isso tem um impacto positivo significativo na capacidade do sistema de tradução automática neural de produzir bons resultados em sentenças mais longas."5

Pesquisas subsequentes em PLN se concentraram principalmente em melhorar o desempenho e expandir os casos de uso dos mecanismos de atenção em modelos recorrentes. A invenção dos modelos de transformadores em 2017, impulsionados exclusivamente por atenção, acabou tornando as RNNs praticamente obsoletas para PLN.

Mixture of Experts | 28 de agosto, episódio 70

Decodificando a IA: resumo semanal das notícias

Participe do nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

Como funcionam os mecanismos de atenção?

O principal objetivo de um mecanismo de atenção é determinar a importância relativa de diferentes partes da sequência de input e, em seguida, influenciar o modelo a focar nas partes importantes e ignorar as partes irrelevantes.

Embora existam muitas variantes e categorias de mecanismos de atenção, cada uma adequada a diferentes casos de uso e prioridades, todos os mecanismos de atenção apresentam três processos centrais:

  1.  Um processo de "leitura" de sequências brutas de dados e conversão delas em vetores de incorporação, nos quais cada elemento da sequência é representado por seu(s) próprio(s) vetor(es) de características.

  2. Um processo de determinação precisa de semelhanças, correlações e outras dependências (ou falta delas) entre cada vetor, quantificadas como pontuações de alinhamento (ou pontuações de atenção) que refletem o quão alinhados (ou não alinhados) eles estão. As pontuações de alinhamento são então usadas para calcular os pesos de atenção usando uma função softmax, que normaliza todos os valores para um intervalo entre 0 e 1, de modo que todos eles somam um total de 1. Assim, por exemplo, atribuir um peso de atenção 0 a um elemento significa que ele deve ser ignorado. Um peso de atenção de 1 significa que o elemento deve receber 100% de atenção, porque todos os outros elementos teriam pesos de atenção de 0 (porque todos os pesos devem somar 1). No essencial, a saída de uma função softmax é uma distribuição de probabilidades.

  3. Um processo de utilização dos pesos de atenção para enfatizar ou atenuar a influência de elementos específicos de input na forma como o modelo realiza suas previsões. Ou seja, um método de empregar os pesos de atenção para ajudar os modelos a se concentrarem ou a ignorarem determinadas informações.

Consultas, chaves e valores

O artigo seminal “Attention is All You Need” articulou seu mecanismo de atenção utilizando a terminologia de um banco de dados relacional: consultas, chaves e valores. Os bancos de dados relacionais foram criados para simplificar o armazenamento e a recuperação de dados relevantes: eles atribuem um identificador único (“chave”) a cada dado, e cada chave está associada a um valor. No processamento de linguagem natural, o “banco de dados” de um modelo é o vocabulário de tokens que ele aprendeu com seu conjunto de dados de treinamento.

A enorme influência do artigo “Attention is All You Need” fez com que até os mecanismos de atenção anteriores fossem, retroativamente, descritos nesses termos. De modo geral, essa concepção de atenção envolve a interação entre três tipos de incorporações vetoriais para cada token em uma sequência.

  • O vetor de consulta representa as informações que um determinado token está buscando.

  • Os vetores de chaves representam as informações que cada token contém. O alinhamento entre a consulta e a chave é usado para calcular os pesos de atenção.

  • O valor (ou vetor de valor) aplica as informações ponderadas pelos pesos de atenção a partir dos vetores de chave. As contribuições das chaves que estão fortemente alinhadas com uma consulta recebem pesos mais altos, enquanto as contribuições das chaves que não são relevantes para a consulta recebem pesos próximos de zero.

As variantes específicas dos mecanismos de atenção diferem principalmente na forma como os vetores são codificados, como os escores de alinhamento são calculados e como os pesos de atenção são aplicados para fornecer informações relevantes ao modelo.
 

Atenção aditiva

O mecanismo de atenção de Badhanau foi projetado especificamente para a tradução automática. Ele utiliza uma RNN bidirecional para codificar cada token de entrada, processando a sequência de input tanto na direção direta quanto na inversa e concatenando os resultados. Essa abordagem é particularmente útil quando, por exemplo, o idioma original e o traduzido possuem convenções de ordenação diferentes para substantivos e adjetivos.

Aqui, o estado oculto do decodificador em cada etapa da sentença traduzida equivale a um vetor de consulta, e o estado oculto do encoder em cada etapa da sentença de origem equivale a um vetor de chave.

A rede neural feedforward simples, denominada camada de atenção, calcula as pontuações de alinhamento e é treinada em conjunto com o restante do modelo. Essa camada de atenção contém até três subconjuntos de pesos ajustáveis do modelo: pesos de consulta para os estados ocultos do decodificador (“Wq”), pesos de chave para os estados ocultos do codificador (“Wk”) e pesos de valor para dimensionar a saída final (“wv”). Esses pesos representam o “conhecimento” do modelo: ao ajustar seus valores específicos durante o treinamento para minimizar uma função de perda, o modelo aprende a realizar traduções precisas.

Em cada etapa, a atenção aditiva funciona da seguinte forma:

  • O vetor de consulta (multiplicado por Wq) é adicionado a um vetor de chave (multiplicado por Wk). Se estiverem alinhados, incluí-los produzirá um grande valor. Se forem irrelevantes entre si, somá-los resultará em um valor pequeno ou negativo.

  • O número resultante é inserido em uma tanh função de ativação, que mapeia todas as entradas para um número entre -1 e 1.

  • A produção da tanh é então multiplicada pelos pesos de valor wv. Isso produz a pontuação de alinhamento entre o vetor de consulta e esse vetor chave.
  • A pontuação de alinhamento é, então, inserida em uma função softmax, que produz um peso de atenção para esse vetor-chave.

O vetor de contexto que o decodificador utiliza para gerar a sentença traduzida é calculado como a soma ponderada por atenção de cada vetor de chave. Uma vantagem da atenção aditiva é que ela não exige que os vetores de consulta e de chave tenham o mesmo tamanho.

Atenção baseada em produto escalar

Em 2015, Luong et al introduziram diversas metodologias inovadoras para simplificar e aprimorar o mecanismo de atenção de Badhanau para a tradução automática. Talvez a contribuição mais notável deles tenha sido uma nova função de pontuação de alinhamento que utilizava multiplicação em vez de adição. Também evitou o tanh função, calculando a similaridade entre os vetores de estado oculto utilizando seu produto escalar. Por esse motivo, é frequentemente chamada de atenção por produto escalar ou atenção multiplicativa.

A intuição por trás do uso do produto escalar para comparar vetores de consulta é matemática e pragmática:

  • Se os Q e K vetores estiverem alinhados, isto é, se uma consulta e uma chave forem semelhantes em significado, multiplicá-los produzirá um valor elevado. Após o softmax, esse valor elevado gera um peso de atenção alto para essa chave. Se eles não estiverem bem alinhados, o produto escalar será pequeno ou negativo, e a função softmax subsequente produzirá um peso de atenção baixo.

  • Na prática, a multiplicação é muito mais rápida e eficiente computacionalmente para redes neurais do que as operações aditivas, pois pode ser implementada em menos etapas utilizando multiplicação de matrizes.6

Uma consequência do uso da atenção por produto escalar é que os cálculos de produto escalar exigem que ambos os vetores tenham o mesmo número de dimensões, dk .

Enquanto a atenção aditiva procede calculando o vetor de contexto como a soma ponderada dos vetores de chave, a atenção por produto escalar computa o vetor de contexto como a média ponderada dos vetores de chave.
 

Atenção em escala do produto escalar

Os autores de “Attention is All You Need” observaram que, embora a atenção por produto escalar seja mais rápida e computacionalmente eficiente do que a atenção aditiva, esta última supera a atenção tradicional por produto escalar quando aplicada a vetores mais longos.

Eles teorizaram que, quando dk é muito grande, os produtos escalares resultantes também são muito grandes. Quando a função softmax comprime todos esses valores muito elevados para se ajustarem entre 0 e 1, a retropropagação gera gradientes extremamente pequenos, difíceis de otimizar. Experimentações revelaram que escalonar o produto escalar de dois vetores de comprimento dk por  1dk antes que a normalização softmax resulte em gradientes maiores e, portanto, em um treinamento mais suave.

A função de atenção do produto escalonado usado nos modelos de transformadores é escrita como Attention(Q,K,V)=softmax(QKTdk)V .

 

Autoatenção

Os primeiros tipos de mecanismos de atenção realizavam o que hoje é categorizado como atenção cruzada. Na atenção cruzada, as consultas e as chaves vêm de diferentes fontes de dados. Por exemplo, em tarefas de tradução automática, as chaves provêm de um corpus de texto em um idioma, enquanto as consultas vêm de outro; em tarefas de reconhecimento de fala, as consultas são dados de áudio e as chaves são dados de texto para transcrever esse áudio.

Na autoatenção, o modelo extrai as consultas, as chaves e os valores da mesma fonte. Enquanto os mecanismos de atenção de Bahdanau e Luong foram projetados especificamente para a tradução automática, Cheng et al propôs a autoatenção, que eles chamaram de “intra-atenção”, como método para aprimorar a compreensão de textos de forma geral. Seu mecanismo de atenção, delineado em um artigo de 2016, explorou não como os elementos de entrada contribuem para uma sequência geral, mas como diferentes tokens de entrada se relacionam entre si.

Considere um modelo de idioma interpretando o texto em inglês
“on Friday, the judge issued a sentence”.

  • A palavra anteriorthe sugere quejudge está sendo usado como um substantivo, como empessoa que preside um julgamento, não como um verbo que significa avaliar ou formar uma opinião.

  • Esse contexto para a palavrajudge sugere quesentence provavelmente se refere a uma penalidade legal, em vez de uma "sentença" gramatical.

  • A palavraissued implica ainda que a sentença se refere ao conceito jurídico, não ao conceito gramatical.

  • Portanto, ao interpretar a palavrasentence , o modelo deve prestar muita atenção a judge eissued . Também deve prestar atenção à palavrathe . Pode ignorar mais ou menos as outras palavras. Um mecanismo de autoatenção bem treinado calcularia adequadamente os pesos de atenção.

O artigo de Cheng et al focou exclusivamente na capacidade da autoatenção de ler e compreender textos, mas logo demonstrou que modelar as relações intrassequência também pode ser uma ferramenta poderosa para escrever textos. O desenvolvimento adicional da autoatenção, juntamente com os modelos transformer que ela possibilitou, levou diretamente ao surgimento da IA generativa moderna e dos LLMs autoregressivos capazes de gerar texto original.

Autoatenção e tradução automática

LLMs autoregressivos também podem realizar tradução automática utilizando autoatenção, mas precisam abordar a tarefa de maneira diferente. Enquanto a atenção cruzada trata a sentença de origem e a sentença traduzida como duas sequências distintas, a autoatenção considera o texto original e o texto traduzido como uma única sequência.

Para que um LLM autoregressivo baseado em autoatenção seja capaz de traduzir textos, todas as palavras que o modelo encontra durante o treinamento em cada idioma são incorporadas a um grande vocabulário multilíngue de tokens. O modelo simplesmente reconhece que, quando uma sequência contém instruções como “traduza [palavras no Idioma 1] para o Idioma 2,” as próximas palavras da sequência devem ser tokens do Idioma 2.

Em essência, um LLM autoregressivo não compreende, por si só, que existem idiomas diferentes. Em vez disso, ele simplesmente entende como certos agrupamentos de tokens, neste caso, tokens correspondentes a palavras do mesmo idioma, se relacionam entre si. Essa compreensão contextual é reforçada ainda mais por meio de técnicas como o ajuste de instruções.

Atenção em modelos de transformadores

O artigo “Attention is All You Need”, de autoria de Viswani et al, inspirou-se na autoatenção para introduzir uma nova arquitetura de rede neural: o transformador. O modelo transformador deles dispensou completamente as convoluções e a recorrência, utilizando apenas camadas de atenção e camadas lineares feedforward padrão.

O próprio modelo dos autores seguiu uma estrutura encoder-decoder, semelhante à de seus predecessores baseados em RNN. Modelos baseados em transformadores lançados posteriormente abandonaram essa estrutura codificador-decodificador. Um dos primeiros modelos marcantes lançados após o artigo dos transformadores, BERT (abreviação de bidirectional encoder representations from transformers), é um modelo que utiliza apenas o encoder. Os LLMs autorregressivos que revolucionaram a geração de texto, como os modelos GPT (Generative Pretrained Transformer), são apenas decodificadores.

O artigo “Attention is All You Need” introduziu diversas melhorias no mecanismo de atenção, incluindo o scaled dot product attention, que aumentou o desempenho e permitiu a adaptação da atenção a uma nova arquitetura de modelo.

Codificação posicional

A ordem e a posição relativas das palavras podem influenciar significativamente seus significados. Enquanto as RNNs preservam, de forma inerente, informações sobre a posição de cada token ao computar estados ocultos de maneira serial, uma palavra após a outra, os modelos transformer precisam codificar explicitamente as informações posicionais.

Com a codificação posicional, o modelo adiciona um vetor de valores à representação de cada token, derivado de sua posição relativa, antes que o input seja processado pelo mecanismo de atenção. Esse vetor posicional normalmente possui muito menos dimensões do que a própria incorporação do token, de modo que apenas um pequeno subconjunto dela receberá informações de posição. A matemática é um pouco complexa, mas a lógica é simples:

  • Quanto mais próximos dois tokens estiverem, mais semelhantes serão seus vetores posicionais.

  • Quanto mais semelhantes forem seus respectivos vetores posicionais, maior será o aumento na similaridade entre as respectivas embeddings dos tokens após a adição desses vetores posicionais.

  • Quanto mais semelhantes forem as representações vetoriais atualizadas posicionalmente, maior será a pontuação de alinhamento, resultando em um peso de atenção maior entre esses dois tokens. Assim, o modelo aprende a prestar mais autoatenção aos tokens próximos.

Viswani et al desenvolveram um algoritmo simples que utiliza uma função seno para tokens em posições pares e cosseno para tokens em posições ímpares. Algoritmos posteriores, como a codificação posicional rotativa (RoPE), aprimoraram a capacidade de codificar efetivamente informações de posição para sequências muito longas, o que, por sua vez, contribuiu para viabilizar LLMs com janelas de contexto maiores.
 

Mecanismo de autoatenção em modelos de transformadores

Depois que a representação de cada token é atualizada com informações de posição, o sistema utiliza essa representação para gerar três novos vetores, passando-a por cada uma das três camadas lineares paralelas (feedforward) que precedem a primeira camada de atenção. Cada camada paralela possui uma matriz única de pesos, cujos valores específicos são aprendidos por meio de pré-treinamento auto-supervisionado em um conjunto massivo de dados textuais.

  • A incorporação é multiplicada pela matriz de peso WQ para produzir o vetor de consulta (Q), que tem dk dimensões

  • A incorporação é multiplicada pela matriz de peso WK para produzir o vetor chave (K), também com dimensões dk 

  • A incorporação é multiplicada pela matriz de peso WV para produzir o vetor de valor ( V ), com dimensões  dv
Diagrama do mecanismo de atenção de um modelo de transformador Diagrama simplificado do mecanismo de atenção do transformador: os embeddings vetoriais originais dos tokens de uma sentença de input são multiplicados por matrizes de peso W, K e V para gerar seus respectivos vetores de consulta (Q), chave (K) e valor (V).

A função principal do mecanismo de atenção é atribuir peso à importância das associações entre consulta e chave de cada token. Para cada token x em uma sequência de entrada, o modelo transformer calcula (e então aplica) os pesos de atenção da seguinte forma:

  1. Vetores de consulta do token x Qx é multiplicado pelo vetor de chave de cada outro token K. O produto escalar resultante será elevado para um token altamente relevante; seu produto escalar com um token irrelevante será pequeno ou negativo.

  2. Cada produto escalar será escalado, ou seja, multiplicado, por 1dk. O resultado é a pontuação de alinhamento entre o token x e cada outro token.
  3. Essas pontuações de alinhamento são inseridas em uma função softmax, que normaliza cada valor para uma faixa entre 0 e 1, de modo que a soma total seja 1. Esses são os pesos de atenção entre o token x e cada outro token. Você pode imaginar que cada token agora possui um vetor correspondente de pesos de atenção, onde cada elemento indica até que ponto outro token deve influenciá-lo.

  4. O vetor de valor de cada outro token agora é multiplicado pelo respectivo peso de atenção.

  5. Esses vetores de valor ponderados por atenção são todos calculados em conjunto. O vetor resultante representa a média de todas as contribuições ponderadas pela atenção de cada vetor de chave.

  6. Por fim, o vetor resultante das alterações para cada token é somado à representação vetorial original do token x’s. Em essência, a representação vetorial do token x’s foi atualizada para refletir melhor o contexto fornecido pelos demais tokens da sequência.

Atenção multifacetada

Calcular a média das contribuições ponderadas por atenção de outros tokens, em vez de considerar cada contribuição individualmente, é matematicamente eficiente, mas acarreta perda de detalhes. A arquitetura de transformação lida com isso implementando a atenção multihead.

Para aproveitar a eficiência da média, enquanto ainda consideram as relações multifacetadas entre os tokens, os modelos transformer executam operações de autoatenção várias vezes em paralelo em cada camada de atenção da rede. Cada representação vetorial original do token de input é dividida em h subconjuntos de tamanho igual. Cada parte da representação vetorial é direcionada para uma das h matrizes paralelas de pesos Q, K e V , cada uma das quais é chamada de cabeça de consulta, cabeça de chave ou cabeça de valor, respectivamente. Os vetores gerados por cada um desses tríplices paralelos de cabeçotes de consulta, chave e valor são então enviados para o título de atenção correspondente.

Diagrama de atenção de múltiplas cabeças Diagrama simplificado da atenção multi-head, famoso no artigo "Attention is All You Need".

Nas camadas finais de cada bloco de atenção, as saídas desses circuitos paralelos h são eventualmente concatenadas novamente. Na prática, o treinamento do modelo permite que cada circuito aprenda pesos diferentes que capturam aspectos distintos dos significados semânticos. Isso, por sua vez, permite que o modelo processe as diversas maneiras pelas quais o contexto de outras palavras pode influenciar o significado de uma palavra. Por exemplo, uma cabeça de atenção pode se especializar em mudanças de tempo, enquanto outra se dedica a perceber como as palavras próximas influenciam o tom.

Concatenação na atenção de múltiplas cabeças As saídas "Z" de cada cabeça de atenção são concatenadas. Neste exemplo, h = 8.

Todo o circuito de multiplicação de matrizes no bloco de atenção de um transformer padrão é demonstrado aqui. Vale ressaltar que evoluções posteriores do mecanismo de atenção do transformer, como a atenção multiquery e a atenção de consulta agrupada, simplificam ou combinam alguns elementos do processo para reduzir as demandas computacionais.

Diagrama do bloco de atenção de múltiplas cabeças Diagrama simplificado de toda a multiplicação de matrizes em um bloco de atenção de múltiplas cabeças (h = 8), derivado de "The Illustrated Transformer" de Jay Alammar. Aqui, "+" significa concatenação, não adição.

Geração de saídas

Nas últimas camadas dos modelos de transformação, as cabeças de atenção são frequentemente treinadas para realizar previsões específicas. Por exemplo, um título de atenção na camada final de um LLM pode se especializar em reconhecimento de entidades nomeadas, enquanto outra se especializa em análise de sentimento, entre outras funções.

Em LLMs autoregressivos, a penúltima camada é uma camada linear que recebe o vetor totalmente transformado e o projeta para um tamanho compatível com as representações vetoriais que o modelo aprendeu para cada token em seu vocabulário. Isso possibilita o cálculo de pontuações que indicam o quão próximo o vetor resultante está de cada token desse vocabulário. A camada final é uma camada softmax, que converte essas pontuações em probabilidades (de 1) e utiliza tais probabilidades para determinar e fornecer a palavra seguinte mais provável, com base nas palavras que a antecederam.

Soluções relacionadas
IBM watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

Explore o watsonx.ai Agende uma demonstração em tempo real
Notas de rodapé

1. “Leaderboard: Object Detection on COCO test-dev,” Papers With Code, accessed 18 November 2024
2. “Leaderboards: Image Segmentation” Papers With Code, acessado em 18 de novembro de 2024
3. “Leaderboard: Visual Question Answering (VQA) on VQA v2 test-dev,” Papers With Code, acessado em 18 de novembro de 2024
4. “Learning long-term dependencies with gradient descent is difficult,” IEE Transactions on Neural Networks 5(2): 157-66, fevereiro de 1994
5. “Neural Machine Translation by Jointly Learning to Align and Translate,” arXiv, 1 de setembro de 2014
6. “Multiplicative Attention,” Papers With Code