Discussão do artigo "Redes neurais de maneira fácil (Parte 95): Redução do consumo de memória em modelos Transformer"

 

Novo artigo Redes neurais de maneira fácil (Parte 95): Redução do consumo de memória em modelos Transformer foi publicado:

Os modelos baseados na arquitetura Transformer demonstram alta eficiência, mas seu uso é dificultado pelos altos custos de recursos, tanto na fase de treinamento quanto durante a utilização prática. Neste artigo, proponho conhecer algoritmos que permitem reduzir o uso de memória por esses modelos.

O método MLKV é uma continuação lógica dos algoritmos MQA e GQA. Nesses métodos, o tamanho do cache KV é reduzido ao diminuir-se as cabeças KV compartilhadas por um grupo de cabeças de atenção dentro de um único nível de Self-Attention. O passo mais previsível é o uso compartilhado das entidades Key e Value entre os níveis de Self-Attention. Tal passo pode ser justificado por pesquisas recentes sobre o papel do bloco FeedForward no algoritmo Transformer. Supõe-se que esse bloco simula uma memória "Key-Value" que processa diferentes níveis de informação. No entanto, o mais notável para nós é a observação de que grupos de níveis sequenciais calculam coisas semelhantes. Mais precisamente, os níveis inferiores lidam com padrões superficiais, enquanto os superiores lidam com detalhes mais semânticos. Assim, pode-se concluir que a atenção pode ser delegada a grupos de níveis, mantendo os cálculos necessários no bloco FeedForward. Intuitivamente, é compreensível que as cabeças KV possam ser compartilhadas entre níveis com objetivos semelhantes.

Desenvolvendo essas ideias, os autores do método MLKV propõem o compartilhamento multinível de chaves. O MLKV não apenas compartilha as cabeças KV entre as cabeças de atenção para Query em um nível único de Self-Attention, mas também entre cabeças de atenção em outros níveis. Isso permite reduzir o número total de cabeças KV no Transformer e garantir um cache KV ainda menor.


Autor: Dmitriy Gizlyk

[Excluído]  
E como você sabe que a rede aprendeu algo em vez de gerar sinais aleatórios?
 
Maxim Dmitrievsky #:
E como você percebe que a rede aprendeu algo em vez de gerar sinais aleatórios?

A política estocástica do ator pressupõe alguma aleatoriedade das ações. No entanto, no processo de aprendizado, o intervalo de dispersão de valores aleatórios é bastante reduzido. A questão é que, ao organizar uma política estocástica, dois parâmetros são treinados para cada ação: o valor médio e a variação da dispersão dos valores. Ao treinar a política, o valor médio tende ao ótimo e a variação tende a 0.

Para entender quão aleatórias são as ações do Agente, faço vários testes com a mesma política. Se o Agente gerar ações aleatórias, o resultado de todas as passagens será muito diferente. Para uma política treinada, a diferença nos resultados será insignificante.

[Excluído]  
Dmitriy Gizlyk #:

A política estocástica do Ator pressupõe alguma aleatoriedade das ações. Entretanto, no processo de treinamento, o intervalo de dispersão dos valores aleatórios é fortemente reduzido. A questão é que, ao organizar uma política estocástica, dois parâmetros são treinados para cada ação: o valor médio e a variação da dispersão de valores. Ao treinar a política, o valor médio tende ao ótimo e a variação tende a 0.

Para entender quão aleatórias são as ações do Agente, faço vários testes com a mesma política. Se o Agente gerar ações aleatórias, o resultado de todas as passagens será muito diferente. Para uma política treinada, a diferença nos resultados será insignificante.

Entendi, obrigado.