toco O que são redes neurais transformadoras? - Unite.AI
Entre em contato
Masterclass de IA:

AI 101

O que são redes neurais transformadoras?

mm
Atualização do on

Redes neurais transformadoras descritas

transformadores são um tipo de modelo de aprendizado de máquina especializado no processamento e interpretação de dados sequenciais, tornando-os ideais para tarefas de processamento de linguagem natural. Para entender melhor o que é um transformador de aprendizado de máquina e como ele funciona, vamos examinar mais de perto os modelos de transformadores e os mecanismos que os acionam.

Este artigo irá cobrir:

  • Modelos de sequência a sequência
  • A arquitetura de rede neural do transformador
  • O Mecanismo de Atenção
  • Diferenças entre transformadores e RNNs/LSTMs

Modelos de sequência a sequência

Os modelos sequência a sequência são um tipo de modelo NLP usado para converter sequências de um tipo em sequências de outro tipo. Existem vários tipos de modelos sequência a sequência, como Rede Neural Recorrente e modelos Memória de longo prazo (LSTM) .

Os modelos tradicionais de sequência a sequência, como RNNs e LSTMS, não são o foco deste artigo, mas é necessário entendê-los para entender como os modelos de transformadores operam e por que eles são superiores aos modelos tradicionais de sequência a sequência.

Em resumo, os modelos RNN e os modelos LSTM consistem em redes codificadoras e decodificadoras que analisam os dados de entrada em vários intervalos de tempo. O modelo do codificador é responsável por formar uma representação codificada das palavras nos dados de entrada. A cada passo de tempo, a rede do codificador obtém uma sequência de entrada e um estado oculto do passo de tempo anterior na série. Os valores do estado oculto são atualizados à medida que os dados avançam pela rede, até a última etapa de tempo, onde um “vetor de contexto” é gerado. O vetor de contexto é então passado para a rede decodificadora, que é usada para gerar uma sequência alvo prevendo a palavra mais provável que emparelha com a palavra de entrada para os respectivos intervalos de tempo.

Esses modelos podem ser aumentados através do uso de um “mecanismo de atenção”. Um mecanismo de atenção define em quais partes do vetor de entrada a rede deve se concentrar para gerar a saída adequada. Em outras palavras, um mecanismo de atenção permite que o modelo do transformador processe uma palavra de entrada enquanto também atende às informações relevantes contidas nas outras palavras de entrada. Os mecanismos de atenção também mascaram palavras que não contêm informações relevantes.

Arquitetura de rede neural do transformador

Entraremos no mecanismo de atenção com mais detalhes mais tarde, mas por enquanto vamos dar uma olhada a arquitetura de uma rede neural transformadora em um nível superior.

Em geral, uma rede neural transformadora se parece com o seguinte:

Embora essa estrutura geral possa mudar entre as redes, as peças principais permanecerão as mesmas: codificações posicionais, vetores de palavras, mecanismo de atenção, rede neural de alimentação direta.

Codificações posicionais e vetores de palavras

Uma rede neural transformadora opera tomando uma sequência de entradas e convertendo essas entradas em duas outras sequências. O transformador produz uma sequência de incorporações de vetores de palavras e codificações posicionais.

Incorporações de vetores de palavras são apenas o texto representado em um formato numérico que a rede neural pode processar. Enquanto isso, as codificações posicionais são representações vetorizadas contendo informações sobre a posição da palavra atual na sentença de entrada, em relação a outras palavras.

Outros modelos de rede neural baseados em texto, como RNNs e LSTMs, usam vetores para representar as palavras nos dados de entrada. Essas incorporações vetoriais mapeiam palavras para valores constantes, mas isso é limitante porque as palavras podem ser usadas em diferentes contextos. Uma rede transformadora resolve esse problema tornando os valores das palavras mais flexíveis, usando funções senoidais para permitir que os vetores das palavras assumam valores diferentes, dependendo da posição da palavra na frase.

Isso permite que o modelo de rede neural preserve informações sobre a posição relativa das palavras de entrada, mesmo depois que os vetores se movem pelas camadas da rede do transformador.

As codificações posicionais e os embeddings do vetor de palavras são somados e passados ​​para as redes do codificador e do decodificador. Embora as redes neurais de transformadores usem esquemas de codificador/decodificador como RNNs e LSTMs, uma grande diferença entre eles é que todos os dados de entrada são alimentados na rede ao mesmo tempo, enquanto em RNNs/LSTMs, os dados são transmitidos sequencialmente.

As redes codificadoras são responsáveis ​​por converter as entradas em representações com as quais a rede pode aprender, enquanto as redes decodificadoras fazem o oposto e convertem as codificações em uma distribuição de probabilidade usada para gerar as palavras mais prováveis ​​na sentença de saída. Crucialmente, ambas as redes de codificador e decodificador possuem um mecanismo de atenção.

