GEMM o Coração Matemático
por Frank de Alcantara em 09/02/2025
- 1. Você Pensa Como Fala
- 2. A Temida Matemática
- 3. A Probabilidade da Linguagem
- 4. A Vetorização Básica
- 5. Redes Neurais Artificiais para Word Embedding
- 6. Embeddings Distribuídos e CBoW
- 7. SkipGram e Otimizações do Word2Vec
- 8. Word2Vec, a Ponte para o Contexto
- 9. Desvendando a Modelagem de Sequências
- 10. Prestando Atenção
- 11. Do Código à Geração
- 12. Masked Language Modeling: Esconder Tokens para Aprender Contexto
- 13. BERT: O Encoder que Lê dos Dois Lados
- 14. O Cisma e a Batalha da Eficiência
- 15. GEMM o Coração Matemático
- 16. Do Cosseno à Borda: Busca Semântica em Produção
A curiosa leitora precisa saber que a multiplicação de matrizes está no coração dos Transformers, mas a expressão multiplicar matrizes esconde quase toda a dificuldade prática. A definição matemática da multiplicação de matrizes cabe em uma linha. Isso não é suficiente. Qualquer implementação capaz de aproveitar uma CPU, ou GPU moderna, exige compreender hierarquias de memória, ordem dos acessos, blocagem, vetorização, paralelismo, precisão numérica e o custo de transportar cada byte. Cada byte conta.
Em álgebra linear de alto desempenho, uma multiplicação economizada pode ajudar. Um acesso evitado à memória pode ajudar ainda mais.
Nosso objeto de estudo será a operação GEMM, de General Matrix-Matrix Multiplication. A atenta leitora verá como a mesma equação atravessa diferentes camadas da máquina: memória principal, caches, registradores vetoriais, memória compartilhada da GPU e unidades matriciais especializadas. Ao final, poderemos olhar para um Transformer e reconhecer quais operações são limitadas por computação e quais são limitadas pelo movimento de dados. Isso, vai fazer toda a diferença nos seus projetos futuros. Uma vantagem competitiva em tempos de agentes de inteligência artificial.
1. Da multiplicação de matrizes à GEMM
Sejam
Se
Vale a pena desmontar essa fórmula antes de generalizá-la.
O elemento
Um exemplo pequeno deixa o mecanismo visível. Com
O elemento
Repetindo o procedimento para as quatro posições:
Duas propriedades dessa definição sustentarão tudo o que veremos adiante, e ambas se provam em uma linha, olhando para um elemento genérico. Primeiro, multiplicar por um escalar comuta com o produto:
Segundo, a soma de matrizes de mesmo formato é definida elemento a elemento,
Falta apresentar o personagem que usaremos o artigo inteiro: a transposta. A transposta de uma matriz
No nosso exemplo,
Nenhum valor muda; muda apenas qual índice conta linhas e qual conta colunas. A transposta aparecerá com frequência nos Transformers, pois os scores de atenção da Seção 13 são
Com esses ingredientes, podemos enunciar a operação que as bibliotecas BLAS (Basic Linear Algebra Subprograms, Subprogramas Básicos de Álgebra Linear) de fato implementam:
Este artigo completo contém estratégias práticas e dados exclusivos reservados para nossos membros cadastrados.
Continuar com Google Acesso gratuito e instantâneo com sua conta Google(Updated: )