SwiGLU (Swish Gated Linear Unit) este o funcție de activare neliniară cu porți de filtrare (gating), introdusă de Noam Shazeer și adoptată universal în rețelele Feed-Forward (FFN) ale modelelor mari datorită convergenței remarcabile.
import torch
import torch.nn as nn
import torch.nn.functional as F
class SwiGLUFFN(nn.Module):
def __init__(self, hidden_dim: int, ffn_dim: int):
super().__init__()
self.w_gate = nn.Linear(hidden_dim, ffn_dim, bias=False)
self.w_up = nn.Linear(hidden_dim, ffn_dim, bias=False)
self.w_down = nn.Linear(ffn_dim, hidden_dim, bias=False)
def forward(self, x: torch.Tensor) -> torch.Tensor:
# SwiGLU = Swish(Gate(x)) * Up(x)
gate = F.silu(self.w_gate(x))
up = self.w_up(x)
return self.w_down(gate * up)
Superioritate dovedită: Înlocuiește activările clasice ReLU și GeLU în LLaMA, PaLM și Mistral, oferind scoruri de perplexitate superioare la același număr de parametri.
Întrebări & Discuții: Funcția de Activare SwiGLU în LLM: Gated Linear Units Moderne
Ai o întrebare despre Funcția de Activare SwiGLU în LLM: Gated Linear Units Moderne sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.