Como as GPUs são capazes de processamento paralelo, vários mecanismos de atenção são usados ​​em paralelo, calculando as informações relevantes para todas as palavras de entrada. Essa capacidade de prestar atenção a várias palavras, apelidada de atenção “multi-head”, de cada vez ajuda a rede neural a aprender o contexto de uma palavra dentro de uma frase e é uma das principais vantagens que as redes transformadoras têm sobre RNNs e LSTMs.

O Mecanismo de Atenção

O mecanismo de atenção é a parte mais importante de uma rede transformadora. O mecanismo de atenção é o que permite que os modelos de transformadores ultrapassem o limite de atenção de um modelo RNN ou LSTM típico. Os modelos tradicionais de sequência a sequência descartam todos os estados intermediários e usam apenas o vetor de estado/contexto final ao inicializar a rede do decodificador para gerar previsões sobre uma sequência de entrada.

Descartar tudo, exceto o vetor de contexto final, funciona bem quando as sequências de entrada são razoavelmente pequenas. No entanto, à medida que o comprimento de uma sequência de entrada aumenta, o desempenho do modelo diminui ao usar esse método. Isso ocorre porque torna-se muito difícil resumir uma longa sequência de entrada como um único vetor. A solução é aumentar a “atenção” do modelo e utilizar os estados intermediários do codificador para construir vetores de contexto para o decodificador.

O mecanismo de atenção define a importância de outros tokens de entrada para o modelo quando as codificações são criadas para um determinado token. Por exemplo, “it” é um pronome geral, frequentemente usado para se referir a animais quando seu sexo não é conhecido. Um mecanismo de atenção permitiria que um modelo de transformador determinasse que, no contexto atual, “isso” se refere a um esquilo, porque pode examinar todas as palavras relevantes na frase de entrada.

Um mecanismo de atenção pode ser usado de três maneiras diferentes: codificador para decodificador, somente codificador, somente decodificador.

A atenção do codificador-decodificador permite que o decodificador considere as sequências de entrada ao gerar uma saída, enquanto os mecanismos de atenção somente do codificador e somente do decodificador permitem que as redes considerem todas as partes das sequências anterior e atual, respectivamente.

A construção de um mecanismo de atenção pode ser dividida em cinco etapas:

  1. Calculando uma pontuação para todos os estados do codificador.
  2. Calculando os pesos da atenção
  3. Computando vetores de contexto
  4. Atualizando vetor de contexto com saída de passo de tempo anterior
  5. Gerando saída com decodificador

A primeira etapa é fazer com que o decodificador calcule uma pontuação para todos os estados do codificador. Isso é feito treinando a rede do decodificador, que é uma rede neural básica de feed-forward. Quando o decodificador é treinado na primeira palavra na sequência de entrada, nenhum estado interno/oculto foi criado ainda, então o último estado do codificador é normalmente usado como o estado anterior do decodificador.

Para calcular os pesos de atenção, uma função softmax é usada para gerar uma distribuição probabilística para os pesos de atenção.

Uma vez calculados os pesos de atenção, o vetor de contexto precisa ser calculado. Isso é feito multiplicando os pesos de atenção e o estado oculto juntos para cada passo de tempo.

Depois que o vetor de contexto é calculado, ele é usado junto com a palavra gerada na etapa de tempo anterior para gerar a próxima palavra na sequência de saída. Como o decodificador não tem saída anterior para se referir na primeira etapa de tempo, um token especial de “início” é frequentemente usado.

Diferenças entre transformadores e RNNs/LSTMs

Vamos abordar rapidamente algumas das diferenças entre RNNs e LSTMs.

As RNNs processam as entradas sequencialmente, enquanto um vetor de estado oculto é mantido e alterado pelas palavras de entrada conforme elas se movem pela rede. Os estados ocultos de uma RNN geralmente contêm muito pouca informação relevante sobre as entradas anteriores. Novas entradas geralmente sobrescrevem o estado atual, o que causa perda de informações e degrada o desempenho ao longo do tempo.

Em contraste, os modelos de transformadores processam toda a sequência de entrada de uma só vez. O mecanismo de atenção permite que cada palavra de saída seja informada por cada entrada e estado oculto, tornando a rede mais confiável para longos trechos de texto.

LSTMs são versões modificadas de RNNs, ajustadas para lidar com sequências de entrada mais longas. A arquitetura LSTM usa uma estrutura chamada “gates”, com “portas de entrada”, “portas de saída” e “portas de esquecimento”. O design fechado lida com a perda de informação comum aos modelos RNN. Os dados ainda são processados ​​sequencialmente, e o design recorrente da arquitetura torna os modelos LSTM difíceis de treinar usando computação paralela, tornando o tempo de treinamento geral mais longo.

Os engenheiros do LSTM frequentemente adicionavam mecanismos de atenção à rede, o que era conhecido por melhorar o desempenho do modelo. No entanto, acabou sendo descoberto que o mecanismo de atenção sozinho melhorou a precisão. Essa descoberta levou à criação de redes transformadoras que usavam mecanismos de atenção e computação paralela graças às GPUs.