- Terminologia (A a D)
- Controle de capacidade de IA
- AIOps
- Albumentações
- Desempenho dos Ativos
- Codificador automático
- Retropropagação
- Teorema de Bayes
- Big Data
- Chatbot: um guia para iniciantes
- Pensamento Computacional
- Visão de Computador
- Matriz de Confusão
- Redes Neurais Convolucionais
- Cíber segurança
- Tecido de dados
- Contação de histórias de dados
- Ciência dados
- Data warehousing
- Árvore de decisão
- Deepfakes
- Aprendizagem profunda
- Aprendizagem por Reforço Profundo
- devops
- DevSecOps
- Modelos de Difusão
- Digital Twin
- Redução de dimensionalidade
- Terminologia (E a K)
- IA de borda
- Emoção AI
- Ensemble Learning
- Ethical Hacking
- ETL
- IA explicável
- Aprendizagem Federada
- FinOps
- IA generativa
- Rede Adversarial Geradora
- Generativo vs. Discriminativo
- Intensificação de Gradiente
- Gradiente descendente
- Aprendizagem de poucos tiros
- Classificação de imagens
- Operações de TI (ITOps)
- Automação de Incidentes
- Engenharia de influência
- K-significa clusters
- Vizinhos mais próximos
- Terminologia (L a Q)
- Terminologia (R a Z)
- Aprendizagem por Reforço
- IA responsável
- RLHF
- Automação de Processo Robótica
- Estruturado x Não Estruturado
- Análise de Sentimentos
- Supervisionado x Não supervisionado
- Máquinas de vetor de suporte
- Dados Sintéticos
- Mídia Sintética
- Classificação de Texto
- TinyML
- Aprendizagem por transferência
- Redes Neurais Transformadoras
- Teste de Turing
- Pesquisa de semelhança vetorial
AI 101
O que são redes neurais transformadoras?
Índice analítico
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:
- Calculando uma pontuação para todos os estados do codificador.
- Calculando os pesos da atenção
- Computando vetores de contexto
- Atualizando vetor de contexto com saída de passo de tempo anterior
- 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.
Blogueiro e programador com especialidades em Machine Learning e Aprendizagem profunda tópicos. Daniel espera ajudar outras pessoas a usar o poder da IA para o bem social.
Você pode gostar
Snowflake Arctic: o LLM de ponta para IA empresarial
EfficientViT: transformador de visão com eficiência de memória para visão computacional de alta resolução
MPT-30B: MosaicML supera o GPT-3 com um novo LLM para ultrapassar os limites da PNL
Removendo objetos do vídeo com mais eficiência com aprendizado de máquina
AI Image Matting que compreende as cenas
Um teclado móvel invisível orientado por IA que permite digitar 157% mais rápido