IA 101
O que são Redes Neurais Transformer?

Redes Neurais Transformer Descritas
Transformers são um tipo de modelo de aprendizado de máquina que se especializa em processar e interpretar dados sequenciais, tornando-os ótimos para tarefas de processamento de linguagem natural. Para entender melhor o que é um modelo de transformador de aprendizado de máquina e como eles operam, vamos dar uma olhada mais detalhada nos modelos de transformador e nos mecanismos que os impulsionam.
Este artigo cobrirá:
- Modelos Sequência-para-Sequência
- A Arquitetura da Rede Neural Transformer
- O Mecanismo de Atenção
- Diferenças entre Transformadores e RNNs/LSTMs
Modelos Sequência-para-Sequência
Modelos sequência-para-sequência são um tipo de modelo de NLP usado para converter sequências de um tipo em uma sequência de outro tipo. Existem vários tipos de modelos sequência-para-sequência, como Redes Neurais Recorrentes e Memória de Curto e Longo Prazo (LSTM).
Modelos sequência-para-sequência tradicionais, como RNNs e LSTMs, não são o foco deste artigo, mas entender como eles funcionam é necessário para apreciar como os modelos de transformador operam e por que eles são superiores aos modelos sequência-para-sequência tradicionais.
Em resumo, modelos RNN e LSTM consistem em redes de codificador e decodificador que analisam os dados de entrada em vários passos de tempo. A rede de codificador é responsável por formar uma representação codificada das palavras nos dados de entrada. A cada passo de tempo, a rede de codificador recebe 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 passam pela rede, até o último passo de tempo, onde um “vetor de contexto” é gerado. O vetor de contexto é então passado para a rede de decodificador, que é usada para gerar uma sequência de destino, prevendo a palavra mais provável que faz par com a palavra de entrada para os respectivos passos de tempo.
Esses modelos podem ser aumentados por meio do uso de um “mecanismo de atenção”. Um mecanismo de atenção define quais porções do vetor de entrada a rede deve se concentrar para gerar a saída correta. Em outras palavras, um mecanismo de atenção permite que o modelo de transformador processe uma palavra de entrada enquanto também presta atenção às informações relevantes contidas pelas outras palavras de entrada. Mecanismos de atenção também mascaram palavras que não contêm informações relevantes.
A Arquitetura da Rede Neural Transformer
Vamos mergulhar mais detalhadamente no mecanismo de atenção mais tarde, mas por agora, vamos dar uma olhada na arquitetura de uma rede neural transformer em um nível mais alto.
Em geral, uma rede neural transformer parece algo assim:

Embora essa estrutura geral possa mudar entre redes, as peças principais permanecerão as mesmas: codificações posicionais, vetores de palavra, mecanismo de atenção, rede neural feed-forward.
Codificações Posicionais e Vetores de Palavra
Uma rede neural transformer opera tomando uma sequência de entradas e convertendo-as em duas outras sequências. A rede transformer produz uma sequência de embeddings de vetores de palavra e codificações posicionais.
Embeddings de vetores de palavra 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 vetoriais que contêm informações sobre a posição da palavra atual na sentença de entrada, em relação às outras palavras.
Outros modelos de rede neural baseados em texto, como RNNs e LSTMs, usam vetores para representar as palavras nos dados de entrada. Esses embeddings de vetores mapeiam palavras para valores constantes, mas isso é limitante porque as palavras podem ser usadas em diferentes contextos. Uma rede transformer resolve esse problema tornando os valores das palavras mais flexíveis, usando funções sinusoidais para permitir que os vetores de palavra assumam diferentes valores dependendo da posição da palavra na sentença.
Isso permite que o modelo de rede neural preserve informações sobre a posição relativa das palavras de entrada, mesmo após os vetores passarem pelas camadas da rede transformer.
As codificações posicionais e os embeddings de vetores de palavra são somados e então passados para as redes de codificador e decodificador. Embora as redes transformer usem esquemas de codificador/decodificador, assim como RNNs e LSTMs, uma grande diferença entre elas é que todos os dados de entrada são alimentados na rede ao mesmo tempo, enquanto em RNNs/LSTMs, os dados são passados sequencialmente.
As redes de codificador são responsáveis por converter as entradas em representações que a rede pode aprender, enquanto as redes de decodificador 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. É crucial que tanto as redes de codificador quanto as de decodificador tenham 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 ao mesmo tempo, chamada de “atenção multi-cabeça”, ajuda a rede neural a aprender o contexto de uma palavra dentro de uma sentença, e é uma das principais vantagens que as redes transformer têm sobre RNNs e LSTMs.
O Mecanismo de Atenção
O mecanismo de atenção é a parte mais importante de uma rede transformer. O mecanismo de atenção é o que permite que os modelos de transformador ultrapassam o limite de atenção de um modelo RNN ou LSTM típico. Modelos sequência-para-sequência tradicionais descartam todos os estados intermediários e usam apenas o estado final/vetor de contexto quando inicializam a rede de 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 relativamente pequenas. No entanto, à medida que o comprimento da sequência de entrada aumenta, o desempenho do modelo degrada-se usando esse método. Isso ocorre porque se torna muito difícil resumir uma sequência de entrada longa 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 quão importante outros tokens de entrada são para o modelo quando as codificações são criadas para um token determinado. Por exemplo, “it” é um pronome geral, frequentemente usado para se referir a animais quando o sexo não é conhecido. Um mecanismo de atenção permitiria que um modelo de transformador determinasse que, no contexto atual, “it” se refere a uma esquilo, porque ele pode examinar todas as palavras relevantes na sentença de entrada.
Um mecanismo de atenção pode ser usado de três maneiras diferentes: codificador-para-decodificador, apenas codificador, apenas decodificador.
A atenção codificador-decodificador permite que o decodificador considere sequências de entrada ao gerar uma saída, enquanto os mecanismos de atenção apenas codificador e apenas decodificador permitem que as redes considerem todas as partes das sequências anteriores e atuais, respectivamente.
A construção de um mecanismo de atenção pode ser dividida em cinco etapas:
- Computar uma pontuação para todos os estados do codificador.
- Calcular os pesos de atenção
- Computar vetores de contexto
- Atualizar o vetor de contexto com a saída do passo de tempo anterior
- Gerar saída com o decodificador
A primeira etapa é ter o decodificador computar uma pontuação para todos os estados do codificador. Isso é feito treinando a rede de decodificador, que é uma rede neural feed-forward básica. Quando o decodificador é treinado na primeira palavra da 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 que os pesos de atenção são calculados, o vetor de contexto precisa ser computado. Isso é feito multiplicando os pesos de atenção e o estado oculto juntos para cada passo de tempo.
Depois que o vetor de contexto é computado, ele é usado ao lado da palavra gerada no passo 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 no primeiro passo de tempo, um token “iniciar” especial é frequentemente usado em seu lugar.
Diferenças entre Transformadores e RNNs/LSTMs
Vamos cobrir rapidamente algumas das diferenças entre RNNs e LSTMs.
RNNs processam as entradas sequencialmente, enquanto um vetor de estado oculto é mantido e alterado pelas palavras de entrada à medida que elas passam pela rede. Os estados ocultos de uma RNN normalmente contêm muito pouca informação relevante sobre as entradas anteriores. Novas entradas frequentemente sobrescrevem o estado atual, o que causa perda de informação e degradação do desempenho ao longo do tempo.
Em contraste, os modelos de transformador processam a sequência de entrada inteira de uma vez. O mecanismo de atenção permite que cada palavra de saída seja informada por cada palavra de entrada e estado oculto, tornando a rede mais confiável para textos longos.
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 “portas”, com “portas de entrada”, “portas de saída” e “portas de esquecimento”. O design com portas lida com a perda de informação comum nos 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, o que aumenta o tempo de treinamento.
Os engenheiros de LSTM frequentemente adicionavam mecanismos de atenção à rede, o que era conhecido por melhorar o desempenho do modelo. No entanto, eventualmente foi descoberto que o mecanismo de atenção sozinho melhorava a precisão. Essa descoberta levou à criação de redes transformer que usavam mecanismos de atenção e computação paralela, graças às GPUs.








