notícias

O que acontece se eu embaralhar/pular a camada do Transformer?A última pesquisa revela seu mecanismo de fluxo de informações

2024-07-26

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

O vento oeste vem do Templo Aofei
Qubits | Conta pública QbitAI

O mecanismo de fluxo de informações no Transformer foi revelado pelas pesquisas mais recentes:

Todas as camadas são necessárias? A camada intermediária está fazendo a mesma coisa? A ordem das camadas importa?

sepule algumas camadas, por exemplo, o que acontecerá se a saída da camada 4 estiver conectada à camada 6.Embaralhe aleatoriamente a ordem das camadas, que tal 4-6-5-7, por exemplo.

Um estudo recente chamado "Transformer Layers as Painters" se tornou popular e foi concluído por uma equipe de pesquisa das startups de IA Sakana AI e Emergence AI.



Eles partiram do princípio de funcionamento interno do Transformer e chegaram a conclusões sobre as questões acima através de uma série de experimentos. A equipe afirmou que uma compreensão profunda desses princípios pode não apenas melhorar a eficiência da utilização do modelo existente, mas também ajudar a melhorar a arquitetura e desenvolver novas variantes.

Lucas Beyer, pesquisador do Google DeepMind e autor do ViT, gostou logo após lê-lo:

Ótimo resumo! Embora alguns dos experimentos tenham sido mostrados em estudos anteriores, gosto dos novos detalhes que você adicionou, destacando especialmente que as tarefas do tipo "raciocínio" são mais afetadas do que outras tarefas!



Muitos estudiosos e engenheiros também expressaram fortes recomendações.

É uma boa aposta que alguns desses insights serão eventualmente usados ​​para melhorar o Transformer.



Os experimentos confirmaram mais uma vez que: copiar camadas é útil para tarefas criativas, mas geralmente é ineficaz para tarefas de raciocínio; alterar a ordem das camadas não funciona melhor na camada intermediária, mas ainda requer ajustes de reparo;



Então, quais experimentos a equipe de pesquisa conduziu neste estudo? Que perguntas foram respondidas?

Seleção de modelo experimental e benchmarking

Vamos dar uma olhada na configuração experimental primeiro ~

Experimente emsomente decodificadoresomente codificadorrealizado no modelo.

Entre eles, o modelo somente decodificador escolheLhama2, estuda principalmente Llama2-7B com 32 camadas e 7 bilhões de parâmetros. O experimento estendido também inclui modelos 13B (40 camadas) e 70B (80 camadas).

O modelo somente codificador escolheBERT, com 24 camadas e 340 milhões de parâmetros.

Os pesquisadores usaram pontos de verificação pré-treinamento padrão para esses modelos. Em todos os experimentos, o modelo foi congelado e, exceto na avaliação do BERT, que incluiu uma etapa padrão de ajuste fino, os parâmetros do modelo não foram modificados por meio de ajuste fino ou outros métodos.

Em termos de testes de benchmark, o Llama2 usa os seguintes benchmarks padrão: ARC (questões de teste de ciências), HellaSwag (questões de bom senso), GSM8K (questões de matemática), WinoGrande (raciocínio de senso comum), LAMBADA (predição de vocabulário). Entre eles, o LAMBADA é usado para medir a confusão, que é o mais próximo da previsão do token original usada durante o treinamento.

Para avaliação de desempenho do Llama2, é fornecida a mediana normalizada dos benchmarks, quantificando o desempenho de 0 a 1 (desempenho ótimo do modelo).

Para o BERT, é adotado o benchmark GLUE e seguidas suas métricas de avaliação, incluindo a pontuação média não normalizada do benchmark. Observe que a avaliação padrão do BERT inclui uma etapa de ajuste fino, adaptando assim o modelo. No anexo, os pesquisadores também mostram um resultado de avaliação em que apenas a cabeça do modelo pode ser ajustada.

A motivação para o experimento originou-se originalmente desta questão:

É possível combinar de alguma forma várias camadas em uma única camada, possivelmente maior?A hipótese é que talvez devido ao uso de conexões residuais durante o treinamento, a camada intermediária da rede neuralUm espaço de representação comum pode ser usado.(Isso não é verdade para perceptrons multicamadas padrão, que não possuem mecanismo para promover representação comum ou consistência de arranjo entre camadas)

Se as camadas puderem compartilhar um espaço de representação, isso terá um impacto importante nos cálculos de condições subsequentes ou na adição dinâmica de novos conhecimentos ao modelo do Transformer pré-treinado e aos aplicativos downstream.

8 questões principais sobre o Transformer
As camadas usam o mesmo espaço de representação?

Para determinar se diferentes camadas compartilham o mesmo espaço de representação, os pesquisadores examinaram o Transformer'sIgnore camadas específicas ou altere a ordem das camadas adjacentesde robustez.

Por exemplo, no modelo Llama2-7B, altere o fluxo de saída da ordem normal de "Camada 4 -> Camada 5 -> Camada 6" para "Camada 4 -> Camada 6", pulando a Camada 5. O que acontecerá?

Ou o que acontece se a saída da camada 4 for enviada para a camada 6 e, em seguida, a saída da camada 6 for enviada para a camada 5 e depois para a camada 7?

