Fundamentos

Funções de ativação: ReLU, GELU e SwiGLU

Blocos feed-forward modernos não apenas dobram o sinal, eles o controlam com gate: um ramo aprendido multiplica outro, e é por isso que a FFN do Qwen3.8-27B carrega três matrizes em vez de duas.

Atualizada em

01 · Conceito

Conceito

Abra a lista de parâmetros de qualquer modelo de linguagem grande recente e conte as matrizes de um bloco feed-forward. A lição 2.2 descreveu esse bloco como projetar para cima, ativar, projetar de volta — duas matrizes. O Qwen3.8-27B tem três por bloco, chamadas gate, up e down (Qwen3.8-27B Model Card, 2026). Algo mudou entre a figura do livro-texto e o modelo entregue, e a terceira matriz é onde esta lição mora.

Comece pelo que a versão do livro-texto faz. Uma função de ativação fica entre dois mapas afins aprendidos e torna não linear a composição deles. A ReLU é ReLU(x)=max(0,x)\operatorname{ReLU}(x)=\max(0,x): entradas positivas passam inalteradas, entradas negativas viram zero. Ela é barata, linear por partes, tem derivada um do lado positivo e zero do lado negativo, e evitou a saturação ampla da sigmoide e da tanh que tornava redes profundas difíceis de treinar. Seu perigo conhecido é aquele lado negativo plano. Se a pré-ativação de uma unidade permanece negativa em todos os exemplos relevantes, nenhum gradiente a alcança pelo caminho da ReLU e a unidade está efetivamente morta; variantes leaky mantêm uma pequena inclinação negativa para preservar uma rota de recuperação.

A GELU suaviza o bico. Ela costuma ser escrita xΦ(x)x\Phi(x), onde Φ\Phi é a função de distribuição acumulada da normal padrão, de modo que a entrada é escalada por quão longe dentro da distribuição ela está: positivos grandes passam quase intocados, negativos grandes são quase completamente suprimidos, e a transição perto de zero é gradual em vez de um vinco. Ela produz pequenas saídas negativas em vez de zeros duros. A SiLU, também chamada de swish nesta forma, é a prima próxima xσ(x)x\sigma(x) com a sigmoide logística no lugar de Φ\Phi — mesmo formato, mais barata de avaliar, e a que acabou dentro dos blocos com gate.

Toda função até aqui é uma curva fixa aplicada elemento a elemento. Dê a ela um número e ela devolve um número; a regra nunca depende de mais nada. Aqui está o movimento que quebrou esse padrão.

Uma gated linear unit projeta a mesma entrada duas vezes. Uma projeção é o conteúdo, a outra é um gate, e as duas são multiplicadas elemento a elemento. Com SiLU no ramo do gate, isso é o SwiGLU:

SwiGLU(x)=SiLU(xWg)(xWu),\operatorname{SwiGLU}(x)=\operatorname{SiLU}(xW_{g})\odot(xW_{u}),

seguido da projeção down WdW_{d} de volta à largura do modelo. Três matrizes, não duas. O ramo do gate não carrega conteúdo adiante; seu único trabalho é decidir, por feature e por entrada, quanto do ramo de conteúdo sobrevive.

Passe uma coordenada com números. Suponha que, para um certo token, a projeção do gate produza 3.0-3.0 na coordenada jj enquanto a projeção de conteúdo produz +8.0+8.0 ali. O valor do gate é SiLU(3.0)=3.0×σ(3.0)3.0×0.0470.14\operatorname{SiLU}(-3.0)=-3.0\times\sigma(-3.0)\approx-3.0\times0.047\approx-0.14, então a saída naquela coordenada é cerca de 0.14×8.01.1-0.14\times8.0\approx-1.1: um sinal de conteúdo forte foi quase inteiramente suprimido, e ligeiramente invertido. Agora tome um token diferente em que a projeção do gate na mesma coordenada seja +3.0+3.0. O gate vira 3.0×σ(3.0)3.0×0.9532.863.0\times\sigma(3.0)\approx3.0\times0.953\approx2.86, e o mesmo valor de conteúdo 8.08.0 sai como aproximadamente 22.922.9. Conteúdo idêntico, destino oposto, decidido pelo outro ramo. Uma curva fixa não consegue fazer isso — dê à ReLU o valor 8.08.0 e ela devolve 8.08.0 todas as vezes, sem importar o que o resto do vetor disse.

Aqui está o erro clássico ao avaliar isso. Você tem um bloco feed-forward com largura intermediária dffd_{ff} e uma GELU. Você troca por SwiGLU, mantém dffd_{ff} igual, retreina e mede um ganho de qualidade. É tentador reportar que o gating ajudou. Não é uma afirmação limpa: você também acrescentou uma matriz inteira a mais de shape dmodel×dffd_{\text{model}}\times d_{ff}, então parâmetros e computação subiram cerca de cinquenta por cento para aquele bloco. O ganho pode ser do gate, pode ser de capacidade, e o experimento não consegue separar os dois. A correção padrão é encolher a largura intermediária ao adotar um gate, comumente para cerca de dois terços do valor sem gate, para que o bloco de três matrizes custe o que o de duas custava. Só então a comparação isola o mecanismo.

