Autores:
(1) Bobby He, Departamento de Ciência da Computação, ETH Zurique (Correspondência para: [email protected].);
(2) Thomas Hofmann, Departamento de Ciência da Computação, ETH Zurique.
Simplificando Blocos Transformadores
Análise Experimental Adicional
Discussão, Declaração de Reprodutibilidade, Agradecimentos e Referências
Uma dualidade entre atualizações residuais reduzidas e restrições em camadas lineares
Uma receita simples de design para Transformers profundos é compor blocos de construção idênticos. Mas os blocos transformadores padrão estão longe de ser simples, entrelaçando atenção e subblocos MLP com conexões de salto e camadas de normalização em arranjos precisos. Essa complexidade leva a arquiteturas frágeis, onde alterações aparentemente pequenas podem reduzir significativamente a velocidade de treinamento ou tornar os modelos impossíveis de treinar. Neste trabalho perguntamos até que ponto o bloco transformador padrão pode ser simplificado? Combinando teoria de propagação de sinal e observações empíricas, motivamos modificações que permitem que muitos componentes do bloco sejam removidos sem perda de velocidade de treinamento, incluindo conexões de salto, parâmetros de projeção ou valor, subblocos sequenciais e camadas de normalização. Em experimentos em modelos somente decodificador autorregressivo e somente codificador BERT, nossos transformadores simplificados emulam a velocidade de treinamento por atualização e o desempenho dos transformadores padrão, enquanto desfrutam de um rendimento de treinamento 15% mais rápido e usando 15% menos parâmetros
A arquitetura do transformador (Vaswani et al., 2017) é indiscutivelmente o carro-chefe por trás de muitos sucessos recentes em aprendizagem profunda. Uma maneira simples de construir uma arquitetura de transformador profundo é empilhar vários “blocos” de transformadores idênticos, um após o outro, em sequência. Cada bloco, no entanto, é mais complicado e consiste em muitos componentes diferentes, que precisam ser combinados em arranjos específicos para se obter um bom desempenho. Surpreendentemente, o bloco transformador de base mudou muito pouco desde o seu início, apesar de atrair o interesse de muitos pesquisadores.
Neste trabalho estudamos se o bloco transformador padrão pode ser simplificado. Mais especificamente, investigamos a necessidade de vários componentes de bloco, incluindo conexões de salto, matrizes de projeção/valor, subblocos sequenciais e camadas de normalização. Para cada componente considerado, perguntamos se ele pode ser removido sem perda de velocidade de treinamento (tanto em termos de etapa por atualização quanto de tempo de execução) e quais modificações arquitetônicas precisam ser feitas no bloco transformador para fazer isso.
Acreditamos que o problema de simplificar blocos transformadores sem comprometer a velocidade de treinamento é uma questão de pesquisa interessante por vários motivos. Primeiro, as arquiteturas modernas de redes neurais (NN) têm projetos complexos com muitos componentes, e não está claro o papel desempenhado por esses diferentes componentes na dinâmica de treinamento de NN, nem como eles interagem entre si. Isto é particularmente pertinente dada a lacuna existente entre a teoria e a prática na aprendizagem profunda, onde os teóricos que trabalham para compreender os mecanismos da aprendizagem profunda muitas vezes consideram apenas arquitecturas simplificadas devido à conveniência, não necessariamente reflectindo as arquitecturas modernas utilizadas na prática. Simplificar as arquiteturas NN usadas na prática pode ajudar a reduzir essa divisão
Numa nota teórica relacionada, nosso trabalho destaca os pontos fortes e as limitações atuais da propagação de sinal: uma teoria que se mostrou influente devido à sua capacidade de motivar escolhas práticas de design em arquiteturas NN profundas. A propagação de sinal (Poole et al., 2016; Schoenholz et al., 2017; Hayou et al., 2019) estuda a evolução da informação geométrica em um NN na inicialização, capturada por meio de produtos internos de representações em camadas entre entradas, e inspirou muitos resultados impressionantes no treinamento de NNs profundas (Xiao et al., 2018; Brock et al., 2021; Martens et al., 2021; Zaidi et al., 2023). No entanto, a teoria atual considera apenas um modelo na inicialização e muitas vezes considera apenas a passagem inicial. Como tal, a propagação do sinal atualmente é incapaz de esclarecer muitas complexidades da dinâmica profunda de treinamento de NN, por exemplo, os benefícios das conexões de salto para a velocidade de treinamento. Embora a propagação do sinal seja crucial para motivar nossas modificações, não teríamos chegado aos nossos blocos transformadores simplificados apenas com base na teoria e também contaríamos com insights empíricos.
Finalmente, do lado prático, dado o custo exorbitante de treinamento e implantação de grandes modelos de transformadores atualmente, quaisquer ganhos de eficiência nos pipelines de treinamento e inferência para a arquitetura do transformador representam economias potenciais significativas. Simplificar o bloco do transformador removendo componentes não essenciais reduz a contagem de parâmetros e aumenta o rendimento em nossos modelos. Em particular, mostramos que é possível remover conexões de salto, parâmetros de valor, parâmetros de projeção e subblocos sequenciais, ao mesmo tempo que combina o transformador padrão em termos de velocidade de treinamento e desempenho de tarefa downstream. Como resultado, reduzimos a contagem de parâmetros em até 16% e observamos aumentos de rendimento de 16% tanto no tempo de treinamento quanto no tempo de inferência.
Nosso ponto de partida para simplificar os blocos Transformer é He et al. (2023), que mostram que respeitar os princípios de propagação de sinal permite treinar transformadores profundos sem pular conexões ou camadas de normalização, mas com velocidades de convergência significativamente reduzidas por atualização de parâmetro. Primeiro mostramos que regular as atualizações de valores e parâmetros de projeção (Seção 4.1), ou de fato removê-los totalmente (Seção 4.2), melhora o desempenho de subblocos de atenção sem salto e recupera a velocidade de treinamento perdida por atualização relatada. por He et al. (2023). Isso remove metade dos parâmetros e multiplicações de matrizes no subbloco de atenção. Na seg. 4.3, mostramos que nossas simplificações combinam-se lucrativamente com subblocos paralelos (Wang & Komatsuzaki, 2021), o que nos permite remover todas as conexões de salto restantes e subblocos sequenciais sem comprometer a velocidade de treinamento por atualização, ao mesmo tempo em que aumenta ainda mais o aumento da taxa de transferência para ser 16%, na nossa implementação. Finalmente, na Seç. 5, mostramos que nossos blocos simplificados melhoram quando escalados para profundidades maiores, funcionam bem em arquiteturas somente codificador e somente decodificador, e que nossas descobertas também são válidas ao escalar a duração do treinamento. Concluímos com uma discussão sobre limitações e trabalhos futuros na Seç. 6.
Este artigo está disponível no arxiv sob licença CC 4.0.