O que é o Linformer e por que é que consegue uma complexidade linear?
sobes.tech IA
Resposta da IA
Linformer é uma arquitetura de transformador que reduz a complexidade computacional da atenção de quadrática (O(n²)) para linear (O(n)) em comprimento de sequência.
A ideia principal do Linformer é aproximar a matriz de atenção usando uma representação de baixo rank. Em vez de calcular a atenção completa entre todos os pares de tokens, o Linformer projeta chaves e valores em um espaço de menor dimensão usando projeções lineares treináveis.
Isso permite:
- Reduzir a dimensão de chaves e valores,
- Diminuir a quantidade de cálculos na multiplicação de matrizes,
- Reduzir o consumo de memória.
Assim, a complexidade linear é alcançada usando uma dimensão de projeção fixa, que não depende do comprimento da sequência de entrada, tornando o Linformer eficiente para textos longos e grandes sequências.
Pode-se imaginar aproximadamente assim:
- Em vez de calcular a atenção: Attention(Q, K, V) = softmax(QKᵀ / sqrt(d)) V
- O Linformer calcula: Attention(Q, E K, F V), onde E e F são matrizes de projeção treináveis que reduzem a dimensão de K e V.
Isso simplifica os cálculos e reduz a complexidade para O(n).