Skip to main content

منظور از SWiGLU چیست؟

SWiGLU (Swish‑Gated Linear Unit)

یک تابع فعال‌سازی پیشرفته است که در مدل‌های زبانی بزرگ مانند PaLM، GPT‑NeoX و LLaMA استفاده می‌شود. این تابع ترکیبی از Swish (یا SiLU) و Gating‑mechanism (مکانیزم گیت) است و عملکرد بهتری نسبت به ReLU یا GELU در مدل‌های عمیق ارائه می‌دهد.

فرمول ریاضی

اگر ورودی را x و وزن‌های خطی را W و V در نظر بگیریم، SWiGLU به صورت زیر تعریف می‌شود:

SWiGLUx=SwishxW⊗xV \text{SWiGLU}(x) = \text{Swish}(xW) \otimes (xV)

که در آن:

  • Swish(x) = x \cdot \sigma(x) (σ تابع سیگموید است)
  • ضرب عنصر به عنصر (Hadamard product) است.
  • W و V دو ماتریس وزن مجزا هستند که هر کدام بعد خروجی را به نصف کاهش می‌دهند (معمولاً بعد پنهان را به دو نیم تقسیم می‌کنند).

در عمل، اگر بعد پنهان d باشد، ابتدا x را با W (ابعاد d × d/2) و با V (ابعاد d × d/2) ضرب می‌کنیم، سپس خروجی Swish را با خروجی خطی gate می‌زنیم.

مزایای SWiGLU

  1. ظرفیت مدل‌سازی بالاتر: به دلیل وجود گیت غیرخطی، می‌تواند روابط پیچیده‌تری را یاد بگیرد.
  2. پایداری بهتر: در مقایسه با GELU یا ReLU، ناپایداری‌های آموزش (مانند vanishing gradient) کمتر مشاهده می‌شود.
  3. کارایی در مدل‌های بزرگ: در معماری‌های Transformer‑based (مانند PaLM، LLaMA) عملکرد بهتری در دقت و سرعت همگرایی نشان داده است.

مقایسه با توابع دیگر

  • ReLU: ساده و سریع، اما مشکل “مرگ نورون” (dead neurons) دارد.
  • GELU: نرم‌تر از ReLU و در مدل‌هایی مانند BERT و GPT‑3 استفاده می‌شود.
  • Swish/SiLU: مشتق‌پذیر و نرم، اما فاقد مکانیزم گیت.
  • GLU (Gated Linear Unit): از یک گیت سیگمویدی استفاده می‌کند، اما SWiGLU گیت را با Swish جایگزین می‌کند که عملکرد بهتری دارد.

کاربرد در مدل‌های معروف

  • PaLM (Google): از SWiGLU در لایه‌های feed‑forward استفاده کرده و به دقت ۸۴٫۷٪ در MMLU دست یافته است.
  • LLaMA (Meta): در لایه‌های MLP از SWiGLU بهره می‌برد.
  • GPT‑NeoX (EleutherAI): نیز از این تابع فعال‌سازی استفاده می‌کند.

حاضرین در سایت

ما 135 مهمان و 2 عضو آنلاین داریم