Conforme mostrado na figura abaixo, o experimento descobriu que, exceto pela primeira e última camadas,Llama2-7B mostra boa robustez ao pular ou alterar a sequência de camadas

Ou seja, a camada intermediária compartilha um espaço de representação, e a camada intermediária e a "camada externa" (a primeira e a última camadas) possuem espaços de representação independentes.



Para confirmar ainda mais esta hipótese, os pesquisadores mediram a similaridade média do cosseno entre as ativações do estado oculto de diferentes camadas em diferentes modelos (Llama2-7B, Llama2-13B e BERT-Large) e os compararam entre benchmarks.

A Figura 3 abaixo mostraConsistência entre todas as camadas intermediárias . Por exemplo, a ativação da quarta camada na parte inferior é altamente semelhante à ativação da quarta camada na parte superior. Para o Llama2-13B de 40 camadas, você pode ver que as camadas podem ser divididas em 4-5 grupos com base na similaridade: camada 0, camadas 1-3, a camada intermediária e, em seguida, a última ou duas camadas.



Isto sugere que o modelo podeExistem três espaços de representação diferentes para as camadas "início", "meio" e "fim" . Os pesquisadores também descobriram que o número de “camadas iniciais” parecia aumentar com o número total de camadas do modelo.

Além disso, uma alta similaridade de cossenos pode provar que existe um espaço de representação compartilhado, enquanto uma baixa similaridade é mais sugestiva de que esses espaços não são compartilhados. Os dados do Llama2-7B na Figura 3 acima são altamente consistentes com os resultados de desempenho mostrados na Figura 2, o que comprova ainda mais:

Pelo menos o espaço de representação no nível médio é partilhado.

Todas as camadas são necessárias?

Para verificar ainda mais se o espaço de representação da camada intermediária é verdadeiramente compartilhado, os pesquisadores também conduziramExperimento de salto de camada(Nenhum ajuste fino foi realizado durante os experimentos).

Especificamente, a saída da N-ésima camada é passada diretamente para a entrada da N+M-ésima camada (M>1), “pulando” assim a camada M-1, conforme mostrado na figura abaixo.



Originalmente, a camada N+M foi treinada apenas na entrada da camada N+M-1, então agora ela pode entender a ativação da camada N?

Nesse tipo de experimento, os pesquisadores executam a primeira camada e a última camada N-1 normalmente, enquanto pulam ou modificam as camadas N+1 para TN (T é o número total de camadas no modelo).

Conforme mostrado na Figura 4 abaixo, em vários testes de benchmark, Llama2-7B e BERT-LargeO desempenho está diminuindo gradualmente (A figura mostra o aumento gradual no número de camadas ignoradas da esquerda para a direita). Este resultado revelou:

Nem todas as camadas são necessárias e a omissão de pelo menos algumas das camadas intermediárias não terá um impacto sério no desempenho geral.



Todas as camadas intermediárias desempenham a mesma função?

As camadas intermediárias são redundantes se compartilham um espaço de representação comum?

Para responder a esta pergunta, os pesquisadores refizeram o experimento anterior de “pular”, mas desta vez, em vez de pular a camada intermediária,Substituídos os pesos de todas as camadas intermediárias pelos pesos da camada central,Como mostrado abaixo.

Na verdade, os tempos T-2N+1 são executados na camada central, onde T é o número total de camadas do modelo (Llama2-7B tem 32 camadas, BERT-Large tem 24 camadas).



No teste de benchmark resultante, à medida que o número de camadas substituídas aumenta,O desempenho do modelo degrada rapidamente . E a degradação do desempenho é muito mais severa do que apenas pular algumas camadas, esse tipo de reposição de peso é extremamente prejudicial.



portanto,Não é redundante que as camadas intermediárias desempenhem funções diferentes. O compartilhamento de pesos entre as camadas intermediárias pode ter consequências desastrosas.

A ordem das camadas importa?

Os experimentos acima mostram que embora a camada intermediária compartilhe o espaço de representação, ela realiza diferentes operações neste espaço. Então, a ordem dessas operações é importante? Os pesquisadores conduziram dois conjuntos de experimentos.

Primeiro, a camada intermediária é treinada de acordo comordem reversa executado em ordem (ordem inversa). Passe a saída da camada TN para a camada TN-1 e assim por diante até a camada N e, em seguida, passe a saída dessa camada para a camada TN final.

Como mostrado abaixo:



O segundo experimento,arranjo aleatórioAs camadas intermediárias são ordenadas e calculadas a média de 10 resultados de sementes aleatórios.

Os resultados são mostrados abaixo. Em ambos os casos, os modelos mostram.Degradação lenta do desempenho





Aqui está um spoiler de um resultado experimental abaixo, seja em ordem reversa ou aleatória, o desempenho do modelo é melhor do que pular essas camadas diretamente, indicando que mesmo que as camadas sejam executadas em entradas em ordem de não treinamento, elas ainda podem produzir. saída efetiva.

Então, a ordem das camadas é importante? A conclusão é:

