Transformer-XL é uma arquitetura de Transformer baseada em rede neural, introduzida em janeiro de 2019 por pesquisadores da Universidade Carnegie Mellon e do Google DeepMind. Ela foi projetada para resolver a limitação de contexto de comprimento fixo dos Transformers padrão, que processam sequências de entrada em segmentos e perdem informações além do limite do segmento. Ao introduzir um mecanismo de recorrência em nível de segmento e um esquema de codificação posicional relativa, o Transformer-XL pode modelar dependências em sequências muito mais longas do que seus antecessores, alcançando resultados de última geração em vários benchmarks de modelagem de linguagem na época da publicação.
A arquitetura foi apresentada no artigo "Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context", de autoria de Zihang Dai, Zhilin Yang, Yiming Yang, Jaime Carbonell, Quoc Le e Ruslan Salakhutdinov. O nome do modelo deriva de sua capacidade de lidar com contextos "extra longos", com o 'XL' significando extra longo. Foi lançado como software de código aberto, com implementações em PyTorch e TensorFlow, e tornou-se um componente fundamental para grandes modelos de linguagem e sistemas de processamento de sequências posteriores.
Recorrência em Nível de Segmento
A inovação central do Transformer-XL é sua recorrência em nível de segmento, que permite ao modelo reutilizar estados ocultos de segmentos anteriores ao processar o segmento atual. Em um Transformer padrão, cada segmento é processado de forma independente, e a memória do modelo é redefinida em cada limite de segmento, limitando o contexto ao comprimento do segmento. O Transformer-XL, em vez disso, armazena em cache os estados ocultos do segmento anterior e os alimenta como contexto adicional às camadas de atenção do segmento atual.
Este mecanismo de recorrência cria uma forma de memória que persiste entre segmentos, permitindo ao modelo capturar dependências de longo alcance que abrangem múltiplos segmentos. Por exemplo, na modelagem de linguagem, um pronome ou tópico introduzido em um segmento anterior pode ser corretamente resolvido em um segmento posterior, mesmo que a distância entre eles exceda o comprimento do segmento. A recorrência é aplicada em cada camada, com os estados ocultos do segmento anterior sendo concatenados com os estados do segmento atual antes do cálculo da atenção.
Codificação Posicional Relativa
Uma segunda contribuição importante é o uso de codificação posicional relativa, que substitui as codificações posicionais absolutas usadas no Transformer original. No Transformer padrão, a posição de cada token é codificada com um vetor fixo, e os escores de atenção são calculados com base em posições absolutas. Essa abordagem falha quando segmentos são reutilizados, porque o mesmo token em segmentos diferentes teria posições absolutas diferentes, confundindo o modelo.
O Transformer-XL, em vez disso, codifica a distância relativa entre tokens, permitindo ao modelo generalizar para sequências mais longas do que aquelas vistas durante o treinamento. A codificação relativa é integrada ao cálculo da atenção, com parâmetros aprendíveis separados para os termos baseados em conteúdo e em posição. Esse design não apenas resolve o problema de reutilização de segmentos, mas também melhora a capacidade do modelo de extrapolar para contextos mais longos, pois as distâncias relativas permanecem significativas independentemente da posição absoluta.
Desempenho e Benchmarks
O Transformer-XL alcançou melhorias significativas em relação aos modelos de última geração anteriores em vários conjuntos de dados de modelagem de linguagem. No benchmark WikiText-103, reduziu a perplexidade de 20,5 (alcançada pelo melhor modelo anterior) para 18,3, um ganho notável. No conjunto de dados enwik8, alcançou uma pontuação de bits por caractere de 0,99, superando modelos recorrentes e convolucionais anteriores. Também teve bom desempenho no benchmark One Billion Word, estabelecendo um novo recorde com uma perplexidade de 21,8.
A capacidade do modelo de lidar com contextos longos foi particularmente evidente em tarefas que exigem memória, como geração de texto e classificação em nível de documento. Seu mecanismo de recorrência permitiu manter coerência ao longo de milhares de tokens, uma capacidade que antes era difícil para modelos de aprendizado profundo. Esses resultados estabeleceram o Transformer-XL como um marco na modelagem de sequências e influenciaram arquiteturas subsequentes, incluindo os modelos codificador-decodificador usados em sistemas modernos de IA generativa.
Influência e Legado
Os princípios de design do Transformer-XL foram adotados e estendidos por modelos posteriores. A ideia de recorrência em nível de segmento foi incorporada às arquiteturas baseadas no Transformer-XL usadas em modelos como o XLNet, que a combinou com modelagem de linguagem por permutação para pré-treinamento. O esquema de codificação posicional relativa também se tornou um componente padrão em muitas variantes subsequentes do Transformer, incluindo aquelas usadas no OpenAI's GPT-2 e modelos posteriores, que empregaram uma versão simplificada da atenção relativa.
O foco da arquitetura em dependências de longo alcance contribuiu para o desenvolvimento de mecanismos de atenção mais eficientes, como atenção esparsa e de janela deslizante, que visam capturar contextos longos sem o custo quadrático completo. O Transformer-XL também serviu como linha de base para muitos esforços de pesquisa em modelagem eficiente de sequências, e suas implementações de código aberto facilitaram a adoção generalizada tanto na academia quanto na indústria.
Detalhes Técnicos e Variantes
O Transformer-XL é construído sobre o framework padrão codificador-decodificador do Transformer, mas é tipicamente usado como um modelo somente decodificador para modelagem de linguagem. O mecanismo de recorrência é aplicado às camadas de autoatenção, com o tamanho do cache de estados ocultos sendo um hiperparâmetro que controla a quantidade de contexto histórico. O modelo usa normalização de camada, dropout e recorte de gradiente para estabilidade de treinamento, e emprega Adam como otimizador.
Várias variantes foram propostas para melhorar a eficiência, como o span de atenção adaptativo, que aprende o comprimento ideal de contexto por cabeça. O modelo também inspirou o desenvolvimento de Transformers com memória aumentada, onde módulos de memória externa são usados para armazenar e recuperar informações em sequências muito longas. Embora o Transformer-XL em si não seja mais o estado da arte, suas contribuições permanecem integrais ao design de modelos de sequência modernos, e seus princípios são ensinados em cursos avançados de aprendizado de máquina.
Recepção e Aplicações
No lançamento, o Transformer-XL recebeu atenção por seus fortes resultados empíricos e clareza conceitual. Foi amplamente citado na literatura sobre modelagem de linguagem e processamento de sequências de longo alcance. O modelo foi aplicado a tarefas além da linguagem, incluindo previsão de séries temporais e geração de música, onde dependências de longo prazo são cruciais. Sua capacidade de processar sequências de até milhares de tokens o tornou adequado para tarefas em nível de documento, como sumarização e resposta a perguntas, onde o contexto abrange múltiplos parágrafos.
A arquitetura também influenciou o design de sistemas de inferência eficientes, pois o mecanismo de recorrência permite o processamento incremental de dados em fluxo sem recomputar todo o contexto. Essa propriedade foi valiosa para aplicações em tempo real, como reconhecimento de fala e tradução online. Embora arquiteturas mais novas, como os grandes modelos de linguagem com atenção esparsa, tenham superado o Transformer-XL em escala e desempenho, seu legado persiste nas técnicas fundamentais que introduziu.
Veja Também
- Atenção de múltiplas cabeças
- Modelos sequência a sequência
- Redes residuais
- Agendamentos de taxa de aprendizado
Referências
- Dai, Z., Yang, Z., Yang, Y., Carbonell, J., Le, Q., & Salakhutdinov, R. (2019). Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context. arXiv:1901.02860.
- Implementações oficiais e documentação disponíveis no GitHub.