Agora coloque os números no bloco. No Qwen3.8-27B cada uma das 64 camadas guarda um bloco feed-forward com gate que recebe o hidden state de 5120 dimensões, projeta para uma largura intermediária de 17.408 tanto no caminho do gate quanto no caminho up, multiplica, e projeta de volta para 5120. Isso dá aproximadamente 267 milhões de parâmetros por camada, e perto de 17 bilhões no modelo inteiro (Qwen3.8-27B Model Card, 2026). O que quer que gating seja, é ali que a maioria dos parâmetros deste modelo escolheu morar.

Duas cautelas de engenharia fecham a lição. Primeira: ativações moldam distribuições ao longo da profundidade; entradas grandes amplificam saídas e gradientes, regiões saturadas suprimem o aprendizado, e médias não nulas deslocam o que as camadas seguintes veem — que é precisamente por que a normalização e os caminhos residuais da lição 2.8 existem. Segunda: confira sempre a fórmula exata e o dtype que a implementação usa. A GELU vem em formas exata e aproximada, kernels fundidos reassociam a aritmética, e o arredondamento em bf16 difere da curva simbólica. Dois blocos que compartilham o nome de uma ativação podem computar funções mensuravelmente diferentes.

02 · Analogia

Analogia

Um estúdio de gravação roteia cada microfone por um tipo diferente de gate. A ReLU é um noise gate duro: sinal negativo é cortado, sinal positivo passa inalterado. A GELU é um gate suave que atenua níveis incertos em vez de cortar de forma abrupta. O SwiGLU divide o canal: um caminho carrega conteúdo enquanto outro caminho aprendido controla quanto desse conteúdo passa. A escolha muda tanto o som que segue adiante quanto o retorno que os engenheiros recebem ao ajustar os equipamentos anteriores.

03 · Explique de volta

Explique de volta

Explique por que uma ativação com gate precisa de três matrizes de pesos onde a ReLU precisa de duas, percorra a computação do SwiGLU, e diga o que o ramo do gate compra que uma curva fixa não compra.

Mínimo: 80 caracteres e 15 palavras. Seu texto fica somente neste navegador.

Aguardando sua explicação.

Comparar com uma resposta-modelo

Um bloco feed-forward simples é projetar para cima, aplicar uma curva fixa elemento a elemento e projetar de volta: duas matrizes. Um bloco com gate projeta a entrada duas vezes, uma para um ramo de gate e outra para um ramo de valor, passa o gate pela SiLU, multiplica os dois elemento a elemento, e então projeta de volta: três matrizes, chamadas gate, up e down. A multiplicação é o ponto central — com que intensidade uma feature passa é computado a partir da própria entrada em vez de ser fixado pela curva, então a supressão vira aprendida e dependente do conteúdo. O Qwen3.8-27B usa essa forma com gate em cada um dos seus 64 blocos feed-forward, expandindo 5120 para 17.408 e de volta, cerca de 267M de parâmetros por camada.

04 · Teste seu entendimento

Teste seu entendimento

01A lição 2.2 mostrou que remover a não linearidade colapsa camadas afins empilhadas numa só. Que parte do SwiGLU impede esse colapso?
Resposta e explicação

A multiplicação elemento a elemento dos dois ramos, que não é uma operação afim nem antes de a SiLU ser aplicada — Um produto de duas funções lineares da entrada é quadrático, não afim; a SiLU no gate acrescenta curvatura adicional, mas a multiplicação sozinha já quebra o colapso.

02Qual é a derivada da ReLU para uma entrada estritamente negativa, e por que isso importa?
Resposta e explicação

Zero — uma unidade que permanece negativa em todos os exemplos relevantes não recebe gradiente por aquele caminho e pode morrer — O lado negativo plano é o que as variantes leaky e as ativações suaves foram projetadas para suavizar.

03Por que você não pode creditar um ganho de qualidade ao SwiGLU trocando-o num bloco existente e mantendo a mesma largura intermediária?
Resposta e explicação

A terceira matriz acrescenta parâmetros e computação, então a comparação deixa de ter orçamento equivalente — Arquiteturas normalmente encolhem a largura intermediária ao adotar um gate, justamente para que a comparação mantenha os parâmetros aproximadamente constantes.

Conclua o teach-back e acerte o quiz para finalizar a aula.

◎ · Marcador de evidência

Fontes

  1. Dan Hendrycks e Kevin Gimpel (2016). Gaussian Error Linear Units (GELUs).
  2. Noam Shazeer (2020). GLU Variants Improve Transformer.
  3. Qwen Team (2026). Qwen3.8-27B Model Card.