O ajuste da ordem das camadas tem um certo impacto no desempenho, e tanto a ordem aleatória quanto a ordem inversa mostram certa degradação do desempenho.

É importante notar que a ordem aleatória tem melhor desempenho do que a ordem inversa. Pode ser porque a ordem inversa é completamente oposta à ordem durante o treinamento, e qualquer ordem aleatória mantém pelo menos alguma coerência sequencial (ou seja, uma camada i está sempre após outra camada j, onde i> j).

Essas camadas podem ser executadas em paralelo?

Se a presença de camadas, ou seja, não serem ignoradas, é mais importante do que a ordem em que são executadas, é possível considerarExecute essas camadas de forma independente e depois combine seus resultados ? Como mostrado abaixo.



Os pesquisadores conduziram um experimento onde, em vez de pular as camadas N para TN, eles executaram essas camadas intermediárias em paralelo e depois passaram seus resultados médios para as camadas N finais.

Os resultados são mostrados na figura abaixo. Com exceção do benchmark de problema matemático GSM8K, todos os benchmarks mostram lenta degradação de desempenho.

Interessantemente,Camadas paralelas têm melhor desempenho do que pular camadas, mas não tão bem quanto executar camadas na ordem inversa.



Em resumo, é possível rodar essas camadas em paralelo? a resposta é:Sim, exceto para benchmarks com muita matemática.

Para algumas tarefas, a ordem é mais importante?

A maioria das variantes (incluindo ordem reversa, salto e paralelo) mostram a degradação de desempenho mais rápida nos benchmarks de raciocínio abstrato ARC ou de raciocínio matemático GSM8K.

Isso pode ser explicado pelo fato de que tarefas de raciocínio passo a passo são mais sensíveis a mudanças na ordem das camadas do que tarefas “semânticas”, como Winogrande ou HellaSwag.

Isso ocorre porque as tarefas de raciocínio requerem uma combinação de informações estruturais e semânticas, enquanto tarefas como HellaSwag podem ser concluídas apenas com semântica.

Por meio de experimentos, os pesquisadores concluíram:As tarefas matemáticas e de raciocínio dependem mais da ordem do que das tarefas “semânticas”.

A iteração ajuda com camadas paralelas?

Se o mecanismo de funcionamento interno do Transformer for comparado ao processo de pintar uma pintura: a tela (entrada) é passada entre alguns pintores, alguns pintores se especializam em pintar pássaros e alguns são melhores em pintar rodas... Cada pintor, por sua vez, desenha de outro O pintor pega a tela nas mãos e decide se vai adicioná-la à pintura ou passá-la diretamente para o próximo pintor (usando conexões residuais).

É concebível que certas camadas apenas “complementem” a pintura quando recebem informações apropriadas. Por exemplo, um artista que “desenha rodas” tem maior probabilidade de desenhar rodas se vir primeiro a carroceria de um carro.

No Transformador, algumas camadas só podem contribuir para a passagem direta quando recebem a entrada apropriada, em vez de passar a entrada diretamente pela conexão residual.

Olhando desta forma, em comparação com a execução da camada paralela apenas uma vez,Execução iterativa de camadas paralelasDeve melhorar o desempenho.

Os pesquisadores testaram isso alimentando a saída média das camadas paralelas de volta para a mesma camada e fixando o número de iterações, conforme mostrado abaixo:



Na Figura 9 abaixo, os pesquisadores mostram os resultados da iteração da camada paralela 3 vezes. Este método é significativamente melhor do que executar a camada paralela apenas uma vez.



A única exceção é quando a camada inicial N é 15 para Llama2-7B ou 11 para BERT. Neste caso, o efeito de paralelizar o loop 3 vezes equivale a repetir apenas a camada intermediária 3 vezes, e a camada paralela neste momento equivale ao modelo completo.

Os pesquisadores também repetiram o experimento com diferentes números de iterações.

A figura abaixo mostra como o desempenho do Llama2-7B muda com o número de camadas paralelas M e o número de iterações.



O número ideal de iterações para cada M é indicado pela caixa vermelha. Exceto para M=29 e M=31 (quase todas as camadas são paralelizadas), o número ideal de iterações é aproximadamente linearmente proporcional ao número de camadas paralelas.

Então a conclusão é:A iteração ajuda com camadas paralelas, e o número ideal de iterações é proporcional ao número de camadas paralelas.

Quais variantes prejudicam menos o desempenho?

Finalmente, os pesquisadores compararam todas as diferentes variantes do experimento no mesmo gráfico.

Os resultados mostram que,Repetir camada única(Conforme mencionado acima, substitua as camadas intermediárias por um número igual de camadas centrais)Pior efeito, o desempenho degrada rapidamente até a linha de base aleatória.



O paralelismo iterativo e a degradação do desempenho sequencial da camada aleatória são mínimos, entre os quais o paralelismo iterativo tem melhor desempenho em BERT e Llama2-7B.



Mais resultados experimentais foram adicionados ao apêndice do artigo, e os familiares interessados ​​podem verificar o artigo original.

Link do artigo: https://arxiv.org/abs/2407.09298v1
Link de referência: https://x.com/A_K_Nain/status/1812684597248831912