Fundamentos
Multiplicação de matrizes como transformação
Multiplicação de matrizes compõe mudanças de coordenadas aprendidas; um exemplo real é a projeção up feed-forward do Qwen3.8-27B, de 5120 entradas para 17.408 saídas, cerca de 89,1 milhões de multiply-adds para um único token.
Atualizada em
01 · Conceito
Conceito
Você tem o hidden state de um token: 5120 números, como a lição 0.4 estabeleceu. Dentro de cada camada do Qwen3.8-27B, esse estado é empurrado por um bloco feed-forward que primeiro o alarga para 17.408 dimensões e depois o estreita de volta. Os dois números saem direto da configuração do modelo. A pergunta que esta lição responde é o que esse alargamento de fato faz, e quanto ele custa, porque a resposta explica a maior parte de para onde vão os parâmetros e a aritmética de um modelo de 27 bilhões de parâmetros.
Multiplicação de matrizes é mais fácil de entender como uma transformação do que como um ritual de preencher grade. Uma matriz pega coordenadas em um espaço e produz coordenadas em outro. Cada componente de saída de é um produto escalar entre uma linha de e a entrada . As linhas são, portanto, perguntas aprendidas e independentes feitas sobre a mesma entrada, e o número de linhas é quantas perguntas são feitas.
Um caso pequeno torna a geometria visível. Tome
Aplicada a ela devolve : um quadrado vira um retângulo, esticado na horizontal e achatado na vertical. Outras matrizes rotacionam, refletem, cisalham ou projetam sobre um subespaço. Em 5120 dimensões a figura desaparece, mas a operação é a mesma — uma mudança aprendida de representação, nada mais exótico que isso.
Agora a de verdade. Na convenção usada aqui, , a projeção up do Qwen3.8-27B tem shape : uma linha para cada saída e uma coluna para cada entrada. Para transformar um único token, a máquina precisa produzir 17.408 coordenadas de saída, e cada uma delas é um produto escalar sobre 5120 entradas. Conte diretamente:
Isso é uma matriz, uma camada, um token. O modelo tem 64 camadas, e o bloco feed-forward de cada camada contém mais de uma matriz de tamanho comparável; a lição 4.9 faz a contabilidade completa e mostra que os blocos feed-forward guardam a grande maioria dos parâmetros do modelo. Mas segure primeiro esse número isolado, porque ele recalibra a intuição. Gerar uma resposta de cem tokens não é fazer cem consultas pequenas. Todo token empurrado por toda camada dispara dezenas de milhões de multiply-adds só nessa matriz, e as perguntas de hardware da track 9 existem por causa disso.
O posto de uma matriz mede quantas direções independentes de fato passam por ela. Um mapa de posto baixo força suas saídas para dentro de um subespaço menor do que o shape sugere. Isso não é mera ressalva: é o mecanismo por trás do fine-tuning eficiente em parâmetros da lição 6.3, que adapta uma matriz enorme somando uma correção deliberadamente de posto baixo em vez de retreinar todos os 89 milhões de números.
A multiplicação matriz-matriz faz muitas dessas transformações de uma vez. A entrada de é o produto escalar da linha de com a coluna de . Mais importante que a receita é o significado: representa composição, com atuando primeiro e em segundo. A multiplicação não é comutativa. e podem diferir, e uma pode estar definida enquanto a outra não está. O shape é o que registra quais composições fazem sentido.
Camadas neurais em geral computam . A matriz fornece a transformação linear e o bias translada todo resultado, tornando o mapa afim em vez de estritamente linear: zero agora pode ir para em vez de ir para zero. Essa liberdade permite que uma fronteira de decisão fique em algum lugar que não passe pela origem.
Aqui está o erro clássico, e ele é a razão pela qual funções de ativação existem. Suponha que você empilhe duas camadas lineares para ganhar profundidade: . Por associatividade isso é igual a , e é apenas outra matriz. Duas camadas têm exatamente o poder expressivo de uma. Acrescente biases e o mesmo colapso acontece com um único mapa afim combinado. Empilhe cinquenta e você ainda tem uma matriz. Profundidade numa rede puramente linear é uma ilusão, comprada com parâmetros e paga em aritmética, entregando nada. Algo não linear precisa interromper a composição, o que no bloco feed-forward do Qwen é uma ativação com gate, coberta na lição 2.3.
A multiplicação de matrizes domina a computação neural em parte porque é expressiva e em grande parte porque o hardware é excepcionalmente bom nela. Um batch de vetores de token multiplicado por uma matriz de pesos reaproveita os mesmos parâmetros em todas as posições, então a razão aritmética por memória é favorável. Aceleradores dividem produtos grandes em tiles, os transmitem por uma hierarquia de memória e acumulam somas parciais. A álgebra é simples; se aquilo roda rápido depende de shapes, precisão, movimentação de dados e fusão, que são o assunto das tracks 8 e 9.
O hábito de leitura a levar adiante é uma pergunta feita em cada matriz de um modelo: qual espaço entra, qual espaço sai, quantas direções independentes conseguem sobreviver, e quanto isso custa por token? Aplicado à projeção do Qwen de 5120 entradas para 17.408 saídas, as respostas são um estado estreito entrando, um estado largo saindo, no máximo 5120 direções independentes, e 89,1 milhões de multiply-adds. É assim que uma camada de transformer se sente por dentro.
02 · Analogia
Analogia
Uma mesa de luz de teatro mapeia um punhado de sliders de controle para centenas de lâmpadas: uma matriz diz como cada slider aciona vermelho, verde e azul pelo palco. Uma segunda matriz mapeia as cores resultantes no palco para o que a câmera de transmissão registra. Multiplicar as duas matrizes constrói uma única deixa que vai direto do slider à câmera. A ordem não pode ser trocada, porque iluminar uma sala e depois filmá-la não é a mesma operação que tentar iluminar uma gravação já pronta.
03 · Explique de volta
Explique de volta
Descreva multiplicação de matrizes como composição, explique por que uma pilha de camadas puramente lineares colapsa, e calcule o custo em multiply-adds da projeção up feed-forward do Qwen3.8-27B para um token.
Comparar com uma resposta-modelo
Uma matriz mapeia coordenadas de entrada para coordenadas de saída tomando o produto escalar de cada linha com a entrada, então aplicar A e depois B é a transformação única BA, lida da direita para a esquerda; AB em geral difere e pode nem ser válida em shape. Como o produto de duas matrizes é outra matriz, empilhar camadas lineares sem nada entre elas equivale a uma única camada, e é por isso que ativações não lineares precisam interromper a pilha. O Qwen3.8-27B tem hidden size 5120 e largura intermediária feed-forward 17.408, então com e as unidades de saída armazenadas como linhas, sua projeção up é uma matriz 17.408 por 5120; produzir todas as 17.408 saídas para um token exige 17.408 produtos escalares de comprimento 5120, ou seja, 5120 vezes 17.408, cerca de 89,1 milhões de operações multiply-add, para essa única matriz, naquela única camada, para aquele único token.
04 · Teste seu entendimento
Teste seu entendimento
Conclua o teach-back e acerte o quiz para finalizar a aula.
◎ · Marcador de evidência
Fontes
- Ian Goodfellow, Yoshua Bengio e Aaron Courville (2016). Deep Learning.
- PyTorch Contributors (2026). PyTorch Linear.
- Qwen Team (2026). Qwen3.8-27B Model Card.